数据类型
强类型语言
- 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
弱类型语言
Java的数据类型分为两大类
-
基本类型(primitive type)
1、四种整数类型(byte、short、int、long)
byte:8 位,用于表示最小数据单位,如文件中数据,-128~127
short:16 位,-32768 ~ 32767
int:32 位,-231-1~231 (21 亿)
long:64 位
2、两种浮点数类型(float、double)
float:32 位,后缀 F 或 f
double:64 位,最常用,后缀 D 或 d
3、一种字符类型(char)
char:16 位,是整数类型,用单引号括起来的 1 个字符(可以是一个中文字符)
注意事项: 不能为 0个字符。
转义字符:\n 换行 \r 回车 \t Tab 字符 " 双引号 \ 表示一个\ 两字符 char 中间用“+”连接,内部先把字符转成 int 类型,再进行加法运算,char 本质就是个数!二进制的,显示的时候,经过“处理”显示为字符。
4、一种布尔类型(boolean)
true 真 和 false 假
5、类型转换
char--> 自动转换:byte-->short-->int-->long-->float-->double
强制转换:
①会损失精度,产生误差,小数点以后的数字全部舍弃。
②容易超过取值范围
-
引用类型(reference type)
类
接口
数组
例子:
public class Demo03 { public static void main(String[] args) { //整数扩展: // 进制: 二进制0b 十进制 八进制0 十六进制0x int i=10; int i2=010; //八进制 int i3=0x10; //十六进制 0-9 A-F 16 System.out.println(i); System.out.println(i2); System.out.println(i3); System.out.println("========================================="); //浮点数拓展: //银行业务怎么表示?钱 BigDecimal 数学工具类 //float 有限 离散 舍入误差 大约 接近但不等于 //double //最好完全避免使用浮点数进行比较 //最好完全避免使用浮点数进行比较 //最好完全避免使用浮点数进行比较 float f=0.1f; //0.1 double d=1.0/10; //0.1 System.out.println(f); System.out.println(d); System.out.println(f==d); //false float d1=3123112312313123131f; float d2=d1+1; System.out.println(d1==d2); //true System.out.println("========================================="); //字符拓展 char c1='a'; char c2='中'; System.out.println(c1); System.out.println((int)c1); //强制转换 System.out.println(c2); System.out.println((int)c2); //强制转换 //所有的字符本质还是数字 //编码 Unicode 表(97=a 65=A) 2字节 65536=2的16次方 Excel 65536 //U0000 UFFFF \ u代表转译 char c3='\u0061'; //这里61是十六进制=65,用\是表示后面是转移字符,用u是unicode的缩写,表示后面是一个unicode字符。其实只是写法问题。 System.out.println(c3); //转义字符 //\t 制表符 //\n 换行 //\a 响铃 //\b 退格 //\f 换页 //\r 回车 //\v 垂直制表 //\0 空字符 //\ddd 1到3位八进制数所代表的任意字符 //\xhh 1到2位十六进制所代表的任意字符 System.out.println("========================================="); String sa=new String("123"); String sb=new String("123"); System.out.println(sa==sb); //false String sc="123"; String sd="123"; System.out.println(sc==sd); //true //对象 从内存分析 //布尔值扩展 boolean flag=true; if(flag){} if(flag==true){} //Less is More!代码要简单易读 } }
浙公网安备 33010602011771号