文档章节

java --常用类(String)

求是科技
 求是科技
发布于 2016/10/03 18:41
字数 736
阅读 10
收藏 0
点赞 0
评论 0

#1.String
字符串采用unicode编码,一个字符占两个字节。

public class TestString {

	/**
	 * String:它表示不可变的字符序列,底层使用char[]存放元素
	 * String是finall;即不可重复对一个String变量赋值
	 */
	public static void main(String[] args) {
		String str1 = "panDa";
		String str2 = "panDa";
		String str3 = new String("panDa");
		String str4 = "panDa"+"laoLi";
		String str5 = "laoLi";
		String str6 = str1+str5;
		String str7 = "tiantian";
		str7 = str7 + "kaixin";
		String str8 = "panDalaoLi";
		/**
		 * str1的"panDa"存放在字符串常量池中,对应一个地址(假设0x1234),地址存放在栈中
		 * str2先去常量池找"panDa",有的话,直接使用地址(0x1234),没有的话,新建一个地址
		 * str3:new表示在堆中开辟一个新的区间,区间地址(假设0x1235),地址存放在栈中,
		 * 同时该区间对应一个常量值"panDa",常量值存放在常量池中,常量值对应的地址(0x1234)
		 * 因此,new String("panDa")表示新建了两个对象,对象1的地址0x1234,对象2的地址0x1235
		 * 所以查找str3对应的值的时候,1.先找区间地址(0x1235),再找值地址(0x1234)
		 * ==:比较地址值
		 * equals:比较内容值
		 */
		//true(0x1234 == 0x1234)
		System.out.println(str1 == str2);
		//false(0x1234 != 0x1235)
		System.out.println(str1 == str3);
		//true("panDa == panDa")
		System.out.println(str1.equals(str3));
		
		//str4表示的是"panDalaoLi"对应的地址值
		//str6表示的是str1的地址值与str5的地址值相加
		System.out.println(str4 == str6);
		//true(str4与str6对应的值是一样的)
		System.out.println(str4.equals(str6));
		//true(sr4与str8对应的常量池地址值是一样的)
		System.out.println(str4 == str8);
		
		//str7 = str7 + "kaixin";
		/**
		 * str7="tiantian",同str1
		 * str7 = str7 + "kaixin",在常量池中重新开辟一个区间,即重新有个地址值
		 */
		Car car1 = new Car("audi");
		Car car2 = new Car("audi");
		System.out.println(car1);
		System.out.println(car2);
		//false(很明显这是new了两个地址)
		System.out.println(car1 == car2);
		//false(car1与car对应的是两个地址值,因为没有重写hashcode与equals方法)
		System.out.println(car1.equals(car2));
		//true(两个对象属性的地址是一样的)
		System.out.println(car1.brand == car2.brand);
		//true(两个对象的属性值是一样的)
		System.out.println(car1.brand.equals(car2.brand));
	}
}

class Car{
	String brand;

	public String getBrand() {
		return brand;
	}

	public void setBrand(String brand) {
		this.brand = brand;
	}
	//构造函数
	public Car(String brand) {
		super();
		this.brand = brand;
	}
}

#2.String常用方法

	public static void main(String[] args) {
		String str1 = "abcdefgabd2345";
		String str2 = "abcd";
		//返回字符串的长度
		System.out.println(str1.length());
		//返回指定位置的字符
		System.out.println(str1.charAt(3));
		//比较两个字符串的值是否相等
		System.out.println(str1.equals(str2));
		//返回形参在字符串中首次出现的位置
		System.out.println(str1.indexOf("de"));
		//返回形参在字符串中最后一次出现的位置
		System.out.println(str1.lastIndexOf("ab"));
		//截取字符串,从第3个位置开始截取
		System.out.println(str1.substring(3));
		//截取字符串片段,从2开始(包含)到5结束(不包含)
		System.out.println(str1.substring(2, 5));
		//字符/字符串替换
		System.out.println(str1.replace("ga", "ll"));
		//字符串替换,基于正则表达式
		System.out.println(str1.replaceAll("\\d", "z"));
		//去除字符串首尾空格
		System.out.println(str1.trim());
		//字符串拼接
		System.out.println(str1.concat("zzz"));
		//字符串分隔符,返回字符串数组
		System.out.println(str1.split("a"));
	}

© 著作权归作者所有

共有 人打赏支持
求是科技
粉丝 89
博文 453
码字总数 228281
作品 0
成都
后端工程师
gradle/Groovy语法

