首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
Java学习-内存划分及内存的调用关系
】的更多相关文章
Java学习-内存划分及内存的调用关系
一.JAVA内存划分 JAVA的内存可以划分为五个部分:堆.栈.方法区.本地方法区和寄存器. 堆(Heap):凡是new出来的东西都在堆中 如: integer = new Integer(2) // integer(2) 就在堆中 3 int[] arr = {12, 23, 34, 45}; //注意 简化写法在实际编译时仍然会被编译为:int[] arr = new int[]{12, 23, 34, 45}; 注意:1.堆内存里的东西都有一个16进制的地址值 2.堆内存里的数据,都有默认…
1.4(java学习笔记) 面向对象内存分析
首先介绍几个概念 栈: 1.栈是方法执行的内存模型,每调用一个方法都会创建一个栈帧. 2.jvm为每个线程创建一个栈,存放方法相关信息,栈属于线程私有不共享. 3.栈由系统自动分配,是连续的内存空间,速度快. 4.栈的特点是先进后出. 堆: 1.堆用于存放创建好的对象. 2.jvm只有一个堆被所有线程共享 3.堆是不连续的内存空间,但由于不连续分配灵活. 静态区: 1.静态区只有一个被所有线程共享. 2.静态区其实也是堆,用来存放常量,类等不变的信息. 以下列代码为例: 有些部分忽略了,只是…
java学习面向对象之static内存图解
上一节当中描述了static的用法,以及成员变量和静态变量的区别.但是static除了可以修饰成员变量使之成为静态变量外,他还可以同时修饰函数,使之成为静态函数,我们来看一个例子: class StaticDemo { String name; int a ; static String xiangmu="xiangmu"; /** *这个方法被static关键词修饰之后,就变成了静态方法,这里我们需要注意的一点就是static声明的方法当中,只能够调用 *静态变量,因为他是在类没有被…
JAVA学习笔记--方法中的参数调用是引用调用or值调用
文献来源:<JAVA核心技术卷Ⅰ>,第4章第5节 (没有相关书籍的可看传送门) ps:测试demo因为偷懒,用的是String对象 结论:Java使用的是对象的值引用.即将任何对象所在内存地址的值,先进行了一份拷贝,然后进行的值操作,而非直接指向其内存地址. package utils; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @AllArgsConstruct…
【转】Java学习---JDK、JRE和JVM的关系
[原文]https://www.toutiao.com/i6591348937267872269/ 首先是JDK JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK).在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre. 然后我们来看JRE JRE(Java Runtime Environment,Java运行环境),包含JV…
【Java基础】几种简单的调用关系与方法
直接上代码吧. class lesson4AB //同一个类下的public修饰的方法A,B可以相互调用 { public void A() { B();//等价于this.B(); } public void B() { A();//等价于this.A(); } } class lesson4C //存在于不同类里的public修饰的方法C调用B { public void C() { lesson4AB lAB=new lesson4AB(); lAB.B(); //上下两种方法是等价的,都…
java 深入理解内部类以及之间的调用关系
什么是内部类 内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限).内部类主要有以下几类:成员内部类.局部内部类.静态内部类.匿名内部类 内部类的共性 (1).内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号 . (2).内部类不能用普通的方式访问. (3).内部类声明成静态的,就不能随…
JVM自动内存管理-Java内存区域与内存溢出异常
摘要: JVM内存的划分,导致内存溢出异常的可能区域. 1. JVM运行时内存区域 JVM在执行Java程序的过程中会把它所管理的内存划分为以下几个区域: 1.1 程序计数器 程序计数器是一块较小的内存空间,在Java虚拟机规范中是唯一一个未规定OutOfMemoryError的内存区域. 程序计数器可看作当前线程所执行字节码的行号指示器.字节码解释器工作时通过改变计数器的值来选取下一条待执行的字节码指令,分支.循环.跳转.异常处理.线程恢复等基础功能都需要依赖计数器来完成. 每个线程均有一个独…
《深入理解java虚拟机》第二章 Java内存区域与内存溢出异常
第二章 Java内存区域与内存溢出异常 2.2 运行时数据区域 …
java学习笔记之基础篇
java选择语句之switch //switch可以用于等值判断 switch (e) //int ,或则可以自动转化成int 的类型,(byte char short)枚举jdk 7中可以防止字符串 { case 6: System.out.println(); break; case 5: System.out.println(); break; case 4: System.out.println(); break; default: System.out.println(); bre…