分类
- 基本数据类型:
- 数值型
- byte
- short
- int
- long
- float
- double
- 字符型(char)
- 布尔型(boolean)
- 数值型
- 引用数据类型
- 类(class)
- 接口(interface)
- 数组(array)
- 枚举类型
例如enum Size{small,medium,large};表示定义一个只有三种值的数据类型,声明格式:Size s=Size.small;
位数及表示范围及默认值
数据类型 | 内存大小 | 表示范围 | 默认值 |
---|---|---|---|
long | 8B (Byte) | 。。。 | 0 |
int | 4B | -2147483648~2147483647 | 0 |
short | 2B | -32768~32767 | 0 |
byte | 1B | -128~127 | 0 |
char | 2B | 0~65535 | null |
boolean | boolean数组中1B,单独使用4B | true/false | false |
float | 4B | -3.4E38(-3.4x10^38)~3.4E38 | 0.0f |
double | 8B | -1.7E308~1.7E308 | 0.0d |
引用数据类型 | null |
各数据类型的属性
- 最大值:MAX_VALUE
- 最小值:MIN_VALUE
- 位数:SIZE
- 类型:TYPE
需要注意的是,使用属性时,需要加上各数据类型的包装类:数据类型 属性调用方法 long Long.属性,如Long.MAX_VALUE short Short.属性 int Integer.属性 byte Byte.属性 float Float.属性 double Double.属性
字符类型
- 不能直接用 ’ '将一些字符赋值给字符变量,这时就需要转义字符:
输入示例:义字符 意义 f 换页 b 倒退一格 r 归位 t 跳格 n 换行 |反斜线 ’ 单引号 " 双引号 char a='a'; char b='\\'';代表字符' char c=96; String d="\\"";为了说明问题这里用String举例
关于字符编码问题
- java默认使用Unicode编码,一个字符占两字节;
- java中可以将一个中文字符当作字符处理,c++只能当作字符串处理
- 大写字母与小写字母之间ASCII码值相差32
最后输出结果是65和’a’public class CharToInt{ public static void main(String args[]){ char c='A'; int x=c; System.out.println(x); x=x+32; c=(char)x; System.out.println(c); } }
数据类型转换
自动转换条件:
- 转换前后数据类型要相互兼容,如整型和浮点型,字符型和整型,但布尔型不能跟其他类型转换,浮点型和字符型不能互相转换;
- 转换后的数据类型表示范围不能小于转换前的,比如,double不能转成float;
自动转换规律:
- 当两个变量数据类型不一样时,按照表示范围从小到大实现转换;
- 低字节类型数据与高字节类型数据运算,结果转变为高字节类型数据;
强制数据类型转换和自动数据类型转换区别
int a=10;
int b=3;
float g,h;
g=a/b;//g输出结过为3.0
h=(float)a/b;//h输出结果为3.333333
另外,强制类型转换可以将表示范围大的转为表示范围小的。
不同数据类型进行二元运算转换规则
- 布尔值无法与其他数据类型进行二元运算
- 字符型与其他类型进行二元运算会被转换为其他数据类型,包括byte类型。
- 如果二元运算中含有一个double型数据,其他数据会被转换为double。
- 否则,如果二元运算中含有一个float型数据,其他数据会被转换为float。
- 否则,如果二元运算中含有一个long型数据,其他数据会被转换为long。
- 否则,如果二元运算中含有一个int型数据,其他数据会被转换为int。