Java虚拟机 JVM, Java 2021-05-29 内存分配策略JVM栈帧及方法调用详解JMM、Java Memory Model对象优先在Edenf分配大对象直接进入老年代长期存活的对象将进入老年代动态对象年龄判定空间分配担保
Java虚拟机 JVM, Java 2021-05-29 垃圾回收机制对象存活GC算法运行时数据区可达性分析与引用计数引用计数法给对象增加一个引用计数器,每当有一个地方引用它时,计数器就+1;当引用失效时,计数器就-1;任何时刻计数器为 0 的对象就是不能再被使用的,即对象已“死”。在主流的 JVM 中没有选用引用计数法来管理内存,最主要的原因是引用计数法无法解决对象的循环引用问题。可达性分析算法通过一系列称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索走过的路径称为“引用链”,当一个对象到 GC Roots 没有任 何的引用链相连时(从 GC Roots 到这个对象不可达)时,证明此对象不可用。以下图为例: Read More
Java集合 2021-05-29 集合知识点总结通过迭代器fail-fast属性,你明白了什么?每次我们尝试获取下一个元素的时候,Iterator fail- fast属性检查当前集合结构里的任何改动。如果发现任何改动,它抛出 ConcurrentModificationException。Collection中所有Iterator的实现都是按fail-fast来设计的(ConcurrentHashMap和CopyOnWriteArrayList这类并发集合类除外)fail-fast与fail-safe有什么区别? Read More
Android基础 Android 2021-05-01 Fragment来源Fragment的概念来源于Android3.0,主要目的是为大屏幕(如平板电脑)上更加动态和灵活的界面设计提供支持。他可添加到Activity中,所以多个Activity可添加同一个Fragment,提高了代码复用性。生命周期Fragment跟Activity的生命周期类似,不过只有在显示调用addToBackStack()时,系统才会将片段放入由宿主 Activity 管理的返回栈。生命周期方法onCreate()系统会在创建片段时调用此方法。当片段经历暂停或停止状态继而恢复后, Read More
设计模式创建型模式 设计模式 2018-06-01 原型模式定义原型模式(Prototype Pattern):使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。有时候当你想复制一个对象时,先会想到用new,但有时候你拿到的只是抽象类,亦或者这个对象内部有一些私有属性你是拿不到的。还有时候,如果对象没有实现clone方法来实现克隆,则这个时候通过clone获取的是浅克隆,如果里面有其他对象,则返回的是引用。原型模式是一种另类的创建型模式,创建克隆对象的工厂就是原型类自身,工厂方法由克隆方法来实现。类图 Read More