一.字符型详解(char)
字符型 char 占用 2 个字节,char 类型的字面量必须使用半角的单引号括起 来,取值范围为[0-65535],char 和 short 都占用 2 个字节,但是 char 可以取到更大的正整数, 因为 char 类型没有负数。char支持科学计数。(没有超出char的取值范围可以直接赋值给char变量。)
char a = 97
System.out.println(a);//结果为a
char b = 65
System.out.println(b);//结果为A
二.整数型详解
整数型数据在 java 中有 4 种表示方式,分别是二进制,八进制,十进制,十六进制。二进制以0b开头,八进制以0开头,十进制以1开头,十六进制以0x开头。
System.out.println("二进制:" + 0b10); //结果为2
System.out.println("八进制:" + 010); //结果为8
System.out.println("十进制:" + 10); //结果为10
System.out.println("十六进制:" + 0x10); //结果为16
注:①整数类型默认为int:在程序中只要遇到整数型 的数字,该数字会默认被当做 int 类型来处理。如果想表示 long 类型则需要在字面量后面添加 L/l,建议大写 L。②如果整数型字面量没有超出 byte,short,char 的取值范围,可以直接将其赋值给 byte,short,char 类型的变量。
三.浮点类型详解
float f = 3.0;
System.out.println(f); //会报错,”从double转换到float可能会有损失,类型不兼容“
注:浮点型的字面量(例如 3.0、3.01 等)会默认被当做 double 类型来处理,如果想让程序将其当做 float 类型来处理,需要在字面量后面添加 f/F。
四.布尔类型详解
主要用于逻辑判断语句中。它只有两种值分别为true和false。
五.转义字符
转义字符是指用一些简单的字符组合代表一些特殊的字符,改变了原意,称为转义字符。
常见的有:\t,\n,\u,\\,\',\",其中\t 代表制表符,\n 是换行符,\\表示一个普通的\字符, \'表示一个普通的',\"表示一个普通的"。
六.自动类型提升
指在Java中小容量赋值给大容量(除boolean类型意外都可以相互转换)。
byte a = 123;
Int b = a; //小转大自动类型提升
当两个操作数有一个为double时,运算结果为 double 没有double,出现float,结果为float 没有float,出现long,结果为long 没有long,出现int,结果为int 除long类型外,其余整数类型运算结果均为int类型。
容量从小到大的排序为: Byte -> short -> int -> long -> float -> double
七.强制类型转换
大容量赋值给小容量,称为强制类型转换,编写时必须添加“强制类型转换符”,否则运行会出现精度损失。
Long b =1234L;
Int c = (int)b; //需要强制类型转换
八.运算符
算术运算符:
(+ - / * % ++ --)
+(两个数字求和)、-(两个数字相减)、*(两个数字乘积)、/(两 个数字相除)、%(两个数字取模或者求余)、++(单目运算符,对数字自加 1)、--(单目 运算符,对数字自减 1)
关系运算符:
(> < >= <= == !=)
主要是用于完成两个数据之间的比较。结果为true和false两种。
注:比较两个字符串是否相等,不能使用“==”,必须调用 equals *** 。
逻辑运算符:
(& | ! && ||)
&(逻辑与,两个结果为真则真,为假则相反)、|(逻辑或,一个为真则为真,两个为假则假)、!(逻辑非,取相反结果)、&&(短路与,当左侧的结果为真时,则后面的不在判断)、||(短路或,当左侧的结果为真时,则后面的不在判断)。
赋值运算符:
= += -= *= /= %=
例:byte a = 1;
a = a+ 1; //会报错,类型转换异常
a += 1; //编译通过并可以正常运行
a是 byte 类型,1 是 int 类型,byte 和 int 混合运算最后结果是 int 类型,int 类型的值无法直接赋值给 byte 类型的变量 b,所以编译报错。
这种运算符对类的赋值运算符进行了特殊的处理,所有的扩展赋值运算符,最终都不会改变运算的结果类型,假设前面的变量是 byte 类型,那么后面的表达式运算之后的结果还是 byte 类型。