博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java数据类型和运算符
阅读量:5882 次
发布时间:2019-06-19

本文共 3779 字,大约阅读时间需要 12 分钟。

一,数据类型分类(2种)

1. 基本数据类型(3种)

  • 数值型:

    • 整数类型(4种):

      1. byte(1字节):范围(-128~127);
      2. short(2字节):范围(-32768~32767);
      3. int(4字节);
      4. long(8字节):若数据定义为long类型超过int范围后面 需加“L”(推荐)或“l”(默认为int,超过int范围编译将会报错,未超过则不会);
    • 浮点类型(2种):

      1. float(4字节):第1位为符号位,接下来8位表示指数,再接下来23位表示尾数;若指定浮点类型为float需加“F”或“f”(默认为double,否则编译提示可能损失精度);
      2. double(8字节):第1位为符号位,接下来11位表示指数,再接下来52位表示尾数;
      3. 浮点数的形式: 
        • a.十进制数形式:必须包含一个小数点(1.68、168.0和 .168),否则当成int类型;
        • b.科学计数法形式:只有浮点类型数值才可以使用,如1.68e2(168.0)、1.68E2和168e2(16800.0);
      4. 特殊浮点数: 
        • a.正无穷大:正数除于0.0,用Double或Float的POSITIVE_INFINITY表示,所有的正无穷大都相等;
        • b.负无穷大:负数除于0.0,用Double或Float的NEGATIVE_INFINITY表示,所有的负无穷大都相等;
        • c.非数:0.0/0.0,用Double或Float的NaN表示,所有的非数均不相等;
  • 字符型:char(2字节)

  • 布尔型:boolean(1字节)

  • 注意: switch语句中只能接受byte、short、int和char 类型变量(JDK1.6以前的版本),JDK1.7时,又增加了String。

2. 引用数据类型

  • 类(class)
  • 接口(interface)
  • 数组([ ])

 

 

 

Java中的六种运算符:
  • 算术运算符
  • 赋值运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 三元运算符
 
算术运算符:
+:加法运算,求操作数的和
-:减法运算,求操作数的差
*:乘法运算,求操作数的乘积
/:除法运算,求操作数的商
%:求余运算,求操作数相除的余数
++:自增,操作数自加1
--:自减,操作数自减1
 
赋值运算符:
=:将右边的值赋给左边,例:int a = 1;
+=:左右两边的和相加赋给左边,例:int a = 1; a+=2;结果a的值为3
-=:左边减去右边的差赋给左边,例:int a =5;a-=2;结果a的值为3
*=:两边数值相乘的值赋给左边,例:int a = 2;a*=2;结果a的值为4
/=:左边除以右边的值赋给左边,例:int a = 6;a/=2;结果a的值为3
%=:左边除以右边的余数赋给左边,例:int a =7;a%=2;结果a的值为1
 
关系运算符
>:大于,例:int a = 1;int b = 2;System.out.print(a > b);其结果为false
<:小于,例:int a = 1;int b = 2;System.out.print(a < b);其结果为true
>=:大于等于,例:int a = 1;int b = 2;System.out.print(a >= b);其结果为false
<=:小于等于,例:int a = 1;int b = 2;System.out.print(a <= b);其结果为true
==:等于,例:int a = 1;int b = 2;System.out.print(a == b);其结果为false
!=:不等于,例:int a = 1;int b = 2;System.out.print(a != b);其结果为true
  其结果都是boolean类型,即要么是true要么是false
 
 
逻辑运算符
&&:与、并且(短路),   两个条件同时为真时,结果为真
||:或、或者(短路),   两个条件有一个为真时,结果即为真
!:非,(!+条件)  条件为真时,结果为假
 
 
 
Java中的数据类型转换
1:自动数据类型转换(放大转换)
满足自动数据类型转换条件:
1)两种类型要兼容:如数值类型(整型和浮点型)
2)目标类型大于源类型:例如int型数据可以自动转换为double类型
 
2:强制数据类型转换(缩小转换)
在变量前加上括号,在括号中指定要强制转换的类型
例:double a = 40.9;
    int b = (int)a;
注:强制转换会损失数值精度,例如double类型变量a,经强制转换为int类型后值变为40

 

 

 

运算符的优先级:

1,算数运算符() ++ -- > * / % + -

2,比较运算符(> < >= <=) > (== !=)

3,逻辑运算符! > & > ^ > |
4,赋值运算符=

算数运算符> 比较运算符(关系运算符) > 条件运算符 >赋值运算符

 

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
相同优先级中,按结合顺序计算。大多数运算是从左至右计算,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。
基本的优先级需要记住:
指针最优,单目运算优于双目运算。如正负号。
先乘除(模),后加减。
先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.
逻辑运算最后计算。

 

 

 

优先级
运算符
名称或含义
使用形式
结合方向
说明
1
后置++
后置自增运算符
变量名++
左到右
 
