基本数据类型
布尔类型Boolean:取值只能为true或者false,经常用来做条件判断。
字符类型char:存放字符常量、底层使用16位无符号整型表示。
整型族:包括byte(8位)、short(16位)、int(32位)、long(64位),默认是int,长整形需要加 L 区分。
浮点型族:包括float(32位)、double(64位),默认是double,浮点型常量字面值可使用科学计数法。
为什么要定义使用阶码?
因为浮点数的定义导致的,也是浮点数的表示需求产生的。浮点数是属于有理数中某特点子集的数的数字表示,在计算机中用以近似表示某个任意实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学记数法。
做高精度浮点型运算,尽量使用 java.math.BigDecimal
引用数据类型
String:类类型,其值用双引号引起来
数组数据类型:
接口数据类型:
- java.lang 包下的类可以不用 import 直接使用
- + 对 String 类型是做字符串连接操作
- import 将别人写的类,导入到当前程序中使用
不同进制的数据
二进制:由0,1组成,以0b(b可以小写也可以大写)开头
八进制:由0,1, ,7组成,以0开头
十进制:由0,1, ,9组成,整数默认是十进制的
十六进制:由0,1, ,9,a,c,d,e,f(大小写均可以),以0x开头
ep:输出不同进制表示100的数据。0b100 --> 4,0100 --> 64,100 --> 100,0x100 --> 256
任意进制到十进制的转换
任意进制到十进制的转换原理:把系数 * 基数的权次幂相加即可。系数就是每一位上的数据。基数为X进制,基数就是X。权从右手边第一位,0开始编号,对应位上的编号即为该位的权。
ep:0b 11000 --> 0*2^0 + 0*2^1 + 0*2^2 +1*2^3 + 1*2^4 = 8+16 = 24
十进制到任意进制的转换原理:除积倒取余,在倒取余的时候从上向下取
ep:
原码
原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
ep:通过一个字节,也就是8个二进制位表示 +7 和 -7,7转化为二进制后为 111
0(符号位)0000111, 1(符号位)0000111
反码
正数的反码与其原码相同。负数的反码是对其原码逐位取反,但符号位除外。
ep:00000111, 11111000
补码
在计算机中,数都以补码的形式存放。
正数的补码与其原码相同。负数的补码是在其反码的末位加1。负数的补码求原码:符号位为1,其余各位取反,然后在其末位加1。
ep:00000111, 11111001
操作符
赋值操作符
int a = 10;
- 数据类型要匹配
- 左值只能是变量
- 复合赋值运算符会将右值的类型隐式地转换为左值的类型,可能会造成数据损失
Instanceof
判断对象是否是某一类类型,不能操作基本数据类型。java.lang.Object 所有类的父类
==
对于基本数据类型,判断值是否相等。对于类类型,判断地址是否相同
内存图讲解字符串比较
1