文档章节

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"));
	}

© 著作权归作者所有

共有 人打赏支持
求是科技
粉丝 89
博文 453
码字总数 228281
作品 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
JDBC操作MySQL(crud)

类库链接(mysql-connector-java-5.1.37-bin.jar):http://files.cnblogs.com/files/xujingyang/mysql-connector-java-5.1.37-bin.zip 1.1 JDBC概述 JDBC(Java Data Base Connectivity,java数......

sandshell
08/04
0
0
Apache CXF 整合 Map

在进行编码前有必要对一些基本的认识进行介绍,以便后面的讲解。 1、JAXB: JAXB能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON,这...

yaokangjun
2014/08/21
0
1
学习JVM是如何从入门到放弃的?

只有光头才能变强 JVM在准备面试的时候就有看了,一直没时间写笔记。现在到了一家公司实习,闲的时候就写写,刷刷JVM博客,刷刷电子书。 学习JVM的目的也很简单: 能够知道JVM是什么,为我们...

Java3y
07/11
0
2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

python3.6 取整除法

python3.6 中取整除法运算逻辑如下: d 非零,那么商 q 满足这样的关系: a = qd + r ,且0 ≤ r n1=7//3#7 = 3*2 +1n2=-6.1//3#-7 = 3*(-3)+2'{},{}'.format(n1,n2) 从运行结果可以...

colinux
19分钟前
0
0
阶段总结——用虚拟机搭建一个高可用负载均衡集群架构

[toc] linux基本知识已经介绍完,现有一个业务需要操作,通过对这个项目的操作,可以复习、总结、巩固之前的知识点; ** 用13台虚拟机搭建一个高可用负载均衡集群架构出来,并运行三个站点,...

feng-01
22分钟前
0
0
mysql 设置utf8字符集 (CentOS)

1.查看数据库及mysql应用目前使用的编码方式 (1)链接mysql 客户端 (2)执行:status 结果: 2.修改mysql 应用的字符编码(server characterset ) (1)打开配置文件:vim /etc/mysql/my...

qimh
22分钟前
0
0
windows无法格式化u盘解决方法

1。点开始-运行-输入cmd-format f: /fs: fat32 (这里f:是指U盘所在盘符) 这个格式化会很慢 请耐心等待

大灰狼wow
34分钟前
0
0
MySql 8.0连接失败

原来,MySql 8.0.11 换了新的身份验证插件(caching_sha2_password), 原来的身份验证插件为(mysql_native_password)。而客户端工具Navicat Premium12 中找不到新的身份验证插件(caching_s...

放飞E梦想O
51分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部