IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【Java】基本数据类型和运算符 -> 正文阅读

[Java知识库]【Java】基本数据类型和运算符

目录

1.1byte

1.2short

1.3int

1.4long

1.5flout

1.6double

1.7char

1.8boolean

2.String

数据类型转换

3.1相互赋值

3.2强制类型转换

3.3数值提升

3.4int和String相互转换

运算符

4.1算术运算符

4.2关系运算符

4.3逻辑运算符

4.4位运算符

4.5移位运算符

4.6条件运算符

4.7运算符小结


1.1byte

字节型,顾名思义,占1个字节

表示范围:-2^7~2^7-1

初始值:0

定义变量

byte a=3;

1.2short

短整型,占2个字节

表示范围:-2^15~2^15-1

初始值:0

short b=3;

1.3int

整形,占4个字节

表示范围:-2^31~2^31-1

初始值:0

int c=3;//int类型比较常见

1.4long

长整型,占8个字节

表示范围:-2^63~2^63-1

初始值:0

long d=3L;//后面跟个L,小写l也可以,但有时候会和1混淆,建议大写的L

1.5flout

单精度浮点型,占4个字节

精度相对低,不推荐使用,在内存中的布局遵守IEEE 754标准

初始值:0.0

float e=1.2333f//非要用float,后边加个f

1.6double

双精度浮点型,占8个字节

精度高,能够满足大部分场景的使用,同样遵守IEEE 754标准

精度高不代表绝对的准确,这只是用有限的位数表示可能无限的小数

初始值:0.0

double g=2.333;

1.7char

字符型,占2个字节(注意和C区分)

C中的字符是ASCII码表示的,而Java中的字符是Unicode表示的

一个字符占两个字节,所能表示的字符也更多

初始值:空

char handsome='我';//编译时可能会出错,javac -encoding UTF-8即可
char 钱=5;//可以这么定义但是,不建议,合法但不合理

1.8boolean

布尔型,具体大小没有明确规定

取值:只能是true或者false

初始值:false

不能对boolean型变量进行+1操作

2.String

字符串类型,用双引号+若干字符表示,属于引用类型

字符串拼接

String str="result="
int a=10;
int b=20;
System.out.println(str+a+b);
//result=1020
//str+a之后变成:“result=10”这是个字符串,+b进行字符串拼接
String str="result="
int a=10;
int b=20;
System.out.println(a+b+str);  
//30result=
//执行a+b,因为都是int,会计算出结果。+str进行字符串拼接

数据类型转换

3.1相互赋值

  • 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型, 反之则不行.

范围大的类型变量给范围小的类型变量:编译通不过,直接报错

3.2强制类型转换

强转损失精度

互不相干的类型之间无法强转

3.3数值提升

范围小的范围大的变量进行运算,小的会被提升为大的

3.4int和String相互转换

//int转成String
int num = 10; 
// 方法1 
String str1 = num + ""; 
// 方法2 
String str2 = String.valueOf(num); 
//String 转成 int
String str = "100"; 
int num = Integer.parseInt(str);

运算符

4.1算术运算符

基本四则运算+ - * / %

增量赋值运算+= -= *= /= %=

自增++/自减--(前置和后置)

  • 在表达式不需要返回一个值时,前置和后置没有区别

int/int 结果还是int,为了不出错,建议用double定义变量

0不能做除数

%不仅可以对int取模,还可对double取模

System.out.println(7.3 % 1.4);///结果为0.3

4.2关系运算符

== !=

< >

<= >=

关系运算符的表达式返回值都是 boolean 类型.

所以C语言那一套if(!0)行不通了

4.3逻辑运算符

&& || !

&&逻辑与:两个操作数都为true,整体结果才为true,有false则为false

||逻辑或:两个操作数都为false,整体结果才为false,有一个为true则为true

  • &&和||都可以短路

只要第一个操作数能让整体结果确认,则不会判断剩下的操作数

System.out.println(10 > 20 && 10 / 0 == 0); // 打印 false 
System.out.println(10 < 20 || 10 / 0 == 0); // 打印 true

我们都知道, 计算 10 / 0 会导致程序抛出异常. 但是上面的代码却能正常运行, 说明 10 / 0 并没有真正被求值.

结论:

  1. 对于 && , 如果左侧表达式值为 false, 则表达式的整体的值一定是 false, 无需计算右侧表达式.
  2. 对于 ||, 如果左侧表达式值为 true, 则表达式的整体的值一定是 true, 无需计算右侧表达式

!逻辑非:!true==false;!false==true;(!是一个单目操作符,只有一个操作数)

  • 当操作数为boolean型,& 和 | 也表示逻辑运算,只不过不支持短路,上述两行代码把相应的&&和||替换为&和| 程序会异常

4.4位运算符

位运算符对数据处理的最小单位是二进制位

& 按位与:对应二进制位都是1,才为1;有一个为0,则为0;

| 按位或:对应二进制位都是0,才为0;有一个为1,则为1;

  • 当操作数为boolean型,& 和 | 表示逻辑运算

~ 按位取反:

int a = 0xf; 
System.out.printf("%x\n", ~a);//fffffff0
System.out.printf("%d\n", ~a);//-16
//看到第一个结果有点懵,才反应过来,负数在内存的是补码

^按位异或:(找不同)对应二进制位相同为0、不同为1;

4.5移位运算符

  • 移动二进制位
  • 移位位数过大没有意义:int占32位,你不能给移位33位,可是可以,但是没有意义

左移<<:高位补符号位;相当于得到的结果相当于原结果乘2*N

(N为移动位数)

右移>>:低位补0;相当于得到的结果相当于原结果除2*N

无符号左移>>>:左移后高位补0;不管是正数还是负数,都补0;

4.6条件运算符

只有一个条件运算符,三目运算符

表达式1?表达式2:表达式3
int max=a>b?a:b;//判断两个数的最大值

4.7运算符小结

  1. % 操作在 Java 中可以针对 double 来计算.
  2. 需要区分清楚 前置自增 和 后置自增之间的区别.
  3. 由于 Java 是强类型语言, 因此对于类型检查较严格, 因此像 && 之类的运算操作数必须是 boolean.
  4. 要区分清楚 & 和 | 什么时候是表示按位运算, 什么时候表示逻辑运算.

整体来看, Java 的运算符的基本规则和 C 语言基本一致.

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-15 11:39:07  更:2021-10-15 11:39:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:08:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码