Mac根目录添加文件夹
方案: 在根目录下面,出现一个软链接目录data,然后真实目录地址是:/Users/foochane/data/。这里先建立好真实目录
1 创建文件夹在一个合适的位置,比如:/Users/foochane/data
2 编辑conf文件编辑一下/etc/synthetic.conf文件
bash ...
好久没有更新文章了
好久没有更新文章了。
Java容器:ArrayList源码分析
注意以下源码分析基于JDK 1.8
1 基本定义及构造方法
ArrayList实现List接口
RandomAccess接口表示表示ArrayList支持快速随机访问
使用动态数组存储数据
java123456789101112131415161718192021222324252627282 ...
Java是值传递还引用传递
1 代码示例首先查看如下代码,在main方法中新建int、String变量和int[]数据,以及一个person对象,在pass方法中进行修改,然后在回到main方法中进行打印,打印的结果以及注释在代码里面,结果是int变量和String变量没有修改,int[]数组和Person对象有修改。所以就引 ...
Java中的深拷贝和浅拷贝
1 Java中对象的创建首先引入一个问题,在java语言中,有几种方式可以创建对象呢?
使用new操作符创建一个对象
使用clone方法复制一个对象
那么这两种方式有什么相同和不同呢? new操作符的本意是分配内存。程序执行到new操作符时, 首先去看new操作符后面的类型,因为知道了类型,才 ...
JVM笔记:执行引擎
1 执行引擎概述
执行引擎是Java虚拟机的核心组成部分之一
虚拟机是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系, ...
JVM笔记:运行时数据区-方法区
1. 堆、栈、方法区的交互关系运行时数据区结构图
从是否共享线程的角度
堆、栈、方法区的交互关系
2. 方法区的理解《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。” 但对于HotSpotJVM而言,方法区还有一个 ...
JVM笔记:运行时数据区-堆
1.核心概述一个进程对应一个jvm实例,一个运行时数据区,又包含多个线程,这些线程共享了方法区和堆,每个线程包含了程序计数器、本地方法栈和虚拟机栈。
一个jvm实例只存在一个堆内存,堆也是java内存管理的核心区域
Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一 ...
JVM笔记:运行时数据区-本地方法栈
1本地方法栈
Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法的调用
本地方法栈,也是线程私有的。
允许被实现成固定或者是可动态拓展的内存大小。(在内存溢出方面是相同的)
如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机将会抛出一个StackOverFlo ...
JVM笔记:运行时数据区-虚拟机栈
1概述1.1 背景由于跨平台性的设计,java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。
1.2 内存中的堆与栈
栈是运行时的单位,而堆是存储的单位
即:栈解决程序的运行问题,即 ...