一 只 程 序 原

一 只 程 序 原

有人问我,我就会讲。

Java强化之泛型

Java强化之泛型一、什么是泛型1.背景:JAVA推出泛型以前,程序员可以构建一个元素类型为Object的集合,该集合能够存储任意的数据类型对象,而在使用该集合的过程中,需要程序员明确知道存储每个元素的数据类型,否则很容易引发ClassCastException异常。2.概念:Java泛型(gene

JVM内存与垃圾回收篇第17章垃圾回收器

第 17 章 垃圾回收器1、GC 分类与性能指标1.1、垃圾回收器概述与分类垃圾回收器概述垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商、不同版本的JVM来实现。由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生了众多的GC版本。从不同角度分析垃圾收集器,可以将GC分为不同的类

JVM内存与垃圾回收篇第16章垃圾回收相关概念

第 16 章 垃圾回收相关概念1、System.gc() 的理解1.1、System.gc() 方法System.gc() 方法在默认情况下,通过System.gc()者Runtime.getRuntime().gc() 的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃

JVM内存与垃圾回收篇第15章垃圾回收相关算法

第 15 章 垃圾回收相关算法1、标记阶段:引用计数器1.1、标记阶段的目的垃圾标记阶段:判断对象是否存活在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,GC才会在执行垃圾回收时,释放掉其所占用的内

JVM内存与垃圾回收篇第14章垃圾回收概述

第 14 章 垃圾回收概述1、垃圾收集面试题回顾 JVM 学习路线关于垃圾收集Java 和 C++语言的区别,就在于垃圾收集技术和内存动态分配上,C语言没有垃圾收集技术,需要我们手动的收集。垃圾收集,不是Java语言的伴生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞

JVM内存与垃圾回收篇第13章StringTable

第 13 章 StringTable1、String 的基本特性1.1、String 概述String 的概述String:字符串,使用一对 “” 引起来表示String s1 = "mogublog" ; // 字面量的定义方式String s2 = new String

JVM内存与垃圾回收篇第12章执行引擎

第 12 章 执行引擎1、执行引擎概述执行引擎位置执行引擎属于JVM的下层,里面包括:解释器、即时编译器、垃圾回收器1.1、执行引擎概述执行引擎概述执行引擎是Java虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理

JVM内存与垃圾回收篇第11章直接内存

第 11 章 直接内存1、直接内存概述直接内存不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。直接内存是在Java堆外的、直接向系统申请的内存区间。来源于NIO,通过存在堆中的DirectByteBuffer操作Native内存通常,访问直接内存的速度会优于Java堆。

JVM内存与垃圾回收篇第10章对象的实例化内存布局与访问定位

第 10 章 对象的实例化内存布局与访问定位1、对象的实例化大厂面试题美团:对象在JVM中是怎么存储的?对象头信息里面有哪些东西?蚂蚁金服:二面:java对象头里有什么对象实例化1.1、对象创建的方式对象创建的方式new:最常见的方式、单例类中调用getInstance的静态类方法,XXXFacto

JVM内存与垃圾回收篇第9章方法区

第 9 章 方法区1、栈 堆 方法区的交互关系从内存结构来看这次所讲述的是运行时数据区的最后一个部分从线程共享与否的角度来看ThreadLocal:如何保证多个线程在并发环境下的安全性?典型应用就是数据库连接管理,以及独立会话管理栈、堆、方法区的交互关系下面就涉及了对象的访问定位Person 类的