Groovy官网的介绍(http://www.groovy-lang.org/download.html#gvm) Gradle API 文档: https://docs.gradle.org/current/dsl/org.gradle.api.invocation.Gradle.html 深入理解Android(一)......

shareus ⋅ 04/27 ⋅ 0

java开发中的常用的设计模式

设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代...

qq_38024548 ⋅ 05/28 ⋅ 0

百词斩Java程序员面试11个问题,你会几个?2018-04-10

近日,我们在w3cschool app开发者头条上,可以看到百词斩Java程序员面经。 在分享百词斩Java面经前,w3cschool特别给程序员小伙伴们带来一些Java学习干货: 0、学习Java必备的3大神器 如果你...

W3Cschool ⋅ 04/10 ⋅ 0

Android JNI学习(三)——Java与Native相互调用

本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法...

隔壁老李头 ⋅ 05/09 ⋅ 0

JDBC中Class.forName()的作用

使用JDBC时,我们都会很自然得使用下列语句: java 代码 Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://127.0.0.1/test?useUnicode=true&characterEncoding=utf-8"; ......

村长大神 ⋅ 2014/05/09 ⋅ 0

随机模拟 java 数据插件 - Jmockdata

Jmockdata ![License](http://www.apache.o

寻觅一只耳朵 ⋅ 2017/01/05 ⋅ 20

Java开发每日复盘2018_0514

今天主要跟大家分享3个部分: 一、「Java的核心机制」 二、「Java命名规范」 三、「Java数据类型相关」 下面我们来一个一个的说: 「Java核心机制」 Java是一种强制面向对象的解释型语言(O...

ZeroOSTalk ⋅ 05/14 ⋅ 0

java编程新手入门学习的基础语法

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互...

Java小辰 ⋅ 05/28 ⋅ 0

云计算周末班培训:常用虚拟机参数

JVM 虚拟机提供了三种类型参数:标准参数中包括功能和输出的参数都是很稳定的,很可能在将来的JVM版本中不会改变。你可以用 java 命令(或者是用 java -help)检索出所有标准参数。 非标准化...

长沙千锋 ⋅ 05/17 ⋅ 0

Java编程基础知识点和技术点归纳

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互...

Java小辰 ⋅ 05/23 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Cube、Cuboid 和 Cube Segment

1.Cube (或Data Cube),即数据立方体,是一种常用于数据分析与索引的技术;它可以对原始数据建立多维度索引。通过 Cube 对数据进行分析,可以大大加快数据的查询效率 2.Cuboid 在 Kylin 中特...

无精疯 ⋅ 36分钟前 ⋅ 0

github太慢

1:用浏览器访问 IPAddress.com or http://tool.chinaz.com 使用 IP Lookup 工具获得github.com和github.global.ssl.fastly.net域名的ip地址 2:/etc/hosts文件中添加如下格式(IP最好自己查一...

whoisliang ⋅ 38分钟前 ⋅ 0

非阻塞同步之 CAS

为解决线程安全问题,互斥同步相当于以时间换空间。多线程情况下,只有一个线程可以访问同步代码。这种同步也叫阻塞同步(Blocking Synchronization). 这种同步属于一种悲观并发策略。认为只...

长安一梦 ⋅ 48分钟前 ⋅ 0

云计算的选择悖论如何对待?

人们都希望在工作和生活中有所选择。但心理学家的调查研究表明,在多种选项中进行选择并不一定会使人们更快乐,甚至不会产生更好的决策。心理学家Barry Schwartz称之为“选择悖论”。云计算为...

linux-tao ⋅ 51分钟前 ⋅ 0

我的第一篇个人博客

虽然这是个技术博客,但是,我总是想写一些自己的东西,所有就大胆的在这里写下了第一篇非技术博客。技术博客也很久没有更新,个人原因。 以后自己打算在这里写一些非技术博客,可能个人观点...

Mrs_CoCo ⋅ 52分钟前 ⋅ 0

Redis 注册为 Windows 服务

Redis 注册为 Windows 服务 redis 注册为 windows 服务相关命令 注册服务 redis-server.exe –service-install redis.windows.conf 删除服务 redis-server –service-uninstall 启动服务 re......

Os_yxguang ⋅ 52分钟前 ⋅ 0

世界那么大,语言那么多,为什么选择Micropython,它的优势在哪?

最近国内MicroPython风靡程序界,是什么原因导致它这么火呢?是因为他功能强大,遵循Mit协议开源么? 错!因为使用它真的是太舒服了!!! Micropython的由来,这得益于Damien George这位伟大...

bodasisiter ⋅ 55分钟前 ⋅ 0

docker 清理总结

杀死所有正在运行的容器 docker kill $(docker ps -a -q) 删除所有已经停止的容器(docker rm没有加-f参数,运行中的容器不会删掉) docker rm $(docker ps -a -q) 删除所有未打 dangling 标...

vvx1024 ⋅ 今天 ⋅ 0

关于学习

以前学车的时候,教练说了这样的一句话:如果一个人坐在车上一直学,一直学,反而不如大家轮流着学。因为一个人一直学,就没有给自己留空间来反思和改进。而轮流着学的时候大家下来之后思考上...

mskk ⋅ 今天 ⋅ 0

压缩工具之gzip-bzip2-xz

win下常见压缩工具:rar zip 7z linux下常见压缩工具:zip gz bz2 xz tar.gz tar.bz2 tar.xz gzip 不支持目录压缩 gzip 1.txt #压缩。执行后1.txt消失,生成1.txt.gz压缩文件 gzip -d 1.txt....

ZHENG-JY ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部