1.Java基本数据类型
Java一共有八种基本数据类型:byte、short、int、long、float、double、char、boolean
他们之间的对比可以参考下面的表格:
描述 | 最大值 | 最小值 | 默认值 | 用法 | 例子 | |
byte | byte 数据类型是8位、有符号的,以二进制补码表示的整数; | 127 (2^7-1) | -128 (-2^7) | 0 | byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一; | byte a = 50; |
short | short 数据类型是 16 位、有符号的以二进制补码表示的整数 | 32767(2^15 - 1) | -32768 (-2^15) | 0 | Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一 | short s = 10000; |
int | int 数据类型是32位、有符号的以二进制补码表示的整数 | 2147483647 (2^31 - 1) | -2147483648 (-2^31) | 0 | 一般地整型变量默认为 int 类型 | int a = 100000; |
long | long 数据类型是 64 位、有符号的以二进制补码表示的整数 | 9223372036854775807(2^63 -1) | -9223372036854775808(-2^63) | 0L | 这种类型主要使用在需要比较大整数的系统上 | long l = 100000L |
float | float 数据类型是单精度、32位、符合IEEE 754标准的浮点数 | 3.4E+38 | -3.4E+38 | 0.0f | 浮点数不能用来表示精确的值,如货币 | float f = 1.2f |
double | double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数 | 1.7E+308 | -1.7E-308 | 0.0d | 浮点数的默认类型为 double 类型;double类型同样不能表示精确的值,如货币 | double d1 = 7D;double d2 = 7.; double d3 = 8.0; double d4 = =8.D; double d5=12.9867; |
char | char 类型是一个单一的 16 位 Unicode 字符 | \u0000(0) | \uffff(65535) | 0 | char 数据类型可以储存任何字符 | char a = 'A' |
bollean | boolean数据类型表示一位的信息 | 只有两个值true和false | false | 这种类型只作为一种标志来记录 true/false 情况 | boolean b = true |
数据类型的转化:
根据上边的表格可以看出各个类型存储范围由小到大依次为:
byte ->short(char)->int->long->float->double
隐式类型转换:隐式转换也叫作自动类型转换, 由系统自动完成,从存储范围小的类型到存储范围大的类型。
显示类型转换:显示类型转换也叫作强制类型转换, 是从存储范围大的类型到存储范围小的类型(可能会丢失精度)。
2.常见操作符
算数操作符
主要包括数学运算中常见的加(+)、减(-)、乘(*)、除(/)、取余(%)、自加(++)、自减(--)。重点说一下自加和自减,当++或者--在变量后边的时候(i++)是先取值后运算,反之(++i)先运算后取值。
位操作符
位操作符主要分为:与(AND)&、或(OR)|、异或(XOR)^、取反(NOT)~、移位操作符(<<,>>>,>>)。
主要介绍一下位移操作符:
问:怎么快速的计算2的10次方?
答:2<<9
<<,左移一位相当于乘以2,将操作数向左移动,空出的低位用0补齐
>>,右移一位相当于除以2,将操作数向右移动,空出的高位是用0补齐还是1补齐要看原来移位之前的最高位是0还是1.如果移位之前最高位是0,则空出的高位全部补0,如果移位之前的最高位是1,则空出的高位全部补1
>>>,将操作数向右移动,空出的高位全部用0补齐,忽略正负
比较操作符
比较运算符包括:>、<、==、!=、<=、>=六种。比较操作符基本上只能用于比较基本数据类型,比较操作符比较的是数值的二进制,注意:小数默认是以double的形式存的。
==和!=可以用来判断引用类型是否相同
引用数据类型:数组、接口、类
再用==和equals判断的不同和相关问题我会在后边儿详细叙述,希望各位点赞关注支持一下!
逻辑操作符
逻辑运算符主要有四种:&(与)、|(或)、短路与(&&)、短路或(||)
短路与如果第一个条件为false,则不论第二个条件为什么都会返回false;
短路或如果第一个条件为true,则不论第二个条件为什么都会返回true;
与、或则会把前后两个条件都进行判断后返回结果。
3.访问权限修饰符
共有四种访问修饰符:public(公开的)、protected(受保护的)、default(默认的)、private(私有的),他们的区别如下表格:
当前类 | 同包 | 子类 | 其他类 | |
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |