java基础之java中的基本数据类型



         学习java一段时间了,使用java也差不多一年多了,可是对于后续的java的学习真的是后劲不足,或者是说懒惰吧,回想一下这一年多,用java最多的就是Android开发,说内心话,在使用java的时候,好多基础的东西却没有认真去总结。学而不思则惘,思而不学则殆。

有必要总结下java的基础知识了。


0.java中基本数据类型。

    java中,基本数据类型主要有四类八种

    分别是

    第一类:布尔型


        boolean 两个值,true 或者 false。不像大多数其他语言,Java中有单独的boolean类型,取值只有true 或者 false,且不能喝整数型互相转化。根据Java虚拟机规范,boolean类型是没有单独的jvm指令去操作的,Java编程语言中操作boolean类型的值的表达式会被编译成使用jvm的int类型的值,另外,jvm提供允许创建boolean数组,但是对boolean数组的访问和修改是采用byte数组的指令。在Oracle实现的的JVM上,boolean数组被编码为byte数组,每个元素占用一个字节。



    第二类:文本型

        char 2个字节,值得注意的是在C语言中,char是占1字节的,因此表达中文时需要使用两个字符,char c = '中',这样会出现乱码的。在C语言中,char可以当成byte用,而java里面却不行。



    第三类:整数型


        byte 1个字节

        short 2个字节

        int 4个字节

        long 8个字节


    第四类:浮点型

        float 4个字节

        double 8个字节


    注意事项:

     1.在声明整形数字的时候,例如9999999999(大于9个9的时候),需要在数字后面加上l或者L,否则编译器会报错,因为java语言默认整形数字是int类型的,而int类型的变量最大能表示出9个9,(但是最大值可以表示2147483647即10位数),因此在定义long变量的时候,如果后面的字面量没有超过int的最大值的时候,是没有问题的,编译器自动转型为long型,但是超出int的最大值的时候就必须在字面量的后面加上l或者L了。


     long val = 999999999;(9个9,编译器通过,因为后面字面量未超出int型的最大值)

     long val = 9999999999;(10个9,编译器不通过)


     long val = 9999999999L;(通过)


     2.在声明小数形数字的时候,例如2.5,如果是float型的,要在数字后面加上f或者F,否则编译器会报错,因为java语言默认小数型数字是double型的


     例如: float val = 2.5f;(或者2.5F)

                double val = 2.5;


     以下是代码实例:

  

public class Test {
    /**     * @param args     */    
public static void main(String[] args) {        
// TODO Auto-generated method stub        
System.out.println("char型" + Character.SIZE / 8 + "字节");        
System.out.println("---------------------------------");        
System.out.println("byte型" + Byte.SIZE / 8 + "字节");        
System.out.println("short型" + Short.SIZE / 8 + "字节");        
System.out.println("int型" + Integer.SIZE / 8 + "字节");        
System.out.println("long型" + Long.SIZE / 8 + "字节");        
System.out.println("---------------------------------");        
System.out.println("float型" +Float.SIZE / 8 + "字节");        
System.out.println("double型" + Double.SIZE / 8 + "字节");           
 }
}





输出:



char型2字节
---------------------------------
byte型1字节
short型2字节
int型4字节
long型8字节
---------------------------------
float型4字节
double型8字节



java基本数据类型大小

boolean

1 字节/4字节(不确定)

byte

1字节

short

2字节

int

4字节

long

8字节

float

4字节

double

8字节



1.java中的引用数据类型


java中的引用类型的变量是存放在栈内存中的,而new出来的对象却是放在堆内存的。


例如: int[] a = new a[]{1,2,3,4};


    其中变量a是存放在栈内存中的,后面new 出来的  a[]{1,2,3,4}这个对象是存放在堆内存中的。



除此之外,java中的引用还有具体的分类



java中按照对对象引用的强弱关系分类依次为:


1.强引用 StrongReference
2.软引用 SoftReference
3.弱引用 WeakReference
4.虚引用 PhantomReference



具体关于java引用的内容我将进一步学习,并更新到我的博客。