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不参与运算转化) 转化可以分为 低级到高级的自动转化 高级到低级的 ...
随机推荐
- CentOS7环境下MySQL的主从配置
CentOS7环境下MySQL的主从配置 一.什么叫主从复制 通过在主服务器和从服务器之间切分处理客户查询的负荷,可以得到更好的客户响应时间.通俗点说就是select查询发送到从服务器,修改数据的语句 ...
- (C语言)我的第一个项目:命令行窗口下的学生成绩管理系统,及数据生成程序
学生成绩管理系统 页面效果如图: 代码如下: #include <stdio.h> #include <stdlib.h> #include <string.h> ...
- Proteus仿真出现“Internal Exception: access violation in module ‘LOADERS.DLL‘ [00020627].”错误
Proteus仿真问题 在使用 Proteus 8.4 进行仿真时, 出现错误提示 Internal Exception: access violation in module 'LOADERS.DL ...
- .NET Core开发实战(第18课:日志框架:聊聊记日志的最佳姿势)--学习笔记(下)
18 | 日志框架:聊聊记日志的最佳姿势 除了使用 CreateLogger 指定 logger 的名称,实际上还可以借助容器来构造 logger,通常情况下我们会定义自己的类 namespace L ...
- Linux-查看文本中第m行到n行的内容
如何查看文件第6749行到6758行? 方式一:使用sed命令 不显示行号:sed -n 'M,Np' fileName 例如:sed -n '6749,6758p' hive-default.x ...
- linux-Shell将命令行终端输出结果写入保存到文件中
(一)将输出与错误写到同一个文件(1)方法1 #!bin/bashjava -jar hbase-example.jar 2>&1 | tee hbase_log.txt 说明:0,1, ...
- IDEA中使用ChatGPT
IDEA中使用ChatGPT 在IDEA中安装ChatGPT插件,可以帮助写基础逻辑代码,提高工作效率和学习效率,有兴趣可以玩一下. 插件名为 Bito. 1. 什么是Bito Bito是一款在Int ...
- 同一份代码怎能在不同环境表现不同?记一个可选链因为代码压缩造成的bug
壹 ❀ 引 某一天,CSM日常找我反馈客户紧急工单,说有一个私有部署客户升级版本后,发现一个功能使用不太正常.因为我们公司客户分为两种,一种是SaaS客户,客户侧使用的版本被动跟随主版本变动,而私有部 ...
- React axios 使用 http-proxy-middleware 解决跨域问题小记
壹 ❀ 引 在上篇bug分析的记录文中,提到axios可做到取消接口请求,所以想写一篇关于axios.CancelToken使用以及原理分析的文章(主要是自己好奇到底如何做到的取消).在准备工作阶段, ...
- Rollup的基本使用
Rollup的基本使用 rollup.js是一个模块打包工具,可以使项目从一个入口文件开始,将所有使用到的模块文件都打包到一个最终的发布文件中,Rollup极其适合构建一个工具库,Vue.js源码就是 ...