Java String类和常量池
String 部分源码
学习笔记
package cn.jason.oop;
/*** 测试字符串类的基本语法* 不可变字符串* @author Jason**/
public class TestString {public static void main(String[] args){String str = "WorkHard";String str1 = new String("HardWork");String str2 = "123"+"456";String str3 = "18" + 19; //这里不是加法,是字符串连接符System.out.println(str3);if(str3 instanceof String){System.out.println("str3是字符串");}System.out.println("-------------------------------");String str10 = "jason";String str11 = "jason";String str12 = new String("jason");System.out.println(str10 == str11);System.out.println(str10 == str12);//str10 和 str12 不是同一个对象System.out.println(str10.equals(str12));//所以比较字符串时,使用equals较好}
}
在Java的内存分析中,我们会经常听到关于“常量池”的描述,实际上常量池也分了以下三种:
1. 全局字符串常量池(String Pool)
全局字符串常量池中存放的内容是在类加载完成后存到String Pool中的,在每个VM中只有一份,存放的是字符串常量的引用值(在堆中生成字符串对象实例)。
2. class文件常量池(Class Constant Pool)
class常量池是在编译的时候每个class都有的,在编译阶段,存放的是常量(文本字符串、final常量等)和符号引用。
3. 运行时常量池(Runtime Constant Pool)
运行时常量池是在类加载完成之后,将每个class常量池中的符号引用值转存到运行时常量池中,也就是说,每个class都有一个运行时常量池,类在解析之后,将符号引用替换成直接引用,与全局常量池中的引用值保持一致。
String类是我们最常使用的类。字符串类的方法我们必须非常熟悉!我们列出常用的方法,请大家熟悉。
表1 String类的常用方法列表
【示例1】String类常用方法一
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
执行结果如图1所示:
图1 示例1运行效果图
【示例2】String类常用方法二
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
执行结果如图2所示:
图2 示例2运行效果图
Java String类和常量池相关推荐
- java的知识点15——String基础、String类和常量池、String类常用的方法、字符串相等的判断、组合模式
String基础 1. String类又称作不可变字符序列. 2. String位于java.lang包中,Java程序默认导入java.lang包下的所有类. 3. Java字符串就是Unicode ...
- 常量池在堆还是方法区_详解Java 虚拟机(第③篇)——String 类和常量池
一.String 对象的两种创建方式 String str1 = "abcd"; String str2 = new String("abcd"); Syste ...
- java --String类解决面试问题
2019独角兽企业重金招聘Python工程师标准>>> 1.概述 字符串对象是一种特殊的对象.String类是一个不可变的类..也就说,String对象一旦创建就不允许修改 Stri ...
- Java中几种常量池的区分
转载自 Java中几种常量池的区分 在java的内存分配中,经常听到很多关于常量池的描述,我开始看的时候也是看的很模糊,网上五花八门的说法简直太多了,最后查阅各种资料,终于算是差不多理清了,很多网上 ...
- Java——String类的方法
Java--String类的方法 String str1 = "abc" 与String str2 = new String("abc")有什么区别? 字符串常 ...
- java讲对象放在常量池的方法_java的常量池里面都放了些神马东西
展开全部 理解Java常量池 JVM运行时数据区的内e69da5e6ba9062616964757a686964616f31333264656233存模型由五部分组成: [1]方法区 [2]堆 [3] ...
- String:字符串常量池
一.设计思想 为字符串开辟一个字符串常量池,创建字符串常量时,首先检测字符串常量池是否存在该字符串.如存在该字符串对象,返回其引用:若不存在,实例化该字符串并放入常量池中,并返回其引用. 二.实现 ...
- Java String类概述
Java String类 String类简介 字符串比较 String对象(常量)池 静态常量池 运行时常量池 String类简介 字符串严格意义上来讲并不能算是一个基本数据类型,也就是说没有任何一门 ...
- 黑马程序员——Java String类 and 正则表达式(第七篇)
-----------android培训.java培训.java学习型技术博客.期待与您交流!------------ 虽然老毕视频中把正则表达式放到了最后面才讲,但个人认为他和String功能上有些 ...
最新文章
- web高性能开发系列随笔
- EelemntUI中e-form表单校验的使用以及表单校验的规则
- 分布式监控系统Zabbix3.2添加自动发现磁盘IO并注册监控
- Mysql(1)——服务端与客户端建立连接
- .NET环境下每日集成(4):CruiseControl.Net配置注意事项
- 微信web-view 开发_在不到7个月的时间里我如何成为一名Web开发人员-以及如何
- 【Python】EXCEL转Json
- php设置 url长度,URL长度有限制吗?_PHP教程
- JDK的发布周期缩短,JDK9,JDK10是短期版本
- MYSQL时间函数之NOW()
- 红米NOTE3 双网通(2015617)刷机包 解账户锁
- bk-02 C++ vector用法 博客园
- linux内核源码系统调用有多少个,Linux内核源码目录介绍
- 1.1.26 word内容导入PPT
- JS:关于邮箱的正则表达式及规则
- VOT-toolkit Python 版本使用教程--官方样例版
- java 校验ipv6_基于Java检查IPv6地址的合法性
- 【MySQL学习】事务管理
- PMP中的那些进度/成本图
- 06.01、js之日期获取方法-年月日时分秒毫秒星期
热门文章
- debian的几个lib源_Debian源
- 内网如何架设传奇世界私服 (包含传送,脚本教程,专用怪物,不定期更新)...
- PCI EXPRESS体系结构导读(读书笔记)
- win8计算机背景黑色,Win8电脑桌面背景突然变黑的解决方法
- android studio 生成签名文件
- 小猪躺着大猪跑(博弈论的诡计)
- 网络安全毕业设计题目大全
- 百度小程序服务器偶尔一个请求失败,干货分享|百度智能小程序审核发布失败常见原因汇总...
- 处理手机点击淘宝优惠链接提示“目标地址不可达”错误
- 谷歌的秘密招聘挑战,你可否与之一战?