Java Variable 变量


1. 变量的作用域

变量的作用域分为4个级别:类级、对象实例级、方法级、块级,如果不同作用域中变量重名,遵循就近原则;

  1. 类级变量又称全局变量或静态变量,需要用 static 关键词修饰,类定义后便存在,占用内存空间,可以通过类名来访问,不需要实例化;
  2. 对象实例级变量又称成员变量,实例化后会分配内存空间,有默认初始值,String 类型默认 null,int 类型默认0;
  3. 方法级变量又称局部变量,在方法内部定义,没默认初始值,必须定义和赋值才能使用;

2. 基本数据类型

8种基本数据类型:byte,short,int,float,long,double,boolean,char;
按内存占用级数:

  1. bit(b) 位是计算机存储设备的最小信息单元(1B = 8 bit,1KB = 1024B 同理 MB GB TB);
  2. byte(B) 字节(-128—127)是计算机中最基本的存储单元;
    boolean
  3. short(-215—215-1);
    char 字符(0-65545),‘’中只能有一个字符,不能没有字符,可以空格因为一个空格对应一个字符;
  4. int(-231—231-1);
    float(1.401298e-45 ~ 3.402823e+38)表示float的后面建议加F(一般大写,可以小写);
    -System.out.println()里和运算后都是默认int,所以定义long类型的变量时,需要在整数的后面加L(大小写均可,建议大写);
  5. long(-263—263-1)表示long的数据后面建议添加L(一般大写,可以小写);
    double(4.9000000e-324 ~ 1.797693e+308),e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方;
    -默认浮点数是double,所以定义float类型的变量时,需要在小数的后面加F(大小写均可,建议大写);

a. 自动类型转换

  • byte,short,char 在进行运算时会先提升为 int再计算 ;
    char 到 int,按 ASCII 码表转换,如‘a’对应97;
  • 取值范围小的和取值范围大的进行运算时,会将小的提升为大的之后再进行运算;
    数据范围:bit < byte < short = char < int < long < float < double
    浮点数占内存一样但范围更大因为用 IEEE754 来压缩了的科学计数法,丢失精确度,例如 int 到 double 小数位会被直接舍弃;
  • boolean不能与其他类型相互转换;

i. 十进制转二进制

十进制转二进制

b. 强制类型转换

i. (XXX)

ii. parseXXX()

8种基本类型对应8个包装类:Byte,Short,Integer,Float,Long,Double,Boolean,Character;

  • 自动装箱:系统会自动把"基本数据类型"转换为其对应的"包装类型";
  • 自动拆箱:系统会自动把"包装类型"转换为其对应的"基本数据类型";
        String s = "123";
        byte b = Byte.parseByte(s);
        System.out.println(b);
        short sh = Short.parseShort(s);
        System.out.println(sh);
        int i = Integer.parseInt(s);
        System.out.println(i);
        Long l = Long.parseLong(s);
        System.out.println(l);
        double d = Double.parseDouble(s);
        System.out.println(d);
        //没有Boolean.parse和Character.parse

3. 引用数据类型

除基本类型外所有数据类型,包括 String 与包装类,StringBuilder 等;
详见:Java String 与 StringBuilder

发布了59 篇原创文章 · 获赞 60 · 访问量 1607

猜你喜欢

转载自blog.csdn.net/Regino/article/details/104489837