关键字:
>定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
>特点:关键字中所有字母都为小写
8中基本数据类型:
数据类型 | 所占字节(B) | 取值范围 | 默认值 |
---|---|---|---|
byte(字节型) | 1 | -128~127 | 0 |
short(短整型) | 2 | -215~215-1 | 0 |
int(整型) | 4 | -231~231 | 0 |
long(长整型) | 8 | -263~263 | 0 |
float(单精度浮点型) | 4 | -3.4E38~3.4E38 | 0.0 |
double(双精度浮点型) | 8 | -1.7E308~1.7E308 | 0.0 |
char(字符型) | 2 | ’ '(空格字符) | |
boolean(布尔型) | 只有True和False | false |
基本数据类型之间的运算规则:
这里讨论只是7中基本数据类型变量间的运算,不包含Boolean类型。
Boolean型不可以转化成其他的数据类型。
1.自动类型提升:
当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。(这里的容量大小指的是表示数的范围的大和小,比如float容量大于long型)
byte,char,short—>int—>long—>float—>double
特别的:当byte,char,short三种类型的变量做运算时,结果为int型。
2.强制转换类型:(自动类型提升运算的逆运算)
当高级别的值赋给低级别的变量时,必须使用强制类型转换;
需要使用强制转符:()
注意:强制类型转换可能导致精度损失。
class Hello{
public static void main(String[] args){
//精度损失举例1:
double d1 = 12.9999;
int i1 = (int)d1; //截断操作
System.out.println(i1);
//>输出结果为:12
int i2 = 128;
byte s2 = (byte)i2;
System.out.println(s2);
//>输出结果为:-128
}
}
3.特殊情况:
/*
整型常量,默认类型为int型。
浮点型常量,默认类型为double型
*/
class Hello{
public static void main(String[] args){
//(一)
long i = 12345;//此时编译能通过,因为12345还在int范围内。
long j = 23542554656;//此时编译不能通过,j的赋值大于int型上限。
//正确写法:
long j = 23542554656L;
//需要在数值后面加上L或l才能转换成long型。
//(二)
float x = 12.3;//编译错误
//正确写法:
float x = 12.3f;//或者 float x = (float)12.3;
short s = 1;
s = s + 2;//编译不通过,发生了自动类型转换,(s+2)为int型,左边的s还是short型,作为接收参数等级低于int型。
}
}
引用数据类型
String类型、数组类型、接口、类
字符串类型:String
String不是基本数据类型,属于引用数据类型,翻译为:字符串
使用方式与基本数据类型一致,例如:String str = “abcd”;使用String时必须使用:“”;
一个字符串可以串接另一个字符串,也可以直接串接其他类型的数据。
可以与8种基本数据类型进行运算,且只能是连接(+)运算,运行结果仍为String类型。
String s = "";//合法
char c = '';//编译错误
String str1 = 123;//编译不通过
String str1 = 123 + "";//编译正常
进制转换:
进制名称 | 数字范围 | 方法 | 说明 |
---|---|---|---|
二进制 | 0,1 | 满2进1 | 以0b或0B开头 |
八进制 | 0~7 | 满8进1 | 以数字0开头 |
十进制 | 0~9 | 满10进1 | |
十六进制 | 09及AF | 满16进1 | 以0x或0X开头 |
.所有数字在计算机底层都以二进制形式存在
.计算机以二进制补码的形式保存所有的整数。
真值:
1:机器数的第一位是符号位,后边的才是真正的数值,所以机器数的形式值就不等于真正的数值。</