02 2021 档案
摘要:什么是垃圾(Garbage)? 垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾 如果不及时堆内存中的垃圾进行清理,那么,这些垃圾对象所占的内存空间会一直保留到应用程序结束,被保留的空间无法被其他对象使用.甚至可能会导致内存溢出 垃圾回收相关算法 垃圾标记阶段 引用计数算法
阅读全文
摘要:方法区逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。 但对于HotSpotJVM而言,方法区还有一个别名叫做Non-Heap,目的就是要和堆分开 所以方法区看作是一块独立于Java堆的内存空间 基本理解 方法区(Method Area) 与Java堆一样,是各个线程
阅读全文
摘要:堆的核心概述 所有的对象实例以及数组都应当在运行时分配在堆上 从实际实用角度看 --"几乎所有的对象实例都在堆中分配内存" 数组和对象可能永远不会存储在栈上,因为栈帧中保存引用,这个引用指向对象或者数组在堆中的位置 在方法结束后,堆中的对象不会马上被移除,仅仅在垃圾收集的时候才会被移除 堆,是GC执
阅读全文
摘要:PC Register介绍 JVM中的程序计数寄存器(Program Counter Register)中,Register 的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行 这里,并非是广义上所指的物理寄存器,或许将其翻译为PC计数器会更贴切 作用:
阅读全文
摘要:类的生命周期包括如下7个阶段: 加载的理解 所谓加载,简而言之就是将Java类的字节码文件加载到机器内存中,并在内存中构建出Java类的原型--类模板对象。 类模板对象--其实就是在Java类在JVM内存中的一个快照,JVM将从字节码文件中解析出的常量池,类字段,类方法等信息存储到类模板中,这样JV
阅读全文
摘要:JVM的位置 JVM是运行在操作系统之上的,它与硬件没有直接的交互 JVM体系结构 类加载器ClassLoader - 负责加载class文件,class文件在**文件开头有特定的文件标示**,将class文件字节码内容加载到内存中, 并将这些内容转换成方法区中的运行时数据结构并且ClassLoad
阅读全文
摘要:循环依赖问题 一个bean的创建分为如下步骤: 当创建一个简单对象的时候,过程如下: 先从单例池中获取bean,发现无 a 创建 a 的实例 为 a 赋值 把 a 放到单例池中 当创建一个对象并且其中有另外一个对象是就变成了这样: 但是当在B对象中由引用了A对象,就会变成这样: 因为A和B两者相互引
阅读全文
摘要:SpringMVC前言 由来:基于spring框架基础之上开发的一个全新的框架 目的:为了使现有项目中使用spring框架在mvc架构中存在自己的位置,因此开发了一个springmvc框架 MVC:编程步骤 三层编程 M : model 模型 service+dao+entity V :
阅读全文
摘要:String 字符串是常量,创建后不可改变。 字符串字面值存储在字符串池中,可以共享。 String s1 = "Runoob"; // String 直接创建 String s2 = "Runoob"; // String 直接创建 String s3 = s1; // 相同引用 String s
阅读全文
摘要:NIO基本介绍 Java NIO(New IO) 也有人称之为Java non-blocking IO 是从Java1.4版本开始引入的一个新的IO API,可以代替标准的IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的,基于通道的IO操作。NIO将
阅读全文
摘要:什么是Stream? Stream是JDK8 API的新成员,它允许以声明性方式处理数据集合 特点 代码简洁: 函数式编程写出的代码简洁且意图明确,使用stream接口让你从此告别for循环 多核友好: Java函数式编程使得编写并行程序从未如此简单,你需要的全部就是调用一下方法 为什么要使用Str
阅读全文
摘要:Set子接口 特点:无序、无下标、元素不可重复。 方法:全部继承自Collection中的方法。 Set实现类 HashSet: 基于HashCode实现了不重复。 当存入元素的哈希码相同时,会调用equals进行确认,如结果为true,则拒绝后者存入。 TreeSet: 基于排列顺序实现元素不重复
阅读全文

浙公网安备 33010602011771号