后置-- 后置自减运算符 变量名--  
[ ]
数组下标
数组名[整型表达式]
 
( )
圆括号
(表达式)/函数名(形参表)
 
.
成员选择(对象)
对象.成员名
 
->
成员选择(指针)
对象指针->成员名
 
2
-
负号运算符
-表达式
右到左
单目运算符
(类型)
强制类型转换
(数据类型)表达式
 
前置++
前置自增运算符
++变量名
单目运算符
前置--
前置自减运算符
--变量名
单目运算符
*
取值运算符
*指针表达式
单目运算符
&
取地址运算符
&左值表达式
单目运算符
!
逻辑非运算符
!表达式
单目运算符
~
按位取反运算符
~表达式
单目运算符
sizeof
长度运算符
sizeof 表达式/sizeof(类型)
 
3
/
表达式/表达式
左到右
双目运算符
*
表达式*表达式
双目运算符
%
余数(取模)
整型表达式%整型表达式
双目运算符
4
+
表达式+表达式
左到右
双目运算符
-
表达式-表达式
双目运算符
5
<<
左移
表达式<<表达式
左到右
双目运算符
>>
右移
表达式>>表达式
双目运算符
6
>
大于
表达式>表达式
左到右
双目运算符
>=
大于等于
表达式>=表达式
双目运算符
<
小于
表达式<表达式
双目运算符
<=
小于等于
表达式<=表达式
双目运算符
7
==
等于
表达式==表达式
左到右
双目运算符
!=
不等于
表达式!= 表达式
双目运算符
8
&
按位与
整型表达式&整型表达式
左到右
双目运算符
9
^
按位异或
整型表达式^整型表达式
左到右
双目运算符
10
|
按位或
整型表达式|整型表达式
左到右
双目运算符
11
&&
逻辑与
表达式&&表达式
左到右
双目运算符
12
||
逻辑或
表达式||表达式
左到右
双目运算符
13
?:
条件运算符
表达式1? 表达式2: 表达式3
右到左
三目运算符
14
=
赋值运算符
变量=表达式
右到左
 
/=
除后赋值
变量/=表达式
 
*=
乘后赋值
变量*=表达式
 
%=
取模后赋值
变量%=表达式
 
+=
加后赋值
变量+=表达式
 
-=
减后赋值
变量-=表达式
 
<<=
左移后赋值
变量<<=表达式
 
>>=
右移后赋值
变量>>=表达式
 
&=
按位与后赋值
变量&=表达式
 
^=
按位异或后赋值
变量^=表达式
 
|=
按位或后赋值
变量|=表达式
 
15
,
逗号运算符
表达式,表达式,…
左到右
从左向右顺序运算

 

 

结合性
( ) [ ] -> . ++(后缀自增) --(后缀自减)
left to right
! ~ ++(前缀自增) --(前缀自减) + - * sizeof(type)
right to left
* / %
 
  
  
  
left
to
right
+ -
<< >>
< <= > >=
== !=
&
^
|
&&
||
? : (条件运算)
right to left
= += -= *= /= %= &= ^= |= <<= >>=

 

结合性
( ) [ ] -> . ++(后缀自增) --(后缀自减)
left to right
! ~ ++(前缀自增) --(前缀自减) + - * sizeof(type)
right to left
* / %
 
  
  
  
left
to
right
+ -
<< >>
< <= > >=
== !=
&
^
|
&&
||
? : (条件运算)
right to left
= += -= *= /= %= &= ^= |= <<= >>=

转载地址:http://hypix.baihongyu.com/

你可能感兴趣的文章
jmeter插件之jsonpath提取响应结果和做断言
查看>>
发布支持多线程的PowerShell模块 —— MultiThreadTaskRunner
查看>>
Ubuntu ctrl+alt会导致窗口还原的问题
查看>>
第四十期百度技术沙龙笔记整理
查看>>
推荐系统那点事 —— 基于Spark MLlib的特征选择
查看>>
linux 下RTL8723/RTL8188调试记录(命令行)【转】
查看>>
SpringMVC案例1——对User表进行CRUD操作
查看>>
[Contiki系列论文之1]Contiki——为微传感器网络而生的轻量级的、灵活的操作系统...
查看>>
Android 网络编程 记录
查看>>
微软同步发行Windows 10和Windows 10 Mobile系统更新
查看>>
Zeppelin的入门使用系列之使用Zeppelin运行shell命令(二)
查看>>
form表单下的button按钮会自动提交表单的问题
查看>>
那些年追过的......写过的技术博客
查看>>
python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
查看>>
C# 解决窗体闪烁
查看>>
CSS魔法堂:Transition就这么好玩
查看>>
【OpenStack】network相关知识学习
查看>>
centos 7下独立的python 2.7环境安装
查看>>
[日常] 算法-单链表的创建
查看>>
前端工程化系列[01]-Bower包管理工具的使用
查看>>