java
文章平均质量分 91
sunbinkang
智能家居,互聯網,多媒體
展开
-
JVM系列之JMM内存模型
目录java内存划分1、缓存一致性2、指令重排什么是java内存模型内存交互操作Happens-before 先行发生原则总结java内存划分JMM规定了内存主要划分为主内存和工作内存两种。此处的主内存和工作内存跟JVM内存划分(堆、栈、方法区)是在不同的层次上进行的,如果非要对应起来,主内存对应的是Java堆中的对象实例部分,工作内存对应的是栈中的部分区域,从更底层的来说,主内存对应的是硬件的物理内存,工作内存对应的是寄存器和高速缓存。具体如图所示:正常情况转载 2021-01-27 19:26:00 · 180 阅读 · 0 评论 -
JVM系列之常量池与String
一、常量池常量池有很多概念,包括运行时常量池、class常量池、字符串常量池。虚拟机规范只规定以上区域属于方法区,并没有规定虚拟机厂商的实现。严格来说是静态常量池和运行时常量池:1、静态常量池 存放字符串字面量、符号引用以及类和方法的信息,而运行时常量池存放的是运行时一些直接引用。2、运行时常量池 在类加载完成之后,将静态常量池中的符号引用值转存到运行时常量池中,类在解析之后,将符号引用替换成直接引用。二、字符串常量池:String的创建分配内存地址1、St...原创 2020-12-28 23:27:45 · 290 阅读 · 0 评论 -
JVM系列之垃圾回收机制
一、分代收集理论原创 2020-12-26 23:48:36 · 144 阅读 · 0 评论 -
JVM系列之深入理解对象
JVM中普通对象的创建过程类加载--->检查加载--->分配内存(如何分配呢?1.针对规整的内存空间使用指针碰撞、2.针对不规整的内存空间使用到空闲列表:记录空闲的内存位置;这就要看我们堆内存使用的是什么垃圾收集器。多线程在堆内存存放对象的时候,会出现抢占内存的情况,为了保证并发安全问题:使用CAS乐观锁机制和本地线程分配缓冲,一般会默认开启本地线程分配缓冲)--->内存空间初始化(设置一些初始值)设置(对象头等信息)--->对象初始化(执行构造方法)对象的内存布局对象.原创 2020-12-20 23:21:22 · 323 阅读 · 6 评论 -
JVM系列之内存管理深度剖析
一、什么是JVM?原创 2020-12-17 15:31:53 · 288 阅读 · 0 评论 -
Android序列化方案之JSON
一、JSON是什么?1、定义:JSON全称(JavaScript Object Notation:javaScript的对象表示法),是一种轻量级的数据交换格式。2、作用:数据标记、存储&传输。3、特点:读写速度快、解析简单、轻量级、独立于语言和开发平台。二、JSON格式语法?1、实例:1个JSON文件里含多个数据,这些数据 以JSON值 的形式存在{ "name": "OrgJson", "sex": "男", "age": "23",..原创 2020-12-01 00:27:23 · 2053 阅读 · 0 评论 -
Android的序列化之Serializable
Android的序列化之Serializable原创 2020-11-27 11:05:48 · 1900 阅读 · 0 评论 -
java中的final如何使用和理解
1、final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的。在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会再被扩展,那么就设计为final类。 final方法不能被子类的方法覆盖,但可以被继承。 public class Test1 { public static void main(String[] args) { /转载 2018-01-09 20:04:55 · 39420 阅读 · 2 评论 -
java中的static关键字的作用?
是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就会一直存在。这样做有什么意义呢? 在Java程序里面,所有的东西都是对象,而对象的抽象就是类,对于一个类而言,如果要使用他的成员,那么普通情况下必须先实例化对象后,通过对象转载 2018-01-09 17:27:34 · 1286 阅读 · 0 评论