整数类型:(默认值为0)
byte:Byte(包装类) 1字节,8位,最大存储数据量是255,存放的数据范围是-128~127之间。
short:Short 2字节,16位,最大数据存储量是65536,数据范围是-32768~32767之间。
int:Integer 4字节,32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。
long:Long 8字节,64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。
浮点类型: (默认值为0.0)
float:Float 4字节,32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。
double:Double 8字节,64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。
字符型: (默认值为'\u0000')
char:Character 2字节,16位,存储Unicode码,用单引号赋值。
布尔型: (默认值为false)
boolean:Boolean 只有true和false两个取值,JVM没有明确布尔类型的大小,有些书上写1个bit,有些书上是1个字节。
引用类型: (默认值为null)
计算机中衡量 大小 使用的单位:
bit(位)<byte(字节)< kb < mb < gb < tb < pb
1 byte = 8 bit 1 kb = 1024 byte 1 mb = 1024 kb 以此类推...
变量:程序运行时可变的量
整型变量:
byte :又叫字节类型变量,表示的是整数,占用1个字节,数据范围(-128 ~ +127)
public static void main(String[] args) { byte b = 127;//不能直接赋值一个超过范围的数据 System.out.println(b+1);//但可以打印(b+1) }
short :短整型变量,占用2个字节,数据范围(-32768 ~ +32767)
public static void main(String[] args) { short s = 10; System.out.println(s); }
int :整型变量,占用4个字节,数据范围(-2^31 ~ 2^31-1)
public static void main(String[] args) { int a = 10; System.out.println(a); int _a3 = 100; int $a4 = 999; int _________ = 10000; System.out.println(_________); }
long :长整型变量,占用8个字节,数据范围(-2^63 ~ 2^63-1)
public static void main(String[] args) { long a = 10L;//10L、10l都可以 System.out.println(a); System.out.println(Long.MAX_VALUE);//查看长整型变量最大值 System.out.println(Long.MIN_VALUE);//查看长整型变量最小值 }
浮点数变量:
float :单精度浮点型变量,占用4个字节,数据范围(3.4e-45 ~ 1.4e38),直接赋值时必须在数字后加上f或F,同样遵守 IEEE 754 标准,由于表示的数据精度范围较小, 一般在工程上用到浮点数都 优先考虑 double, 不太推荐使用float
public static void main(String[] args) { float f = 12.5f;//必须带F或f System.out.println(f); }
double : 双精度浮点型变量,占用8个字节,数据范围(4.9e-324 ~ 1.8e308),赋值时可以加d或D也可以不加,浮点数的内存布局和整数差别很大, 不能单纯的用 2 ^ n 的形式表示数据范 围,遵守 IEEE 754 标准
public static void main(String[] args) { double num = 1.1;//可以加d或D,也可以不加 System.out.println(num*num);//在电脑的世界当中 小数是没有一个最精确的。 //他只能最精确到小数点后几位。。。。 float 6位 double a = 1.0; double b = 2.0; System.out.println(a/b);//使用int计算时会舍弃小数部分,使用double则不会 }
字符变量 :
char : 字符类型变量,占用2个字节,使用单引号+单个字母的形式表示字符字面值,字符本质上是一个整数,C语言中ASCII表示字符,而在Java中使用 Unicode 表示字符
public static void main(String[] args) { char ch = 'g';//单引号的叫做字符 , 双引号的叫做字符串 char ch2 = '学'; char ch3 = 33; System.out.println(ch3); }
布尔类型变量:
boolean :布尔类型变量,只有true和false两个取值,JVM没有明确布尔类型的大小,有些书上写1个bit,有些书上是1个字节
public static void main(String[] args) { boolean flg = true;//只有2个值 true false System.out.println(flg); }
字符串类型变量(引用类型):
String :字符串类型变量,使用双引号+若干字符的形式表示字符串字面值,字符串中的一些特定的不太方便直接表示的字符需要进行转义
public static void main(String[] args) { String name = "My name is \"张三\"";// 创建一个字符串 My name is "张三" System.out.println(name); }
字符串的 + 操作 , 表示字符串拼接,比如:String a = "hello"; String b = "world"; String c = a + b; System.out.println(c);// c输出为 hello world
还可以将字符串和整数拼接,比如:
int a = 10; int b = 20; System.out.println("a = " + a + ",b = " + b)//输出为 a = 10,b = 20
变量的作用域 :
指的就是变量定义的代码块,也就是大括号。
变量的命名规则 :
- 一个变量名只能包含数字、字母、下划线
- 数字不能开头
- 变量名对字母大小写十分敏感
注意:语法上允许中文、美元符号($)命名变量,但是不推荐!
常量:运行时类型不能发生改变
字面值常量:10 // int 字面值常量 ( 十进制 )010 // int 字面值常量 ( 八进制 ) 由数字 0 开头 . 010 也就是十进制的 80x10 // int 字面值常量 ( 十六进制 ) 由数字 0x 开头 . 0x10 也就是十进制的 1610L // long 字面值常量 . 也可以写作 10l ( 小写的 L)1.0 // double 字面值常量 . 也可以写作 1.0d 或者 1.0D1.5e2 // double 字面值常量 . 科学计数法表示 . 相当于 1.5 * 10^21.0f // float 字面值常量 , 也可以写作 1.0Ftrue // boolen 字面值常量 , 同样的还有 false'a' // char 字面值常量 , 单引号中只能有一个字符"abc" // String 字面值常量 , 双引号中可以有多个字符
final 关键字修饰的常量:
final int A = 10; //a一般用final修饰时用大写,最终变量a定义为10,不能在程序运行过程中修改 a = 20; // 编译出错. 提示 无法为最终变量a分配值