文档章节

java --常用类(String)

求是科技
 求是科技
发布于 2016/10/03 18:41
字数 736
阅读 10
收藏 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"));
	}

© 著作权归作者所有

共有 人打赏支持
求是科技
粉丝 91
博文 439
码字总数 226317
作品 0
成都
后端工程师
私信 提问
JAXB Annotation初步使用

JAXB(Java Architecture for XML Binding简称JAXB)允许Java开发人员将Java类映射为XML表示方式。JAXB提供两种主要特性:将一个Java对象序列化为XML,以及反向操作,将XML解析成Java对象。换...

秋风醉了
2014/07/02
0
0
JDBC(Java Data Base Connectivity,java数据库连接)

JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。 Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法,JDBC对...

冰雷卡尔
2012/06/03
0
0
黑马程序员---面向对象之String类创建对象的一点思考

-------------------------android培训、java培训、期待与您交流! ------------------------- 最近在上黑马论坛时经常有同学问到关于String类创建对象的问题,最多的就是诸如:String str ...

长平狐
2013/07/01
77
0
【翻译】Java中String, StringBuffer, StringBuilder的区别

String 是 Java 中最重要的类之一,并且任何刚开始做Java编程的人,都会用String定义一些内容,然后通过著名的System.out.println()语句来打印出来。 然而,很多Java新手都不会意识到 String...

YuanyuanL
2014/09/03
0
4
JDK 中常用的包

JDK 中常用的包 Java 私塾跟我学系列——JAVA 篇 配合Java 私塾课堂实录学习视频,可以事半功倍。 视频地址:www.javass.cn/javapeixunzlxz/zlxz.html java.lang----包含一些 Java 语言的核心...

luodis
2010/12/23
690
0

没有更多内容

加载失败,请刷新页面

加载更多

oh-my-zsh 自定义

GitHub 地址 基于 oh-my-zsh 的自定义配置,增加了一些个人常用插件与皮肤。 采用的是 git submodule 来维护,包括 oh-my-zsh,之所以这么搞,主要是手头有多台 linux 需要维护, 每台机器、...

郁也风
今天
4
0
Docker安装踩坑:E_FAIL 0x80004005的解决

参考 菜鸟教程--Windows Docker 安装 http://www.runoob.com/docker/windows-docker-install.html 官方文档-Install Docker Toolbox on Windows https://docs.docker.com/toolbox/toolbox_in......

karma123
今天
4
0
js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
17
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
27
0
"errcode": 41001, "errmsg": "access_token missing hint: [w.ILza05728877!]"

Postman获取微信小程序码的时候报错, errcode: 41001, errmsg: access_token missing hint 查看小程序开发api指南,原来access_token是直接当作parameter的(写在url之后),scene参数一定要...

两广总督bogang
昨天
31
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部