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


×

×

×