数组复制Array.copyof()和System.arraycopy()的区别:
在Java中复制数组有两个方法,分别是Array.copyof()和System.arraycopy()两个方法,两个方法有啥子区别呢?(为了方便下面用第一个、第二个分别来表示)
System.arraycopy()方法里面带有五个参数,分别为原数组、复制的原数组的起始下标、复制后的新数组、新数组的起始下标、复制的长度。先看源代码:
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
它是用其他语言来实现的方法,(这里主要是说Java,非Java语言就不扯了)
Array.copyof()这个里面只带有两个参数,分别是原数组和要复制的数组长度。看源代码:
第一个方法能从指定的下标开始复制,也可以把复制的数据从新数据的指定下标填进去,可以指定复制的长度,在新数组原有数据的情况下,除了所复制的那一部分,其他的数据并不会被丢弃、也就是说这个方法在新数组原本已经定义了数组长度的情况下不会改变新数组的长度。
第二个方法只能从初始下标开始复制,也只能把复制的数据从新数组的初始下标开始填入,可以指定复制的长度,第二个方法的实现同时是在调用了第一个方法,并且建立了新数组,所以调用该方法的时候,假设新数组里面原来是有数据的话,他会把数组中超过所复制的长度的部分给直接丢弃,也就是用了该方法后该数组的长度就由后面传递的参数来决定了。
还有一点,两个方法所在的类不一样,第一个方法在String类里面,第二个方法则在Arrays方法里面。
举例:
打印结果:
Date类:
java.util.Date
类 表示特定的瞬间,精确到毫秒。
具体实现格式eg:
打印出来的格式:
星期几 月份 具体的天数 时间 时区 年份
DateFormat类:
日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。
注意:该类是抽象类,不能直接使用,需要调用它的子类,常见子类:java.text.SimpleDateFormat
它的构造方法为:
-
public SimpleDateFormat(String pattern)
:用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。
参数pattern是一个字符串,代表日期时间的自定义格式。
格式规则:
eg:
打印: