关闭

java学习笔记(二) ----基本数据类型应用

标签: java算法floatbytenull
1008人阅读 评论(0) 收藏 举报
分类:

&和&&和区别,&&如果等式一边不成立就短路,&不管&左边的成不成立,右边等式都执行
&&短路与, ||短路或
| 或,表达式两边不管结果是什么,都进行运算

 

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个元素。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1231329次
    • 积分:9029
    • 等级:
    • 排名:第2150名
    • 原创:120篇
    • 转载:222篇
    • 译文:1篇
    • 评论:143条
    最新评论