零基础学JAVA--Day28(包装类+String类)
包装类
1.针对八种基本数据类型相应的引用类型一包装类
2.有了类的特点,就可以调用类中的方法。

装箱和拆箱
以Integer为例
package com.Wrapper;public class Integer01 {public static void main(string[] args) {//演示int<-->Integer的装箱和拆箱//jdk5前是手动装箱和拆箱//手动装箱int->Integerint n1 = 100;Integer integer = new Integer(n1);Integer integer1 = Integer.valueof(n1);//手动拆箱//Integer ->intint i = integer.intvalue(n1)://jdk5后,就可以自动装箱Integer integer2 = n2;//底层仍然是Integer.valueof()int j = integer1;}
}包装类型和String类型的相互转换
package com.Wrapper;public class Integer01 {public static void main(String[] args) {//包装类(Integer)->StringInteger i=100;//自动装箱//方式1String str1=i+" ";//方式2String str2=i.toString();//方式3String str3 = String.valueOf(i);//String->包装类(Integer)String str4="12345";Integer i2=Integer.parseInt(str4);//方式一:使用到自动装箱(构造器)Integer i3 = new Integer(str4);//方式二:已经被淘汰了}
}Integer和Charcater类常用方法

String类
基本介绍
1)String对象用于保存字符串,也就是一组字符序列
2)字符串常量对象是用双引1号括起的字符序列。例如:"你好”、"12.97”、"boy”等
3)字符串的字符使用Unicode字符编码,一个字符(不区分字母还是汉字)占两个字节。
4)String类较常用构造器(其它看手册):
String s1 = new String();//
String s2 = new String(String original):
String s3 = new String(char[ ] a):
String s4 = new String(char[ ] a,int startlndex,int count)
5、String类实现了接口Serializable【String可以串行化:可以在网络传输】
接口Comparable【String对象可以比较大小】
6、String是final类,不能被其他的类继承
7、String有属性private final char value[ ];用于存放字符串内容,底层还是数组
8、一定要注意:value是一个final类型,地址是不可以修改的,内容是可以修改的
创建String对象的两种方式及内存空间
1)方式一:直接赋值String s=“aaaa";
方式一,先从常量池查看是否有“aaaa”数据空间,如果有,直接指向;如果没有则重新创建,然后指向。s最终指向的是常量池的空间地址.
2)方式二:调用构造器 String s= new String("aaaa");
方式二,先在堆中创建空间,里面维护了value属性,指向常量池的“aaaa"空间。如果常量池没有,重新创建,如果有,直接通过value指向。最终指向的是堆中的空间地址。
两者底层是不一样的,但指向的最后结果都是常量池里的''aaaa" 地址
3.画出两种方式的内存分布图

——————————————————————————————
Day28 End
离回家还有61天~
