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 ...
随机推荐
- 关于覆盖Object中的hashCode, equals和toString
最近在看<Effective Java>,里面看到了关于重载hashCode.equals和toString方法的篇章,顿时觉得视野开拓了不少,而且正结合自己工作.项目中的实例,觉得有必要 ...
- mvc @html.editor怎么修改宽度 和其他属性
<style type="text/css"> #dob { width:6em; } </style> @using (Html.BeginForm()) ...
- C# 6.0 功能预览
C# 6.0 功能预览 (一) 一.索引的成员和元素初始化 1.1 原始初始化集合 Dictionary 1.2 键值初始化集合 Dictionary 1.3 运算符 $ 初始化集合 Dictiona ...
- Android:开发环境搭建、移植
一:搭建Android安卓开发环境 准备文件 1.eclipse-SDK-4.2-win32.zip 2.JDK(Java Development Kit) 3.ADT,安卓开发的一个eclipse的 ...
- 后台XML处理
public void GetInfo() { string message = @"<?xml version='1.0' encoding='utf-8' ...
- linux下的中文编码问题
很多linux的初学者都会碰到这样一个问题:把windows下的文档拷到linux系统,会出现乱码!其实这涉及到中文编码的问题.linux系统默认的是统一码(utf8).而如果你的文件是big5,显然 ...
- iOS基础 - 多线程线程
一.多线程的应用 l 充分发挥多核处理器的优势,并发(同时执行)执行任务让系统运行的更快.更流畅 二.进程与线程概念 l 一个运行的程序就是一个进程或者叫做一个任务 l 一个进程至少包含一个线程,线程 ...
- iOS基础 - 手势识别 与 手势说明
一.使用手势识别的四个步骤 1> 实例化手势识别 - (id)initWithTarget:(id)target action:(SEL)action; 2> 设置手势识别属性 3> ...
- 控制winform中控件的输入格式
private void txtNum1_KeyPress(object sender, KeyPressEventArgs e) { ') && e.KeyChar != '\r' ...
- Xcode开发和调试总结
Xcode是iOS开发主要的工具.IDE.关于Xcode的细枝末节,可以参考苹果的官方文档或者众多的说明.此文档主要涉及常用开发和调试注意事项,参考版本为Xcode 5.1.1. 目标设置: 在此,我 ...