java中的数据类型

来源:互联网 发布:近君子远小人,知轻重 编辑:程序博客网 时间:2024/05/21 11:12

1. double和float
float 占用4个字节的存储空间,double 占用8个字节的存储空间
带有小数点的常数默认为double类型
例如:
  float f;
  f=1.9;
编译程序的时候会报警告错误,提示是否转换double数据类型为float类型
如果想避免这种警告,可以改成如下代码所示:
  float f;
  f=1.9f;
2. 在java中条件的成立与否,只能通过true和false来表示,这点儿和C语言有区别
例如:
   if(1)
   {
    }
   这样的句子是没有办法通过语法检验的。因为java的条件数只能是true和false,
可以检验如下:
  boolean flag;
  flag=true;
  if(flag)
  System.out.println(flag);
  else
  System.out.println("假");
输出结果:true
3. 数组初始化和C++中的区别也比较大,在C++中,数组每行的元素个数必须相等,声明时必须写出数组的大小。但是java中数组的声明不能写大小,例如:int a[9];是错误的语法结构。
但是可以通过另外一种方式说明数组的大小,int [] a=new int[5];这是合法的表示方法。但是如果在声明的同时也进行数组初始化的时候,那么就不能指明数组的大小了。例如:
int[] a=new int[2]{1,2};这条语句是没有办法通过语法检查的;可以用下面的写法代替:
int[] a=new int[]{1,2};这是合法的表示方法。我们还可以定义二维数组,例如:
int[][] a;int[2][];都是合法的定义方式。和一维数组一样,初始化的时候不能指定数组的大小;另外一点就是int[][] a={1,2,3,4}这是错误的表达方式,对于二维数组来说,初始化时候必须用大括号表明每个元素所在的行,例如这样的表示是合法的:int[][] a={{1,2},{3,4,5}};而在C++中不需要嵌套大括号说明每一个元素所在的行,并且每一行的元素个数必须相等。
4. for循环中定义变量的生存期,在C++中如果有下面的程序段:
    void fun()
    {
        for(int i=0;i<10;i++)
           {}
       }
   那么整数i的生命周期一直到整个fun函数结束。但是在java中i的生命周期随着for循环的结束而结束。
5. String类型数据值的比较。
  String str1=new String("hello");
  String str2=new String("hello");
 if(str1==str2)
  System.out.println("相等");
 else
  System.out.println("不相等");
 运行结果出乎我们的意料,输出的结果经验是 不相等 ,为什么会有这样的结果呢?原来java中除了基础数据类型之外,大部分的数据变量都是引用变量,那么在上面代码中系统是用str1和str2的引用来比较的,所以会得出不相等的结果。在java中,一般建议用成员函数equals进行比较,例如上面的if(str1==str2)可以替换为if(str1.equals(str2)),我们就可以看到想要的结果了。
原创粉丝点击