
Java
文章平均质量分 62
总结与记录
Dora哒哒哒
这个作者很懒,什么都没留下…
展开
-
JVM垃圾回收
运行时数据区域1.7–>1.8 :永久代变成元空间(都是方法区的实现),同时移到直接内存常量池从方法区移到堆方法区挪到直接内存线程私有:程序计数器,Java虚拟机栈,本地方法栈共享:堆、方法区、直接内存程序计数器记录正在执行的虚拟机字节码指令的地址。是唯一一个不会发生OOM的区域。Java虚拟机栈每个Java方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈等信息,从方法调用直至执行完成,对应着一个栈帧在Java虚拟机中入栈和出栈的过程。本地方法栈和原创 2020-08-21 09:38:18 · 226 阅读 · 0 评论 -
Java基础
特性面向对象和面向过程有什么区别面向对象:以对象为中心,叭要解决的问题分解成各个对象。每一个都可以看做一个对象,每个对象有自己的属性和行为,对象与对象之间通过方法来交互。比如五子棋分为三个对象,黑白双方,棋盘系统,规则系统第一类对象(黑白双方)负责接受用户输入,并告知第二类对象(棋盘系统)棋子布局的变化,棋盘系统接收到了棋子的变化,并负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。面向过程:以事件为中心的编程思想,把问题的解决步骤分析出来,然后用函数把这些步骤原创 2020-08-21 09:35:32 · 244 阅读 · 0 评论 -
Java虚拟机运行时数据区域
虚拟机运行时数据区域:线程私有数据区:程序计数器当前线程所执行的字节码的行号指示器,如果当前线程执行的是Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Native方法,这个计数器值为0。是唯一一个没有规定OutOfMemoryError情况的区域。本地方法栈与虚拟机栈区别在于虚拟机栈为虚拟机执行Java方法服务,而本地方法栈则为虚拟机使用的Native方法服务。虚拟机栈每个方法执行时都会创建一个栈帧用于存储局部变量表、操作数栈、方法出入口等信原创 2020-05-11 16:13:20 · 125 阅读 · 0 评论 -
虚拟机类加载机制
什么是类加载机制把描述类的Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机使用的类型。Class文件表示一串二进制的字节流,无论以何种形式存在都可以。类初始化时机主动引用当遇到new等字节码指令时,主要场景包括:使用new关键字实例化对象、读取或者设置静态变量、调用类的静态方法;对类进行反射调用;初始化一个类,如果其父类还没有初始化,则先触发其父类的初始化;当虚拟机启动,用户需要制定一个要执行的主类,虚拟机会先初始化这个主类;使用JDK1.7原创 2020-05-10 09:58:46 · 176 阅读 · 1 评论 -
线程安全的实现方法
什么是线程安全?多个线程不管以何种方式访问某个类,并且在主调代码中不需要同步,都能表现正确的行为。线程安全如何实现?Java中线程安全主要是通过同步互斥、非阻塞同步和无同步方案这三种手段实现的:同步互斥:是一种悲观并发策略,指多个线程并发访问共享数据时,保证共享数据段在同一时刻只能被一个线程访问。synchronized关键字,synchronized关键字可以给代码块、普通方法和静态方法加锁ReentrantLock(重入锁),相比synchronized增加了一些高级功能:可实现公原创 2020-05-09 16:33:46 · 768 阅读 · 0 评论