一、常量池与串池 1、书写代码: public class test1804 { public static void main(String[] args) { String string1="a"; String string2="b"; String string3="ab"; } } 2、查 ...
分类:
其他好文 时间:
2020-05-08 20:12:04
阅读次数:
73
原因: 函数的形参原型为char *str,表示传递一个字符串的地址过来,并且可以通过传递过来的地址来修改其中的值;但是我传递的只不过是一个字符串常量,所以弹出了这个警告 而加了const之后: 改为const char *str,因为有const修饰符,变代表指针s指向的值不能被修改,符合字符串常 ...
分类:
其他好文 时间:
2020-05-08 13:05:50
阅读次数:
56
Integer a = 127; Integer b = 127; Integer c = 128; Integer d = 128; a == b 与 c == d 的比较结果是什么? a == b 的结果为true 而 c == d的结果为false; 为什么会出现结果?回去百度之后发现问题的根 ...
分类:
其他好文 时间:
2020-05-05 18:07:45
阅读次数:
86
前言 对常量池的理解之前,需要熟悉的是一些术语: 字面量 百度也给了一个例子: 这个object c 的例子,容易理解。 正文 JVM常量池主要分为Class文件常量池、运行时常量池,全局字符串常量池,以及基本类型包装类对象常量池。 我在网上找了一个例子: 编译后: 下面只截取了一部分,常量池: 好 ...
分类:
编程语言 时间:
2020-05-04 11:51:24
阅读次数:
89
String、StringBuffer、StringBuilder String类是用的 final char[] 保存的字符串,故String对象是不可变的,用+拼接字符串,就是生成的一个新的String对象。 String s1 = "abc"; 是放在字符串常量池中,如再创建一个String ...
分类:
编程语言 时间:
2020-05-02 16:43:24
阅读次数:
68
String 一、 底层解析 1. JVM底层 在JVM底层中,声明的String变量的地址存储在栈区,而后面的赋值,也就是字符串常量池,在方法区。方法区的常量不重复。 当对字符串进行 重新赋值 ,对现有字符串进行 连接 操作,调用String的replace方法 修改 指定字符或字符串时,都需要重 ...
分类:
其他好文 时间:
2020-05-01 01:23:01
阅读次数:
72
答: true, 因为"abc"是一个字符串常量, 首先回去常量池中找有没有"abc"的对象, 如果没有就会在常量池中创建一个, 并返回该对象的引用, 如果有就直接返回该对象的引用, 然后返回该对象的引用,这样也就创建了我们常说的对象s1,当我们创建s2对象的时候,我们发现常量池中已经存在"abc" ...
分类:
其他好文 时间:
2020-04-30 21:39:24
阅读次数:
83
到目前为止,GC和内存分配这块技术已经发展的相当成熟了,无需我们在花费大量的精力继续研究改进,那我们为什么要还要了解这块的知识呢?因为当需要排查各种内存溢出,内存泄露问题时,当垃发量的瓶颈时,我们就需要需要对GC和内存分配这方面有一定的了解和认识,才能会更好的解决问题!! 一, 确定对象死亡 在堆里 ...
分类:
编程语言 时间:
2020-04-29 23:30:44
阅读次数:
74
众所周知,JDK1.8版本中, String常量池 已经从 方法区 中的 运行时常量池 分离到堆中了,那么在堆中的 String常量池 里存的是String对象还是引用呢?直接查看API: 翻译:String类的intern()方法:一个初始为空的字符串池,它由类String独自维护。当调用 int ...
分类:
其他好文 时间:
2020-04-26 18:48:25
阅读次数:
171
一、总述String是字符串常量,StringBuffer和StringBuilder是字符串变量;StringBuffer线程安全而StringBuilder是不安全的二、String与两者的区别String: 1 public final class String 2 implements ja... ...
分类:
其他好文 时间:
2020-04-25 16:47:41
阅读次数:
71