Java常用类

常用类

字符串常用的类

String的value放在方法区常量池,如果内容一样,地址就一样

String的实例化方式:

方式一:通过字面量定义的方式

方式二:通过new +构造器的方式

面试题: String s = new String("abc");方式创建对象,在内存中创建了几个对象?

两个:一个是堆空间中new结构,另一个是char[]对应的常量池中的数据:
"abc"

字符串拼接

结论:
1.常量与常量的拼接结果在常量池。且常量池中不会存在相同内容的常量。2.只要其中有一个是变量,结果就在堆中。
3.如果拼接的结果调用intern()方法,返回值就在常量池中

字符串常用的方法

  • int length():返回字符串的长度:return value.length
  • char charAt(int index):返回某索引处的字符return value[index]
  • boolean isEmpty():判断是否是空字符串:return value.length == 0
  • String toLowerCase():使用默认语言环境,将String 中的所有字符转换为小写String toUpperCase():使用默认语言环境,将String 中的所有字符转换为大写String trim():返回字符串的副本,忽略前导空白和尾部空白
  • boolean equals(Object obj):比较字符串的内容是否相同
  • boolean equalslgnoreCase(String anotherString):与equals方法类似,忽略大小写
  • String concat(String str):将指定字符串连接到此字符串的结尾。等价于用int compareTo(String anotherString):比较两个字符串的大小
  • String substring(int beginIndex):返回一个新的字符串,它是此字符串的从beginIndex开始截取到最后的一个子字符串。
  • String substring(int beginIndex, int endIndex):返回一个新字符串,它是此字符串从beginIndex开始截取到endIndex(不包含)的一个子字符串。
  • boolean endsWith(String suffix):测试此字符串是否以指定的后缀结束
  • boolean startsWith(String prefix):测试此字符串是否以指定的前缀开始
    boolean startsWith(String prefix,int toffset):测试此字符串从指定索引开始的子字符串是否以指定前缀开始
  • boolean contains(CharSequence s):当且仅当此字符串包含指定的char值序列时,返回true
  • int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引int indexOf(String str, int fromIndex):返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始
  • int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引int lastlIndexOf(String str, int fromIndex):返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索
  • String replace(char oldChar,char newChar):返回一个新的字符串,它是通过用newChar替换此字符串中出现的所有oldChar得到的。
  • String replace(CharSequence target,CharSequence replacement):使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
  • String replaceAll(String regex,String replacement):使用给定的replacement替换此字符串所有匹配给定的正则表达式的子字符串。
  • String replaceFirst(String regex,String replacement):使用给定的replacement替换此字符串匹配给定的正则表达式的第一个子字符串。
  • boolean matches(String regex):告知此字符串是否匹配给定的正则表达式。
  • String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。
  • String[] split(String regex, int limit):根据匹配给定的正则表达式来拆分此字符串,最多不超过limit个,如果超过了,剩下的全部都放到最后一个元素中。

String与char[] byte[]数组的转换

Sting 到 char[]

String-->char[]

调用String的toCharArray();

char[]--->String

char型数组直接用new String就可以转换成String

Sting到byte[]

String-->byte[]

调用getBytes()

byte[] -->String

new String( )

StringBuffer类和StringBuilder类

可变的字符序列,与StringBuilder相比线程安全,效率低

String StringBuffer StringBuilder 都可以使用构造器相互装换

底层

默认新建一个容量16的数组

如果超过16则新建一个原来两倍+2的数组并且复制过去

如果比两倍加2还大,则用添加的字符串长度为数组容量

StringBuffer类的常用方法

  • StringBuffer append(xxx):提供了很多的append()方法,用于进行字符串拼接
  • StringBuffer delete(int start,int end):删除指定位置的内容
  • StringBuffer replace(int start, int end,string str):把[start,end)位置替换为str
  • StringBuffer insert(int offset,xxx):在指定位置插入xxx
  • StringBuffer reverse() :把当前字符序列逆转
  • public int length()
  • public char charAt(int n )
  • public void setcharAt(int n ,char ch)

日期和时间的API

system类中的currentTimeMills() 获取时间差单位为毫秒,成为时间戳

java.util.Date类和java.sqL.Date类

java.util.Date类
 /---java.sqL.Date类(子类)

两个构造器的使用

构造器一: Date():创建一个对应当前时间的Date对象

构造器二:创建指定毫秒数的Date对象

两个方法的使用

toString( ):显示当前的年、月、日、时、分、秒

getTime( ):获取当前Date对象对应的毫秒数。(时间戳)

3.java.sqL.Date对应着数据库中的日期类型的变量

 java.sql.Date-->java.util.Date 多态

 java.util.Date -->java.sql.Date 用getTime方法 new java.sql.Date(date);

SimpLeDateFormat

1.两个操作:

1.1格式化:日期--->字符串

format方法

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
Date date = new Date();
String format = simpleDateFormat.format(date);
System.out.printf(format);

1.2解析:格式化的逆过程,字符串--->日期

parse方法 符号格式不对会抛出异常

//**调用代参构造器设定格式**
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
String str ="2022-06-07";
Date parse = simpleDateFormat.parse(str); //会抛出异常
System.out.println(parse);

Calendar日历类的使用

1.实例化

方式一:创建其子类(GregoriancaLendar)的对象

方式二:调用其静态方法getInstance()

2.常用方法

1.get()

加入参数Canlendar.xxx, 获取需要的信息

2.set()

修改属性

3.add()

在属性上加

4.getTime()

 日历类改成Date

5.setTime()

Date改成日历类

JDK8新日期时间API

LocalDate、LocalTime、LocalDateTime的使用

Instant

DateTimeFormatter

java比较器

自然排序

重写compareTo(obj)方法

o1.compareTo(o2)

返回正数 o1大于o2

如果按照上面的大于返回正数,则Array.sort排序从小到大,如果要大到小则大于返回负数

String 、包装类实现comparable接口,重写compareTo(obj)方法

其他自定义类用要继承接口 comparable,写compareTo(obj)方法,就可以用Array.sort排序是从小到大

定制排序

Comparator

重写compare(obj o1,obj o2)方法

o1.compare(o2)

返回正数 o1大于o2

然后可以使用 Arrays.sort(arr,接口实现类); 从小到大排序

一般用一次可以使用匿名子类

Arrays.sort(srt[],new Comparator())

Comparable接口与Comparator的使用的对比:

Comparable接口的方式一旦一定,保证Comparable接口实现类的对象在任何位置都可以比较大小Comparator接口属于临时性的比较。

System

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值