线程之间方法区和堆内存共享,栈内存不共享;哪个线程调用sleep()方法,哪个线程就进入睡眠状态,与哪个对象调用该方法无关.packagetest1;publiccla***acerRunnableimplementsRunnable{/***龟兔赛跑多线程*/publicStringwinner;publicvoidrun(){for(intstep=1;step<=100;step++)
分类:
编程语言 时间:
2020-04-12 00:01:21
阅读次数:
86
Java堆内存分为年轻代和老年代,其中,年轻代分为Eden区和survival区,survival又分为fromSurvival和toSurvival。 首先第一个问题:为什么要有Survival区?因为如果没有Survival区,Eden每进行一次MinorGC,存活对象送到老年代,当老年代被填满 ...
分类:
编程语言 时间:
2020-04-08 20:50:01
阅读次数:
240
1. 概述 1. 继续聊 jvm 命令行工具 2. 背景 1. 之前聊过一些简单的命令行工具 1. jps 1. 查看当前 java 进程 2. jinfo 1. 查看 java 运行参数 2. 查看当前 相关系统变量 3. jstat 1. 查看 jvm 的 堆内存,gc 统计信息 2. 如果我想 ...
分类:
编程语言 时间:
2020-04-08 20:41:39
阅读次数:
89
Netty 异步事件驱动的网络应用程序框架。 特点 高并发 基于NIO开发的网络通信框架 传输快 零拷贝 Netty的接受和发送bytebuffer使用堆外直接内存进行socket读写,传统堆内存进行socket读写,JVM将堆内存buffer拷贝到内存,然后写入socket。相比之下,消息在发送多 ...
分类:
Web程序 时间:
2020-04-07 22:30:42
阅读次数:
195
JAVA常见面试题问题简述 1. springcloud和dubbo的区别 ①相比之下springcloud 的社区会更加活跃,解决问题的速度也会越来越快,dubbo相对来说如果碰到没有解决的问题,就不得不去维护框架源码。 ②架构完整度来说,dubbo只是解决了服务治理,需要其他的组件,需要自己去适 ...
分类:
编程语言 时间:
2020-04-06 20:49:59
阅读次数:
68
/* * == 进行比较的时候,如果左右两边数据类型不一样,则先转换为相同的数据类型,然后在进行比较 * 1、{} == {} false 两个数据进行比较,比较的是堆内存的地址 * 2、null == undefined true | null undefined false * 3、NaN == ...
分类:
其他好文 时间:
2020-04-02 22:46:25
阅读次数:
126
java对象布局JOL(java object layout),描述对象在堆内存的布局。如下图: 1.markword 固定长度8byte,描述对象的identityhashcode,分代年龄,锁信息等(https://www.cnblogs.com/katsu2017/p/12610002.htm ...
分类:
编程语言 时间:
2020-04-02 01:20:32
阅读次数:
228
栈内存和堆内存在了解一门语言底层数据结构上,挺重要的,做了个总结 JS中的栈内存堆内存 JS的内存空间分为栈(stack)、堆(heap)、池(一般也会归类为栈中)。 其中栈存放变量,堆存放复杂对象,池存放常量,所以也叫常量池。 栈数据结构 栈是一种特殊的列表,栈内的元素只能通过列表的一端访问,这一 ...
分类:
Web程序 时间:
2020-03-30 16:10:54
阅读次数:
63
1. JVM会先去方法区中寻找相应类的.class文件(即Person.class),若存在则加载到内存中(如果该类存在父类,则先加载父类),不存在则将相关.class加载到方法区中 2. 如果 p 定义在主方法中,则会在栈空间开辟一个变量空间 p 3. 在堆内存给对象分配空间 4. 对对象中的成员 ...
分类:
其他好文 时间:
2020-03-29 21:30:48
阅读次数:
101
一、想要理解string类,先看源码: 1 public final class String 2 implements java.io.Serializable, Comparable<String>, CharSequence { 3 /** The value is used for char ...
分类:
其他好文 时间:
2020-03-23 12:37:58
阅读次数:
92