Java基础点:常用类

  1. String类,代表字符串
    a) 是一个final类,无法被继承,是不可变的字符序列,内部定义了final char[];
    i. 不可变性体现:
  2. 字符串重新赋值,需要重写指定内存区域赋值,不能再原有的value赋值
  3. 连接操作,也需要重新指定内存区域赋值
  4. Replace()修改字符串时,重新制定内存区域赋值
    b) 实现了Serializable(字符串可序列化),comparable接口
    c) 通过字面量方式赋值:字符串声明在字符串常量池(位于方法区中),字符串常量池中不会有相同内容的字符串
  5. String实例化方式
    a) 字面量方式
    i. 数据声明在方法区字符串常量池
    b) New加构造器方式,创建了新的对象
    i. 数据在堆空间中先开辟空间后,堆中再指向字符串常量池
    c) 字符串拼接:
    i. 常量与常量:结果在常量池,若变量用final定义则也是这个结果。
    ii. 若有变量参与拼接:结果在对空间中(地址值指向堆空间)
    iii. 若上述的拼接结果调用intern()方法,返回值就在常量池中
  6. String常用方法
    a) Int length(): 返回字符串长度:return value.length();
    b) Char charAt(int index): 返回索引处的字符
    c) Boolean isEmppty(): 判断是否为空数组: return value.length==0;
    d) String toLowerCase();//toUpperCase: 所有字符转化为大小写
    e) Trim(): 忽略前边和后边的空白
    f) Boolean equals(Object obj):比较字符串内容是否相同
    g) Boolean equalsIgnoreCase(Object obj):忽略大小写比较
    h) String concat(String str): 将指定的字符串连接到此字符串结尾,相当于“+”
    i) Int compareTo(Object obj): 比较两字符串大小,涉及到字符串排序
    j) String substring(int beginIndex, int endIndex): 截取从beginIndex到endIndex(不包括end 左闭右开!!)的索引的字符串
    k) Boolean endWith(String suffix):
    l) Boolean startWith(String prefix):
    m) Boolean startWith(String prefix, int toffset):
    i. 测试此字符串是否以指定的后缀、前缀、索引开始或结束
    n) Boolean contains(CharSequence s):判断是否包含字符串s
    o) Int indexOf(String str): 返回指定子字符串在字符串中第一次出现处的索引,没找到返回-1
    p) Int lastIndexOf(String str): 返回指定子字符串在字符串中最右边出现处的索引
    q) Int indexOf(String str,Int i): 返回指定子字符串在字符串中i索引开始找,若出现相同的子字符串返回索引,没找到返回-1
    r) String replace(Char oldChar, Char newChar): 返回一个newChar替换oldChar的字符串
    s) String replace(charSequence target, CharSequence replacement): 替换一整个序列
    t) Boolean match(String regex): 字符串是否匹配给定的正则表达式
    u) String split(String regex, int limit)
  7. String 与 char[] 之间的转换
    a) Stringchar[]: str.toCharArray(); 调用String的toCharArray();
    b) Char[]String: new String(char[]),调用String构造器;
  8. String与byte[]转换
    a) Str—>byte[]: str.getBytes();
    b) Byte[]Str: new String(bytes),使用String构造器;
  9. StringBuffer
    a) 可变的字符序列,底层char[]存
    b) 线程安全的,效率低
    c) 新建时,相当于底层创建长度是16的char数组
    d) 扩容问题:默认扩容为原来的两倍+2, 将原有的数组的元素复制到新的数组中。Newcapacity<<1(左移一位乘2)
    e) SB.length不一定等于16,返回有多少个元素。
  10. StringBuilder
    a) 可变的字符序列,底层char[]存
    b) 线程不安全的,效率高
    c) 创建时,相当于底层创建长度为原长度+16的char数组(“abc”.length + 16);
  11. StringBuffer常用方法
    a) Append():字符串拼接
    b) Delete(int start, int end):删除指定位置元素,左闭右开。Abc11delete(2,4)ab1
    c) Replace(int start, int end, String str):替换
    d) Insert(int offset, xxx):在指定位置插入XXX
    e) Reverse: 反转
    f) Int indexOf(String str): 返回字符串首次出现的位置
  12. JDK8之前的日期和时间接口
    a) Public static long currentTimeMillis():返回1970.01.01到现在的毫秒时间差(时间戳)
  13. Date类
    a) Java.util.Date
    i. toString():显示当前的年月日时分秒 星期 时区
    ii. getTime():获取毫秒数(时间戳)
    iii. 构造器Date(): 创建当前时间的Date对象
    iv. 构造器Date(Long 时间戳): 创建时间戳的Date对象
    b) Java.sql.Date
    i. 构造器Date(时间戳): 创建时间戳的Date对象
  14. Text.SimpleDateFormate类
    a) 实例化,方法非静态
    i. 构造特定的格式,使用指定的方式进行格式化
  15. SimpleDateFormat sdf1 = new SimpleDateFormat(“yyyy.MMMM.dd hh:mm:ss aaa”);
    b) 对日期Date类的格式化和解析
    c) 格式化:日期字符串
    i. String format = sdf.format(new Date());
    d) 解析: 字符串日期
    i. Date date1 = sdf.parse(str);
  16. Calender日历类
    a) 实例化
    i. Calender cal = Calender.getInstance();
    ii. Get(): cal.get(Calender.DAY_OF_ MONTH);返回当前月的日期
    iii. Set():
    iv. Add():
    v. getTime():
    vi. setTime():
  17. JDK8的时间日期操作
  18. LocalDate LocalTime LocalDateTime类
    a) 需要实例化
    i. 类名.now(): LocalDate ld = LocalDate.now();
    ii. 类名.of(): LocalDateTime ldt = LocalDateTime.of(2020,10,6,13,23,12);–>yyyy,MMMM,dddd,hh,mm,ss不用考虑偏移量的问题
    b) Get()
    i. Ldt.getDateOfMonth()/DateOfWeek…获取月(周)中的第几天
    c) withXxx()体现了不可变性
    i. 使用withXxx()进行日期修改后,原本的日期不发生改变
  19. Instant类
    a) 时间线上的瞬时点,记录应用程序的时间戳
    b) 实例化:Instant.now(); instant.atOffset(ZoneOffesrt.ofHours(8));获取中国时区标准时间,通过添加偏移量。
    c) Instant.toEpochMilli(); 获取对应的毫秒数
    d) Instant.ofEpochMilli(Long long): 通过给定的毫秒数创建instant实例
  20. DateTimeFormatter
    a) 用于格式化和解析日期或者时间,提供了三种格式化的方法。
    i. 自定义格式化初始化
  21. DateTimeFormatter formatter=DateTimeFormatter.ofPattern(“yyy-MM-dd hh:mm:ss”);
    b) 格式化:日期字符串
    i. formatter.format(LocalDateTime.now());
    c) 解析:
    i. formatter.parse(String)
  22. Java比较器
    a) Java中的对象只能进行==和!=操作,无法比较大小
    b) 由于需要对对象进行排序,则需要比较大小。
  23. 自然排序lang.Comparable
    a) 实现comparable接口,重写comparaTo(obj)方法
    b) 在compareTo(obj)指明比较大小的方式
  24. 定制排序util.comparator
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值