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方法)
valueOf()方法来实现的.自动拆箱都是通过包装类对象的xxxValue()来实现的。
Integer j = 1;
System.out.println(i==j);//true
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%

浙公网安备 33010602011771号