P459常用类-P466String类的理解

P459常用类-P466String类的理解

P459

image-20220112184732644

image-20220112185255444

public class Test1 {
 public static void main(String[] args) {
     //演示拆箱和开箱,jdk5以前是手动
     int n1=100;//装
     Integer interger=new Integer(n1);
     //或者
     Integer integer1=Integer.valueOf(n1);
     //拆
     int i=interger.intValue();
     //自动
     int n2=200;
     //自动装
     Integer integer2=n2;//(int-Interger)
     //底层依然是Integer.valueOf(n2);
     //自动拆箱
     int n3=integer2;//底层依然是interger.intValue()
 }
}

image-20220112191012948

>》

三元运算符看成一个整体,精度最高为Double,所以输出1.0

public class Test2 {
 public static void main(String[] args) {
     //包装类-String
     Integer i=100;//自动装
     //method 1
     String str1=i+"";//
     //method 2
     String str2=i.toString();//直接tostring方法
     //method 3
     String str3=String.valueOf(i);
     //String > 包装类
     String str4="12345";
    Integer i2= Integer.parseInt(str4);//右边是int类型,然后自动装箱
     //或者
     Integer i3=new Integer(str4);
 } 
}

image-20220112192418650

System.out.println(Integer.MIN_VALUE); //返回最小值 System.out.println(Integer.MAX_VALUE);//返回最大值 System.out.println(Character.isDigit('a'));//判断是不是数字 System.out.println(Character.isLetter('a'));//判断是不是字母 System.out.println(Character.isUpperCase('a'));//判断是不是大写 System.out.println(Character.isLowerCase('a'));//判断是不是小写 System.out.println(Character.isWhitespace('a'));//判断是不是空格 System.out.println(Character.toUpperCase('a'));//转成大写 System.out.println(Character.toLowerCase('A'));//转成小写

1.new 的两个对象,false 2 Interger m=1;自动底层 Interger.valueof(1);阅读源码()

image-20220112194019347

如何看源码,debug -sepinto

P463Integer面试题

image-20220113235230083.png

 

P456String类的理解

image-20220112200152120

看图-右键—Dia——show---

串行化在网络中传输,可以比较大小(自身的规则);

1.“你好”是字符串常量4.实现了字符串的重载

8String类还是个final类,不能被继承 ,有属性 pirvate final char value[];用于存放字符串内容

8+一定要注意value 是一个final类型,赋值之后不能修改,指地址不能被修改,而非单个字符内容修改

比如 final char values[]={"lucy","2"};values[1]={"Ada"}; 但是nam指向的的地址空间是不变的

P466String创建剖析

image-20220112225449779

String.equanls,比较values比较字符串每个是否相等,注意看底层源码,而==判断是否是地址相等;

image-20220112231636534

image-20220112232258191

/p1.name=p2.name="hspedu",指向常量池的hspedu,s1,s2在堆中的不同地址,指向常量池相同的”bcde“

image-20220112233023517

//创建两个对象,常量池两个空间

image-20220112234612850

1.String a="hello"+"abc" 编译器直接优化成String a="helloabc";创建1个对象,指向常量池;

2.如果再加入String d="helloabc";sout(d==c1)//返回false;

String e="hello"+"abc";sout(d==e)//返回true;

3数组默认放在堆里,调动方法会有新栈,调完之后销毁

image-20220113000827836

 

 

 

分析先main 创建对象ex 堆里空间(str-----value---池-hsp) , char[]=java,依然在堆里

ex.change,方法栈,传入参数,此时新栈(传入时候str指向vale..)str——池 java char[0]---堆里变成hava

此时输出ex.str依然是堆-池 hsp,然后+and,在池中-hspanf

此时ex.ch,指向堆 hava

人给无语到了,突然关机,文件没保存

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值