基本数据类型 Java中有8种基本数据类型,分别为: 6种数字类型 :byte、short、int、long、float、double 1种字符类型:char 1种布尔型:boolean 包装类 八种基本类型都有对应的包装类分别为:Byte、Short、Integer、Long、Float、Doub ...
分类:
编程语言 时间:
2020-06-30 12:44:48
阅读次数:
109
案例1 String存储位置介绍: package com.javaSe.String; /* 重要的信息,在JDK7的时候,就把字符串常量池移动到了堆内存当中了,现在不在方法区了。 关于java JDK中内置的一个类:java.lang.String 1 String表示字符串类型,属于引用数据类 ...
分类:
其他好文 时间:
2020-06-29 22:55:00
阅读次数:
63
包含: 程序计数器 虚拟机栈 本地方法栈 堆 方法区(包含运行时常量池) 直接内存 线程私有:程序计数器,虚拟机栈,本地方法栈线程共享:堆,方法区 程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程执行的字节码行号指示器,JVM 通过改变这个计数器的值,来选取下一条需要执行的字节码指令, ...
分类:
其他好文 时间:
2020-06-29 22:52:57
阅读次数:
62
示例1 @Test public void test() { String s1 = "AB"; // "AB" 放到了字符串常量池种 String s2 = new String("AB"); //new出来的对象,对象放堆上 String s3 = "A"; String s4 = "B"; S ...
分类:
其他好文 时间:
2020-06-23 00:59:26
阅读次数:
55
一 类加载器 二 解析和分配 1,解析阶段 我们知道,类的加载过程包含七个阶段:加载,验证,准备,解析,初始化,使用,卸载,七个阶段顺序开始,交叉进行。解析阶段是虚拟机将常量池内的符号引用替换为直接引用的过程,是这七个阶段之一。 调用目标在程序代码写好、编译器进行编译时就必须确定下来。这类方法的调用 ...
分类:
其他好文 时间:
2020-06-20 19:09:25
阅读次数:
47
第一种情况 /* * 第一种情况 * 证明:是否在编译的时候完成拼接 * */ String str = "a" + "b"; 常量池信息: 查看常量池信息必须通过 javap -v 命令来查看Class文件(java文件编译后的文件) Constant pool: #1 = Methodref # ...
分类:
其他好文 时间:
2020-06-19 21:10:16
阅读次数:
48
前言:最近老是收到小伙伴的私信问我能不能帮忙整理出一份JVM相关的面试题出来,说自己在大厂去面试的时候这一块问的是特别多的,每次自己学的时候每次都学不到重点去。这不他来了,一份详细的JVM面试真题给大家整理在下方了!一、什么情况下会发生栈内存溢出?1、栈是线程私有的,栈的生命周期和线程一样,每个方法在执行的时候就会创建一个栈帧,它包含局部变量表、操作数栈、动态链接、方法出口等信息,局部变量表又包括
分类:
其他好文 时间:
2020-06-15 10:35:39
阅读次数:
97
string作为最常用的类型,在实际项目中会有大量的字符串操作,这样会带来大量的字符串创建,内存分配、回收,进而影响性能。因此CLR对于string进行了特殊的优化,CLR中存在“字符串暂存池”概念。那么CLR 如何做到的呢?在CLR初始化时创建一个内部的哈希表,这个表相当于一个字典表,键就是字符串 ...
1. Reids内存的划分 数据 内存统计在used_memory中 进程本身运行需要内存 Redis主进程本身运行需要的内存占用,代码、常量池等 缓冲内存,客户端缓冲区、复制积压缓冲区、AOF缓冲区。有jemalloc分配内存,会统计在used_memory中 内存碎片 Redis在分配、回收物理 ...
分类:
其他好文 时间:
2020-06-12 14:49:11
阅读次数:
61
注解 : String a = new String("1"); a形参出现在栈上 , 同时堆上会出现一个a的地址值, 关键 1这个常量已经出现在常量池内了. 所以 a = a.intern() ; 无论用不用a来接收这个方法的返回值, a都指向常量池内的 1. String b = a + a ; ...
分类:
其他好文 时间:
2020-06-10 18:56:47
阅读次数:
52