寒假笔记3

📅 2026/7/14 3:41:10
寒假笔记3
一、装箱与拆箱1、拆箱自动将包装类型转化为基本类型Integer i1 new Integer(10);int a i1.intValue();--------手动拆箱int a i1;--------自动拆箱底层会默认调用intValue()计算机领域中像这种简化的写法称为语法糖2、装箱自动将基本类型转化为包装类型int a0 10;Integer a a0 自动装箱是 默认会调用value of();自动填充需要注意在-128和127之间的值缓存在一个数组中只要自动装箱时值的返回在-128~127之间返回的是同一个Ineteger对象。如果不在128~127之间每次都new一个新的Ineteger对象二、String类String类用来表示Java语法中字符串Java语言中“”表示字符串。String类被final修饰的其他类中不能被继承。String类有一个char数组用来存储字符串内容。字符串对象一旦创建之后值就不能改变了一旦改变了就会创建一个新的字符串对象。如果需要大量字符串拼接效率会很低所以Java语言中提供两个值可变的字符串对象StringBuffer、StringBuilder、StringBufferStringBuffer stringBuffer new StringBuffer();char[] value; 内部有一个没有被final修饰的数组默认长度16装满之后数据会自动扩容而不是新建效率提高三、Java中创建字符串对象的两种方式1. 直接赋值String s abc; 隐式的创建一个字符串对象(类似于自动装箱)创建的对象都在一个叫字符串常量池中存储。创建对象的时候如果字符串常量池中没有对应的字符串对象就会在字符串常量池创建一个字符串对象并返回地址。如果字符串常量池已经有了对应的字符串对象那么就不会创建新的字符串对象直接返回已有的字符串对象地址即可2. new 创建字符串对象String s new String(abc)只要是new出来的对象每一个对象都是独一无二的s1.equals(s2) --------比较两个字符串对象中间内容是否一致s1.equalsIgnoreCase(s2) --------比较两个对象内容是否相同大小写忽略s1.contains(b) --------判断是否包含一个字符(整体)s1.isEmpty() --------判断是否为空字符串空串返回true反之falses1.endsWith --------判断是否为指定的子串结尾s1.startsWith --------判断是否为指定的子串开头s1.length --------获取字符串长度s1.charAt(2) --------获取指定位置上的字符s1.indexOf(c)-------- 获取指定字符首次出现位置从前向后s1.indexOf(c, 3) --------从指定位置开始查找指定字符首次出现的位置从前向后找s1.lastIndexOf(c) --------从后向前s1.substring()-------- 从指定位置开始截取到末尾且截取返回新的字符串对象替换功能:String replace(String old, String new)--------将不同的数据类型转为字符串类型Integer a null-------- 用的较少值为null会报错String s String.value of(a)--------用的较多即使为null转换时也不会报错String[] spilt(分割符)s1.toLowerCase 小写s1.toUpperCase 大写 仅限英文s1.concat(---) 连接字符串s1.split() 用指定分隔符将字符串拆分成数组s1.trim() 去掉字符串前后的空格不能去掉中间空格String s1 abcd 数据传输时以字节进行传递byte[] bytes s1.getBytes()编码System.out.println(Arrays.toString(bytes))String s2 new String(bytes); 解码System.out.println(s2);StringBuilder 方法上没有加锁适合单线程场景使用、值可以改变字符串对象StringBuffer 方法上加了锁适合多线程场景使用值可以改变字符串对象String 是值不可改变的字符串对象。