一、数值类型
Java中的数值类型分为整数型和浮点型。其中,整数型有byte、short、int和long四种类型,它们的取值范围分别为-128~127、-32768~32767、-2147483648~2147483647和-9223372036854775808~9223372036854775807。而浮点型又分为单精度浮点型float和双精度浮点型double,其中float的取值范围为3.4e-45~3.4e38,double的取值范围为1.7e-308~1.7e308。
public class NumericTypes{
public static void main(String[] args){
byte a = 100;
short b = 20000;
int c = 1000000;
long d = 10000000000L; //需要在数字后添加字母L或l来表示长整型
float e = 1.23456789f; //需要在数字后添加字母F或f来表示单精度浮点型
double f = 1.234567890123456789;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
}
}
在以上示例代码中,我们定义了不同类型的数值变量,并且通过System.out.println()方法来分别输出它们的值。
二、布尔类型
布尔类型即boolean类型,它的取值只有两个,即true和false,用于表示逻辑上的真或假。在Java中,通常将布尔类型用于条件判断和循环控制语句的判断条件。
public class BooleanType{
public static void main(String[] args){
boolean a = true;
boolean b = false;
boolean c = 10 > 5; //条件成立,c的值为true
boolean d = 10 < 5; //条件不成立,d的值为false
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
}
}
在以上示例代码中,我们定义了不同类型的布尔变量,并且通过System.out.println()方法来分别输出它们的值。
三、字符类型
字符类型即char类型,表示单个字符,字符必须使用单引号括起来。在Java中,char类型使用Unicode编码,因此可以表示各种语言的字符。
public class CharType{
public static void main(String[] args){
char a = 'a';
char b = '中';
System.out.println(a);
System.out.println(b);
}
}
在以上示例代码中,我们定义了两个char类型的变量,并且通过System.out.println()方法来分别输出它们的值。
四、自动类型转换
在Java中,不同类型的变量之间可以相互转换,但是需要考虑数据类型的兼容性。如果两个数据类型兼容,那么就可以将其中一个类型的变量赋值给另一个类型的变量,Java会自动将数据类型进行转换。
当我们将容纳范围小的数据类型的值赋值给容纳范围大的数据类型时,Java会自动将小范围类型转换为大范围类型。例如,将byte转换为int:
public class AutoConvert{
public static void main(String[] args){
byte a = 100;
int b = a;
System.out.println(b);
}
}
在以上示例代码中,我们定义了一个byte类型的变量a,将其赋值为100,然后自动将a转换为int类型,并赋值给b,最后输出b的值。
当我们将浮点型转换为整型时,Java会进行截断操作。例如,将double转换为int:
public class FloatToInt{
public static void main(String[] args){
double a = 3.1415926;
int b = (int) a;
System.out.println(b);
}
}
在以上示例代码中,我们定义了一个double类型的变量a,并将其赋值为3.1415926。然后将a转换为int类型,并赋值给b,最后输出b的值。
五、手动类型转换
在有些情况下,Java会自动类型转换可能会导致数据的丢失,因此需要手动进行类型转换。手动类型转换有两种方式:向上转型和向下转型。
向上转型是指将容纳范围小的数据类型转换为容纳范围大的数据类型,这种转换不会导致数据的丢失。例如,将int类型转换为long类型:
public class UpwardConvert{
public static void main(String[] args){
int a = 100;
long b = (long) a;
System.out.println(b);
}
}
在以上示例代码中,我们定义了一个int类型的变量a,然后将a转换为long类型,并赋值给b,最后输出b的值。
向下转型是指将容纳范围大的数据类型转换为容纳范围小的数据类型,这种转换可能会导致数据的丢失。例如,将long类型转换为int类型:
public class DownwardConvert{
public static void main(String[] args){
long a = 10000000000L;
int b = (int) a;
System.out.println(b);
}
}
在以上示例代码中,我们定义了一个long类型的变量a,然后将a转换为int类型,并赋值给b。由于int类型最大只能容纳2147483647,因此会导致数据的丢失,最后输出b的值。
六、字符串类型
在Java中,字符串类型是非基本数据类型,字符串变量的值可以被赋值为一个字符串字面值或者一个字符串变量。Java中的字符串是不可变的,也就是说,字符串一旦被创建,就不能再被修改。
public class StringType{
public static void main(String[] args){
String str1 = "Hello";
String str2 = "World";
String str3 = str1 + " " + str2;
System.out.println(str3);
}
}
在以上示例代码中,我们定义了三个字符串变量str1、str2和str3,分别赋值为"Hello"、"World"和str1+" "+str2。注意,在Java中,+号既可以用于数值类型的加法,也可以用于字符串的拼接。最后输出str3的值。
七、数组类型
数组是一种特殊的数据类型,用于存储同一类型的多个元素。在Java中,数组可以是一维的,也可以是多维的。
public class ArrayType{
public static void main(String[] args){
int[] numbers = {1, 2, 3, 4, 5};
String[] names = {"Tom", "Jerry", "Mike", "John"};
System.out.println(numbers[0]);
System.out.println(names[1]);
}
}
在以上示例代码中,我们定义了两个数组变量numbers和names,分别存储整数和字符串类型的数据。然后通过数组下标来访问数组中的元素,并分别输出第一个整数和第二个字符串。
八、枚举类型
枚举类型是一种特殊的数据类型,用于表示一组常量。在Java中,枚举类型通过enum关键字来定义,其中每个枚举常量都是相应类型的实例对象。
public class EnumType{
enum Gender{
MALE, FEMALE;
}
public static void main(String[] args){
Gender gender = Gender.MALE;
System.out.println(gender);
}
}
在以上示例代码中,我们定义了一个枚举类型Gender,其中包含两个常量MALE和FEMALE。然后我们定义了一个Gender类型的变量gender,并将其赋值为Gender.MALE。最后输出gender的值。