基本数据类型
- 逻辑类型:boolean
- 整数类型:byte、short、int、long
- 字符类型:char
- 浮点类型:float、double
逻辑类型
常量:true、false
变量:关键字boolean来声明
整数类型
-
1.int型
- 常量:十进制,八进制,十六进制都可以
- 变量:关键字int来声明(分配4个字节内存) 2.byte型
- 常量:不存在常量表示法,但可以把一定范围内的int型常量复制给byte型变量
-
变量:关键字byte来声明(分配1个字节内存)
可以使用强制转换运算来表示,例如:(byte)-12
3.short型
- 常量:同byte型
-
变量:关键字short来声明(分配2个字节内存)
可以使用强制转换运算来表示,例如:(short)-12
4.long型
- 常量:用后缀L来表示
-
变量:关键字long来声明(分配8个字节内存)
注:没有无符号的byte,short,long
字符类型
常量:用单引号括起Unicode表中的一个字符
变量:关键字char来声明(分配2个字节内存)
注:最高位不是符号位;没有负数的char,可以用字符在Unicode中排序位置的十六进制转义来表示:’ \u**** ’,可用(int)’A’表示 ;char型是无符号的
转义字符 | 意义 |
---|---|
\n | 换行 |
\b | 退格 |
\t | 水平制表 |
\’ | 单引号 |
\” | 双引号 |
\\ | 反斜线 |
浮点类型
-
1.float型
- 常量:后面 必须⎯⎯⎯⎯⎯⎯⎯⎯ 要有后缀f或F,例:2e40f( 2×1040 )
- 变量:关键字float来声明(保留8位有效数字,分配4个字节内存) 2.double型
- 常量:后面 可以⎯⎯⎯⎯⎯⎯⎯⎯ 有后缀d或D
- 变量:关键字double来声明(保留16位有效数字,分配8个字节内存)
类型转换
- 按精度从低到高:
byte short char int long float double - 级别低 → 级别高时,系统自动转换
- 级别高 → 级别低时,必须使用类型转换
输入输出数据
输入
Scanner reader = new Scanner(System.in); //创建一个reader对象 //nextBoolean(),nextByte(),nextShort() //nextInt(),nextLong(),nextFloat(),nextDouble()
输出
System.out.printf("格式控制部分",表达式1,表达式 2,……,表达式n); System.out.println("字符串"+变量)
格式符号:
%d:输出int型
%c:输出char型
%f:输出浮点型,最多保留6位小数
%s:输出字符串
%md:输出的int型数据占m列
%m.nf:输出的浮点型数据占m列,小数保留n位
数据类型封装类
*逻辑类型:Boolean,
*整数类型:Byte, Short, Integer, Long
*字符类型:Character
*浮点类型:Float, Double,
Void (表示有void的class对象的引用,占位符)
有时候数据要以对象的形式出现,此时用封装类就能避免问题,封装类中还有一些其他便捷的方法。
区别:
1. 基本数据类型只能传值,封装类传的是对象的引用
2. 基本数据类型在堆栈中创建,封装类的对象在堆中创建,但是对象的引用在堆栈中创建,因此基本数据类型效率高,但容易内存泄漏