java基本数据类型及运算的注意事项
java基本数据类型及运算的注意事项
一、基本数据类型
|
序号 |
类型 |
位数 |
范围 |
说明 |
|
整数类型 (最高位为符号位) |
byte |
8位 |
-128(-27)~127(27-1) |
默认类型为int 二进制0b开头 八进制0开头 十六进制0x开头 |
|
short |
16位 |
-32 768(-215)~32 767(215-1) |
||
|
int |
32位 |
-2 147 483 648(-231)~2 147 483 647(231-1) |
||
|
long |
64位 |
-9 223 372 036 854 775 808(-263)~9 223 372 036 854 775 807(263-1) |
||
|
字符类型 |
char |
16位 |
单字符、转义字符、Unicode |
例:'A','\r','u9999' |
|
浮点类型(最高位为符号位) |
float |
32位 |
1位为符号8位为指数23位为尾数 |
默认类型为double |
|
double |
64位 |
1位为符号11位为指数52位为尾数 |
||
|
布尔类型 |
boolean |
1位 |
true或false |
不能用0或非0代表 |
常量后加l或L表示该常量为long类型,占64为,否则默认为int类型占32位;
常量后加f或F表示该常量为float类型,占32位,否则默认为64位占64位。浮点数可以采用十进制形式(例:5.12、.512),也可以采用科学计数法形式(例:5.12e2或5.12E2)。
特殊的直接量null,可以赋给任何引用类型的变量,表示该引用类型指向的地址为空。
特殊的浮点数值:正无穷大、负无穷大、非数,表示溢出和出错。使用Double类和Float类的POSITIVE_INFINITY、NEGATIVE_INFINITY和NaN表示。所有正无穷大的数值都是相等的,所有负无穷大的数值都是相等的,NaN不与任何数值相等,NaN与NaN也不相等。只有浮点数除以0才能得到正无穷大或负无穷大,整数除以0会抛出异常。0.0除以0.0或对一个负数开方得到非数即NaN。
整数型数值或浮点型数值可以使用下划线作为分隔,java7以上支持,例如:4_524_012_578,0B1000_1111_0101_1011。
二、类型转换
类型的自动提升:当一个表达式中包含多个基本类型的值时,整个表达式将发生自动提升。自动提升的规则如下:
- 所有byte类型、short类型和char类型将自动提升为int类型
- 整个算数表达式的数据类型自动提升到与表达式中最坐高等级操作数同样的类型。
强制类型类型转换,语法格式:(type)value。字符串转为基本类型时,需要使用对应的包装类:Byte、Short、Integer、Long、Character、Float、Double,它们提供了静态方法parseXxx(String str)用于转换。
三、运算

