String

1.String类在java.lang包下,所以使用时不需要导包

2.java程序中所有双引号字符串,都是String类对象

3.字符串的特点

(1)字符串不可变,他们的值在创建后不能被更改

(2)虽然String的值是不可变的,但他们可以被共享

(3)字符串效果上相当于字符数组(char[]),但是底层原理是字节数组(byte[])

4.字符串对象直接输出,打印在控制台的不是地址值,而是字符串形式

5.构造字符串对象的三种方式

(1)无参构造:new String();

(2)字符数组构造:new String(char[]);

(3)字节数组构造:new String(byte[]);//字节数组输出的不是数字,而是字符连成字符串的形式

(4)双引号赋值:String s = "abc";

6.idealz中的快捷键\

(1)Ctrl + Alt +L ;//格式化

(2)Ctrl + /;单行注释

(3)Ctr + shift +/;//多行注释

(4)Ctrl + shift + 空格;//内容提示唤醒

(5)psvm +回车;//mian方法

(6)sout+回车;//输出语句

(7)ctrl + alt +v;//快速生成返回值

7.

String对象的特点

(1)通过new创建的字符串对象,每一次new就会申请一次内存空间,虽然内容相同,但地址值不同

(2)以""给出的字符串对象,只要字符的顺序和大小相同,无论程序中出现几次,jvm都只会创建一个String类对象,在堆内存的常量池中维护

8.

" "创建的字符串对象存储在堆内存的常量池中,如果后续需要用到顺序和大小写都相同的""创建的字符串,不需要重新创建对象,会直接用常量池中已经创建好的对象.例如:

String s1 = "abc";

String s2 = "abc";//s1 和s2是同一个对象,他们的地址值相同.

9.

常量池在堆内存中

10.

使用 == 做比较

(1)基本数据类型:比较的是数据值是否相同

(2)引用数据类型:比较的是地址值是否相同

String类是引用数据类型,因此直接使用 == 进行比较,比较的是地址值是否相同,而不是其数据值,要比较字符串的数据值,需要使用equals()方法.(简单的说就是:字符串内容的比较用equals实现)

11.

布尔类型在堆内存中的默认值是false

12.

关键字全部小写

13.

字符串的遍历

(1)字符串的索引是从0开始

(2)需要用到的方法

public int length();//返回字符串的长度

public char charAt(int index);//返回指定索引处的字符,字符串的索引从0开始

14.

字符类型char参与算术运算与关系运算的时候,使用的是底层存储的ASCII码,

例如

char > 'A';//这里是与'A'存储在底层的数据65相比较

15.

堆内存中存储的数据,使用完毕后会在垃圾回收器空闲时被回收

16.

引用数据类型存储的变量所存储的值为null,直接输出在控制台不会报错,会在控制台打印出null,而null常量直接输出在控制台会报错

17.

整数相除,结果只能得到整数,想要得到小数,必须有浮点数参与,例如 :

int a= 10;

int b = 3;

double c = a / b;//c的值为3.0

18.

使用除法进行计算的时候,要特别注意整数的除法,看结果是否需要得到小数.整数相除只能得到整数

19.

java中数组定义后,数组的长度是不可以改变的

20.

数组中最后一个元素的下表是a.length -1

21.

遍历字符串的两个方法

(1)求字符串的长度:s.length();

(2)获取指定索引处的字符:charAt(index);//字符的索引也是从0开始

22.

判断字符在a-z,A-Z,和字符在0-9之间

char c = s. charAt(index);

(1)判断字符在a-z之间 :c >= 'a'  && c <= 'z';

(2)判断字符在A-Z之间:c >= 'A' && c <= 'Z';

(3)判断字符在0-9之间:c >= '0' && c <= '9';

23.

字符串的拼接:将数组遍历,采用字符串拼接的方法将数组变为字符串形式,并将字符串在控制台打印

(简单的说就是将数组变为字符串,然后在控制台输出,直接输出数组名打印得到是地址.)

24.

字符串的charAt()返回值类型是一个char类型

25.

String中的equals()方法是严格区分大小写的

26.

charAt()方法的返回值是char

27.

String类中的常用方法

(1)char charAt(int indext);//返回指定索引处的字符

(2)int length();//返回此字符串的长度

(3)boolean equals(String s);//判断字符串的内容是否相同,严格区分大小写

(4)boolean endsWith(String s);//判断字符串是都以s结尾

28.

因为字符串不可变,所以在使用" "进行字符串拼接的时候,会比较浪费内存空间,为了解决这个问题,java提供了StringBuilder这个类来解决这个问题,StringBuilder是一个可变的字符串序列

29.

String 和 StringBuilder 的区别在于

(1)String类对象是不可变的

(2)而StringBuilder类的对象是可以改变的

30.

StringBuilder的构造方法

(1)StringBuilder();//无参构造,创建空白的可变字符串对象

(2)StringBuilder(String s);//根据字符串内容,来创建可变的字符串对象

31.

StringBuilder是可变的字符串对象

32.

(1)直接输出数组名,打印在控制台的是地址值

(2)直接输出字符串,打印在控制台的是字符串(重写了toString方法)

(3)直接输出StringBuilder,打印在控制台的是字符串(重写了toString方法)

33.

重写了toString方法的类的实例对象,都是直接在控制台打印该对象的堆内存中的内容

34.

StringBuilder的添加方法:StringBuilder append(任意类型);//,添加数据,并返回该对象本身

35.

StringBuilder的反转方法;StringBuilder reverse();将字符串的序列反转,返回反转的字符串对象本身

36.

StringBuilder:可变的字符串

37.

StringBuilder 和 String相互转换

(1)StringBuilder转化为String:String toString();//将可变字符串转化为String类,StringBuilder类的方法

(2)String转化为StringBuilder:   StringBuilder(String s);//通过StringBuilder构造方法将String类变为StringBuilder类对象

38.

使用穷举法最重要的是要判读数据的取值范围

39.

数组可以转换成字符串类型并打印在控制台

40.

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值