自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 jvm垃圾收集器

一、Serial收集器Serial曾经是新生代收集的唯一选择(jdk1.3.1之前),是个单线程收集器,在它进行垃圾收集的时候必须暂停其它所有的工作线程(stop the world),直到它工作结束。优点:简单高效,在client模式下的虚拟机是个好选择。二、ParNew收集器parNew其实就是Serial收集器的多线程版本,除了使用多线程进行垃圾收集器之外,控制参数,收集算法、stop the world、对象分配规则、回收策略都与Serial一样。三、Parallel Scavenge收集

2020-09-22 16:41:37 58

原创 垃圾收集算法

一、标记清除算法过程:首先标记出来所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象缺点:效率问题,空间问题(大量不连续内存碎片,无法找到足够的连续空间,会启用另一个垃圾收集器)二、复制算法过程:将内存按容量分为大小相等的两块,每次只使用其中一块。当一块内存用完了,就将还存活着的对象复制到另一块内存上面,然后再把已使用过的内存空间一次清理掉。缺点:将内存分为原来的一半,代价太大。但实际上的虚拟机并不是按1:1的比例划分空间的,而是将内存划分为一块较大的eden空间和两块较小的Survi

2020-09-22 11:39:43 51

原创 自动内存管理机制

一、引用计数法给对象添加一个引用计数器,每一个地方引用它,计数器值就+1;当引用失效时,计数器的值就-1;任何时刻计数器为0的时候都是不能使用的。这种gc算法比较难解决循环引用的问题。二、根搜索算法通过一系列名为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索走过的路径成为引用链,当一个对象到GC Roots没有任何引用链相连(用图论的话说就是从GC Roots到这个对象不可达)时,则证明这个对象是不可用的。虚拟机栈(栈帧中的本地变量表)中的引用对象方法区中的类静态属性引用的

2020-09-21 17:56:22 102

原创 java内存区域

一、运行时的数据区域二、程序计数器它的作用可以看作是当前线程执行字节码的行号指示器,通过改变这个计数器的值来执行下一条需要执行的字节码指令,java虚拟机的多线程通过线程轮流切换并分配处理器执行时间,在任何时候,一个处理器只会执行一条线程中的指令,为了线程切换后能够回到正确的执行位置,每条线程都需要有一个独立的程序计数器。如果线程执行的是一个java方法,那么计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是native方法,这个计数器的值为空。三、java虚拟机栈java虚拟机栈

2020-09-18 15:11:29 85

原创 Object对象通用方法

Object对象通用方法文章目录Object对象通用方法一、覆盖equals时要遵守的约定二、覆盖equals总要覆盖hashCode三、始终覆盖toString四、考虑实现Comparable一、覆盖equals时要遵守的约定类的每个实例本质上都是唯一的类没有必要提供逻辑相等的测试功能超类已经覆盖的equals,超类的行为对于这个类也是合适的类是私有的,可以确定它的equals方法永远不会被调用equals方法实现了等价关系(类似于数学中等式的关系)自反性对称性传递性一致

2020-09-09 18:04:06 124

原创 创建和销毁对象

创建和销毁对象本文为阅读effective java的总结文章目录创建和销毁对象一、使用静态工厂方法代替构造器优点:缺点:常用静态工厂方法命名二、遇到多个构造器参数时要考虑使用构建器三、用私有构造器或者枚举类型强化 Singleton 属性四、通过私有构造器强化不可实例化的能力五、优先考虑依赖注入来引用资源六、避免创建不必要的对象七、消除过期的对象引用八、避免使用终结方法和清除方法九、try-with-resources优先于try-finally一、使用静态工厂方法代替构造器优点:有名称

2020-09-09 17:28:10 67

原创 多线程的实现

多线程机制是指操作系统支持在一个进程内执行多个线程的能力。从线程的观点分析,MS-DOS仅支持一个用户进程和一个线程;unix系统支持多个用户进程,但一个进程只能有一个线程;Windows NT,Solaris、linux支持多进程多线程1 用户级线程用户级线程简称ULT,是由用户应用程序创建的,并且用户应用程序负责对这些线程的调度与管理,操作系统内核并不知道有用户级线程的存在,只对进程进行管理。因而与这些线程的内核无关。这是通常所说的“纯ULT方法”,MS-DOS和unix操作系统就属于此类。这种纯

2020-09-03 16:45:09 95

原创 同步机制应遵循的规则

空闲让进。并发过程中某个进程不在临界区时,不阻止其它进程进入临界区忙则等待。并发进程中,若干个进程申请进入临界区时,只允许一个进程进入。当已有进程进入临界区时,其它申请进入临界区的进程必须等待,以保证对临界资源的互斥访问。有限等待。访问临界资源的进程应保证在有限的时间内进入自己的临界区,避免因长时间申请临界资源得不到满足,而一直等待下去,陷入“等死”状态。让权等待。当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态。...

2020-09-02 18:13:04 1562

原创 我的第一篇csdn博客

我的第一篇csdn博客开端开端一直以来做笔记都是使用印象笔记来做,缺乏分享,缺乏思想的碰撞,在软件开发行业闭门造车不可取,吸取教训,准备将自己总结的内容分享出来。

2020-08-28 14:16:17 48

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除