Java 常用类 String的使用
1 package com.bytezero.stringclass;
2
3 import com.sun.tools.javac.Main;
4 import jdk.jfr.StackTrace;
5 import org.junit.Test;
6
7 import java.util.Locale;
8
9 /**
10 *String的使用
11 *
12 *
13 *
14 * @author Bytezero1·zhenglei! Email:420498246@qq.com
15 * create 2021-10-19 10:34
16 */
17 public class StringTest {
18
19
20
21
22
23
24
25 /*
26 结论:
27 1.常量与常量的拼接结构在常量池,且常量池中不会存在相同内容的常量
28 2.只要其中有一个是变量,结构就在堆中
29 3.如果拼接的结果调用intern()方法,返回值就是在常量池中
30
31
32 */
33 @Test
34 public void test3(){
35 String s1 = "javaEE";
36 String s2 = "hadoop";
37
38 String s3 = "javaEEhadoop";
39 String s4 = "javaEE"+"hadoop";
40
41 String s5 = s1 + "hadoop";
42 String s6 = "javaEE" + s2;
43 String s7 = s1 +s2;
44
45 System.out.println(s3 == s4); //true
46 System.out.println(s3 == s5); //false
47 System.out.println(s3 == s7); //false
48 System.out.println(s3 == s6); //false
49 System.out.println(s5 == s6); //false
50 System.out.println(s5 == s7); //false
51 System.out.println(s6 == s7); //false
52
53 String s8 = s5.intern();//返回得到的s8使用的常量池中已经存在的 "javaEEhadoop"
54 System.out.println(s3 == s8); //true
55
56 System.out.println("**************************");
57 String s9 = s6.intern();//返回得到的s8使用的常量池中已经存在的 "javaEEhadoop"
58 System.out.println(s3 == s9); //true
59
60
61 }
62
63
64
65
66
67 /*
68
69 String 的实例化方式:
70 方式一:通过字面量定义的方式
71 方式二:通过new + 构造器的方式
72 */
73 @Test
74 public void test2(){
75
76 //通过字面量定义的方式:此时的 s1 和 s2 的数据“zhenglei”声明在方法区中的字符串常量池中
77 String s1 = "zhenglei";
78 String s2 = "zhenglei";
79
80 //通过 new + 构造器的方式:此时的S3 和 S4保存的地址值,是数据在堆空间中开辟空间以后对应的
81 //地址值。
82 String s3 = new String("zhenglei");
83 String s4 = new String("zhneglei");
84
85 System.out.println(s1 == s2); //true
86 System.out.println(s1 == s3); //false
87 System.out.println(s1 == s4); //false
88 System.out.println(s3 == s4); // false
89
90
91 }
92
93 /*
94 String:字符串,使用一对" "引起来表示
95 1.String 声明为final的,不可被继承
96 2.String实现了 Serializable接口:表示字符串时支持序列化的。
97 实现了Comparable接口,表示Sting可以比较大小
98 3.String内部定义了final char[] value用于储存字符串数据
99 4.String:代表不可变的字符序列,简称:不可变性
100 体现:1.当都对字符串重新赋值时,需要重写指定内存区域赋值,不能使用原有的
101 value进行赋值
102 2.当对现有的字符串进行连接操作时,也需要重新指定内存区域赋值,不能
103 使用原有的value进行赋值
104 3.当调用Stringe的replace()方法修改指定字符或字符串时,也需要重新指定
105 内存区域赋值,不能使用原有的value进行赋值.
106
107
108 5.通过字面量的方式(区别于 new)给一个字符串赋值,此时的字符串值声明在字符串常量池中
109 6.字符串常量池中是不会储存相同内容的字符串的
110
111 String s = new String("abc"); 方式创建对象,在内存中创建了几个对象?
112 两个:一个是堆空间中new结构,另一个是char[]对应的常量池的数据:“abc”
113
114
115
116 String 对象的创建
117 String str = "hello";
118
119 //从本质上this.value = new char[0];
120 String s1 = new String();
121
122 //this.value = original.value;
123 String s2 = new String(String original);
124
125 //this.value = Arrays.copyOf(value,value.length);
126 String s3 = new String(char[] a);
127
128 String s4 = new String(char[] a,int startIndex,int count);
129
130
131
132
133
134
135 */
136 @Test
137 public void test1(){
138
139 String s1 = "abc"; //字面量的定义方式
140 String s2 = "abc"; //
141 s1 = "Hello";
142
143 System.out.println(s1 == s2); //地址值
144
145 System.out.println(s1); //Hello
146 System.out.println(s2); //abc
147
148 System.out.println("********************************");
149 String s3 = "abc";
150 s3 += "def";
151 System.out.println(s3); //abcdef
152 System.out.println(s2);
153
154 System.out.println("********************************");
155 String s4 = "abc";
156 String s5 = s4.replace('a', 'm');
157 System.out.println(s4); //abc
158 System.out.println(s5); //mbc
159 }
160 }
Java 常用类 String的使用的更多相关文章
- Java 常用类String类、StringBuffer类
常用类 String类.StringBuffer类 String代表不可变的字符序列 "xxxxxxx"为该类的对象 举例(1) public class Test { publi ...
- 深入理解Java常用类----String
Java中字符串的操作可谓是最常见的操作了,String这个类它封装了有关字符串操作的大部分方法,从构建一个字符串对象到对字符串的各种操作都封装在该类中,本篇我们通过阅读String类的源码 ...
- 深入理解Java常用类----String(二)
上篇介绍了String类的构造器,获取内部属性等方法,最后留下了最常用的局部操作函数没有介绍,本篇将接着上篇内容,从这些最常见的函数的操作说起,看看我们日常经常使用的这些方法的内部是怎么实现的.第一个 ...
- java常用类-String类
* 字符串:就是由多个字符组成的一串数据.也可以看成是一个字符数组. * 通过查看API,我们可以知道 * A:字符串字面值"abc"也可以看成是一个字符串对象. * B:字符串是 ...
- java常用类String
String: String类: 代表字符串 是一个final类,代表不可变的字符序列 字符串是常量,用双引号引起来表示.值在创建后不可更改 String对象的字符内容是存储在一个字符数组Value[ ...
- Java常用类String的面试题汇总
比较两个字符串时使用"=="还是equals()方法? 当然是equals方法."=="测试的是两个对象的引用是否相同,而equals()比较的是两个字符串的值 ...
- Java常用API(String类)
Java常用API(String类) 概述: java.lang.String 类代表字符串.Java程序中所有的字符串文字(例如 "abc" )都可以被看作是实现此类的实例 1. ...
- Java常用类:包装类,String,日期类,Math,File,枚举类
Java常用类:包装类,String,日期类,Math,File,枚举类
- Java基础 —— Java常用类
Java常用类: java.lang包: java.lang.Object类: hashcode()方法:返回一段整型的哈希码,代表地址. toString()方法:返回父类名+"@&quo ...
- Java常用类学习笔记总结
Java常用类 java.lang.String类的使用 1.概述 String:字符串,使用一对""引起来表示. 1.String声明为final的,不可被继承 2.String ...
随机推荐
- 【笔记】学到几个 golang 代码小技巧
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 从这篇文章学到:10个令人惊叹的Go语言技巧,让你的代码更 ...
- Fabric-sdk-go操作Chaincode
因为工作的需要,最近了解了下如何通过sdk来操作Chaincode,本文是sdk使用时的一些操作总结. 在fabric网络启动过程中,一般分为"启动网络 -> 创建通道 -> 加 ...
- 4.0 Python 变量与作用域
在python中,变量的作用域决定了变量在哪些位置可以被访问.一个程序中的变量并不是所有的地方都可以访问的,其访问权限决定于变量的赋值位置.python中有两种最基本的变量作用域:局部作用域和全局作用 ...
- 使用CAShapeLayer,UIBezierPath,CAGradientLayer构建边框颜色会旋转的六边形
主要思路是: 1.使用UIBezierPath绘制一个六边形路径 2.创建一个CAShapeLayer图层,将这个六边形path设置到CAShapeLayer属性上.然后设置fillColor为透明, ...
- 使用DoraCloud搭建支持统信UOS桌面的信创云桌面系统
信创云桌面 信创云桌面采用国产的芯片,支持国产的桌面操作系统.本方案采用海光CPU的服务器,运行DoraCloud云桌面系统.可以支持统信UOS桌面系统和麒麟桌面操作系统. 环境准备 服务器:海光 5 ...
- Linux的yum源配置总结
本文总结归纳了一系列Linux系统的各种yum配置,虽然不一定是标准配置,但都是自己曾真实测过可用的. 1.RHEL6 本地 yum源配置 2.CentOS6 本地 yum源配置 3.OEL5 本地 ...
- Java Calendar 多用,日期 加减
服务需要订购一个月,订购一个月 不等于增加 30天:若是1,3,5的话应该 31天,要善用 Calendar public static void main(String[] args) throws ...
- 《ASP.NET Core 与 RESTful API 开发实战》-- (第8章)-- 读书笔记(中)
第 8 章 认证和安全 8.2 ASP.NET Core Identity Identity 是 ASP.NET Core 中提供的对用户和角色等信息进行存储与管理的系统 Identity 由3层构成 ...
- [JVM]逃逸分析
逃逸分析 JVM的内存分配策略 首先回顾一下JVM的内存分配策略. JVM的内存包括方法区.堆.虚拟机栈.本地方法栈.程序计数器.一般情况下JVM运行时的数据都是存在栈和堆上的.栈用来存放一些基本变量 ...
- Java基础综合测试
Java版基础练习题: 输入练习: [问题描述] 任务很简单: 给定若干个整数,请编程输出它们的和. [输入形式] 输入包含多组测试用例. 每组测试数据首先是一个正整数N,表示本组数据有N个整数. 请 ...