Java数据类型和运算符

Java数据类型和运算符

数据类型

在Java中变量的数据类型分为两种,即基本数据类型和引用数据类型。Java中所有的数据类型如下所示:

基本数据类型

  • 数值型:分为整数类型byte(字节型),shot(短整型),int(整型),long(长整形)和浮点类型float(单精度浮点数),double(双精度浮点数)。
  • 字符型:char
  • 布尔型:boolean

整数类型所占存储空间大小以及取值范围如下表所示:

类型名 占用空间 取值范围
byte         8位(1个字节)      

-2^7~2^7-1             

short 16位(2个字节)       

-2^15~2^15-1

int 32位(4个字节)          

-2^31~2^31-1

long 64位(8个字节)    

-2^63~2^63-1

两种浮点类型中,double型所表示的浮点数比float型更精确。两种浮点数所占存储空间大小以及取值范围如下表所示:

类型名 占用空间 取值范围
float      32位(4个字 节)   

1.4E-45~3.4E+38,-1.4E-45~-3.4E+38            

double     64位(8个字节)    

4.9E-324~1.7E+308,-4.9E-324~-1.7E+308

在为变量赋值时,应注意以下几点:

  • 为一个long类型的变量赋值时,在赋值的后面要加上小写字母l(或大写字母L),若赋值未超出int类型的取值范围则小写字母l(或大写字母L)可省略不写。
long num=2200000000L;//所赋值超出int类型的取值范围,后面必须加上字母L。
long num=198L;//所赋值未超出int类型的取值范围,后面可以加上字母L。
long num=198;//所赋值未超出int类型的取值范围,后面可以不加字母L。 
  • 在Java中,一个小数会被默认为double类型的值,因此在为一个float类型的变量赋值时,赋值后面一定要加上小写字母f(或大写字母F),而为double类型的变量赋值时,复制后面可加可不加小写字母d(或大写字母D)。
float f=123.4f;//为一个float类型变量赋值,赋值后面必须加上f
double d=100.1;//为一个double类型变量赋值,赋值后面可以不加d
double d=100.1d;//为一个double类型变量赋值,赋值后面可以加上d
  • Java中每个char类型的字符变量都会占用2个字节,在给char类型的变量赋值时,需要用一对英文半角格式的单引号' '把字符括起来,如char c='a';,当然了,也可以将char类型的变量赋值为0~65535范围内的证书,计算机会自动将这些整数转化为所对应的字符,如char c=97;就相当于赋值字符a,即char c='a';
  • 布尔类型变量用于存储布尔值,该类型的变量只有两个值,即true和false。
boolean flag=true;
boolean flag=false;


引用数据类型

  • 类:class
  • 接口:interface
  • 数组
  • 枚举:enum
  • 注解:annotation

(后续会详细介绍)

Java运算符

Java中运算符分为算数运算符,赋值运算符,比较运算符,逻辑运算符和位运算符。每种运算符及其用法如下表:

算数运算符

 

 

操作符描述例子
+

加法 - 相加运算符两侧的值

A + B 等于 30
-

减法 - 左操作数减去右操作数

A – B 等于 -10
*

乘法 - 相乘操作符两侧的值

A * B等于200
/

除法 - 左操作数除以右操作数

B / A等于2

取余 - 左操作数除以右操作数的余数

B%A等于0
++

自增: 操作数的值增加1

B++ 或 ++B 等于 21(区别详见下文)
--

自减: 操作数的值减少1

B-- 或 --B 等于 19(区别详见下文)

 

赋值运算符

 

操作符描述例子
=

简单的赋值运算符,将右操作数的值赋给左侧操作数

C = A + B将把A + B得到的值赋给C
+ =

加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数

C + = A等价于C = C + A
- =

减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数

C - = A等价于C = C -  A
* =

乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数

C * = A等价于C = C * A
/ =

除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数

C / = A等价于C = C / A
(%)=

取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数

C%= A等价于C = C%A
<< =

左移位赋值运算符

C << = 2等价于C = C << 2
>> =

右移位赋值运算符

C >> = 2等价于C = C >> 2
&=

按位与赋值运算符

C&= 2等价于C = C&2
^ =

按位异或赋值操作符

C ^ = 2等价于C = C ^ 2
| =

 按位或赋值操作符

C | = 2等价于C = C | 2

 

比较运算符

 

运算符描述例子
==

检查如果两个操作数的值是否相等,如果相等则条件为真。

(A == B)为假。
!=

检查如果两个操作数的值是否相等,如果值不相等则条件为真。

(A != B) 为真。

检查左操作数的值是否大于右操作数的值,如果是那么条件为真。

(A> B)为假。

检查左操作数的值是否小于右操作数的值,如果是那么条件为真。

(A <B)为真。
>=

检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。

(A> = B)为假。
<=

检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。

(A <= B)为真。

逻辑运算符

 

操作符描述例子
&&

称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。

(A && B)为假。
| |

称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。

(A | | B)为真。

称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。

!(A && B)为真。


位运算符

 

操作符描述例子

如果相对应位都是1,则结果为1,否则为0

(A&B),得到12,即0000 1100
|

如果相对应位都是0,则结果为0,否则为1

(A | B)得到61,即 0011 1101
^

如果相对应位值相同,则结果为0,否则为1

(A ^ B)得到49,即 0011 0001

按位取反运算符翻转操作数的每一位,即0变成1,1变成0。

(〜A)得到-61,即1100 0011
<< 

按位左移运算符。左操作数按位左移右操作数指定的位数。

A << 2得到240,即 1111 0000
>> 

按位右移运算符。左操作数按位右移右操作数指定的位数。

A >> 2得到15即 1111
>>> 

按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

A>>>2得到15即0000 1111

 

 Java运算符的优先级

 

类别操作符关联性
后缀

() [] . (点操作符)

左到右
一元

+ + - !〜

从右到左
乘性 

* /%

左到右
加性 

+ -

左到右
移位 

>> >>>  << 

左到右
关系 

>> = << = 

左到右
相等 

==  !=

左到右
按位与

左到右
按位异或

^

左到右
按位或

|

左到右
逻辑与

&&

左到右
逻辑或

| |

左到右
条件

?:

从右到左
赋值

= + = - = * = / =%= >> = << =&= ^ = | =

从右到左
逗号

左到右
posted @ 2019-04-26 13:19  honny123  阅读(227)  评论(0编辑  收藏  举报