封装数据类型声明结构:(也可以单做数据类使用)
byte Byte ; short Short; int Integer(长用类型 ) ; long Long; float Float; double Double; char Character; boolean Boolean;
封装数据类型:
能通过类名调用的方法或属性都是静态的static封装数据类型,对基本数据类型的封装,封装数据类型是一个工具类。
封装数据类型第一个字母是大写,封装一个类。
封装数据类型是一个类,他的占用内存比基本数据类型要打,封装完就是一个对象了。
也可以当基本数据类型来使用。
装箱拆箱:
Integer i=100 转换成 Integer i=Integer.valueof(100)这种转换就叫做装箱
能直接通过类名调用的都是静态方法。
基本数据类型按道理是不能接受封装数据类型的,因为封装数据类型他是一个操作类。
int i=Integer.valueOf("100");
基本数据类型之所以能接受是因为它调用封装中的一个转换int类型的方法,将它转换int类型,再赋值给基本数据类型。
这就叫做拆箱,不会强制转换类型转换。
基本数据类型是不能接受对象类型的,通过返回来接收,返回的值
public class T1 {
public static void main(String[] args) {
int i=Integer.parseInt("15");//将字符串转换成int型的十进制
System.out.println(i);
}
}
如何解决小数运算问题,有一个类可以解决:BigDecimal
import java.math.BigDecimal;
public class T1 {
public static void main(String[] args) {
BigDecimal bigDecimal = BigDecimal.valueOf(0.13);
BigDecimal bigDecimal1 = BigDecimal.valueOf(5.0);
BigDecimal bigDecimal2 = bigDecimal.add(bigDecimal1);//加法
BigDecimal bigDecimal3 = bigDecimal1.subtract(bigDecimal);//减法
BigDecimal bigDecimal4 = bigDecimal.multiply(bigDecimal1);//乘法
BigDecimal bigDecimal5 = bigDecimal1.divide(bigDecimal, 3, 3);//除法有除不尽报错问题
//这个是解决:divisor:除数,scale:标度,即保留几位
//roundingMode:舍入模式,具体可以查看api有详细解释,大概有直接舍弃、直接进位、接近四舍五入等
System.out.println(bigDecimal2);
System.out.println(bigDecimal3);
System.out.println(bigDecimal4);
System.out.println(bigDecimal5);
}
}
String类:
String类是一个对象。
String类创建原理:
String s2=new String("abcd")
"abcd"、新创建的String对象。
只要带有“”引号都是字符串对象创建。
字符串类型有一个优化:字符串池,举例 如果字符串中例如有 “abc”下次在申请的话就会直接在字符串池中那但 如果不是 abc他就会从新创建对象。
字符串类型有个禁忌:字符串有一件事情不能做,那就是字符串不断的累加(因为字符串是对象,如果连续申请的话就是连续申请对象很浪费内存)
压缩:
进制如果存储的数越大,显示的长度越长。
压缩有压缩长度的作用。
压缩就是将相同字节连接在一起,压缩文字。
比如6个66字节就是6x66解压就是将66解压缩
压缩视频就是质量压缩,压缩像素