【JAVA程序设计】基本数据类型
Java基本数据类型
摘要:
每个数据类型都有它的取值范围。编译器会根据每个变量或常量的数据类型为其分配内存空间。Java为数值、字符值和布尔值数据提供了八种基本数据类型。
文章目录
- Java基本数据类型
- 一、整数类型
- 1.数值前缀和后缀
- 2.Java&C++提示
- 二、浮点类型
- 1.double&float
- 2.浮点数值的后缀
- 3.浮点数的表示
- 3.三个特殊的浮点数值
- 三、字符类型
- 1.字符的表示
- 2.Unicode 和 ASCII 码
- 3.转义字符
- 4.字符型数据与数值型数据之间的转换
- 5.字符的比较和测试
- 四、布尔类型
一、整数类型
整型于表示没有小数部分的数值,它可以是负数。
类型 | 存储需求 | 取值范围 | 数值 |
---|---|---|---|
byte | 1字节 | −27-2^7−27 ~ 27−12^7-127−1 (-128 ~ 127) | 8 位带符号数 |
short | 2字节 | −215-2^{15}−215 ~ −215−1-2^{15}-1−215−1 (-32 768 ~ 32 767) | 16 位带符号数 |
int | 4字节 | −231-2^{31}−231 ~ −231−1-2^{31}-1−231−1 ((-2 147 483 648 ~ 2 147 483 647) | 32 位带符号败 |
long | 8字节 | −263-2^{63}−263 ~ −263−1-2^{63}-1−263−1 (即 -9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 8077) | 64 位带符号数 |
1.数值前缀和后缀
- 十六进制数值有
0x
或0X
前缀 - 八进制数值有前缀
0
- 二进制数值有前缀
0b
或0B
- 可以为数值增加下划线:如
1_000_000
,0b1111_0100_1111
- 长整型数值有后缀
L
或l
2.Java&C++提示
1.Java中, 整型的范围与运行 Java 代码的机器无关。
2. Java 没有任何元符号 unsigned 形式 int long short byte 类型
二、浮点类型
浮点类型用于表示有小数部分的数值
类型 | 存储需求 | 取值范围 | 数值 | 有效数位 |
---|---|---|---|---|
float | 4字节 | 负数范围:−3.4028235×10+38-3.4028235\times10^{+38}−3.4028235×10+38~ −1.4×10−45-1.4\times10^{-45}−1.4×10−45 正数范围:1.4×10−451.4\times10^{-45}1.4×10−45 ~ 3.4028235×10+383.4028235\times10^{+38}3.4028235×10+38 | 32 位,标准 IEEE 754 | (有效位数为6 - 7位) |
double | 8字节 | 负数范围:−1.7976931348623157×10+308-1.7976931348623157\times10^{+308}−1.7976931348623157×10+308~ −4.9×10−324-4.9\times10^{-324}−4.9×10−324 正数范围:4.9×10−3244.9\times10^{-324}4.9×10−324 ~ 1.7976931348623157×10+3081.7976931348623157\times10^{+308}1.7976931348623157×10+308 | 64 位,标准 IEEE 754 | (有效位数为 15 位) |
浮点数值不适用于无法接受舍入误差的计算中,如果在数值计算中不允许有任何舍入误差,应该使用 BigDecimal 类
1.double&float
- double 型是 float 型的两倍。所以,double 型又称为双精度 (double precision), 而 float 称为单精度 ( single precision)。
- 在很多情况下, float 类型 的精度很难满足需求,通常情况下,应该使用 double 型。
2.浮点数值的后缀
- float 类型的数值有
F
或f
后缀 - double 类型的可以有
D
或d
后缀 - 没有后缀的浮点数值默认为 double 类型
3.浮点数的表示
科学计数法表示:
1.23456×1021.23456 \times 10^21.23456×102 可以写成 1.23456E2 或者 l.23456E+2
- 浮点型直接量可以用 a×10ba\times10^ba×10b 形式的科学记数法表示
- E (或 e) 表示指数,既可以是大写的也可以是小写的
十六进制数表示:
0.125×2−3\times2^{-3}×2−3 可以表示成 0x1.0p-3
- 在十六进制表示法中,使用
p
表示指数 - 尾数采用十六进制,指数采用十进制
- 指数的基数是 2, 而不10
3.三个特殊的浮点数值
正无穷大
Double.POSITIV E_INFINITY
、Float.POSITIVE_INFINITY
负无穷大
Double.NEGATIV_INFINlTY
、Float.NEGATIV_INFINlTY
NaN(不是一个数字)
Double.NaN
、Float.NaN
注:不能这样桧测一个特定值是否等于 Double.NaN,可以使用 Double.isNaN 方法
if (x == Double.NaN) // is never true
if (Double.isNaN(x)) // check whe ther x is "not a number"
三、字符类型
字符数据类型表示单个字符,一些Unicode字符需要两个char值
1.字符的表示
字符型直接量用单引号括住
char letter = 'A';
字符串直接量必须括在双引号中。而字符直接量是括在单引号中的单个字符。
2.Unicode 和 ASCII 码
编码(encoding):将字符映射到它的二进制形式的过程。 编码表(encoding scheme)
scheme):字符有多种不同的编码方式,编码表定义该如何编码每个字符。
ASCII 码(美国标准信息交换码)是表示所有大小写字母、数字、标点符号和控制字符的 8 位编码表
16 位 Unicode 码 占 两 个 字 节,用 以 \u 开头的 4 位 十六进制数表示,范围从 ‘\u0000’ 到 ’\UFFFF’。(Unicode 码包括ASCII码)
一个 16 位的编码所能产生的字符只有 65 536 个,它是不足以表示全世界所有字符的。因此,Unicode 标准被扩展为 1 112 064 个字符。这些字符都远远超过了原来 16 位的限制,它们称为补充字符(supplementary character)
3.转义字符
转义序列 | 名称 | Unicode码 | 十进制数值 |
---|---|---|---|
\b | 退格键 | \u0008 | 8 |
\t | Tab 键 | \u0009 | 9 |
\n | 换行符 | \u000A | 10 |
\f | 换页符 | \u000C | 12 |
\r | 回车符 | \u000D | 13 |
\\
|
反斜杠 | \u005C | 92 |
\"
|
双引号 | \u0022 | 34 |
4.字符型数据与数值型数据之间的转换
- char 型数据可以转换成任意一种数值类型,反之亦然。将整数转换成 char 型数据时,只用到该数据的低十六位,其余部分都被忽略
- 要将一个浮点值转换成 char 型时,首先将浮点值转换成 int 型,然后将这个整型值转换为 char 型
- 如果转换结果适用于目标变量(范围不大于),就可以使用隐式转换方式;否则,必须使用显式转换方式
- 0~FFFF 的任何一个十六进制正整数都可以隐式地转换成字符型数据。而不在此范围内的任何其他数值都必须显式地转换为 char 型
- 所有数值操作符都可以用在 char 型操作数上。如果另一个操作数是一个数字或字符,那么 char 型操作数就会被自动转换成一个数字
Unicode 转义序列会在解析代码之前得到处理:
“\u0022+\ u0022” 并不是个由引号 (\U 0022) 包围加号构成 的字符串,实际 上, \u0022 会在解析之前转换为"
,这会得到“+“
,要当心注释中的\u
:
// \u000A is a newline
语法错误 因为读程序时\u000A
会替换为一个换行符
5.字符的比较和测试
- 两个字符可以使用关系操作符进行比较,如同比较两个数字一样。这是通过比较两个字符的 Unicode 值实现的。
- 程序中需要测试一个字符是数字、字母;大写字母,还是小写字母,为了方便,Java 的 Character 类提供了下列方法用于进行字符测试:
方法 描述 isDigit(ch) 如果指定的字符是一个数字,返冋 true isLetter(ch) 如果指定的字符是一个字母,返冋 true isLetterOrDigit(ch) 如果指定的字符是一个字母或者数字,返回 true isLowerCase(ch) 如果指定的字符是一个小写字母,返冋 true isUpperCase(ch) 如果指定的字符是一个大写字母,返冋 true toLowerCase(ch) 返回指定的字符的小写形式 toUpperCase(ch) 返回指定的宇符的大写形式
四、布尔类型
boolean 数据类型声明一个具有值 true 或者 false 的变量
- 布尔类型用来判定逻辑条件,整型值和布尔值之间不能进行相互转换
在C++中,数值甚至指针可以代替 boolean,值0相当于false,Java中不行
【JAVA程序设计】基本数据类型相关推荐
- 20175320 2018-2019-2 《Java程序设计》第2周学习总结
20175320 2018-2019-2 <Java程序设计>第2周学习总结 教材学习内容总结 本周学习了教材的第二章及第三章的内容.在这两章中介绍了Java编程中的基本数据类型与数组以及 ...
- java程序设计_Java程序设计:学习笔记(4-5)(未完工)
声明: 本文内容基于"吉首大学软件学院-Java程序设计(Java面向对象程序设计)"网课与个人实践经验修改编写而成.本文属于Arcadia项目组成部分.若有错误或不足之处存在请联 ...
- java课设推荐,《Java程序设计》课程设计报告推荐.docx
<Java程序设计>课程设计报告推荐 <Java程序设计>课程设计报告2015-2016学年 第一学期设计题目整数进制转换学生姓名邹晓刚学 号0专业班级信管1303指导教师 姜 ...
- Java程序设计-基础知识
目录 1.JAVA概述 1.1程序设计语言 机器语言 汇编语言 高级语言 1.2Java的特点 简单性 面向对象 安全性 平台独立 多线程 网络功能 执行效率 1.3JDK的设置 Path:----- ...
- java程序设计pdf下载_Java程序设计(迟立颖) PDF扫描版[21MB]
Java程序设计由浅入深地介绍了Java的基础知识,并结合具体的实例重点阐述了Java面向对象的概念及其程序设计方法,还介绍了图形用户界面(GUI)等知识.全书共分11章,内容包括Java概述.Jav ...
- java程序设计实验报告_JavA程序设计实验报告.doc
Java程序设计实验报告 学号: 姓名: 座位号: 实验日期: [实验名称]: JDK配置与开发工具的使用 [实验目的]: 熟悉JDK开发环境. 熟悉EditPlus编辑器或Eclipse等开发环境的 ...
- 20165206 2017-2018-2 《Java程序设计》第三周学习总结
20165206 2017-2018-2 <Java程序设计>第三周学习总结 教材学习内容总结 类:class是关键字,用来定义类. 类声明:例如class People. 对象的声明:类 ...
- java程序设计_80后程序员,带你深入理解Java基本的程序设计结构,不来你别后悔...
前言 现在,假定已经成功地安装了JDK,并且能够运行第2章中给出的示例程序.从现在开始将介绍Java应用程序设计.本章主要讲述程序设计相关的基本概念(如数据类型.分支以及循环)在Java中的实现方式. ...
- 20165334 《java程序设计》第2周学习总结
学号20165334 <Java程序设计>第2周学习总结 教材学习内容总结 一.第2章基本数据类型与数组 关于标识符 标识符由字母.下划线.美元符号和数字组成,长度不受限制. 标识符的第一 ...
- 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结
20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...
最新文章
- java object monitor_Java-线程状态、ObjectMonitor
- oracle文件管理
- 如何使用 Chrome 开发者工具 Performance tab 分析 JavaScript 的执行瓶颈
- drive es 软件兼容_某知名软件被完美修改!对不住了!
- 【Comet OJ - Contest #5 - C】迫真小游戏(优先队列,贪心构造,树,字典序)
- python 字符串操作速度_强者一出,谁与争锋?与Python相比,C+的运行速度究竟有多快?|python|编程语言|字符串|示例|算法...
- leetcode链表篇
- android.graphics包中的一些类的使用
- OpenShift 4 - 使用教程和免费试用环境
- 发现一个 WPF/E Asp.net Server Control
- Gentle.NET笔记(二)-列表示例
- Windows10 的简单脚本 杀死所有表格程序
- 常见的几类矩阵(正交矩阵、酉矩阵、正规矩阵等)
- mysql数据库在哪里写语句_MySQL数据库基本操作以及SQL语句
- SAE 搭建微信公众平台
- igs时间和utc_世界协调时间(UTC)与中国标准时间
- 【DPD数字预失真】射频功放的Volterra级数数字预失真系统开发
- 银海系统服务器登录不上,解决登录问题 - Skype for Business | Microsoft Docs
- 计算机键盘设置功能键取消,键盘insert操作怎么取消?电脑键盘insert操作取消教程...
- 携程首页手机端-静态页面
热门文章
- educoder第六章 关联挖掘 实验二:FP-growth
- cpu功耗排行_AMD、Intel主流处理器性能、功耗及性价比排行(更新中)
- bgp协议 怎么知道相邻路由的ip地址_三级网络技术考前选择题1—BGP
- Java基础教程【第九章:异常处理】
- Android移动应用基础教程 【程序活动单元Activity】
- oracle缺少控制文件,关于oracle丢失控制文件的恢复办法
- php上传压缩文件,8行代码实现PHP上传RAR文件并解压
- qgraphicsview鼠标移动图片_交互式QGraphicsView(平移/缩放/旋转)-阿里云开发者社区...
- php按钮打开文件选择框,在Select file(选择)页面单击Select file(选择文件)按钮
- java切面不需要接口了吗_详解Spring AOP 实现“切面式”valid校验