最近面试被问到这个问题,当时是比较懵的,后来查了一些资料以及自己尝试了一些,现在做一个总结。 面试官还问到了查看线程状态的问题,因为平时确实对这方面实践少,所以没了解过。后来发现JDK本身自带了一些查看工具,比如Jstack跟踪堆栈,JConsole和JVisualvm都是可视化监控JVM的工具,感觉很好用。截几张图吧:
但是!!!使用常量时也要注意常量是不能修改的,比如s1+s2是生成新的字符串常量,然后引用指向新常量。所以如果在你的程序中要对字符串进行多次修改,使用StringBuffer(线程安全)或者 StringBuilder s1.append()。下面放几张自己测试的结果图。(也就是说如果要对字符串多次修改,用append避免创建新常量也属于内存优化,但是用append实际上对时间的优化更明显,因为即使s1+s2创建新常量,也会通过GC机制回收)
字符串直接相加耗时
StringBuilder的append()耗时
顺便对比一下StringBuffer的append()耗时,用了synchronized关键字所以会慢一些。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算