JDK常用类

一.字符串

1.String

1.特殊设计
1.语法

String XXX = “XXXXX”;

2.内存存放

存放在常量池中,是一种性能提升的做法。内容相同的字符串引用指向相同的字符串常量。String对象再加载期就会被产生,放到数据段的字符串常量池当中,运行起来以后需要使用,直接到常量池取就可以了。
例子:

String str = new String("hello");

产生了两个字符串对象,第一个在加载期产生,第二个是new出来的。

3.字符串内容不可变

如果改变的话实际上是新建字符串对象,再让引用指向这个新的字符串对象
例如

String str = "Hello";
String str1 = str;
str1  =  str1+"World";
3.提供了大量的对字符串操作的方法
1.跟数组有关的方法
  • length()返回字符创长度。
  • toCharArray,将任意字符串转换为一个char数组。
2.跟字母有关的方法
  • charAt(index),得到index位置的字符。
  • indexOf(char ch),默认取得第一个ch的下标,如果没有则返回-1.
  • lastIndexOf(char ch)最后一个出现的位置。
    (返回了一个新的字符串,但实际上str不变)
  • toLowerCase(String str)
  • toUpperCase(String str)
  • equalsIgnoreCase(),字符串比较,忽略大小写。
  • compareTo(),让两个字符串做字典比较,返回首个不同字符ASCII码之差。如果每一位都相同,返回长度之差。
  • compareToIgnoreCase()字符串字典比较忽略大小写。
3.跟操作技巧有关的方法
  • str.contains(‘XXX’)String对象里面是否包含XXX。
  • str.startWith(“XXX”)String对象是否以XXX开头
  • str.endWith(“XXX”)String对象是否以XXX结尾
  • str.replace(‘X’,’Y’);替换字符
  • str.replace(“XXX”,”YYY”)替换字符串子串
  • str.replaceAll(“XXX”,”YYY”);所有都替换
  • replaceFirst(“l”,”fuck”);
4.特殊应用方法
  • trim方法,去掉String对象的前后空格。接收到用户输入的操作,因为用户可能输入空格。
  • split方法,根据分隔符拆分String对象。网络数据传输时常用到。特殊性:当以分隔符结尾的时候,将不再拆分。
5.matches方法,正则表达式校验

用来定一个字符串格式的模板,其本身也是一个字符串。直白地说任何一个字符串都是正则表达式,比如“Hello”,只不过规定格式只有Hello本身满足,要想有更多的情况,必须加入模糊匹配
三种括号的用法:

[ ] :一个括号代表一个字符,在内部填写这个位置可以放哪些符号。
{n,m} :前面表达式出现的次数,最少出现n次,最多出现m次。

变式:
- {m,}最少m次,最多不限。
- {m}固定的m次。
- “*”任意次
- “+”至少一次
- “?”0到1次

( ):分组可选,用“|”将内容分组,每一组都可以出现。

剩下的语法都是简写

2. StringBuffer

StringBuffer是Java中表示字符串的一种数据类型,与String的区别是它的内容是可变的。

StringBuffer sb = new StringBuffer("Hello");
sb.append("World");//拼接字符串
sb.insert(int offset,“XXX”);//在字符串中指定偏移位置拼接。

由于StringBuffer内容可变,通常我们在做大量字符串拼接时使用它比String更有效率。StringBuffer的方法没有String丰富,主要都是类似于append(),insert()拼接有关系的方法。
不能通过“+”号拼接。

3. StringBuilder

两者几乎是一模一样的,无论是内容可变还是使用的API和语法都保持一致。
区别:StringBuffer是线程安全的,StringBuilder是线程不安全的。但是线程安全的效率低,线程不安全的效率高。

二.包装类(查阅API DOC文档)

1.基本数据类型和引用类型之间的桥梁。

2.是基本数据类型与引用数据类型转换的桥梁。

3.语法API掌握:

  • 根据一个int变量,将它转化成Integer
int a =100;
Integer num  =  new Integer(a);//标准做法
Integer num2  =  a;//自动封箱,JDK1.5提供的语法糖
  • 根据一个Integer对象,将它的值放到一个int变量中
Integer in  =  205;
int num  = in.intValue();//找对象要这个值
int num2 = in;//自动拆箱,JDK1.5提供的语法糖
  • 根据一个String对象产生一个Integer对象
String str = "123";
Integer in = new Integer(str);
System.out.println(in);  
  • 根据一个Integer对象产生一个String对象。
Integer i = new Integer(123);
String str = i.toString();
String str2 = i+"";//当对对象做字符串拼接操作的时候,相当于默认调用对象的toString()方法。
System.out.println(str);  
  • int 转换到 String
int a =120;
String str = a+"";
String str2 = new Integer(a).toString();
String str3 = Integer.toString(a);  
  • String转到int
int a2 = new Integer("123").intValue();
int a3 = Integer.parseInt("123");
int a4 = new Integer("123");  

三.时间日期类

1.本质,long类型的数据。距离1970年0点0分0秒0毫秒到现在经历了多少毫秒。

2.Date类,专门用来处理时间,很多都已经过时了。

3.SimpleDateFormat

在输出Date的字符串信息时,通常配合使用SimpleDateFormat类,格式化输出时间,非常常见的*

4.Calendar抽象类

原因:因为日历的种类实在太丰富了。
仅在设置一个非当前时间的时间对象的时候,才需要用到Calendar。Month要减一,老外的月份从0开始。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值