String存放位置
简介
字符串在不同的JDK版本中,存放的位置不同,创建方式不同,存放的位置也不同。
存放位置
JDK1.7以下,无论何种方法创建String对象,位置都位于方法区。
JDK1.8及1.8以上,new String("Hello")创建位于堆中,String s3="world"创建则位于常量池中,常量池位于方法区中。
代码
public void hashCodeCompute(){
Object o = new Object();
System.out.println(o.hashCode());
System.out.println(System.identityHashCode(o));
System.out.println("Object-------------------------");
//正常的创建一个对象的使用方法,存储在堆中--->JDK8
String s1 = new String("Hello");
String s2 = new String("Hello");
System.out.println(s1.hashCode() == s2.hashCode());
System.out.println(System.identityHashCode(s1) == System.identityHashCode(s2));
System.out.println("String-------------------------");
String s3="world";
String s4="world";
System.out.println(s3.hashCode() == s4.hashCode());
System.out.println(System.identityHashCode(s3) == System.identityHashCode(s4));
System.out.println("world-------------------------");
}
- 输出结果
2018664185
2018664185
Object-------------------------
true
false
String-------------------------
true
true
world-------------------------
Gitee地址
String存放位置的更多相关文章
- Java 类中各成分加载顺序 和 内存中的存放位置
参加一个笔试,有一个关于类的静态代码块.构造代码块.构造函数的执行顺序的问题.不太清楚,网上百度了一下.在这里记录一下. 一.什么时候会加载类?使用到类中的内容时加载:有三种情况1.创建对象:new ...
- velocity-1.7中vm文件的存放位置
velocity-1.7中关于vm文件存放 demo: public class App_example1 { public App_example1() { String propfile=&quo ...
- servlet创建项目过程中,servlet内容重写的两种搭建,tomcat的配置,class的存放位置,web.xml的搭建等注意事项与易错点
运行一个servlet项目:需要做这些前提工作: 1.配置tomcat,在server选项卡的设置也就基本的设置,HTTP port与JMX port等端口号:基本都是默认的.这里需要注意的是,有的教 ...
- 查看oracle数据库日志存放位置
1,默认情况下,oracle的日志文件记录在$ORACLE/rdbms/log目录下 [oracle@oracle log]$ pwd /home/oracle/oracle/product/11.2 ...
- MySQL数据库数据存放位置修改
MySQL数据库数据存放位置修改 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方 ...
- MySQL文件目录格式及存放位置
了解MYSQL的都知道,在MYSQL中建立任何一张数据表,在其数据目录对应的数据库目录下都有对应表的.frm文件,.frm文件是用来保存每个数据表的元数据(meta)信息,包括表结构的定义等,.frm ...
- Navicat数据存放位置和备份数据库路径设置
navicat的数据库存放位置在什么地方?带着这样的疑问,我们去解决问题,navicat是默认安装,mysql也是默认安装,数据库存在默认用户所在的目录下面. 安装MySQL时,请选择“Custom” ...
- SqlServer修改数据库文件及日志文件存放位置
--查看当前的存放位置 select database_id,name,physical_name AS CurrentLocation,state_desc,size from sys.master ...
- Cookie及Session文件在本机的存放位置
1. Cookie的存放位置 D:\Users\xlxiao\AppData\Roaming\Microsoft\Windows\Cookies 2. Session的存放位置(目前未解决)
随机推荐
- 「算法笔记」CRT 与 exCRT
一.扩展欧几里得 求解方程 \(ax+by=\gcd(a,b)\). int exgcd(int a,int b,int &x,int &y){ if(!b) return x=1,y ...
- 安装rebar3
下载编译好的版本 wget https://s3.amazonaws.com/rebar3/rebar3 chmod +x /home/hylink/rebar3 (赋权) ./rebar3 loca ...
- 深入 Laravel 内核之 PHP 反射机制和依赖注入
结论: PHP中提供了反射类来解析类的结构: 通过反射类可以获取到类的构造函数及其参数和依赖: 给构造函数的参数递归设置默认值后,即可使用这些带默认值的参数通过 newInstanceArgs 实例化 ...
- 初识python: 模块定义及调用
一.定义 模块:用来从逻辑上组织python代码(变量.函数.类.逻辑:实现一个功能),本质就是.py结尾的python文件(比如:文件名:test.py,对应的模块名:test) 包:用来从逻辑上组 ...
- 工厂模式(python)
以字符串作为传递参数 以类名作为传递参数 来自为知笔记(Wiz)
- PowerShell【IF篇】
1 [int]$num=0 2 do 3 { 4 $num+=1 5 if($num%2) 6 { 7 "$num"+" 是奇数" 8 }else{ 9 &qu ...
- 详谈 Java工厂 --- 抽象工厂模式
1.前言 感觉工厂模式都好鸡肋,还特别绕来绕去,当然,好处还是有的,将一些类似的业务都集成到工厂了, 不需要理会底层是怎么运行的,我只需要向调用工厂即可获取我要的结果,也不需要考虑工厂返回的东西类型, ...
- mysql 外连接
自连接:最大的特点是:一张表看做两张表.自己连接自己. 找出每个员工的上级领导,要求显示员工名和对应的领导名. select e.ename,ee.ename from emp e join emp ...
- 使用jadx反编译 调试“XX值得买”APP获取接口签名key(一)
闲来无事,想抓取一下"XX值得买"上排行榜的即时数据,按照通用方法 安装夜神模拟器 新增android 5.0版模拟器 安装xposed框架 安装JustTrustMe.apk 打 ...
- Android函数抽取壳的实现
0x0 前言 函数抽取壳这个词不知道从哪起源的,但我理解的函数抽取壳是那种将dex文件中的函数代码给nop,然后在运行时再把字节码给填回dex的这么一种壳. 函数抽取前: 函数抽取后: 很早之前就想写 ...