String类

String

Java.lang.String类代表不可变的字符序列

String 类的常见构造方法:

StringString s

String char [] value

两种创建方式:

1. String  s1 = new String(“abc”);

2.  String  s2 = abc”;

String  s3 = abc”;

这两种创建方式创建的两个对象 s1 s2 的字面值相同,但是内存地址不相同。这是因为前者创建的时候在内存开辟空间同时还要在常量池(堆里的一块特殊区域)中创建一个对象,而后者在创建对象时只在常量池中创建对象,若再用这种方法创建一个s3,则先到常量池中看看有没有已存在的字面值,若有就直接用s3引用它而不是重新再开辟空间。

因此,在进行字符串比较时,如果用“==”来比较,则 s2s3 的结果为true,而s1s2 的结果为false

内存分配关系:

 

 

 

S3

S2

Abc

                         

上图是使用第二种方法创建对象时的内存分配情况

 

 

 

S2

S1

Abc

Abc

                                  

此图是使用第一种方法创建对象时的内存分配情况

 

举例说明不可变性:

 

 

 

 

S1

 

S1

1111

Abc

 

Bcd

 

                   

String  s1 = new String(Abc);

String  s1 = new String (“Bcd”);

首先创建了一个String类型的变量并赋值为“Abc,如果再执行一遍并为其赋值为“Bcd,则结果是在内存中又开辟了一块名为s1的空间,用来存放“Bcd”,二不是将第一次创建的s1的值改为“Bcd

只要用了new 这个关键字那么一定会在内存中重新开辟空间

 

字符串的连接

1.使用“+”进行连接

2.使用 public  String concatString str)进行连接,连接完成后必须用一个变量引用它才能使用。

例如: String  s2 =abc”; s2= s2.concat(“ef”);

这样 s2 的值变为abcdef ,如果只写s2.concat(“ef”),s2的值还是abc

 

字符串比较:

1.                        使用“= =”进行比较,这种方法比较的是内存地址,即它判断的是存放在栈里的值,比较是否引用同一个对象,如果是返回true,否则返回false

2.                        使用equals方法进行比较,这种方法比较的是堆里的值,即字面值,相等返回true,不等则返回false

 

String类的常用方法

通过查找API文档学会使用String类的各种方法

可以用valueof()将基本数据类型转换为字符串。

包装类

  Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class),有些地方也翻译为外覆类或数据类型类。

         包装类均位于java.lang包,包装类和基本数据类型的对应关系如下表所示:

包装类对应表

基本数据类型

包装类

byte

Byte

boolean

Boolean

short

Short

char

Character

int

Integer

long

Long

float

Float

double

Double

 

包装类的实际使用(以Integer为例):

1. 实现int Integer  类之间的转换,具体方法如下:

Int   n =10

Integer  in =new Integer100);

//int类型转换为Integer类型

Integer in1 = new Integer(n);

//Integer类型的对象转换为int类型

Int m = in.intValue();

2. Integer 类内部的常用方法

Parselnt

public static int parseInt(String s)

该方法的作用是将数字字符串转换为int数值。在以后的界面编程中,将字符串转换为对应的int数字是一种比较常见的操作。使用示例如下:

                                     String s = “123”;

                                     int n = Integer.parseInt(s);

int变量n的值是123,该方法实际上实现了字符串和int之间的转换,如果字符串都包含的不是都是数字字符,则程序执行将出现异常。

其他方法查找API

StringBuffer

代表可变的字符串序列

可以被修改   字符串拼接用append()方法

 

 

 

不懂,为什么在word里面画好的示意图在这里显示不出来呢?

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值