首先需要明白以下几点: 栈空间(stack),连续的存储空间,遵循后进先出的原则,用于存放局部变量。 堆空间(heap),不连续的空间,用于存放new出的对象,或者说是类的实例。 方法区(method),方法区在堆空间内,用于存放①类的代码信息;②静态变量和方法;③常量池(字符串敞亮等,具有共享机制 ...
分类:
编程语言 时间:
2019-07-20 09:40:36
阅读次数:
94
一 数据类型 1.1 8种基本数据类型 1.2 引用数据类型 1.3 java内存机制 1.3.1 寄存器 1.3.2 栈 1.3.3 堆 1.3.4. 静态区/方法区 1.3.5. 运行时常量池(Runtime Constant Pool) 1.3.6 直接内存(Direct Memory) 二: ...
分类:
编程语言 时间:
2019-07-17 20:25:05
阅读次数:
135
1.虚拟机的构成 虚拟结主要由运行时数据区、执行引擎、类加载器三者构成,我们所说的JVM内存模型指的就是运行时数据区。 2.运行时数据区组成和各个区域的作用 运行时数据区可以分为线程共享和线程不共享两部分,其中堆内存和方法区线程共享,本地方法栈、虚拟机栈、程序计数器线程不共享。 2.1.程序计数器 ...
分类:
其他好文 时间:
2019-07-15 16:04:07
阅读次数:
139
1、str(字符串) 1、切片 2、字符串相关方法 3、字符串查找的方法 4、字符串条件判断 2、字符串的编码以及常量池 1、is和==的区别 2、编码 2.1、字符串串在传输时转化成bytes=> encode(字符集)来完成 2.2、那么在对方接收的时候. 也是接收的bytes类型的数据. 我们 ...
分类:
编程语言 时间:
2019-07-06 13:25:10
阅读次数:
124
Java中String是一个特殊的包装类数据有两种创建形式: 1. String s = "abc"; 2. String s = new String("abc"); 第一种先在栈中创建一个对String类的对象引用变量s,然后去查找"abc"是否被保存在字符串常量池中,如果没有则在栈中创建三个c ...
分类:
编程语言 时间:
2019-07-06 00:28:21
阅读次数:
103
1 - 引言 2 - 常量池 2.1 你真的懂 Java的“字面量”和“常量”吗? 2.2 常量和静态/运行时常量池有什么关系?什么是常量池? 2.3 字节码下的常量池以及常量池的加载机制 2.4 是不是所有的数字字面量都会被存到常量池中?3 - 包装类对象池 $\ne$JVM 常量池4 - 字符串 ...
分类:
编程语言 时间:
2019-07-05 12:38:06
阅读次数:
120
Java垃圾回收机制算法 为什么要进行垃圾回收 因为当一个对象的引用不可达,或者一个对象没有任何引用指向它,那么它就没有必要在内存中继续存在,此时它就处于可以被GC(垃圾回收器)回收的对象,jvm虚拟机动态的收集不可用的对象,达到释放内存的目的。 垃圾回收区域 通常情况下的jvm虚拟机把内存都分为了 ...
分类:
编程语言 时间:
2019-07-02 00:29:03
阅读次数:
135
Sring StringBuffer StringBuilder封装类 一、String类常见方法的使用 字符串数据都是一个对象 字符串数据一旦初始化就不可以被改变 字符串对象都存储于常量池中,字符串常量池 ==比较的是地址值,而new是重新开辟 1、判断 equals(Object obj) :字 ...
分类:
其他好文 时间:
2019-06-20 17:32:02
阅读次数:
105
什么时候回收对象 引用计数法 1、原理:为对象添加一个引用计数器,当对象增加一个引用时计数器加 1,引用失效时计数器减 1。引用计数为 0 的对象可被回收。 2、缺点:无法解决循环引用问题 可达性分析 1、原理:以 GC Roots 为起始点进行搜索,可达的对象都是存活的,不可达的对象可被回收。 2 ...
分类:
其他好文 时间:
2019-06-15 16:05:06
阅读次数:
112