①.定义: 在程序执行过程当中,其值不能够发生改变html
②.分类:json
整数常量: 全部整数数组
小数常量: 全部小数优化
字符常量: 用单引号括起来的内容,里面只能放单个数字/单个字母/单个符号(能够是空格字符,但不能什么都不放)spa
字符串常量: 用双引号括起来的内容(长度能够为0,即空字符串"")code
布尔常量: 只有true和falsehtm
空常量: nullblog
①.意义: Java是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配配了不一样大小的内存空间接口
②.分类: 基本数据类型, 引用数据类型内存
基本数据类型(4类8种): 整数型, 浮点型(小数型), 字符型, 布尔型
类型 | 种类 | 占用字节大小 | 取值范围 |
整数型 | byte | 一个字节 | -128 ~ 127 |
short | 两个字节 | -2^15 ~ 2^15-1 | |
int | 四个字节 | -2^31 ~ 2^31-1 | |
long | 八个字节 | -2^63 ~ 2^63-1 | |
浮点型 | float | 四个字节 | 单精度 |
double | 八个字节 | 双精度 | |
字符型 | char | 两个字节 | 0 ~ 65535 |
布尔型 | boolean | 无明确大小 | true 和 false |
引用数据类型: 字符串, 数组, 类, 接口等
注意:
a.Java中整数默认是int类型, 小数默认是double类型
b.给变量赋值时, 若是是float/long类型, 须要在变量值后加F或L作标识(建议用大写字母)
③.数据类型转换
隐式转换: 数据范围由小 -> 大
int a = 10; byte b = 20; 隐式转换: a = a+b; //计算时,系统会默认把byte类型提高为int类型
强制转换: 数据范围由大 -> 小
int a = 10; byte b = 20; 强转格式: b = (byte) (a+b); //计算时,a+b结果默认是int
注意: 若是超出了被赋值变量的数据类型的取值范围,则整数会数据溢出, 小数会损失精度
①定义: 在程序执行过程当中,在某个范围内其值能够发生改变的量
②格式: 数据类型 变量名 = 变量值;
注意:
a.同一区域内不能使用相同的变量名
b.局部变量在使用以前必须先赋值(若是只声明而不使用,能够不赋值)
c.一条语句能够定义多个变量(栗子: int a,b,c ... ;)
d.变量使用不能超过其做用域范围(栗子: 局部代码块内声明的变量只在该代码块{}内有效)
☆.拓展:
①.变量相加和常量相加的区别:
byte a = 3; byte b = 4; //变量相加 byte c1 = a+b; //常量相加 byte c2 = 3+4; 结论: 变量相加: 变量存储的值是变化的,在编译时没法判断该变量具体的值,相加的结果可能会超出byte取值范围 常量相加: Java编译器有常量优化机制,3和4提高为int在计算后会判断其结果是否在byte取值范围内
②.混合运算时的类型转换:
1.整数型,浮点型,字符型的混合运算: byte,short,char -> int -> long -> float -> double 1).byte,short,char之间不会相互转换,都会自动提高为int类型; 2).其余类型进行混合运算时,小的数据类型会自动提高为大的;
2.字符和字符串参与运算: 任何数据类型用+号与字符串相链接,都会产生新的字符串
栗子: 'a'+1: 输出98(ASCII码表中,a字符对应int数值97) (char)('a'+1): 输出b字符 "hello"+'a'+1: 输出helloa1 'a'+1+"hello": 输出98hello
③.ASCII码表
↓ASCII码对照表,请戳这里:↓