文章目录
Java的基本类型有:
byte、short、int、long、float、double、boolean、char、String。
基本类型 | 二进制位数 | 最小值 | 最大值 | 默认值 | 包装器类型 |
---|---|---|---|---|---|
byte | 8 | -128 | 127 | 0 | Byte |
short | 16 | -32768 | 32767 | 0 | Short |
int | 32 | -2147483648 | 2147483647 | 0 | Integer |
long | 64 | -9223372036854775808 | 9223372036854775807 | 0L | Long |
float | 32 | 1.4E-45 | 3.4028235E38 | 0.0f | Float |
double | 64 | 4.9E-324 | 1.7976931348623157E308 | 0.0d | Double |
boolean | – | – | – | false | Boolean |
char | 16 | 0 | 65535 | ‘u0000’ | Character |
String | 40+2*length | – | – | null | – |
参考自:
https://www.runoob.com/java/java-basic-datatypes.html
严格来说String并不是基本的数据类型,而是一个类,但是String类是Java自带的标准库里面的类,可以直接使用,按照我们的使用和习惯,可以把它当成数据类型来看待。
日常使用熟悉int、float、boolean、char、String就够了。
数值型
整型
//可以在声明变量的时候赋值,也可以先声明,之后再赋值
int a = 1; //声明的时候同时赋值
int b;
b = 2; //先声明,再赋值
int c = 3, d, e; //可以同时声明多个变量
其他类型转整型
浮点型转整型
用法:(int)f
参数:f为浮点数
返回:整型数值
float f = 2.56f;
double d = 3.3333;
int a = (int)f;
int b = (int)d;
int c = (int)1.05;
System.out.println(a);
System.out.println(b);
System.out.println(c);
/*
输出:
2
3
1
*/
字符串类转整型
用法:Integer.valueOf(String s)
参数:s为String类
返回:整型数值
String s = "123";
int a = Integer.valueOf();
浮点型
小数默认为double类型,如果要赋值给float类型,则需要在后面加上’f’,否则会报错”从double转换到float可能会有损失“,因为double类型比float精度高。
float f1 = 2.56; // 精度丢失,会报错
float f2 = 2.56f; // 在小数后面加上f转为float型,正确
double d = 3.3333; // 默认精度为double,正确
其他类型转浮点型
整型转浮点型
用法:(float)a、(double)a
参数:a为整数
返回:对应浮点数类型
int a = 1, b = 2;
float f = (float)a;
double d = (double)b;
System.out.println(f);
System.out.println(d);
/*
输出:
1.0
2.0
*/
String类转浮点型
用法:Float.valueOf(String s)
参数:s为String类
返回:浮点型数值
String s = "1.23";
float f = Float.valueOf(s);
字符型
字符
不同于C++的char类型,Java的char类型为两个字节的Unicode 字符,最小值是 \u0000(十进制等效值为 0),最大值是 \uffff(即为 65535),可以保存任何单个字符(包括中文字符)。
/*
直接赋值字符或者ASCII值或Unicode值,效果是相同的
示例的a和b的值都为字符a
*/
char a = 97;
char b = 'S';
char c = '字';
char d = '\u5b57'; // 十六进制的5B57相当于十进制23383
char e = 0x5b57;
char f = 23383; // c、d、e、f的赋值方式是等效的
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
/*
输出:
a
S
字
字
字
字
*/
其他类型转字符
用法:(char)a
参数:a为数字(整型或浮点型)
返回:返回相应的Unicode值,浮点数则转成整数再返回Unicode值(一般不会把浮点数转为字符)
char a = (char)97;
char b = (char)100.5; // 转为100再赋给b
System.out.println(a);
System.out.println(b);
/*
输出:
a
d
*/
字符串
有三种方式对一个String类进行赋值。
String s1, s2, s3;
s1 = "abc"; // 赋值构造
s2 = new String("xyz"); // 对象构造
s3 = s1; // 拷贝构造
其他类型转字符串
用法:String.valueOf(a)
参数:a可以是int、long、float、double、char[]等
返回:String类
int a = 123;
float f = 4.56f;
char []chArr={'a','b','c'};
String sInt = String.valueOf(a);
String sFloat = String.valueOf(f);
String sChArr = String.valueOf(chArr); // sChArr = "abc"
布尔型
关键字为boolean
boolean a = true; // 直接用true和false关键字赋值,a的值为true
boolean b = 3>5; // 用逻辑表达式赋值,b的值为false
boolean c = 1; // **不能用整型数字赋值,会报错**
类型转换
用法:Boolean.valueOf(a)
参数:a可以是true/false关键字、逻辑表达式、字符串等
返回:boolean类型的值
其中字符串的执行过程为:字符串为true(所有字符不分大小写)则返回true,其他返回false
boolean a = Boolean.valueOf(true); // true
boolean b = Boolean.valueOf(3>5); // false
boolean c = Boolean.valueOf("true"); // true
boolean d = Boolean.valueOf("tRuE"); // true
boolean e = Boolean.valueOf("false"); // false
boolean f = Boolean.valueOf("abc"); // false