Java数据类型和运算符
来源:互联网 发布:word mac版 编辑:程序博客网 时间:2024/06/05 09:02
1 数据类型
1.1 基本数据类型
在Java中定义好了8种基本数据类型(原生数据类型),包括整数类型、小数类型(浮点数)、字符类型和布尔类型四种。1.整数类型4种byte
8位
short
16位
int
32位
long
64位
其中byte的取值范围为(-128,127)。
在直接使用一个整数类型的数字时(比如:System.out.println(123); ),它的默认类型为int。在声明long时,需要加上l/L作为后缀,否则可能出现超出范围的情况。比如:
// 声明long时,加上l/L后缀long lon = 2147483648L2.小数类型(浮点数)2种float
32位
double
64位
float为单精度,double为双精度,在直接使用一个小数类型的数字时(比如:System.out.println(3.14); ),默认为double类型。在声明float类型时,需要加上f/F作为后缀,否则可能会损失精度。比如:// 声明float时,加上f/F后缀float f = 1.2F小数中的科学计数法double d1 = 3.14e3; // 3.14*10^3double d2 = 3.14e-3; // 3.14/10^33.字符类型1种char
16位
声明字符类型时直接使用单引号,比如:'a','1','好'。还可以把char当做一个整数类型来使用,字符在存储时,会转换成对应的Unicode字符编码,然后转换成二进制存储。比如:
char a='a'; char b=97; int c='a';System.out.println(a); // 输出为aSystem.out.println(b); // 输出字符编码对应的字符aSystem.out.println(c); // 输出字符对应的字符编码97
4.布尔类型1种boolean
1位
boolean类型的值为ture或false。
1.2 引用数据类型
Java中的引用数据类型包括数组、类、接口、枚举等。
比如String类是Java中定义好的一个类,也是一种类型,表示字符串。用+可以实现字符串的拼接,只要+两边有一个字符串类型,就表示拼接。比如:
int a = 10;System.out.println("a:"+a); // 输出为a:10
1.3 自动类型转换
byte-8位 short/char-16位 int-32位 long-64位 float-32位 double-64位
低------------------------------------------------------------------------------------------->高
从byte到double,数据类型的精度逐渐提高,可以将低精度的数据放入高精度中,但无法将高精度的数据放入低精度中。
类型转换示例:
// i是低精度的int可以赋值给高精度类型的d,int i;double d=i;// 但d不能赋值给低精度类型的jint j=d; // 编译过程中编译器能识别123在byte范围内,自动类型隐式转换byte b=123;// 将123放入int类型的变量k中,再将k放入byte类型中会编译报错,可能损失精度,因为编译器不知道变量中的值,无法隐式转换int k=123;byte c=k;
1.4 强制类型转换
在类型转换的过程中,可以使用强制类型转换而达到目的。比如:double d = 3.1415;int m = (int)d;System.out.println(m); // 结果为3在强制类型转换的过程中,double类型的小数直接舍去。char和int之间的转换System.out.println('A'); // ASystem.out.println((int)'A'); // 65System.out.println(65); // 65System.out.println((char)65); // A
2 运算符
2.1 表达式
表达式:就是由一系列的常量,变量,运算符,()等组成的一个算式,其整体就是一个值,例如:int i=3;一个表达式的结果值,类型是表达式中精度最高的类型。
表达式:
byte b1 = 1;byte b2 = 2;// bb类型为int,因为byte、short、char参与运算时自动提升为intbb = b1 + b2;// 字符'A'参与运算时提升为65,结果为75System.out.println(10+'A');
2.2 算数运算符
+ 加号、字符串连接("a"+1)、正号
- 减号、负号
* 乘法
/ 除法
% 取模(用在整数上)
++ 自加
-- 自减
除法运算中的细节
10/3=3 10.0/3=3.333...
整数/0会报错,小数/0 不会报错
0.0/0.0 结果为 NaN (Not a Number)
1.0/0.0 结果为Infinity
自加自减中的细节
int j = i++:++在变量i后,表达式的值为变量自增之前的值
int j = ++i:++在变量i前,表达式的值为变量自增之后的值
2.3 赋值运算符
= += -= *= /= %=
赋值运算符是在变量自身基础上做运算。
int i=2;System.out.println(i+=2);// 2+2=4System.out.println(i-=1);// 4-1=3System.out.println(i*=4);// 3*4=12System.out.println(i/=2);// 12/2=6System.out.println(i%=5);// 6%5=1
short s = 3;s += 2;System.out.println(s);// 结果为5short s = 3;s = s + 2;System.out.println(s);// 编译报错 Type mismatch: cannot convert from int to shorts+2在运算过程中结果提升为int,int类型放入short类型的变量s中,会出现损失精度的问题。
2.4 比较运算符
== != > < >= <= instanceof
instanceof 用来在运行时指出对象是否是某个特定类或它子类的一个实例,返回一个布尔值。
2.5 逻辑运算符
&(与):两边为true 结果为true
|(或): 一边为 true 结果为 true
&&(双与):两边为 true 结果为 true
||(双或):一边为 true 结果为 true
^(异或):两边不一样为true ,否则为false
!(非):对结果值取反
短路
在&&(双与)、||(双或)运算符中,如果逻辑运算左边的值能够确定整个逻辑运算表达式的值,那么右边就短路不执行。
2.6 位运算
& 按位与
| 按位或
^ 按位异或
~ 按位取反,0--->1,1--->0
<< 把二进制位向左移
>> 把二进制位向右移
>>> 无符号右移位
2.7 三目运算
X ? Y : Z
将三目运算整体看成是一个表达式,X是一个布尔值或者结果为布尔的表达式,Y、Z可以是任意类型的值或者表达式,但Y、Z类型要一致。
如果X==true,那么整个三目运算的结果值就是Y的值,否则是Z的值。
// 找出两个整形变量中的最大值int a = 6;int b = 9;int max = a > b ? a : b // a>b结果为false,结果值为bSystem.out.println(max);可以用三目运算来取代一般的if-else结构。
2.8 算数运算的应用
1.不使用第三个变量,将两个变量的值对换
int a = 3;int b = 4;a=b+a;// 把a、b的和赋值给ab=a-b;// 根据和的关系,将a值赋给ba=a-b;// 根据和的关系,将b值赋给aSystem.out.println(a);// a = 4System.out.println(b);// b = 3
- Java数据类型和运算符
- Java数据类型和运算符
- Java数据类型和运算符
- java数据类型和运算符
- java数据类型和运算符
- Java数据类型和运算符
- java数据类型和运算符
- Java数据类型和运算符:
- 数据类型和运算符 java
- Java数据类型和运算符
- java数据类型和运算符
- Java数据类型和运算符
- java数据类型和运算符
- java数据类型和运算
- Java学习笔记:数据类型和运算符
- Java-----3、数据类型和运算符
- Java的数据类型和运算符
- java 第三天---数据类型和运算符
- Python代码Linux
- 计算后缀表达式、Java
- codeforces 858d(字典树)
- 用SQL实现 excel常用操作
- Edit Distance 解题报告
- Java数据类型和运算符
- c++中vector(向量)的用法
- 百度地图之显示地图
- JPanel面板的综合运用
- 第一次月总结!
- Hadoop常用命令
- Ubuntu Navicat for MySQL 安装以及解决方案
- PAT考试乙级1007(C语言实现)
- Python中的List和Tuple