![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 66
黄国攀
生则顺其所牧,死则安息主怀
展开
-
G1垃圾回收器简介及回收过程
一.什么是G1同CMS一样,G1也是关注停顿时间,不过它是可控的,它被设计用来取代CMS,因为它是空间整理所以没有CMS那么严重的空间碎片问题,同时提供可控的停顿时间。特性:1.G1不同于之前的那些垃圾收集器分为连续的年轻代,老年代和永久代,而是分区(region),它将堆分为大大小小的区域(通常约为2048个),每个区域就是eden,survivor,old2.一般优先回收包含垃圾最多的区域,所以叫Garbage-First(G1)3.之前的垃圾收集器要么是新生代,要么是老年代,而G1兼顾年轻代原创 2021-01-24 14:56:57 · 4865 阅读 · 1 评论 -
项目里JVM实战
不知道大家知不道自己项目中的JVM相关参数,比如设置的堆的内存是多少,新生代内存多少,什么垃圾回收器,GC频率等等,所以这篇文章从实际出发探索项目中的JVM参数。1.准备工作内存分析工具准备:有很多内存分析工具,如IBM的HeapAnalyzer,eclipse的MAT这里使用eclipse的MAT官方下载地址常用命令:top 查看监控整体信息jps 可以查看部署的Java Pidjinfo 可以查看jvm相关参数jstat 可以查看gc相关信息,比如gc次数,新生代,老年代占比等等原创 2021-01-22 09:30:17 · 1555 阅读 · 5 评论 -
CMS GC过程
一.什么是CMS收集器CMS(Concurrent Mark-Sweep)是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。对于要求服务器响应速度的应用上,这种垃圾回收器非常适合。在启动JVM参数加上**-XX:+UseConcMarkSweepGC** ,这个参数表示对于老年代的回收采用CMS。CMS采用的基础算法是:标记—清除。二.CMS工作步骤初始标记(STW initial mark)并发标记(Concurrent marking)并发预清理(Concurrent preclea原创 2021-01-20 22:01:44 · 4741 阅读 · 1 评论 -
Java设计模式之装饰者模式(Decorator Pattern)
1.什么是设计模式设计模式是指在软件开发过程中,经过验证的,用于解决在特定环境下,重复出现的,特定问题的解决方案。可以用来提高代码可复用性、可维护性、可读性、稳健性以及安全性。1995 年,GoF(Gang of Four,四人组/四人帮)合作出版了《设计模式:可复用面向对象软件的基础》一书,共收录了 23 种设计模式,从此树立了软件设计模式领域的里程碑,人称「GoF设计模式」。分类:a. ...原创 2020-03-06 15:51:12 · 610 阅读 · 1 评论 -
3种简单排序算法——冒泡,选择,插入排序
1.冒泡排序 就是从最左边开始,重复地访问要排序的数列,一次比较两个元素,如果他们的顺序错误,就把他们交换。通过一次次的比较,越大的元素会通过交换慢慢“浮”到数列的顶端,故名“冒泡”。是稳定的排序算法。 实现: 常规实现public class BubbleSort { public static void main(String[] args) { int[]原创 2017-03-05 18:20:40 · 482 阅读 · 0 评论 -
栈和队列
一.栈1.栈(stack)又名堆栈,仅允许在表的一端(栈顶)进行插入和删除。向一个栈插入新元素称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。由于栈的这种特性,所以栈内元素是先进后出,即先进栈的元素,后出栈。2.栈的操作。 1)Push(入栈) a.向栈中插入一个元素,插入前判断栈是原创 2017-03-26 21:45:43 · 218 阅读 · 0 评论 -
统计一个字符串中每个字符出现的次数
没什么难度,只是需要把统计的temp(暂存需要统计的字符)和其对应的count存到map中,这样就能一目了然的查看结果。 但是如果字符多了,又懒得自己去看,而又要选出出现次数最多的字符,也只需要操作这个map就行,这就涉及到使用合适的算法来实现,等复习了算法了再写实现。public class CountChar { public static void main(String[] args原创 2017-03-04 12:25:03 · 1021 阅读 · 0 评论 -
Java学习之多态
以下只是个人的浅薄理解,其实还是不太懂,只有以后懂了再更新。知识点:多态(动态绑定):除了static和final(含private)方法,其他方法都要进行动态绑定 优点:产生正确行为。编译器不知道对象方法,目的,只是后面引用的时候调用相应方法原创 2016-01-21 17:17:43 · 273 阅读 · 0 评论 -
JAVA基础:八进制,十六进制表示
原帖:点击打开链接作者:Simon.C可以使用八进制、十六进制的类型:long, int, short, byte 八进制表示:以0作为前缀,数码有0,1,2,3,4,5,6,7,逢8进位 如:8(十进制)-->010(八进制) 十六进制表示:以0x作为前缀,数码有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,逢16进位 如转载 2016-12-30 09:43:58 · 1345 阅读 · 0 评论 -
java-collection中的null,isEmpty
只使用java utils包的isEmpty.第一种情况:实例化list,但是size为空。 List list =new ArrayList<>(); if (list.isEmpty()) { System.out.println("1"); } if (!list.isEmpty()) { System.out.println("2"); } if (原创 2016-02-24 15:41:04 · 8431 阅读 · 2 评论