【Java】数据类型和运算符
目录
一、八大基本数据类型
1、数值型(有符号)
2、字符型,默认值为“\u0000”
3、布尔型,默认值为false
二、引用数据类型:
三、计算机存储数据的基本单位
1、两种基本单位
2、单位换算
3、举例
四、数据类型的应用
1、变量的初始值
2、变量溢出问题
3、 定义变量
4、包装类
5、字面量
6、其他的整型变量
五、类型转换与类型提升
1、关于int,byte,char之间的转换问题
六、 字符串类型
一、算术运算符
1、基本的数学四则运算+ - * / 取模%
2、增量运算符 += -= *= /=
3、自增/自减运算符++ --
二、关系运算符
三、逻辑运算符
1、逻辑与&&
2、逻辑或 ||
3、逻辑去反!
4、关于逻辑运算符的短路求值问题
四、位运算符
1、按位与&
2、按位或|
3、按位异或^
4、按位取反~
五、移位运算符
1、左移位<<
2、右移位>>
3、无符号右移>>>
六、条件运算符
三目运算符
七、运算符优先级
Java是一门强类型语言,定义一个变量时,必须要明确该变量的类型。
所有数据类型都有默认值(类中属性才具备默认值),方法中的局部变量不存在默认值。
一、八大基本数据类型
1、数值型(有符号)
最高位不存储具体数据(01),0表示正数,1表示负数。
(1)整型,默认值均为0
数据类型 | 关键字 | 内存占用 |
字节型 | byte | 1字节 |
短整型 | short | 2字节 |
整型 | int | 4字节 |
长整型 | long | 8字节 |
(2)浮点型,默认值均为0.0
数据类型 | 关键字 | 内存占用 |
单精度浮点数 | float | 4字节 |
双精度浮点数 | double | 8字节 |
2、字符型,默认值为“\u0000”
数据类型 | 关键字 | 内存占用 |
字符型 | char | 2字节 |
3、布尔型,默认值为false
数据类型 | 关键字 | 内存占用 |
布尔类型 | boolean | 没有明确规范,1字节 |
二、引用数据类型:
数组、类、接口,默认值为null。
字符串String也是类。
三、计算机存储数据的基本单位
1、两种基本单位
bit:二进制位
byte:字节(计算机保存单位,以字节为基本单位)
2、单位换算
1 byte = 8 bit
1 GB = 8G byte
1KB = 1024 byte
1MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB
1 PB = 1024 TB
3、举例
int类型为4字节,则有32比特位,但是第一位是符号所以数量级是2^31。
四、数据类型的应用
1、变量的初始值
在main方法中定义的局部变量a没有复制的情况下,是没有默认值的,可以这样定义但是在使用的时候会出现错误(使用的情况比如输出a的值),所以使用的时候一定要定义值。
如果是在类中定义的变量a是成员变量,他有默认值(就是该数据类型的默认值),可以在main方法中不用赋值就使用。
2、变量溢出问题
int类型的数据范围在[-2147483648,2147483647]。
如果超出范围的赋值,int只能表示32bit,无法再给上进位,只能进位到符号位。
所以这个时候就需要长整型long,long是8字节,就可以存储2147483648。
当一个数比长整型的最大值还大,可以用BigInterger类来存储,也可以用字符串String来存储。
3、 定义变量
long和float定义变量时,赋的值后需要加L、l和F、f,但是long不是必须的,float是必须的,不加会编译错误。而布尔类型只可以定义false和true。
而char类型定义时需要加单引号,因为java语言字符采用Unicode编码,16位编码(2字节),所以支持地球上所有的语言,都可以定义为char类型。
4、包装类
在java中一切皆对象,认为一切失误都可以用类来进行描述,但是8大基本类型不属于类。
所以在java中将8大基本类型都有对应的类进行包装,这种类称之为包装类。
数据类型 | 对应的包装类 |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
5、字面量
直接写出来的数值就称之为字面量,字面量也存在数据类型。
10->整型字面量,默认为int类型
10.1->浮点数字面量,默认为double类型
'a'->字符字面量,默认为char类型
false->布尔值字面量,默认为boolean类型
"abc"->字符串字面量,默认为String类型
6、其他的整型变量
0b10 为二进制表示十进制2
010 为八进制表示十进制8
0x10 为十六进制表示十进制16
五、类型转换与类型提升
小类型转换为大类型是自动转换。
大类型转换为小类型需要强制类型转换,有精度丢失问题。
1、关于int,byte,char之间的转换问题
计算机存储数据时默认采用4字节存储,所有小于4字节的数据类型,隐式提升为int之后进行存储,boolean除外。
(1)byte和int转换
byte是1字节,所以范围是[-128,127],所以在这个范围内的数可以直接转换,但是当赋的值不在这个范围内就会出现错误,所以需要在值前面加上(byte),但是输出结果仍然不是正确的,如下图,赋值130,强制类型转换后变成了-126。
如下图,在编译时,a和b直接算做了int类型,并且是变量不知道值具体是多少不知道是否在范围内,所以需要强制类型转换。
char和int的转换与byte和int转换是类似的。
2、类型提升
当不同数据类型进行运算时,会将小的类型自动提升为大的类型参与运算。
如下图,进行了两次自动类型提升,b赋值为2是int类型,自动提升味double。输出结果时,a参与运算又自动提升为double类型,结果则为0.5。
六、 字符串类型
1、int转换为String
在java中字符串和任何其他类型“+”,都会将其他类型转换为字符串类型拼接。
调用String的valueof函数也可以输出为字符串类型。
2、String转换为int
调用整形包装类Interger的parseInt方法,前提字符串必须是纯数字字符串。
如果字符串是纯数字但是超过了整型的存储范围,会报错。
一、算术运算符
计算结果要么是小数要么是整数。
1、基本的数学四则运算+ - * / 取模%
2、增量运算符 += -= *= /=
3、自增/自减运算符++ --
当+号在前面,先运算再取值。
+号在后面,先取值在运算。
二、关系运算符
计算结果为布尔值,要么是false,要么是true
== != > < >= <=
关系运算符不能连着写。
三、逻辑运算符
计算结果也是布尔值。
1、逻辑与&&
语法规则:表达式1&&表达式2,其中两个表达式都是布尔表达式,得到的结果也是布尔值。
当且仅当表达式1和2都是true,表达时才会返回true。
2、逻辑或 ||
语法规则:表达式1 || 表达式2,其中两个表达式都是布尔表达式,得到的结果也是布尔值。
当且仅当表达式1和2都是false,表达时才会返回false。
3、逻辑去反!
!表达式1 表达式1是布尔表达式。进行取反操作。
4、关于逻辑运算符的短路求值问题
表达式1&&表达式2,当表达式1为false,不管表达式2直接返回false(第二个表达式根本不执行)
表达式1 || 表达式2,当表达式1为true,不管表达式2直接返回true。
四、位运算符
直接在二进制位上操作的运算符& | ^ ~
1、按位与&
如果两个二进制位都为1,则返回1,否则返回0。
2、按位或|
如果两个二进制位都为0,则返回0,否则返回1。
3、按位异或^
两个二进制位相同返回0,不相同返回1。
4、按位取反~
符号位也会发生变化,正数变为负数,负数变为正数。
正数变为负数,则加符号减一。
负数变为正数,则绝对值减一。
五、移位运算符
直接在二进制位上进行操作的运算符
1、左移位<<
最左侧不要,最右侧补0。
当一个数x<<1,结果左移乘二
2、右移位>>
最右侧不要,最左侧补0。
当一个数x>>1,结果左移除二。
3、无符号右移>>>
六、条件运算符
三目运算符
语法规则:条件表达式1?表达式2:表达式3
根据布尔表达式1的返回值,返回true则取布尔表达式2的值,返回false则取表达式3的值。
表达式2和表达式3必须是同类型的,否则会发生隐式转换。
三目运算符不能单独存在,必须有一个相对应的变量接收它的返回值。
七、运算符优先级
* / 优先级高于+ -
需要优先运算的加上括号。
加法优先级高于移位运算。
【Java】数据类型和运算符相关推荐
- 没有与这些操作数【】匹配的运算符_[02]java数据类型和运算符等知识
00 Java中的注释 为了方便程序的阅读,Java语言允许程序员在程序中写上一些说明性的文字,用来提高程序的可读性,这些文字性的说明就称为注释.注释不会出现在字节码文件中,即Java编译器编译时会跳 ...
- Java数据类型和运算符
一.转义字符 \t空格 转义符 代表的是8个空格,当\t没有空格时8个空格,但有字符但是没超过8个时,总共占用8个:如果大于8个时,会重新出8个空格 打印在两行ln 两行以上必须用才有换行效果 否则同 ...
- java基础学习 --- 第二节 变量、数据类型和运算符
java基础学习 - 第二节 变量.数据类型和运算符 一.变量 1.变量就是会发生改变的数据,程序运行时,这些数据以变量的形式被保存到计算机的内存中.如图 2.使用变量的步骤: 声明变量 - ...
- JAVA学习脚印2: 数据类型和运算符
JAVA学习脚印2: 数据类型和运算符 本节将记录java中的数据类型和运算符. 1. java中的数据类型 java中变量的数据类型有两种:基本类型(primitive)和引用(reference) ...
- 《Java疯狂讲义》第3章(数据类型和运算符):博主李俊德的阅读笔记与知识拓展
一.问题背景 博主在准备应聘的笔试.面试时,再次采用了多年以来的Java工具书<Java疯狂讲义>,并决定在每章详细复习后都要在博客中写下详细的阅读笔记. 二.阅读笔记与知识拓展--< ...
- java异或运算结果数据类型_java中的数据类型和运算符的总结归类。
首先学习java肯定先要了解java的发展史,以及java的特点,常见的dos命令,jdk的安装,如何开发java程序等等一下概念行的东西,这里面我都不一一说了. 今天这一章主要想总结一下java中的 ...
- double类型怎么取余_数据类型和运算符
数据类型和运算符 1.进制 1.1文件存储单位 任何数据在计算机中都是以二进制的形式存在的,二进制早期由电信号开关演变而来 . 一个电信号或者一个二进制位统称为Bit位,8个Bit位为一组组成 ...
- 操作数数据类型 char 对于 sum 运算符无效。_数据类型和运算符
数据类型和运算符 1.进制 1.1文件存储单位 任何数据在计算机中都是以二进制的形式存在的,二进制早期由电信号开关演变而来 . 一个电信号或者一个二进制位统称为Bit位,8个Bit位为一组组成 ...
- 【JavaSE】02-变量、数据类型和运算符
二. 变量.数据类型和运算符 2.1 变量 2.1.1 变量的声明 type varName [=value][,varName[=value]...]; //[ ]中的内容为可选项,即可有可无 数据 ...
- Java变量和运算符详解
Java变量和运算符 已在思维导图中对变量知识框图进行整理! 使用markdown进行详细记录 分以下几点进行介绍: 变量基本原理 基本类型和引用类型变量 变量使用和注意事项 运算符 1. 变量基本原 ...
最新文章
- 使用可信证书为windows RDP服务提供加密
- oracle各种字符集修改
- idea本地跑如何看gc日志_不可思议,竟然还有人不会查看GC垃圾回收日志?
- 1344 走格子 (前缀和)
- 将微服务注册到Eureka Server上
- Beta Daily Scrum 第七天
- Listen第二个参数的意义
- adb命令 android 串口_android逆向笔记之初学者常用adb命令
- 苹果测试网速软件,Mac 网速测试工具 SpeedTest by Ookla
- SpringBoot-iText-Pdf
- QT5修改windows电脑IP地址
- Mac终端命令失效( command not found)/
- ADAMS并联机器人动力学仿真【附源文件】
- des加密 lua_lua des加密解密 各种加密解密函数 - 奇闻 - 91文库
- 英特尔oneAPI—开拓
- 嵌入式--接口--MIPI接口
- alphazero 五子棋开源代码分析
- 帝国CMS采集插件哪个好用?帝国CMS采集文章教程
- folium基础内容介绍
- 会议panel是什么意思中文_医学术语中的panel到底是什么意思
热门文章
- 计算机领域kg是什么,《有话好好说》中的电脑是什么型号的
- html图片如何转换成word文档格式,怎么将Word文档里的图片格式改成文字格式?
- 读书《编码的奥秘》--摩尔斯电码(1836年发明)
- python3 抓取西刺网免费代理IP并验证是否可用
- 36-Scrapy框架-西刺网代理爬取+存储到MySQL
- 新手必备pr 2021快速入门教程「七」效果控件面板详解
- Java 复杂表头、表格导出 - EasyExcel
- 小米4 第三方re奇兔_小米、vivo、一加等宣布Android 11 beta版本适配计划
- android获取锁屏之上显示权限,安卓版Skype曝漏洞:绕过锁屏获得手机所有权限
- miniUI 加载死数据