java基本数据类型

admin 2015年01月27日 Java学习 931次阅读 查看评论

  基本数据类型默认格式

  整型默认是int,浮点型默认是double

  short q = 1;

  q = q + 1; //错误,默认是int,无法直接转换为short

  q += 1; //正确

  byte a = 1, b = 2, c;

  c = (byte) (a + b);//必须加强制转换符,两数相加默认等于int型;byte,short,char之间不会相互转换,他们在计算时首先会转换为int型,在进行计算;多种数据类型混合运算时,首先将所有数据转换成精度最高的类型,在进行计算。float i=(float)0.1;//0.1在计算机中占8字节,由double被强制转换成float

  float=0.1f //在内存中就是float型,只占4字节

  long l1=123;//可以,int型自动转换成long

  long l2=1000000000000000L;//结尾必须加L,因为100000000000000000已经超过int型范围

  Java移位操作

  >>右移,等同于除2,>>2右移两位,等于/2/2à除4;

  <<左移,等同于乘2,<<2左移两位,等于*2*2à乘4;

  Java作优化,对32/64取余后再移位;对于移位的位数是负数,加上32的整数倍,得到整数倍再移位;

  int i= 1; i>>-30与i<<34;效果相等;

  三目运算符

  三目运算符可以比较两个不同类型的变量,将低精度转换成高精度在比较:

  double d = 2;

  int i = 4;

  System.out.println(d>i?d:i);

  结果为4.0

  与或非

  &按位与,也可表示逻辑与,不过效率低

  &&逻辑与(又称短路与):当判断第一个条件为false,则不判断第二个条件,效率高

  正常开发中逻辑判断只用&&,||也一样。

  赋值

  int a = 10;

  for (int i = 0; i < 10; i++) {

  a = a++;

  }

  System.out.println(a);

  a值不变,此处a=a++;不等同于a=a;a++;

  首先在寄存器中执行a++,此时寄存器中有两个值10,11;然后判断将10赋值给a,结束。11没用了,被回收。

  可变参数

  格式:参数类型...(0-n个该类型参数)

  用法:用于参数列表()中,必须位于参数列表的最后面

  本质:编译时按数组处理,所有可变参数接收后都是以数组形式保存下来的,所以直接以数组方式使用即可。

  public class Test {

  public static void main(String args[]) {

  test("a");// 取第一种方式,精确匹配最优先

  // test("a","b");错误,第二种与第三种方式同时可用,多个可变长匹配

  test(); // 第二种,可变参数长度可以为0

  String[] s = { "a", "b", "c" };

  test(s);// 调用第二种,s为数组可变长参数格式编译时按数组处理

  test("a", s); // 调用第三种,s为数组可变长参数格式编译时按数组处理

  array("a", "b", "c", "d", "e", "f", "g");

  }

  // 第一种

  public static void test(String s) {

  System.out.println("第一种");

  }

  // 第二种

  public static void test(String... s) {

  System.out.println("第二种");

  }

  // 第三种

  public static void test(String s, String... s1) {

  System.out.println("第三种");

  }

  // 可变长参数格式编译时按数组处理

  public static void array(String... s) {

  for (String s1:s) {

  System.out.print(s1+"\t");

  }

  }

  }

  结果:

  第一种

  第二种

  第二种

  第三种

  a b c d e f g

  静态导入

  格式:import static ……

  好处:省略类名,坏处:代码混乱,不知道来自哪个类,可读性非常差,开发中很少用

  import static java.lang.Math.random;

  import static java.util.Arrays.sort;

  import static java.util.Collections.*;

  public class TestStatic {

  public static void main(String args[]) {

  System.out.println(random());

  int[] a = { 1, 2, 3 };

  sort(a);

  }

  }

  结果

  0.6799793601146922

« 上一篇 下一篇 » admin原创文章,转载请注明出处! 标签:java学习ipvb学习ip学习

相关日志:

«   2020年11月   »
1
2345678
9101112131415
16171819202122
23242526272829
30
控制面板
您好,欢迎到访网站!
  [查看权限]
网站分类
文章归档
网站收藏
友情链接
图标汇集
  • 又拍云
  • 订阅ipvb的RSS 2.0聚合