String的细节问题
String是一个不可变序列
在jdk1.8及以前底层是一个使用final 修饰的 char数组
jdk1.8以后,是一个byte数组
StringBuilder
底层是一个可变序列
在jdk1.8及以前底层是一个使用非final 修饰的 char数组
jdk1.8以后,是一个byte数组
初始化StringBuilder 的时候--> 16 长度的数组
基本数据类型和包装类
基本类型: 是无法进行方法调用--> 將基本数据类型封装成包装类
如何去获得Integer
new Integer(数字)
new Integer("字符串")
Integer.valueOf(100)
Integer.valueOf("100") 还是一个自动装箱的方法
int 和 String 的转换
int -->String
用字符串 + --> 效率相当低
String.valueOf()
String -->int
Integer.parseInt --> 将String 转换成int 数据类型
String--> Integer-->int
Integer num =Integer.valueOf(String s)
num.intValue()
自动装箱和自动拆箱(重点)
装箱:基本数据类型转换成包装数据类型
拆箱:包装数据类型转换成基本数据类型
Integer a = null; // 编译器替我们调用了valueOf(-128 127 是不会new 新对象的 相等)
Integer b = a+ 10; //先拆箱 a.intValue ,再将计算出来的结果装箱赋值给b
Date: 是以一种不太友好的方式来告诉我时间的
构造方法:
new Date() --> 当前系统时间的date表示形式
new Date(一个小时) --> 相较于时间原点过去的毫秒值的日期
常用方法:
setTime
等效于 new Date(long date)
getTime
获取是相较于时间原点所读过的毫秒值
SimpleDateFormat :日期格式化类
使用步骤:
1.创建对象 :指定自定义的格式 yyyy-MM-dd HH:mm:ss
2.两个方法
String 需要的格式字符串 = sdf.format(Date date)
返回这个日期所对应的 Date date =sdf.parse(String str);
Calendar 日历类:可以用来完成Date类无法完成的一些操作
Calendar c = Calendar.getInstance();
set(年,月,日) 设置具体的时间
c.set(2050,10,10)
get( Calendar.YEAR)
注意:如果是月份--> 外国人的月份是从0 开始的
c.add(Calendar.YEAR,10); 偏移量计算
正数向后
负数向前
星期数 是DAY_OF_WEEK |
|