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 ...
随机推荐
- Tomcat 学习笔记二
学习一 java.bean.PropertyChangeListener用来监听bean类的属性值改变.当改变时同时执行对应事件.而且是线程安全的.tomcat用此reload的Boolean值改变是 ...
- JavaScript实例技巧精选(14)—动态变化背景颜色
>>点击这里下载完整html源码<< 这是截图: 网页背景颜色随时间变化,核心代码如下: <SCRIPT LANGUAGE="JavaScript"& ...
- 分享一个c#写的开源分布式消息队列equeue
分享一个c#写的开源分布式消息队列equeue 前言 equeue消息队列中的专业术语 Topic Queue Producer Consumer Consumer Group Broker 集群消费 ...
- Windows使用SSH管理Ubuntu
欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/manage-ubuntu-on-wind ...
- Linq无聊练习系列3--聚合函数练习
/**************聚合函数 练习*******************/ //求学生的总数量 var list = ctx.T_Student. ...
- 用django搭建一个简易blog系统(翻译)(三)
06. Connecting the Django admin to the blog app Django 本身就带有一个应用叫作Admin,而且它是一个很好的工具 在这一部分,我们将要激活admi ...
- .net调用Outlook 批量发送邮件,可指定Outlook中的账号来发送邮件
.net调用Outlook 批量发送邮件,可指定Outlook中的账号来发送邮件 源码可以在我的资源列表中下载: MPOEMail http://download.csdn.net/my VS2012 ...
- 网络爬虫的C++程序
[搜片神器]之DHT网络爬虫的C++程序初步开源 回应大家的要求,特地整理了一开始自己整合的代码,这样最简单,最直接的可以分析流程,至于文章里面提供的程序界面更多,需要大家自己开发. 谢谢园子朋友的支 ...
- SQL删除重复数据,保留一条
例如: id name value 1 a pp 2 a ...
- 【Win32API】SendInput ERROR_BUSY 错误原因
最近需要解决一个Windows上模拟键盘输入的问题, 使用SendInput这个API来实现的.当我从另外一台机器给当前机器发送一条键盘指令时,发现SendInput一直是成功的,但是没有看到任何输入 ...