JAVA学习(String类,基本数据类型对象)
一、String类
1.String类的特点:
(1).字符串对象一旦被初始化就不会被改变。
(2).字符串创建后会存储在字符串常量池(字符串缓冲区)中。若池中有该字符串,则创建的对象直接引用该字符串。
String s = “abc” 与 String s1 = new String("abc") 的区别:
String s = “abc” 在字符串常量池中创建一个字符串“abc”并把其地址赋值给了对象s。
String s1 = new String("abc") 在堆内存中使用new创建了一个String对象,同时在构造该对象的时候接收了一个字符串对象“abc“,这些操作并没有涉及到字符串常量池。
所以对象s 与 对象s1 所引用的字符串虽然都是“abc“ 但是二者所引用的地址值并不相同。
2.String类的常见功能:
(1)获取
1.1获取字符串长度。
length();
1.2返回指定索引处的字符
charAt(int index);
1.3返回指定字符在此字符串中第一次出现指定字符的索引
indexOf(int ch);
indexOf(int ch, int fronIndex); //功能相同,从指定位置开始搜索。
indexOf(String str); //也可以搜索字符串类型
indexOf(String str, int fronIndex);
1.4返回指定字符在此字符串中最后一次出现指定字符的索引
LastIndexOf(int ch);
LastIndexOf(int ch, int fronIndex); //功能相同,从指定位置开始搜索。
LastIndexOf(String str); //也可以搜索字符串类型
LastIndexOf(String str, int fronIndex);
1.5返获取字符串中一部分字符串,它是此字符串的一个子串
substring(int beginIndex); //指定开始位置。
substring(int beginIndex,int endIndex); //指定开始,与结束位置。
(2)转换
2.1将字符串转换为字符串数组(字符串的切割)
split(String regex); //使用正则表达式对字符串进行相应的切割。
2.2将字符串转换为字符数组
toCharArray(); //保留每一个字符,组合成为新的字符串数组。
二、基本数据类型对象包装类
为了方便操作数据基本类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作。
用于描述该对象的类就称为基本数据类型对象包装类。
| 数据类型 | 类 |
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| char | Character |
| boolean | Boolean |
1.常用功能
(1)字符串与基本类型之间的转换:
基本类型——>字符串
1.基本类型数值+“”
2.使用String类中的静态方法valueOf(基本类型数值);
字符串———>基本类型
1.使用包装类中的静态方法xxx parseXxx(“xxx类型的字符串”);
例如:int parseInt("intstring");
long parseLong("longstring");
........
Character没有parsefangfa
2.如果字符串被Integer对象封装
可以使用另一个非静态的方法 intValue();
将一个对象转化为基本的数据类型值。
例如:Integer i = new Integer(“123”);
System.out.println(i.intValue()); //将字符串“123”,转换为值123输出
(2)进制转换
1.十进制——>其他进制
Integer.toBinaryString(60); //转二进制
Integer.toOctalString(60); //转八进制
Integer.toHexString(60); //转16进制
2.其他进制转十进制
Integer.parseInt("X进制的字符串",X);
(3)自动装箱拆箱
1.自动装箱,简化书写
Integer i = 4; // 与Integer i = new Integer(); 相等
2.自动拆箱
i = i + 6; // 等价于 i = new Integer(i.intValue()+6); 本质上i是一个对象
3.jdk1.5以后。自动装箱,如果装箱的是一个字节,那么该数据会被共享不会开辟新的空间。

浙公网安备 33010602011771号