强类型语言
要求变量的使用要严格符合规定,所有变量都必须先定义后使用
弱类型语言
Java的数据类型分为两大类
基本类型(primitive type)
数值类型
整数类型
byte 占一个字节 范围:-128~127
short 占2个字节 范围:-32768~32767
int 占4个字节 范围:-2147483648~2147483647
long 占8个字节 范围:-9223372036854775808~9223372036854775807
浮点类型
float 占4个字节
double 占8个字节
字符类型 char 占2个字节
Boolean类型:占1位,值只有ture和false
引用类型(reference type)
类
接口
数组
//八大基本数据类型 //整数 int num1 = 10;//最常用 byte num2 = 20; short num3 = 30; long num4 = 30L;//long类型在数字后面加个L //小数:浮点数 float num5 = 20.1F;//float类型后加个F double num6 = 3.1415926; //字符 char name1 = 'l'; //字符串,String不是关键字,类 String name2 = "lizhikun"; //布尔值:是非 boolean flag0 = true; boolean flag1 = false;
字节
位(bit):是计算机内部储存的最小单位,11001100是一个8位二进制数
字节(byte):是计算机中数据处理的基本单位,习惯上用B来表示
1B=8bit
字符:是指计算机中使用的字母、数字、字和符号
1bit表示1位,1byte表示一个字节,1024B=1KB , 1024KB=1M,1024MB=1G
扩展
整数
进制:二进制0b 十进制 八进制0 十六进制0x
int i1 = 10; int i2 = 010;//八进制 int i3 = 0x10;//十六进制 int i4 = 0b10;//二进制
浮点数
//银行业务可使用 BigDecima 数学工具类 //float 有限 离散 舍入误差 大约 接近但不等于 //double //最好完全避免使用浮点数进行比较 //最好完全避免使用浮点数进行比较 //最好完全避免使用浮点数进行比较 float f = 0.1f; double d = 1.0/10; System.out.println(f==d); System.out.println(f); System.out.println(d); float d1 = 2323232322132232121f; float d2 = d1+1; System.out.println(d1==d2);
字符
char c1 = 'a'; char c2 = '中'; System.out.println(c1); System.out.println((int)c1);//强制转换 System.out.println(c2); System.out.println((int)c2); //所有字符的本质还是数字 //Unicode编码 2字节 0~65535 2^16=65536 //U0000-UFFFF char c3 ='\u0061'; System.out.println(c3);
转义字符
1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377' \0:空字符 2.Unicode转义字符:\u + 四个十六进制数字;0~65535 \u0000:空字符 3.特殊字符:就3个 \":双引号 \':单引号 \\:反斜线 4. \r 回车 \a 响铃(BEL) \b 退格(BS),将当前位置移到前一列 \f 换页(FF),将当前位置移到下页开头 \n 换行(LF),将当前位置移到下一行开头回车(CR),将当前位置移到本行开头 \t 水平制表(HT)(跳到下一个TAB位置) \v 垂直制表(VT) \\ 代表一个反斜线字符"\” \' 代表一个单引号((撇号)字符 \" 代表一个双引号字符 \? 代表一个问号 \0 空字符(NUL) \ddd 1到3位八进制数所代表的任意字符 \xhh 十六进制所代表的任意字符 点的转义:. ==> u002E 美元符号的转义:$ ==> u0024 乘方符号的转义:^ ==> u005E 左大括号的转义:{ ==> u007B 左方括号的转义:[ ==> u005B 左圆括号的转义:( ==> u0028 竖线的转义:| ==> u007C 右圆括号的转义:) ==> u0029 星号的转义:* ==> u002A 加号的转义:+ ==> u002B 问号的转义:? ==> u003F 反斜杠的转义: ==> u005C
布尔类型
boolean flag = ture; if (flag==ture){} if (flag){} //上面两行是一样的