Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
byte:
byte 数据类型是8位、有符号的,以二进制补码表示的整数;
最小值是 -128(-2^7);
最大值是 127(2^7-1);
默认值是 0;
byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
例子:byte a = 100,byte b = -50。
基本类型:byte 二进制位数:8
包装类:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127
short:
short 数据类型是 16 位、有符号的以二进制补码表示的整数
最小值是 -32768(-2^15);
最大值是 32767(2^15 - 1);
Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
默认值是 0;
例子:short s = 1000,short r = -20000。
基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767
int:
int 数据类型是32位、有符号的以二进制补码表示的整数;
最小值是 -2,147,483,648(-2^31);
最大值是 2,147,483,647(2^31 - 1);
一般地整型变量默认为 int 类型;
默认值是 0 ;
例子:int a = 100000, int b = -200000。
基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647
long:
long 数据类型是 64 位、有符号的以二进制补码表示的整数;
最小值是 -9,223,372,036,854,775,808(-2^63);
最大值是 9,223,372,036,854,775,807(2^63 -1);
这种类型主要使用在需要比较大整数的系统上;
默认值是 0L;
例子: long a = 100000L,Long b = -200000L。
基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807
float:
float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
float 在储存大型浮点数组的时候可节省内存空间;
默认值是 0.0f;
浮点数不能用来表示精确的值,如货币;
例子:float f = 123.4f。
double:
double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
浮点数的默认类型为double类型;
double类型同样不能表示精确的值,如货币;
默认值是 0.0d;
例子:double d = 123.4。
基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308
boolean:
boolean数据类型表示一位的信息;
只有两个取值:true 和 false;
这种类型只作为一种标志来记录 true/false 情况;
默认值是 false;
例子:boolean one = true。
基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38
char:
char类型是一个单一的 16 位 Unicode 字符;
最小值是 \u0000(即为 0);
最大值是 \uffff(即为65、535);
char 数据类型可以储存任何字符;
例子:char letter = ‘A’;。
基本类型:char 二进制位数:16
包装类:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值:Character.MAX_VALUE=65535
String:
创建字符串的几种方法
//最简单的办法是直接给变量赋值
String str1 = "hellow world!";
String str2 = "hellow world!";
//构造函数创建字符串
String str3 = new String("hellow world!");
String 直接创建的字符串存储在公共池中的;
而 new 创建的字符串对象在堆上;
比如说str1和str2其实就是两个指向同一个位置的指针,
而str3通过构造函数创建的字符串有自己的独自的地址。
String常用方法
序号 | 方法描述 |
---|---|
1 | char charAt(int index) 返回指定索引处的 char 值。 |
2 | int compareTo(Object o) 把这个字符串和另一个对象比较。 |
3 | int compareTo(String str)按字典顺序比较两个字符串。 |
4 | int compareToIgnoreCase(String str)按字典顺序比较两个字符串,不考虑大小写。 |
5 | boolean endsWith(String suffix) 测试此字符串是否以指定的后缀结束。 |
6 | boolean equals(Object anObject) 将此字符串与指定的对象比较。 |
7 | boolean equalsIgnoreCase(String anotherString) 将此 String 与另一个 String 比较,不考虑大小写。 |
8 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)将字符从此字符串复制到目标字符数组。 |
9 | int indexOf(int ch)返回指定字符在此字符串中第一次出现处的索引。 |
10 | int indexOf(String str) 返回指定子字符串在此字符串中第一次出现处的索引。 |
11 | int lastIndexOf(int ch)返回指定字符在此字符串中最后一次出现处的索引。 |
12 | int lastIndexOf(int ch, int fromIndex)返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。 |
13 | int length()返回此字符串的长度。 |
14 | String replace(char oldChar, char newChar)返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。 |
15 | String substring(int beginIndex)返回一个新的字符串,它是此字符串的一个子字符串。 |
16 | String substring(int beginIndex, int endIndex)返回一个新字符串,它是此字符串的一个子字符串。 |
17 | String toString() 返回此对象转换为一个字符串。 |
18 | String trim() 返回字符串的副本,忽略前导空白和尾部空白。 |
19 | static String valueOf(primitive data type x) 返回给定data type类型x参数的字符串表示形式。 |
20 | isEmpty()判断字符串是否为空。 |
创建字符串数组
//直接赋值
String[] str = {"hello", " ", "world", "!"};
//通过构造函数创建字符串数组
String[] str1 = new String [10];
String[] str2 = new String[]{"abc", "cde"};
//通过构造字符串列表的方式构造字符串数组(推荐使用)
ArrayList<String> str3 = new ArrayList<String> ()