CoreJavaE10V1P3.3 第3章 Java的基本编程结构-3.3 数据类型
3.3 数据类型
这里所说的数据类型是指 Java的8中基本数据类型,是原生就存在的。
不同进制数的字面值表示方法
| 进制 | 字面值表示方法 | 例子 | 是否默认 | JDK版本支持 |
| 2进制 | 0b或0B前缀(每4位可用_分隔) | 0b1001,0b1111_0100_0010 | Java SE 7开始 | |
| 8进制 | 0前缀 | 010 | ||
| 10进制 | 010 | √ | ||
| 16进制 | 0x或0X前缀 | 0xCAFE |
Java中没有unsigned 类型的数
在Java中谈默认值是没有意义的,一个数据的默认值只有在声明为成员变量或是静态变量以及初始化的时候存在,而没有初始化的变量会出现编译错误。
3.3.1 整数型(4种)
| 类型 | 字节数 | 表示范围 | 默认值 | 大致表示范围 | 字面值表示方法 | 例子 | 是否是默认字面值类型 | 是否推荐使用 |
| byte | 1 | –128 到 127 | 0 | 100 | ||||
| short | 2 | –32,768 到 32,767 | 0 | 3万 | ||||
| int | 4 | –2,147,483,648 到 2,147,483, 647 | 0 | 20亿 | 400 | √ | √ | |
| long | 8 | –9,223,372,036,854,775,808 到9,223,372,036,854,775,807 | 0L | 9*1018 | l或L后缀(400L) | 400L |
3.3.2 浮点数型(2种)
| 类型 | 字节数 | 表示范围 | 默认值 | 有效数字(精度)(10进制下) | 字面值表示方法 | 例子 | 是否为默认字面值类型 | 是否推荐使用 |
| float | 4 | ±3.40282347E+38F | 0.0f | 6-7位 | f或F后缀 | 3.14F | ||
| double | 8 | ±1.79769313486231570E+308 | 0.0d | 15位 | d或D后缀 | 3.14D,3.14 | √ | √ |
16进制指数式浮点数字面值表示方法
| 底数 | 表示方法 | 例子 | 常规表示方法 |
| 以2为底 | 0x***p***标记(尾数采用16进制,指数采用10进制) | 0x1.0p-3 | 1.0x2-3 |
3个特殊的浮点数
| Double.POSITIVE_INFINITY | 正无穷 |
| Double.NEGATIVE_INFINITY | 负无穷 |
| Double.NaN | 非数(0/0或负数的平方根) |
1.Double类是对double类型的对象化封装,java.lang.Double
System.out.println(2.0 - 1.1)
输出结果是 0.8999999999999999 而不是 0.9 ,浮点数在实际存储时以2进制存储,出现了精度损失,入股数值计算不能有任何舍入误差,使用 BigDecimal 类
3.3.3 字符型(1种)
Java中的char字符表示的是unicode(即UTF-16)编码字符,
| 类型 | 字节数 | 表示范围 | 默认值 | 表示方法 | 例子 |
| char | 2 | \u0000 到 \uFFFF | ‘\u0000’ | ‘ ’标记,可使用\u转译和特殊字符转译 | ‘A’,‘\u2122’,‘\n’ |
常用的char字符以及转译字符
| 转译形式 | 名称 | Unicode值 |
| \n | 换行 | \u000a |
| \r | 回车 | \u000d |
| \t | Tab | \u0009 |
| \" | “ | \u0022 |
| \' | ‘ | \u0027 |
| \\ | \ | \u005c |
| π,数字PI的符号 | \u03C0 | |
| ™,商标符号 | \u2122 |
Unicode型转译字符可以在源代码中直接使用
public static void main(String\u005B\u005D args)
等价于
public static void main(String[] args)
3.3.4 Unicode与char
3.3.5 布尔型
| 类型 | 默认值 | 字节数 | 表示方法 | 例子 |
| boolean | false | 在编译之后都使用JVM中的int数据类型来代替,而boolean数组将会被编码成Java虚拟机的byte数组,每个元素boolean元素占8位。这样我们可以得出boolean类型占了单独使用是4个字节,在数组中又是1个字节 | true,false | true,false |
boolean与其他类型不可转换,在c/c++中,0表示false,非0表示true,java中不行。
CoreJavaE10V1P3.3 第3章 Java的基本编程结构-3.3 数据类型的更多相关文章
- CoreJavaE10V1P3.5 第3章 Java的基本编程结构-3.5 操作符
最基本的操作为赋值操作,= 即赋值操作符 基本的算术操作为加.减.乘.除取模.除取余数,其对应操作符为 +.-.*./.% 算术操作与赋值操作联合衍生为:+=:-=:*=:/=:%=: 由于处理器硬件 ...
- CoreJavaE10V1P3.10 第3章 Java的基本编程结构-3.10 数组(Arrays)
数组是存储同一类型数据的数据结构 数组的声明与初始化 int[] a; int a[]; int[] a = new int[100]; int[] a = new int[100]; for (in ...
- CoreJavaE10V1P3.9 第3章 Java的基本编程结构-3.9 大数值(Big Numbers)
如果基本的整型与浮点型不能满足需求,可以使用java.Math包提供的 BigInteger 和 BigDecimal 两个类,这两个类可以存储任意长度的数, BigInteger 实现的任意精度整数 ...
- CoreJavaE10V1P3.8 第3章 Java的基本编程结构-3.8 控制流程(Control Flow)
通过使用条件语句.循环语句可以实现流程的控制. 3.8.1 块作用域(Block Scope) 块(Block)就是由一对花括号包围起来的部分.他指定了一个变量的生存范围,与一个方法的操作范围. Ja ...
- CoreJavaE10V1P3.7 第3章 Java的基本编程结构-3.7 输入输出(Input ,Output)
3.7.1 读取输入 Scanner in = new Scanner(System.in); System.out.print("What is your name? "); S ...
- CoreJavaE10V1P3.6 第3章 Java的基本编程结构-3.6 字符串 String
String类(java.lang.String)就是Unicode字符序列,例如:"Java\u2122" 3.6.1 Substring 提取子串 String greetin ...
- CoreJavaE10V1P3.4 第3章 Java的基本编程结构-3.4 变量
1.在Java中,每一个变量都必须有一个类型,在变量声明是,类型必须在变量名之前.示例如下: double salary; int vacationDays; long earthPopulation ...
- CoreJavaE10V1P3.2 第3章 Java的基本编程结构-3.2 注释
3.2 注释 1. //形式注释 System.out.println("We will not use 'Hello, World!'"); // is this too cut ...
- CoreJavaE10V1P3.1 第3章 Java的基本编程结构-3.1 Java 最简程序
3.1Java最简程序 FirstSample.java public class FirstSample { public static void main(String[] args) { Sys ...
随机推荐
- SpringMVC表单标签
SpringMVC学习系列(11) 之 表单标签 本篇我们来学习Spring MVC表单标签的使用,借助于Spring MVC提供的表单标签可以让我们在视图上展示WebModel中的数据更加轻松. ...
- 学习Python编程的11个精品资源
本文由 伯乐在线 - atupal 翻译自 Alex Ivanovs.欢迎加入技术翻译小组.转载请参见文章末尾处的要求. 用 Python 写代码并不难,事实上,它一直以来都是被声称为最容易学习的编程 ...
- SQLSERVER 总结1
数据:描述事物的符号记录 数据库:按照数据结构来组织和存储管理的数据仓库 数据库管理系统:位于用户与操作系统之间的一层数据管理软件 数据库系统:在计算机系统中引入数据库后的系统构成.由数据库,数据库管 ...
- 关于CSS reset的思考
关于CSS reset的思考 在现在的网站设计中使用reset.css用重置整个站点的标签的CSS属性的做法很常见,但有时候我们已经为了reset而reset,我们经常看到这样的reset代码 div ...
- json序列化NHibernate的实体
在使用nhibernate时,想将实体对象序列化成json字符串,然后打印在日志中. 序列化时会出现问题,应该是因为这个实体被hibernate管理的原因.具体原因没有分析. 解决方案:为实体创建一个 ...
- RDLC(Reportview)报表直接打印,支持所有浏览器,客户可在linux下浏览使用
最近在做一个打印清单的,但是rdlc报表自带的工具栏中的打印按钮只有在ie内核下的浏览器才可以使用(其他的就会 隐藏),这导致了使用火狐和谷歌浏览器还有使用linux系统的客户打印成了问题,于是就自己 ...
- 实践Scrum
http://blog.vsharing.com/agiledo/ [原创]敏捷开发实践-我们这样实践Scrum-续(81页) 我们团队实践Scrum,有一些做法和教训,希望和大家分享: 公司背景:通 ...
- jQuery Validation让验证变得如此容易(三)
以下代码进行对jQuery Validation的简单演示包括必填项.字符长度,格式验证 一.引入文件 <script src="js/jquery-1.8.0.min.js" ...
- EL表达式与三目运算符
在页面实现常量替换,比如 entity.auditi 的值如果为0显示不需要否则显示需要 因为需求就这两个值 所以使用三目运算符比较简洁 如果值为很多个 可使用if else进行判断 ${entit ...
- LigerUI权限系统之菜单管理
菜单管理跟上篇的组织结构实现方式差不多,所以不存在多大的问题.还是老样,先上图,再看代码.菜单管理界面 菜单管理添加: 菜单管理修改: 前端完整代码: @section headerScripts{ ...