运算符优先级
左移运算<<,将操作数的二进制码整体左移指定位数,右边空出的位用0填充,注意:负数的符号位也参与移动。
右移运算>>,将操作数的二进制码整体右移指定位数,空出来的位置使用符号位填充,注意:符号位始终保持不变。
无符号右移运算>>>,将操作数的二进制码整体右移指定位数,空出来的位置使用0填充,注意:符号位变为0。
移位运算遵循的规则:
- 对于低于int类型(byte、short、char)的操作数总是先自动转换为int类型,然后再移位;
- 对于int型的移位操作a>>b,当b>32时,系统先用b对32求余,余数为真正的移位数,例如:a>>33和a>>1的结果一样;
- 对于long型的移位操作a>>b,当b>64时,系统先用b对64求余,余数为真正的移位数。
逻辑运算符&&和&的区别:对于&&,如果左边的表达式为false,则右边的表达式将不再就算;而&,两边的表达式总会计算,不论左边的表达式是否为false。
逻辑运算符||和|的区别:对于||,如果左边的表达式为true,则右边的表达式将不再就算;而|,两边的表达式总会计算,不论左边的表达式是否为true。
java基本数据类型及运算的注意事项的更多相关文章
- Java 基本数据类型 && 位运算
1. Java基本数据类型 1.1 数据类型示意图 类型 字节数 范围 byte 1 -128~127 short 2 -32768~32767 int 4 -231~231-1 long 8 -26 ...
- java中数据类型及运算符的注意事项
数据类型: boolean 类型数据只允许取值true 或 false(不可以使用0 或非0的整数来代替true和false,区分于C语言). char:Java中用" \u四位十六进制的数 ...
- java===java基础学习(1)---数据类型,运算,变量,常量
今天起开始了java的学习之路,主要学习了数据类型和运算,变量,常量.基本和python有很多相通的地方,所以看起来很容易上手.下面是学习笔记! package testbotoo; public c ...
- Java数据类型及运算
(一),Java基本类型及运算 注释:可以用于生成API: 命令如:javadoc -d apidoc windowtitle hhh -doctitle aaa -header bbbb -ver ...
- Java基础-数据类型int,short,char,long,float,double,boolean,byte
Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定.由于是statical typed,导致Java语言也是强类型(Strong typed ...
- Java中数据类型及其之间的转换
Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...
- java基础之java基本数据类型
1.Java数据类型基本概念: 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式.接触每种语言的时候,都会存在数据类型的认识,有复杂的.简单的,各种数据 ...
- 【Demo 0001】Java基础-数据类型
本章学习要点: 1. 了解Java 语言 2. 了解Java程序结构; 3. 了解Java中基本数据类型; 4. 掌握基本数据类型之间的运算 ...
- Java基本数据类型及其封装器的一些千丝万缕的纠葛
一些概念 想必大家都知道Java的基础数据类型有:char.byte.short.int.long.float.double.boolean 这几种,与C/C++等语言不同的是,Java的基础 ...
- java简单数据类型转化
java简单数据类型,有低级到高级为:(byte,short,char)→int→long→float→double (boolean不参与运算转化) 转化可以分为 低级到高级的自动转化 高级到低级的 ...
随机推荐
- 火山引擎ByteHouse:如何为OLAP设计高性能向量检索能力?
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 背景 随着LLM技术应用及落地,数据库需要提高向量分析以及AI支持能力,向量数据库及向量检索等能力"异军 ...
- PostgreSQL-可以通过localhost连接,无法通过IP地址连接。
(1)如果PostgreSQL配置文件中没有允许访问该服务器的IP地址,则需要先添加允许访问的IP地址,并在防火墙中开放相应的端口.(2)在PostgreSQL配置文件postgresql.conf中 ...
- Linux进程通信 | 信号
一.什么是信号? 信号就像是一个突然的电话铃声,它会打断正在进行的程序并引起其注意. 在Linux系统中,信号是一种软件中断,它通常是异步发生的,可以用来通知进程某个事件已经发生..每个信号都有一个唯 ...
- Sora文生视频模型深度剖析:全网独家指南,洞悉98%关键信息,纯干货
Sora文生视频模型深度剖析:全网独家指南,洞悉98%关键信息,纯干货 Sora是一个以视频生成为核心的多能力模型,具备以下能力: 文/图生成视频 视频生成视频 1分钟超长高质量视频生成 视频裂变多视 ...
- Vue+SpringBoot+ElementUI实战学生管理系统-7.专业管理模块
1.章节介绍 前一篇介绍了院系管理模块,这一篇编写专业管理模块,需要的朋友可以拿去自己定制.:) 2.获取源码 源码是捐赠方式获取,详细请QQ联系我 :)! 3.实现效果 专业列表 修改专业 4.模块 ...
- RAID 10磁盘阵列实践
RAID概述 RAID技术通过把多个硬盘设备组合成一个容量更大.安全性更好的磁盘阵列,利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数 ...
- MySQL和Redis基本安装和配置
MySQL 下载和安装 mysql官网下载:https://dev.mysql.com/downloads/mysql/ 下载后将目录下的bin路径加入到环境变量中 在安装目录下创建 my.ini 配 ...
- 【NLP学习其3.5】词嵌入的特性,为什么词之间会有联系?
词嵌入的特性 现在你有了一堆嵌入向量,我们可以开始学习他们之间的特性了 前情提要:https://www.cnblogs.com/DAYceng/p/14962528.html 先把各向量重新命名便于 ...
- ECharts渐变温度直方图
ECharts渐变直方图,根据具体的值调整色带,使所有颜色看起来协调一致. 直接在series数组中的对象中添加如下代码即可: itemStyle: { color: function (params ...
- CentOS系统下,配制nginx代理
1.安装: yum install nginx 2.证书文件位置: a. 创建https证书文件夹:/etc/nginx/ssl b. 上传两个证书文件到/etc/nginx/ssl 3.在/etc/ ...