java
lpCodingGirl
落魄程序媛,在线写helloworld
展开
-
java线程池
在本人参与的项目里面,实际上能写多线程代码的地方并不多,只有线程池接触的稍微多一点,下面主要写本人对于线程池的理解,在讲具体线程池之前,有一些基础概念需要铺垫:设计模式方面1、工厂模式工厂模式属于创建型模式。主要是定义一个接口,让其子类自己决定实例化哪个工厂类。优点:松耦合,调用者无需关注对象是如何创建的,只需要传递接口、方法和参数即可。一个常见的例子如下:需要一辆汽车,可以直接从工厂里...原创 2020-01-16 13:57:01 · 143 阅读 · 0 评论 -
关于String的一点分析
String是经常用到的类,下面根据一个demo,分析String的某些原理,示例代码如下:String str1 = new String("abc");String str2 = "abc";String str3 = "a";String str4 = str3 + "bc";String str5 = "a" + "b" + "c";System.out.println(str...原创 2020-01-15 17:46:12 · 262 阅读 · 0 评论 -
集合总结
Java集合,不再使用过多的文字描述,为了更加清晰的展示集合之间的关系,本文使用一张导图阐述整个集合,之后会针对几个类似的类,进行对比说明:1、集合接口有哪些,主要包含哪些实现类Collection:ArrayList,LinkedList,Vector,HashSet,TreeSet,LinkedHashSet,QueueMap:HashMap,WeekHashMap,TreeMap,C...原创 2020-01-15 12:56:40 · 101 阅读 · 0 评论 -
HashMap总结
HashMap是写程序经常使用到的类。而hashmap也是面试时候经常问到的考点,下面结合源码总结一些hashmap的问题:1、hashmap的几个参数初始化容量大小:static final int DEFAULT_INITIAL_CAPACITY = 16;最大容量:static final int MAXIMUM_CAPACITY = 1073741824;1、hashmap的数据...原创 2020-01-13 20:13:08 · 135 阅读 · 0 评论 -
JVM常规问题总结
什么是GC,为什么要有GCGC即垃圾回收。个人理解,GC的产生是因为内存处理是一个很容易出错的地方。GC可以自动管理内存,自动监控回收垃圾,避免由于垃圾释放程序编写异常等程序问题甚至导致系统崩溃。能更多关注于业务代码实现。如何判断一个对象是否存活在hotspot虚拟机中,通过可达性分析来判断一个对象是否失效。可达性分析为:根据GC Roots作为起始节点,寻找对象是否在搜索链中,未在搜索链中...原创 2020-01-09 20:21:41 · 133 阅读 · 0 评论 -
对象是否存活
判断对象是否失效,有两种算法:1、引用计数法 2、可达性分析引用计数法在对象上使用一个引用计数器,若有一个地方引用该对象,则加一;若引用失效,则减一。当计数器为0时,对象失效。这个算法优点是:原理简单,判定效率高。缺点也很明显:会有循环调用的问题。而如果需要解决这个问题,需要付出较大的代价。可达性分析法...原创 2020-01-09 20:25:36 · 79 阅读 · 0 评论 -
几种可能导致OOM异常的情况
本文将讲述两种可能导致OOM的案例注意:1、程序计数器不会发生OOM2、在jdk1.8中已经取消了永久代概念,改由元空间取代,就算设置-XX:MetaspaceSize=1m;这种参数限制大小,实际操作时并没有起到多大用处,因此很难通过简单的demo复现以前老年代产生OOM的异常。由于递归深度过长导致jvm对递归深度有限制,具体深度由于jdk 版本等的不同有差异,下面这个案例使用jdk1....原创 2020-01-07 12:29:48 · 1897 阅读 · 0 评论 -
垃圾收集算法总结
最近看了jvm的相关文章,为了避免后续忘记,使用博客记录下学习笔记。本文围绕HotSpot虚拟机讨论几种垃圾收集算法,内容参考周志明老师的《深入理解Java虚拟机》第三版,主要介绍第二版未详细介绍的G1收集器以及现在应用广泛,但可能会被官方淘汰的CMS收集器。下面先简单介绍一下基础概念:分代垃圾收集集我们将jvm收集集按收集目标分为:新生代收集集 ,目标只是新生代的垃圾收集集;老年代收集...原创 2020-01-06 14:59:43 · 223 阅读 · 0 评论