System类常用方法讲解(Java基础)
【摘要】
【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、...
【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行!
博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步!
吾等采石之人,应怀大教堂之心,愿你们奔赴在各自的热爱中…
System类是我们最常接触的类之一,但是我们常常忽略,趁有时间整理一波相关基础。
还记得自己第一篇上热门的文章就是:秋招Java-面试官就System.out.println()考了我半个小时?感兴趣的回去打卡哦
System类
java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有:
public static long currentTimeMillis()
:返回以毫秒为单位的当前时间。public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
:将数组中指定的数据拷贝到另一个数组中。
1.1 currentTimeMillis方法
实际上,currentTimeMillis方法就是 获取当前系统时间与1970年01月01日00:00点之间的毫秒差值
import java.util.Date;
public class SystemDemo {
public static void main(String[] args) {
//获取当前时间毫秒值
System.out.println(System.currentTimeMillis()); // 1916090537145
}
}
案例:验证for循环打印数字1-9999所需要使用的时间(毫秒)
public class SystemTest {
public static void main(String[] args) {
long start = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
System.out.println(i);
}
long end = System.currentTimeMillis();
System.out.println("共耗时毫秒:" + (end - start));
}
}
运行结果
共耗时毫秒:110
项目测试实践案例:
之前做社交圈项目,涉及到一个评论检测:意思是你发送信息,要进行安全检测,即不能发不符合规范的言论,这个步骤会先调用微信的接口,检测成功后执行后续步骤
评论检测涉及到免费检测 和 付费检测,付费检测更加全面,当然花费时间也较多,被反馈评论这个过慢后测试了一下两个不同检测方法的速度。
这里就是使用System.currentTimeMillis()这个方法进行计算评论检测的时间
如免费检测时间1660毫秒
付费检测时间2690毫秒
所以小结下来确实是调用不同的检测内容接口导致速度变慢,可能检测更加详细所以时间花费较多。
1.2 arraycopy方法
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
:将数组中指定的数据拷贝到另一个数组中。
数组的拷贝动作是系统级的,性能很高。System.arraycopy方法具有5个参数,含义分别为:
参数序号 | 参数名称 | 参数类型 | 参数含义 |
---|---|---|---|
1 | src | Object | 源数组 |
2 | srcPos | int | 源数组索引起始位置 |
3 | dest | Object | 目标数组 |
4 | destPos | int | 目标数组索引起始位置 |
5 | length | int | 复制元素个数 |
实践案例
将src数组中前3个元素,复制到dest数组的前3个位置上复制元素前:src数组元素[1,2,3,4,5],dest数组元素[6,7,8,9,10]复制元素后:src数组元素[1,2,3,4,5],dest数组元素[1,2,3,9,10]
import java.util.Arrays;
public class DemoSystemArrayCopy {
public static void main(String[] args) {
int[] src = new int[]{1,2,3,4,5};
int[] dest = new int[]{6,7,8,9,10};
System.arraycopy( src, 0, dest, 0, 3);
int[] arr = dest;
System.out.println(Arrays.toString(arr));
/*代码运行后:两个数组中的元素发生了变化
src数组元素[1,2,3,4,5]
dest数组元素[1,2,3,9,10]
*/
int [] array1 = { 1, 2, 3, 4, 5 };
int [] array2 = { 4, 5, 6, 7, 8 };
int [] array3 = new int [8];
System.arraycopy (array1, 0, array3, 0, 5);
//直接打印是打印不出来的要用数组的打印方式
System.out.println(Arrays.toString(array3));
System.arraycopy (array2, 2, array3, 5, 3);
System.out.println(Arrays.toString(array3));
//从旧数组拷贝到新数组
int [] arr1 = { 1, 2, 3, 4, 5 };
int [] arr2 = new int[5];
//从旧数组拷贝到新数组
//原来可以使用for循环遍历拷贝
// for (int i=0;i<arr1.length;i++){
// arr2[i]=arr1[i];
// }
System.arraycopy(arr1, 0, arr2, 0, arr1.length);
System.out.println("从旧数组拷贝到新数组"+ Arrays.toString(arr2));
}
}
输出结果
[1, 2, 3, 9, 10]
[1, 2, 3, 4, 5, 0, 0, 0]
[1, 2, 3, 4, 5, 6, 7, 8]
从旧数组拷贝到新数组[1, 2, 3, 4, 5]
非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤️ 分享👥 留言💬thanks!!!
2021年1月24日20:27:26 愿你们奔赴在自己的热爱里!
文章来源: blessing.blog.csdn.net,作者:辰兮要努力,版权归原作者所有,如需转载,请联系作者。
原文链接:blessing.blog.csdn.net/article/details/113096545
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)