区别: “==” 比较的是两个引用在内存中指向的是不是同一对象(即同一内存空间),也就是说在内存空间中的存储位置是否一致。(引用类型) 如果两个对象的引用相同时(指向同一对象时),“==”操作符返回true,否则返回flase。 注:如果有对内存分配及变量存储位置(堆、栈、方法区常量池、方法区静态区 ...
分类:
编程语言 时间:
2019-11-30 19:37:51
阅读次数:
113
https://www.cnblogs.com/panzi/p/11956782.html 前言 在之前的面试经历中,对于String的考察还是挺频繁的,大致考察以下几个知识点: String 常量池 new String() == 和 equals 的区别 native 方法 String.int ...
分类:
编程语言 时间:
2019-11-29 14:25:09
阅读次数:
69
一、程序计数器/PC寄存器 (Program Counter Registe) 用于保存当前正在执行的程序的内存地址(下一条jvm指令的执行地址),由于Java是支持多线程执行的,所以程序执行的轨迹不可能一直都是线性执行。当有多个线程交叉执行时,被中断的线程的程序当前执行到哪条内存地址必然要保存下来 ...
分类:
其他好文 时间:
2019-11-25 18:49:14
阅读次数:
73
11.JVM内存分哪几个区,每个区的作用是什么? java虚拟机主要分为以下一个区: 方法区:1. 有时候也成为永久代,在该区内很少发生垃圾回收,但是并不代表不发生GC,在这里进行的GC主要是对方法区里的常量池和对类型的卸载2. 方法区主要用来存储已被虚拟机加载的类的信息、常量、静态变量和即时编译器 ...
分类:
其他好文 时间:
2019-11-17 12:53:24
阅读次数:
86
魔数(U4) 常量池(U2) 常量池保存的数据 字面量 概念接近Java的常量 符号引用 类和接口全限定名 字段名称和描述符 方法的名称和描述符 name_index指向一个CONSTANT_Utf8_info类型的常量 CONSTANT_Utf8_info的length为U2(长度为两个字节,最大 ...
分类:
其他好文 时间:
2019-11-12 12:41:47
阅读次数:
78
1 简介 本文将主要讲解一下String.intern()方法的原理、特点,并介绍一个新奇的应用。 2 String的池化 方法intern()的作用就是将String池化,这个池是String的常量池。不同版本的JDK有不同的实现。 2.1 不同实现与不同内存空间 JDK 6:intern()方法 ...
分类:
编程语言 时间:
2019-11-10 17:51:24
阅读次数:
74
JVM中对象模型及相应名词概念 java对象在jvm中的模型是OOP Klass 模型; klass klass对应元数据,包括常量池、字段、方法等。是在加载class阶段创建instanceKlass。存放在方法区。 oop oop对应java中的实例。 oop是指向oopDesc的指针。 oop ...
分类:
其他好文 时间:
2019-11-06 12:55:55
阅读次数:
73
1 String的定义(Java8中) 2 String 对象的创建方式 A、通过字符串常量的方式 String str= "pingtouge", JVM 会在字符串常量池中先检查是否存在该对象,如果存在,返回该对象的引用地址,如果不存在,则在字符串常量池中创建该字符串对象并且返回引用。使用这种方 ...
分类:
编程语言 时间:
2019-11-03 10:41:03
阅读次数:
67
Java初级开发面试题 2019-11-02 17:40:45 by冲冲 1、String String是定义在 java.lang 包下的一个类。它不是基本数据类型。String是不可变的。 JVM使用字符串池来存储所有的字符串对象。字符串常量池存在于Java的堆内存中。(JDK1.6及以前常量池 ...
分类:
编程语言 时间:
2019-11-02 21:48:31
阅读次数:
104
1.可变性:String不可变(适用于做HashMap的键),StringBuffer和StringBuilder可变 2.性能角度:,String在new的时候,会在常量池中开辟空间,比较耗费内存,而StringBuffer,StringBuiilder字符串缓冲区(里面存储的全部都是字符串),它 ...
分类:
其他好文 时间:
2019-10-30 21:07:57
阅读次数:
108