7月18日
一、算术运算
运算的封闭性
1. 同种类型参与运算返回同种类型
2. Byte,short,char类型java底层把它们按照int运算
3. Java中字面量的运算被javac优化了,优化为一个固定的常量
a. 注意边界风险
int c=0X7fffffff; System.out.println(Integer.toBinaryString(c)+"----"+c); int d=0X7fffffff+1; System.out.println(Integer.toBinaryString(d)+"----"+d); |
b. 下溢出
5/2 101/010 10.1 舍弃小数点后的1
c. 上溢出
int f=1024*1024*1024*4+1; //运算结果为1
因为Math属于java.lang包下的,java语言中使用java.lang中的类不需要声明
4.条件运算符
三目运算符,三元表达式
条件式?’成立传回值’:’失败传回值’
5.
&&短路与 当第一个条件为真时才判断第二个条件 &逻辑与
|| 短路或 |逻辑或
~短路非
^异或
6.位运算只能用来处理整数
(int/long)
3&5 结果是1
011&101 001
>>,<<进行移位运算的时候向左移,最低位都补0;
向右移最高位正数补0,负数补1.
无符号右移>>>,高位全部补0
7.
++i 先运算再赋值
i++ 先赋值再运算
int a=1; a=a++; System.out.print(a); |
8.
运行结果是:1
第一步:将a=1作为a++=1;
第二步:a自增1,a=2;
第三步:将a++的值赋给a
9.switch语句可传的值:byte,short,int,char
7月19日
一、循环控制
For(初始化表达式;比较表达式;自增表达式){
//循环体
}
While(){
}
Do{
}while();
String str="a"; char c=str.charAt(0); //将字符串str第一个字符转换为char类型 |
二、break可以跳出当前的代码块
Continue跳出当次,继续下次循环
Break和continue可以加标签使用
三、数组
创建数组的两种方式:
1.静态创建
Int[] array;
2.动态创建
int[] array={1,4,5,6}; //静态初始化 int[] array1=new int[4]; //动态初始化的时候需要指明数组的长度 int[] array2=new int[]{1,2,3,4}; |
Stack(栈)里放局部变量;heap(堆)里放对象
数组对象未初始化之前都是有“零”值的:
Int[] byte[] short[] long[] 0
Float[] double[] 0.0
Char[] ‘\u0000’
Boolean[] false
String[] null
数组下标的最大值是数组长度减1
复制数组的方式:
A.
int[] arr={1,4,7,9}; int[] arr1; arr1=arr; System.out.println(Arrays.toString(arr1)); arr1[2]=5; System.out.println(arr[2]); //这种数组的赋值方式不好,因为隔离性较差 |
B.
int[] arr2=new int[arr1.length]; for(int i=0;i<arr1.length;i++){ arr2[i]=arr1[i]; } System.out.println(Arrays.toString(arr1)); |
C.
int[] arr1={1,23,4,5}; int[] arr3=new int[arr1.length]; System.arraycopy(arr1, 0, arr3, 0, arr3.length); //src 源数组 //srcPos 源数组开始复制的位置 //dest 目标数组 //destPos 目标数组开始复制的位置 //length 复制的长度 |
D.
int[] arr=Arrays.copyOf(arr1, arr1.length); //是JDK1.6版本才提供的 |
二维数组:
int a[][]={{2,4,5},{1,7,9},{3,6,7,8,4},{2,4}}; for(int i=0;i<a.length;i++){ for(int j=0;j<a[i].length;j++){ System.out.println(a[i][j]); } } |
字符串转变成数组:
String str="ABCDEFG"; char[] chs=new char[str.length()]; for(int i=0;i<str.length();i++){ chs[i]=str.charAt(i); } |
char[] chs=str.toCharArray(); |