变量
声明格式 : 数据类型名变量名
变量名规范 以字母开头或者数字构成的序列(不能是java保留字)
常量 使用final指示常量
final修饰的变量只能被赋值一次,不可以修改 (风格:习惯上常量都是大写的)
运算符
算术运算符 + - * / % *= -= /= +=
自增自减运算符 ++ ,--
关系运算符与boolean运算符 == != > < <= >=
逻辑运算符 && || !
三元运算符 ?:
位运算符 & | ~ ^
左移 << 用0填充最低位
右移 >> 用符号位填充最高位
无符号右移 >>> 用0填充最高位
运算符优先级
数据类型的转换
强制类型转换
略
字符串
字符串拼接 用+号
字符串是不可变的对象
实际上我们每次修改字符串都是替换
== 只能检测两个字符串变量是否是同个指代
如果要检测两个字符串的内容是否相同 则要调用equal方法
空值和null值
空值是一个java对象 null串是没有对象
构建字符串
由于使用拼接字符串浪费资源所以我们使用StringBuilder或者StringBuffer来构建字符串
stringBuilder是线程不安全的
Stringbuffer 是线程安全
输入输出
输入
利用Scanner scanner =new Scanner()以及多个nextXXXX()方法读取
格式化输出
system.out.print
条件语句 if(语句1){语句2}else{语句3}
循环语句 while(条件) {语句1}
for(语句1;语句2;语句3){语句}
do{语句}while(语句)
多重选择
switch(){case 值:语句 ; case 值:语句 ; default: 语句}
中断控制流程语句
break 退出循环语句
continue 越过当前循环体的剩余部分,跳转到循环首部
【continue用于for循环中,则可以直接跳转到for循环的第三语句部分】
注意break和continue都可以带标签
大数值
如果整型和浮点型精度都无法满足需求,我们可以使用java.math包两个有用的类BigInteger和BigDecimal
数组
一种数据结构 ,用于存储同一类型的集合,通过下标可以访问数组中的每一个值
声明数组的方法 int[] a int[] a=new int[100]
关于初始化方法 int[] s={2,3,4,85}
匿名数组 new int[]{17,45,12}
数组排序 使用Arrays.sort(type[] r)方法,该方法使用了优化快速排序算法
数组拷贝 使用Arrays.copyOf(type[] a ,int s,int e,type v)方法或者Arrays.copyOf(type[]a ,type v)
采用二分法查找值 binarySearch(type[] a ,typev)或者binarySearch(type[] a ,int s,int e ,type v)
将所有元素设置为某个值 fill(type[] a ,type v)方法
判断所有元素都相同的方法 equals(type[] a,type[] b)
多维数组
使用多个下标访问数组元素
二维数组double[][] a
初始化 double[][] a ={ {12,12,41,5},{....},{.....}}
访问元素 a[i][j]
不规则数组
数组中的每一行有不同的长度
以二维不规则数组为例,
先指定行数Int[][]ob =new int[10][];
再按按需分配
For(intn =0 ;n<10;n++)ob[n] =new int[n+1]