韩顺平java基础-13-常用类

韩顺平java基础-13-常用类

常用类#

包装类#

分类

装箱和拆箱

Copy Highlighter-hljs
//自动装箱 int n1 = 100; Integer integer = int n1; //自动调用Integer.valueOf(n1)的方法 //自动拆箱 int n2 = integer; //自动调用integer.intValue的方法

包装类与String转换

包装类型--->String类

  1. toString()
  2. String.valueOf()
  3. i + ""

String类--->包装类型

  1. Integer()构造器
  2. Integer.valueOf()

包装类的常用方法

Integer创建对象辨别

  1. new Integer 不相等
  2. Integer 判断范围 在-128~127中,是直接从数组中返回。超出范围是new的对象
  3. ==两边有基本数据类型(int)时,就是判断值是否相等

String类#

结构剖析

  1. 实现了Serializable,说明可以串行化,可以在网络传输
  2. 实现了Comparable,说明String对象可以比较
  3. String是final类,不能被继承
  4. String有属性:char[] 用于存放字符串内容,(final)不可修改(不是指内容不可修改,只是地址不能改变)

String类创建

  1. 直接赋值
  2. 调用构造器

区分 == 和 equals:

equals仅仅比较对象的内容,而==还要看地址是否相同。

intern()方法:

intern方法返回常量池对象

关键

搞清楚创建过程中:是直接调取常量池中的变量,还是先在堆中创建对象然后再指向常量池

字符串的特性

String a = "hello" + "abc" --> String a = "helloabc" 只会创建一个对象

编译器会在底层进行优化,判断创建的常量池对象是否有引用指向

Copy Highlighter-hljs
String a = "hello"; String b = "abc"; String c = a + b; String d = "hello" + "abc"; System.out.println(c == d);//False

String类的常用方法

熟悉用法


StringBuffer#

与String类比较

  1. String保存的是字符串常量,里面的值不能更改,
  2. StringBuffer保存的是字符串变化,里面的值可以更改,不用每次更新地址,效率更高

构造器

  1. 默认方法,构造大小为16个字符的缓冲区空间
  2. 指定char[]大小
  3. 给一个String创建一个StringBuffer对象,大小是String长度+16

StringBuffer类型转换

Copy Highlighter-hljs
//1.使用构造器 StringBuffer stringbuffer = new StringBUffer(str); //并没有改变str类型,而是用stringbuffer接收 //2.使用append方法 stringbuffer = stringbuffer.append(str); //StringBuffer --》 String //1.toString方法 stringbuffer.toString(); //2.使用构造器 String s1 = new String(stringbuffer);

StringBuffer方法

  1. 增 append()
  2. 删 delete(begin, end) 范围:[begin, end)
  3. 改 replace()
  4. 查 indexOf 查找指定字串在字符串第一次出现的索引
  5. 插入 insert(cur, string) 在索引处插入字符串
  6. 获取长度 length()

StringBuilder类#

基本介绍

  1. 提供StringBuffer兼容的API,但不保证同步。用在单个线程使用时

对比#

  1. String效率低,复用率高
  2. StringBuffer 效率高,线程安全
  3. StringBuilder 效率最高,线程不安全
  4. 如果我们对String做大量修改,不要使用String。
  5. 效率:StringBuilder > StringBuffer > String

使用原则

  1. 如果存在大量修改,使用StringBuffer 或者StringBuilder
  2. 如果存在大量修改,且是单线程的情况,使用StringBuilder
  3. 如果存在大量修改,且是多线程的情况,使用StringBuffer
  4. 如果字符串修改较少,且被多个对象引用,使用String

Math类#

常用方法


Arrays类#

常用方法

  1. toString:遍历数组

  2. sort:默认排序,从小到大进行排序;定制排序,匿名内部类重写方法。

  3. binarySearch:二分查找,查找元素序号,需要按从小到大的顺序

  4. copyOf:数组复制

  5. fill:数组填充

  6. equals:判断数组是否相等,元素完全一致

  7. asList:将数组转换成List


System类#

常用方法

  1. exit:退出程序
  2. arraycopy:复制数组,更加偏向底层,一般复制数组还是用Arrays.copyOf
  3. currentTimeMillis:返回当前时间,距离1970-1-1

BigInteger类和BigDecimal#


Date类#

第一代日期类:Date

SimpleDateFormat类 将Date类格式化

parse() 将格式化后的日期转化成Date

第二代日期类:Calender

没有提供对应的格式化类,需要自己组合输出。

Calender是抽象类,不能直接创建实例,要通过getInstance获取实例

第三代日期类:LocalDate、LocalTime、LocalDateTime

now()方法 获取当前时间

plus()、minus() 对日期进行加减

DateTimeFormatter类 进行格式化

posted @   forest-pan  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示
CONTENTS