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学习系列(8) 之 国际化 在系列(7)中我们讲了数据的格式化显示,Spring在做格式化展示的时候已经做了国际化处理,那么如何将我们网站的其它内容(如菜单.标题等)做国际化处理呢? ...
- 2014.3.6-C语言学习小结
链表基础: 知识点: 1.链表基础 2.节点的创建和添加 llist_append_node 3.链表的遍历 llist_print_each 4.链表的查找与修改 5.链表的插入与删除 6.链表的销 ...
- javascript-无间缝滚动,封装
原生javascript-无间缝滚动,封装 目前支持的是竖向与横向滚动 http://lgyweb.com/marScroll/ 现在分析下无间缝实现的基本思路(竖向例子): HTML结构: 1 &l ...
- linux下安装java
搞了一年IT了,作为IT人没怎么玩过linux挺丢脸的,要好好整整. 先从熟悉的来,在linux下开发java,首先要搭建环境. linux有一个工具yum,非常好用. 1.yum install j ...
- Web前端Require.js
前言 前段时间粗略的扫过一次require.js,当时没怎么在意,结果昨天看到index里面的代码就傻了,完全不知道从哪开始看啦,所以require与backbone的学习还要加紧才行. 由于前端所占 ...
- 11 款最好 CSS 框架
11 款最好 CSS 框架 让你的网站独领风骚 网页设计和发展领域已经成为竞争激烈的虚拟世界.想要在网络的虚拟世界中生存,仅有一堆静止的在线网络应用是远远不够的,网页必须要有很多功能,配以让人无法抗拒 ...
- JDBC开发
1.JDBC简介 )数据库驱动 )Sun公司为简化数据库开发,定义了一套jdbc接口,这套接口由数据库厂商去实现,这样,开发人员只需要学习jdbc接口,并通过jdbc加载具体的驱动,就可以操作数据库. ...
- hdu 1998 奇数阶魔方(找规律+模拟)
应该不算太水吧. 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 ...
- iOS 开发中中 textView 作为子控件点击输入文本,然后退出文本的方式
方式1. 使用当双击输入的时候弹出键盘同时,使用手势和通知监听键盘的方法实现 代码如下: 1. 监听键盘通知 [[NSNotificationCenter defaultCenter] addObse ...
- Dubbo源码学习--服务是如何引用的
ReferenceBean 跟服务引用一样,Dubbo的reference配置会被转成ReferenceBean类,ReferenceBean实现了InitializingBean接口,直接看afte ...