一、Java基本数据类型
Java语言提供了8种基本类型。6种数字类型(4个整数型,2个浮点型),1种字符类型,还有1种布尔型。
1.整数类型
Java的整数都是有符号的,用二进制表示都是补码形式(最高位0表示正,1表示负)。没有C中的unsigned
无符号类型。
-
byte 字节类型
大小:8 bit;
范围:-128 ~ 127;
默认值:0; -
int 整型
大小:32 bit;
范围:-2,147,483,648(-2^31)~ 2,147,483,647(2^31 - 1)
默认值:0; -
short 短整型
大小:16 bit;
范围:-32768(-2^15)~ 32767(2^15 - 1);
默认值:0; -
long 长整型
大小:64 bit;
范围:-9,223,372,036,854,775,808(-2^63)~ 9,223,372,036,854,775,807(2^63 -1);
默认值:0;
2.浮点数/小数类型
-
float 浮点型
大小:32bit;
精度:单精度;
默认值:0.0f; -
double 浮点型
大小:64bit;
精度:双精度;
默认值:0.0d; -
浮点数可以用科学计数法表示,如:
float f1 = 3.14f;
float f2 = 3.14e38f; // 科学计数法表示的3.14x10^38
double d = 1.79e308;
double d2 = -1.79e308;
double d3 = 4.9e-324; // 科学计数法表示的4.9x10^-324
注:当变量类型为float时,需要在加上f或F后缀,表明其精度类型。
3.字符类型
字符型char表示的是一个单一的 16 位 Unicode 字符;
- char 字符型
范围:\u0000
~\uffff
例如:char Char = 'A';
4.布尔类型
布尔类型就是true 或 false,没什么好说的。
例如:boolean T = true;
每个数据类型所占bit,以及最大最小值都是可以通过类似以下的方式查看的。
5.引用类型
首先说明,引用类型不属于基本的数据类型,引用类型的变量类似于C语言的指针,内部存储的是一个地址。Java的引用跟C++中的引用概念是类似的,可以说是为了干掉指针这个复杂的东西而衍生的。
引用类型最常用到的就是字符串类型String
,如定义一个字符串:String str = "string";
二、变量&常量
1.变量
变量定义:
- 方法1(只定义):
类型 + 变量名,如:int a;
- 方法2(定义并赋值):
类型 变量名 = 变量值,如:int a=1;
变量命名的规则:
- 必须以英文字母开头,后接字母,数字和下划线的组合
2.常量
变量是可以重新赋值的,常量的值在定义时初始化后不可再修改。
定义常量使用关键字final
,如:
final double PI = 3.14; // PI是一个常量
三、运算符
Java最基本的运算符包括:
-
算术运算符
包括加减乘除,+
、-
、*
、/
,以及自加、自减:++
、--
。 -
关系运算符
关系是指:==
相等、!=
不相等、>
大于、>=
大于等于、<
小于、<=
小于等于。 -
位运算符
C中经典的位运算Java中也有,即:&
位与、|
位或、^
位异或、~
位取反、<<
左移位、>>
右移位,还有一个>>>
右移补零,先不管他。 -
逻辑运算符
包括:&&
逻辑与、||
逻辑或、!
逻辑非。 -
赋值运算符
由等号=
赋值结合位运算符而来,有以下这些:
+ =
、- =
、* =
、/ =
、% =
、<< =
、>> =
、&=
、^ =
、| =
。 -
其他运算符
如,条件运算符:x?y:z
,也称三元运算符。
Java的运算符基本与C语言的一致,学习过C可以直接跳过这部分。
四、数组和字符串
1.数组
Java定义数组的方式与C有点不同,定义方法如下:
类型+[]+数组名,如:
int[] array;
//定义一个整型数组array
使用C/C++中的方法(int array[]
)也是可以的,但不推荐。
- 定义操作举例:
- 定义并初始化数组:
int[] array = {
1, 2, 3, 4, 5};
- 定义一个大小为10的整型数组:
int[] array = new int[10];
- 使用new操作符初始化:
int[] array = new int[] {
1, 2, 3, 4, 5};
- 访问数组元素
使用索引访问数组的元素:
int[] array = {
1, 2, 3, 4, 5};
a = array[0]; // a = 1
- Java数组特点
- 数组所有元素初始化为默认值,整型都是0,浮点型是0.0,布尔型是false;
- 数组创建后大小不可改变。
2.字符串
- 字符和字符串的区别
Java的字符类型char
,占16bit,也就是2个字节。比C语言中的char多出一个字节,因此它可以存储范围更大的Unicode字符。Unicode编码无论是英文还是中文都采用两个字节存储,关于Unicode的介绍:Unicode。
字符串是一连串的字符,至少包含2个字符。
- 表示
Java字符串类型String
是引用类型,用双引号"..."
表示字符串。如:
String s = ""; // 空字符串,包含0个字符
String s1 = "A"; // 包含一个字符
String s2 = "ABC"; // 包含3个字符
String s3 = "中文 ABC"; // 包含6个字符,其中有一个空格
双引号表示的是单行的字符串,当需要表示包括换行在内的多行字符串时,可以用三个双引号表示(从java 13开始),如:
public class Main {
public static void main(String[] args) {
String s = """
Hello
world
!!!
""";
System.out.println(s);
}
}
打印出来的结果是这样的:
Hello
world
!!!
- 转义字符
当我们需要在字符串中显示双引号或其他特殊的字符如回车换行(\r\n)等字符时,就会用到转义字符,如:
String Str = "this is \"this\""; //字符串Str的内容是: this is "this"
因为在"..."
之间再加入双引号会造成干扰,这里用\"
表示为"
,\"
就是转义字符。
常见的转义字符如下:
\"
表示字符"
\'
表示字符'
\\
表示字符\
\n
表示换行符
\r
表示回车符
\t
表示Tab
\u####
表示一个Unicode编码的字符
- 连接字符串
可以使用+
符号连接两个字符串,例如:
public class Main {
public static void main(String[] args) {
String s1 = "Hello";
String s2 = "world";
String s = s1 + " " + s2 + "!";
System.out.println(s);//hello world!
}
}