数据类型汇总
基本数据类型
8种基本数据类型
1 | public class TypeDemo1 { |
基本数据类型转换
引用数据类型转换
String类
String类概述
String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例。也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象。String 类在 java.lang 包下,所以使用的时候不需要导包!
String类的特点
- 字符串不可变,它们的值在创建后不能被更改
- 虽然 String 的值是不可变的,但是它们可以被共享
- 字符串效果上相当于字符数组( char[] ),但是底层原理是字节数组( byte[] )
String类的构造方法
常用的构造方法
| 方法名 | 说明 |
| —————————————- | ————————————————————- |
| public String() | 创建一个空白字符串对象,不含有任何内容 |
| public String(char[] chs) | 根据字符数组的内容,来创建字符串对象 |
| public String(byte[] bys) | 根据字节数组的内容,来创建字符串对象 |
| String s = “abc”; | 直接赋值的方式创建字符串对象,内容就是abc |示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21public class StringDemo01 {
public static void main(String[] args) {
//public String():创建一个空白字符串对象,不含有任何内容
String s1 = new String();
System.out.println("s1:" + s1);
//public String(char[] chs):根据字符数组的内容,来创建字符串对象
char[] chs = {'a', 'b', 'c'};
String s2 = new String(chs);
System.out.println("s2:" + s2);
//public String(byte[] bys):根据字节数组的内容,来创建字符串对象
byte[] bys = {97, 98, 99};
String s3 = new String(bys);
System.out.println("s3:" + s3);
//String s = “abc”; 直接赋值的方式创建字符串对象,内容就是abc
String s4 = "abc";
System.out.println("s4:" + s4);
}
}
创建字符串对象两种方式的区别
通过构造方法创建
通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同
直接赋值方式创建
以“”方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都只会建立一个 String 对象,并在字符串池中维护
字符串的比较
==号的作用
- 比较基本数据类型:比较的是具体的值
- 比较引用数据类型:比较的是对象地址值
equals
方法的作用
方法介绍
1
public boolean equals(String s) 比较两个字符串内容是否相同、区分大小写
示例代码
1 | public class StringDemo02 { |
常用的方法:
1
2
3
4
5
6
7
8
9
10
11
12 >public char charAt(int index) //返回指定索引处的 char 值。
>public char[] toCharArray() //将此字符串转换为一个新的字符数组。
>public static String valueOf(char[] data) //返回 char 数组参数的字符串表示形式。
>public boolean equals(Object anObject) //将此字符串与指定的对象比较。当且仅当该参数不为 null,并且是与此对象表示相同字符序列的 String 对象时,结果才为 true。
>public int compareTo(String anotherString) //按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。
>public int compareTo(String anotherString) //按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。
>public String substring(int beginIndex,int endIndex) //返回一个新字符串,它是此字符串的一个子字符串。
>public String concat(String str) //将指定字符串连接到此字符串的结尾。 和StringBuilder的append一样
>public boolean contains(CharSequence s) //当且仅当此字符串包含指定的 char 值序列时,返回 true
>public String toLowerCase(Locale locale) //使用给定 Locale 的规则将此 String 中的所有字符都转换为小写
>public String toUpperCase(Locale locale) //使用给定 Locale 的规则将此 String 中的所有字符都转换为大写。
>public String trim() //返回字符串的副本,忽略前导空白和尾部空白。
StringBuilder
1 | public class Test{ |
StringJoiner
接下来,我们学习一个类叫做StringJoiner,学习这个类干嘛用呢?是因为我们前面使用StringBuilder拼接字符串的时,代码写起来还是有一点麻烦,而StringJoiner号称是拼接神器,不仅效率高,而且代码简洁。StringJoiner添加时是.add(),StringBuilder是.append(),主要用于处理需要以某种分隔符连接元素的场景,例如构建 CSV、SQL 语句等。
1 | public class Test{ |
常见类型转换
1 | // 数字转换为字符串 |
使用案例讲解
数组都有一个.length的方法,注意这里没有小括号
1 | class Solution { |
Integer
1 | valueOf: |
从Java 9开始,Integer
类引入了一些新的静态方法,例如 sum
, max
, min
等,以提供更多对整数的处理支持。