&和&&和区别,&&如果等式一边不成立就短路,&不管&左边的成不成立,右边等式都执行
&&短路与, ||短路或
| 或,表达式两边不管结果是什么,都进行运算
float f=3.5 错,因为3.5是double型
float f=3.5f 对
所有的byte型,short型,char型的值在表达式中将被提升为int型
注意:在一个表达式中,以出前最高类型的变量或数值为准,它的下的变量或数值都会被转化为,该变量或数值的类型
byte a=1;
a=a+1; 错因为a+1的结果已经被转换为int型了,所以a不能接收int型
System.out.println ('a'+1); 输出结果为98,因为这里'a'被自动提升为整型了。
System.out.println(""+'a'+1); 输出结果为a1,因为一个表达式中,如果有字符串用+号和其它数据类型进行相加,那么实际上是字符串与其它内容进行相连,生成一个新的字符串。
int x=5,y;
y=x%-2; // y=1
y=-x%2 // y=-1
Switch
switch中的选择器必须是int或char型,如:
float i = 2;
switch ( i )//将出错,因为i不是int或char之一
Math.random()的输出范围是[0, 1]
算法1:
某个培训中心要为新到的学员安排房间,假设共有x个学员,每个房间可以住6人,让你用一个公式来计算他们要住的房间数?
答案:(x+5)/6。这种算法还可以用在查看留言板的分页显示上:其中x是总共的留言数,6是每页显示的留言数,结果就是总共有多少页。
//如果是x/6+1的话,那么如果是30的时候就出现问题了,应该是5个,但用这个算法就是6个了
算法2:
x=0;
while(true)
{ x=(x+1)%10
System.out.println(x);
}
该算法实现0~9不断循环输出
--------------------------------------
instanceof 检查是否是类的对象
----------------------------------------
<<左移 右面补0 (左移1位是*2)
>>右移 如果左面被移出位,原来为0就补0,原来为1就补1 (右移一位是/2)
>>>无符号右移 不管最高位原来为多少,始终补0
对抵于int型的操作数将先自动转换为int型再移位(byte,short,char)
对于int型的移位不能超过32位,a>>33和a>>1结果是一样的,a>>32结果和原来一样
long型移位不能超过64位
y=10
System.out.println(Integer.toHexString(y));
Integer.toHexString(y) 将整数y转换为十六进制数
System.out.println(Float.intBitsToFloat(0x50000000)); //打印16进制数为50000000的浮点数。
//整数类型,最大能移31位,如果大于31位,就对移位的数取模,然后再移,假如a>>32位相当于a移0位,而a>>33位,相当于a移1位, 因为整形有32位
长整形移位不能超过64位
移位不会改变变量本身的值。如a>>1;在一行语句中单独存在,毫无意义
x<<2 相当于 x*(2的2次方)
x>>2 相当于 x/(2的2次方)
---------------------------
for (i=0;i<10;i++)
{ System.out.println(i);}
for 语句可以写成
int i=0;
for (;i<10;)
{ System.out.println(i);
i++;
}
还可写成
int i=0;
for (;;)
{ if (i>=0)
break;
System.out.println(i);
i++;
}
-------------
st:while(true)
{ while(true)
{ break st; //跳出外面的while循环
}
}
-----------------------------
数组在定义后默认的初值为0
int x[]=new int[5];
int x[]={3,4,5} //给数组赋初值
int x[]=new int[]{3,4,5}
int a[5]; //声明数组时,不能指定其长度,编译时将出错
------------
int[] x;
x=new int[100];
x=null;
x[0]=2; //运行时出错,因为x已经指向null了,所以x已经不指向堆空间了,就不能再给x[0]赋值了
System.out.println(x.length); // 求x数组的长度
int[][] xx={{3,2,7},{1,5},{6}}; //二维数组初使化
------------------
int[] x=new int[]{3,1,2,4};
java.util.Arrays.sort(x); //对x数组进行排序
int[] y=new int[10]; // 这个y必须被初使化,下面才能考贝
System.arraycopy(x,0,y,0,4); //从x的第0个元素开始,考到,y的第0个元素开始,考x中的4个元素。