java笔记 -- java数据类型与类型转换
Java是一种强类型语言, 这就意味着必须为每一个变量声明一种类型.
Java中一共有8中基本类型:
- 4种整型:
整型: 用于表示没有小数部分的数值, 允许为负数
类型 存储需求 取值范围
int: 4字节 -2 147 483 648 ~ 2 147 483 647 (正好超过20亿)
short: 2字节 -32 768 ~ 32 767
long: 8字节 -9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807
byte: 1字节 -128 ~ 127
- 2种浮点类型:
- 用于表示有小数部分的数值.
类型 存储需求 取值范围
float 4字节 大约 ±3.402 823 47E + 38F(有效位数为 6 ~ 7 位)
double 8字节 大约 ±1.797 693 134 862 315 70E + 308(有效位数为15位)
- double表示这种类型的数值精度是float类型的两倍(双精度数值), 大部分程序都采用double类型.
- float类型的数值有一个后缀F, 没有后缀F的浮点数值默认为double类型.可以在浮点数值后面添加后缀D表示double.
- 表示溢出和出错情况的三个特殊的浮点数值:
正无穷大
负无穷大
NaN
- 一个正整数除以0: 正无穷大
- 0/0, 负数的平方根结果为NaN
- 浮点数值不适用于禁止出现摄入误差的金融计算中, System.out.pritln(2.0-1.1) 将打印出0.8999999999999999, 而不是0.9
- 浮点数值采用二进制系统表示, 而在二进制系统中无法精确的表示分数1/10.
- 如果需要在数值计算中不含有任何舍入误差,应使用BigDecimal类
- 1种用于表示Unicode编码的字符单元的字符类型char
用于表示单个字符, 通常用来表示字符常量, 建议不要在程序中使用char类型
- 1种用于表示真值的boolean类型
boolean类型由两个值: false, true, 用来判定逻辑条件.
整型值和布尔值之间不能进行相互转换. 不能使用if(x = 0), x=0不能转换为布尔值.
数值类型之间的转换
- 合法转换:
- 无信息丢失的转换:
byte -> short -> int -> long
char -> int
int -> double
- 可能有精度损失的转换:
int -> float
long -> float
long -> double
- 两个数值进行二元操作时, 先要将两个操作数转换为同一种类型, 然后再进行计算.
1. 如果两个操作数中有一个是double类型, 另一个操作数就会转换为double类型.
2. 否则, 如果其中一个操作数是float类型, 另一个操作数将会转换为float类型.
3. 否则, 如果其中一个操作数是long类型, 另一个操作数将会转换为long类型.
4. 否则, 两个操作数都将转换为int类型
- 强制类型转换
圆括号中给出想要转换的目标类型, 后面紧跟待转换的变量名.
double x = 9.997;
int nx = (int) x; // nx is 9
int nx = (int) Math.round(x); // 四舍五入, 再转为整型
Math.round() 返回的是long类型, 由于存在信息丢失的可能性, 所以只有使用显式的强制类型转换才能够将long类型转换成int类型.
注意: 将一个数值从一种类型强制转换为另一种类型, 而又超出了目标类型的表示范围, 会截断为一个完全不同的值.
不要在boolean类型与数值类型之间进行强制类型转换, 防止发生错误.
java笔记 -- java数据类型与类型转换的更多相关文章
- Java 笔记 —— java 和 javac
Java 笔记 -- java 和 javac h2{ color: #4ABCDE; } a{ text-decoration: none !important; } a:hover{ color: ...
- Java笔记原生数据类型【二】
1.Java中的数据类型分为: 1)原生类型(primitive Data type) 2.)引用类型(对象类型) (Reference Type) 1.变量和常量: 常量: 就是值不会变化的量: 变 ...
- java注释 命名 数据类型 基本类型转换 位运算符 逻辑运算符 三目运算符
一.java注释 1.单行注释 //注释内容 2.多行注释 /*注释内容*/ 3.文档注释(可用javadoc工具生成api文档,不过我还没试过)/**文档注释*/,文档注释可以在使用的时候看见注释 ...
- JAVA的基本数据类型和类型转换
一.数据类型 java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称为变量的初始化. java数据类型分为基本数据类型和引用数据类型 基本数据类型有4类8种 第一类(有4种)整型: ...
- java笔记之数据类型
java中一句连续的字符不能分开在两行中书写,如国太长可用“+”将这两个字符串连起来 文档注释是以“/**”开头,并在注释内容末尾以“*/”结束. 文档注释是对代码的解释说明,可以使用javadoc命 ...
- Java笔记--Java的List、Iterator用法
1. List的使用 准备知识: List继承自Collection接口.List是一种有序集合,List中的元素可以根据索引(顺序号:元素在集合中处于的位置信息)进行取得/删除/插入操作. 跟Set ...
- java笔记 -- java字符串
概念: Java字符串就是Unicode字符序列, Java没有内置的字符串类型, 而是在标准Java类库中提供了一个预定义类. 每个用双引号括起来的字符串都是String类的一个实例.String ...
- Think in Java笔记——Java与对象
最近在重新学习Java,在阅读Java的经典著作——Java编程思想,因此每天记录阅读的心得. 当听到Java这个词时,大家一般想到的是面向对象,确实Java相对于C/C++这两门语言来说,Java最 ...
- 菜鸡的Java笔记 java基础类库 BaseClassLibrary
java基础类库 BaseClassLibrary StringBuffer 类的特点 StringBuffer,StringBuilder,String 类之间的关系 ...
随机推荐
- 求最小生成树的kruskal算法
连通无向图有最小生成树,边权从小到大排序,每次尝试加入权最小的边,如果不成圈,就把这边加进去,所有边扫一遍就求出了最小生成树. 判断连通分支用Union-Set(并查集),就是把连通的点看成一个集合, ...
- 在centos7下安装python3的步骤
环境搭建 准备工具: centos7:http://mirror.bit.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso virtus ...
- MAVEN_day02快速入门
一.MAVEN工程目录结构 二.怎么在Eclipse中集成M2E插件(工欲善其事必先利其器)有一些准备工作 1.修改自己下载的MAVEN 2.设置本地仓库 三.构建MAVEN工程 1.选择“MAVEN ...
- caffe报错:cudnn.hpp:86] Check failed: status == CUDNN_STATUS_SUCCESS (3 vs. 0) CUDNN_STATUS_BAD_PARAM 原因
在实际项目中出现的该问题,起初以为是cudnn版本的问题,后来才定位到在网络进行reshape操作的时候 input_layer->Reshape({(), input_layer->sh ...
- 六种方式读取properties资源文件
conf.properties文件内容: reportStationName=xx供电局 JBM=0318 文件路径: 其中xxx为项目名 import java.io.BufferedInputSt ...
- 【Linux】-NO.86.Linux.6.C.1.001-【CentOS 7 Install GCC】-
1.0.0 Summary Tittle:[Linux]-NO.86.Linux.6.C.1.001-[CentOS 7 Install GCC]- Style:Java Series:Log4j S ...
- asp.net机制理解(Javaweb同理)
1.页面运行先后顺序 先执行aspx中的代码,然后再合并到HTML中,最后一起送到浏览器执行,HTML是从上到下执行的,而HTML中的Windows.onload()最后执行.而由于aspx中的代码是 ...
- ARIMA模型总结
时间序列建模基本步骤 获取被观测系统时间序列数据: 对数据绘图,观测是否为平稳时间序列:对于非平稳时间序列要先进行d阶差分运算,化为平稳时间序列: 经过第二步处理,已经得到平稳时间序列.要对平稳时间序 ...
- Navicate 连接mysql问题
mysql8.0 and Navicate11.2 链接报错问题 亲测有效:记录一下仅供提醒自己 原创: https://blog.csdn.net/xdmfc/article/details/802 ...
- Linux基础命令---lpc打印机控制
lpc lpc指令用来控制打印机,它提供了一个命令行,用户可以输出命令来控制打印机.如果命令行上没有指定命令,lpc将从标准输入中显示提示符并接受命令. 此命令的适用范围:RedHat.RHEL.Ub ...