java基本数据类型,包装类,引用类型详解,转换和常量池(int等默认内存取值范围)

1.八种基本数据类型常识

 整数的默认类型为int,浮点数的默认类型为double.

 基本数据类型不是类,不能new.

2.自动类型转换和强制类型转换

   byte,short char(包括自身)类型之间做运算时,结果会自动转换为int类型(默认)
   自动类型转换:
   byte,short,char—> int —> long—> float —> double(小的可以变大的,大变小会损失精度或不可以或溢出)

   注:不能对boolean类型进行类型转换;运算时,运算结果会向较大的类型转换;byte、short、char三种数据类型参与运算时,先一律转化为int类型;

  强制类型转换:

      高等级转为低等级的时候,必须强制转换,例子:

      int i1 = 123;
      byte b = (byte)i1;//强制类型转换为byte

3.包装类

 

 

 

4.自动拆箱与装箱(jdk1.5之后的新特性)

  jdk1.5之前:Integer i = new Integer(10); 

  自动拆箱 :包装类——>基本数据类型 (原理是调用了xxxValue方法)   

  自动装箱 :基本数据类型——>包装类 (原理是调用了valueOf方法)

  Integer i =10;  //自动装箱
  int b= i;     //自动拆箱
自动装箱都是通过包装类的valueOf()方法来实现的.自动拆箱都是通过包装类对象的xxxValue()来实现的。
 
 
5.常量池

 

Integer i = 1;
Integer j = 1;
System.out.println(i==j);//true

 

Integer x = 128;
Integer y = 128;
System.out.println(x==y);//false
对于Integer类java为了提高效率,初始化了-128--127之间的整数对象在(常量池)中,有的话直接指向它,超过了界限才新建一个。其他类型都类似,有就指向,无就创建

6.String和基本数据类型(包装类)之间的转换

 //实质是和包装类转换,再利用自动拆装箱
  String 转化成 基本数据类型 :
  利用基本数据类型对应的包装类的parseXxx() 或 valueOf() 方法
    String str = "100";
    Double doubleString = Double.parseDouble(str);//parseXxx() 首选方案
    Double doubleString = Double.valueOf(str);//valueOf()
    如果str="100ab" 带有字母,转化的时候会报错:NumberFormatException错误
  基本数据类型 转化成 String:
    Double toBeString = 400.40;
    使用串联运算符 “+”              :String fromDouble = "" + toBeString;
    使用String.valueOf(double d)方法:String strDouble = String.valueOf(toBeString);
    使用String.format()方法并返回一个格式化的字符串,可以控制精度级别:
    String strDouble = String.format(“%.3f”,toBeString);
    基本数据类型对应包装类的toString 方法 转化成String实例://重点是用的包装类的方法,在用的时候要把变量转换为包装类
    String strDouble = toBeString.toString()

7.将数字进行格式化

  比如取2位小数  利用  DecimalFormat 类:
   DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置:
   double pi=3.1415927;
   System.out.println(new DecimalFormat("0").format(pi));//3
   System.out.println(new DecimalFormat("0.00").format(pi)); //3.14
  System.out.println(new DecimalFormat("#.##%").format(pi)); //314.16%

 

 

 

 

   

  

posted @ 2020-08-20 16:59  我的风格over  阅读(103)  评论(0)    收藏  举报