谈谈我对static的理解 by~~~~~~~~~~~~~~~~~~渣渣飞(偷偷用我纸抽的小腿打骨折~啦啦啦~) 因为我发现很多同学学到这里都会很困惑 很难理解static到底是个什么 首先 static是个修饰符 被static修饰的变量我们统称为静态变量也叫类变量(为什么叫类变量呢 ?因为我们可 ...
分类:
编程语言 时间:
2018-06-09 19:01:41
阅读次数:
230
在讨论JVM内存区域分析之前,先来看一下Java程序具体执行的过程: Java 程序的执行过程:Java 源代码文件(.Java文件)-> Java Compiler(Java编译器)->Java 字节码文件(.class文件)->类加载器(Class Loader)->Runtime Data A ...
分类:
编程语言 时间:
2018-06-09 11:38:03
阅读次数:
177
1.Java虚拟机组成部分: 1.1 类加载器 上图中展示的类加载器之间的这种层次关系,称为类加载器的双亲委派模型(ParentsDelegation Model)。 双亲委派模型要求除了顶层的启动类加载器外,其余的类加载器都应当有自己的父类加载器。 这里类加载器之间的父子关系一般不会以继承(Inh ...
分类:
编程语言 时间:
2018-06-08 19:21:49
阅读次数:
211
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。 ...
分类:
编程语言 时间:
2018-06-08 10:29:21
阅读次数:
201
本文参考《深入理解java虚拟机第二版》 一。什么是线程安全? 这里我借《Java Concurrency In Practice》里面的话:当多个线程访问一个对象,如果不考虑这些线程在运行时环境下的调度和交替执行,也不需要额外的同步,或者调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正 ...
分类:
编程语言 时间:
2018-06-08 00:55:07
阅读次数:
199
java虚拟机 什么时候会触发full gc 可以作为root的对象: 例子:下述的Something和Apple都可以作为root对象。 Java方法的参数和方法中的局部变量,可以作为root. 新生代转移到老年代的触发条件 redis redis单线程问题 单线程指的是网络请求模块使用了一个线程 ...
分类:
编程语言 时间:
2018-06-07 21:55:44
阅读次数:
215
一、Java 虚拟机内存原型 寄存器:我们在程序中无法控制。 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中。 堆:存放用 new 产生的数据。 静态域:存放在对象中用 static 定义的静态成员。 常量池:存放常量。 非 RAM 存储:硬盘等永久存储空间。 二、常量池 ...
分类:
编程语言 时间:
2018-06-07 21:52:54
阅读次数:
171
Myeclipse报错java was started but returned exit code =-1,如图: 报错原因:java虚拟机的路径不对,因为默认安装MyEclipse时会自带一个java虚拟机,如果环境变量中已经安装了,路径需要改为安装的,可以在cmd中输入 查看jdk路径 解决方 ...
分类:
编程语言 时间:
2018-06-07 16:28:00
阅读次数:
209
作为一名Java使用者,掌握JVM的体系结构也是必须的。说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示: 运行期环境代表着Java平台 ...
分类:
编程语言 时间:
2018-06-07 11:36:36
阅读次数:
167
运行时数据区域 线程私有 __程序计数器__ 正在执行的字节码指令的地址(native方法时为undefined) __Java虚拟机栈__ 存储栈帧(局部变量表,操作数栈,动态链接,方法出口)OOM,StackOverflowError __本地方法栈__ 与虚拟机栈类似,是native方法的栈 ...
分类:
其他好文 时间:
2018-06-06 23:49:12
阅读次数:
207