在Java开发中的一些知识点记录下:
1. 字符串格式化是我们经常会使用的,String.format() ,格式化控制 %d 包括了 byte,int,long;
2. Java方法参数中没有默认值,而C++中有,原因主要是避免了Java中多函数重载的二义性,如果存在默认参数则可以不传参数的,这样编译器就不知道应该选择哪个重载方法,Java为了减少复杂性就不允许方法中存在默认参数值。
ps: 可以利用重载实现默认参数,
public class A{
public test(int a){
System.out.println(a);
}
public test(){
test(0); //默认值
}
}
3. Date日期格式化输出:
DateFormat format = new SimpleDateFormot("yyyy-MM-dd HH:mm:ss");
注意这里SimpleDateFormat不是多线程安全的方法,在多线程使用要注意采用ThreadLocal或者在方法中临时创建对象,千万不可在多线程下直接使用(会出现死锁和结果错误奇怪问题)。
另外 yyyy-MM-dd HH:mm:ss 大写的HH 表示24小时制,小写hh表示12小时制。另外如果只想取年月日的话,后面的可以去除。
SimpleDateFormat函数格式化字母含义如下:
G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区