JavaSE学习笔记——Java的核心类库(部分),
分享于 点击 277 次 点评:29
JavaSE学习笔记——Java的核心类库(部分),
Java的核心类库(部分)
主要内容:由jdk提供常用的类和API。
java.lang.Object
概念:java中规定,Object是所有类的超类(父类)。所描述的概念就是对象。为其子类提供了统一的方法。toString(),equals(),hashCode方法。
toString()
概念:功能就是将对象的内容采用字符串的形式输出。默认情况下,object对于toString方法直接返回的字符串的形式为:类的全限定名@该实例对象在内存中的哈希值。jdk中如果直接输出一个引用类型的变量,那么默认调用object的toString方法,如果需要自定义对象的输出内容,那么需要重写toString。toString通常是在测试阶段为了快捷的查阅当前对象的内容而使用。equals()
概念:比较两个对象是否”相当”,判断另一个对象和当前对象的内容是否相等,而不是去判断这两个对象的地址是否相等. 通过Object#equals判断两个对象的内容是否相当,需要手都提供对于equals方法的实现. 在重写Object#equals方法是需要遵守的规则:自反性/非空对称/传递性/一致性
public boolean equals(Object obj){
//1.判断参数是否为空
if(obj ==null ){
return false;
}
//2.和当前对象进行比较
if(obj == this){
return true;
}
//3. 判断obj的运行时类型是否属于当前类
if(obj instanceof className){
//3.1 强制转换
className other=(className)obj;
return this和other之间的内容比较的结果;
}
return false;
}
- hashCode方法
概念:返回该对象的哈希码值。支持此方法是为了提高哈希表的查询的性能.根据编程规范,重写了equals方法建议重写hashCode以维护equals和hashCode的常规协定.在equals中参与比较的内容必须在hashCode中出现.
java.lang.String
概念:表示不可变的字符串,该字符串一旦初始化之后值就不能改变.所以可以被共享.
字符串的初始化
方法1:采用双引号直接提供字符串的常量值(字面量)
//在内存中创建了一个对象:字符串的常量池中的abc,常量池中的数据可以被共享,在初始化字符串时,默认扫描常量池中的数据,如果存在直接返回,否则在创建.以空间换时间的过程. String str1="abc";
方法2:通过String提供的构造器实例化一个字符串对象
//在内存中创建了两个对象
//1.new关键字在堆内存中创建的String对象.
//2.字符串的直接量默认在编译时在常量池中创建.
String str2=new String("abc");
字符串初始化常见问题
String str4 = "abc";
String str5 = str4 + "123";
以上代码创建了三个对象:
- 常量池中的两个对象:abc,123
- 底层new StringBuilder对象.java通过加号实现字符串的拼接底层通过StringBuilder对象实现.
String中常用的API
- String#charAt(index):截取指定位置的字符
- String#length():获得字符串的长度,字符的个数
- String#equals(Object):判断两个字符串的内容是否相等
- String#endsWith(suffix):判断字符串是否采用指定的内容结束.通常判断文件后缀
- String#startsWith(pre):判断字符串是否采用指定的内容开始
- String#toLowerCase():将字符串转成小写
- String#toUpperCase():将字符串转成大写
- String#indexOf(str);判断字符串中是否存在指定的子串,如果存在返回该字串在字符串中第一次出现的位置,否则返回-1
- String#lastIndexOf(str);判断字符串中是否存在指定的子串,如果存在返回该字串在字符串中最后一次出现的位置,否则返回-1
- String#indeOf(str,index):从index开始查询是否存在指定的字符串,返回第一次出现的位置,否则返回-1;
- String#substring(begin,end);从String中下标为[begin,end)位置截取一个子串
- String#trim():去掉字符串两端的空白(空格,换行,制表符)
- String#toCharArray():将字符串以字符数组的形式返回
- String#getBytes():根据系统默认的编码格式获得一个byte数组,如果windows系统默认字符编码为gbk,如果linux,mac系统默认的utf-8
- utf-8:中文采用3个字节进行描述
- gbk:中文采用2字节描述
- iso-8859-1:无法处理中文
- ASCII:无法描述中文
- String(bytes,charSet):通过该构造器实现将byte序列转成字符串.
- String#replaceAll(String regex, String replacement):将符合regex的内容采用指定的内容进行替换
StringBuilder和StringBuffer
- StringBuffer:线程安全的可变字符序列,效率低
- StringBuilder:线程不安全的可变字符序列,效率高,就是StringBuffer的替代类
Java中对于时间的处理
java.util.Calendar
Calendar#get(field):获取时间的属性值
- Calendar.YEAR:获得年份
- Calendar.MONTH:获得月份,从0开始,0表示1月
- Calendar.DAY_OF_MONTH/Calendar.DATE:获得日期,一个月中第几天
- Calendar.DAY_OF_YEAR:一年中第几天
- Calendar.WEEK_OF_MONTH:一个月中第几周
- Calendar.WEEK_OF_YEAR:一年中第几周
- Calendar.DAY_OF_WEEK:一周中的第几天.星期天为第一天
Calendar#set(field,value):将指定的属性进行设置
- Calendar#clear(field);将指定的属性值清空
- Caleddar#add(filed,offset):对指定的属性进行操作,添加偏移量.如果给定的值超出当前操作的属性的范围,那么会自动对前一个属性进行进位.
- Calendar#roll(field,offset);对指定的属性进行操作,添加偏移量.如果给定的值超出当前操作的属性的范围,不会响应前一个属性.
日期格式的转换
- 日期格式的转换指定的日期格式和Date类型的相互转换.由java.text.SimpleDateFormat实现.
SimpleDateFormat sdf=new SimpleDateFormat();
//提供预定义的格式
- 常见的时间的预定义格式
序号 | 模式 | 说明 |
---|---|---|
1 | yyyy | 采用四位表示年份 1999 |
2 | yy | 采用两位表示年份 99 |
3 | MM | 采用两位表示月份 01 |
4 | dd | 采用两位表示日期 02 |
5 | HH | 采用两位的24小时值 |
6 | mm | 采用两位表示的分钟 |
7 | ss | 采用两位表示的秒钟 |
8 | E | 表示星期 |
相关文章
- 暂无相关文章
用户点评