Java核心技术之基本数据类型
这篇文章。我们讨论一些java的最主要的东西。这些东西我们一般刚刚学java的时候就学过,可是不一定真正明确。
正好,我在做一个读取内存的值,涉及到bit位的值的读取和写。那就能够讨论一个java的基本数据类型的值在机器的具体情况:
Java基本数据类型共同拥有八种三类:字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。
数值类型又能够分为整数类型byte、short、int、long和浮点数类型float、double。
Java决定了每种简单类型的大小。这些大小并不随着机器结构的变化而变化。这样的大小的不可更改正是Java程序具有非常强移植能力的原因之中的一个。
以下,我们就是要分析java基本数据类型的取值范围和占多少字节多少bit(1字节 = 8 bit)。
代码例如以下:
public class BaseDataInfo{
public static void main(String[] args) {
System.out.println("Boolean.FALSE:"+Boolean.FALSE);
System.out.println("Boolean.TRUE:"+Boolean.TRUE);
int maxByte = Byte.MAX_VALUE;
int minByte = Byte.MIN_VALUE;
int sizeByte = Byte.SIZE;
System.out.println("Byte.MAX_VALUE:"+maxByte);
System.out.println("Byte.MIN_VALUE:"+minByte);
System.out.println("Byte.SIZE:"+sizeByte);
int maxChar = Character.MAX_VALUE;
int minChar = Character.MIN_VALUE;
int sizeChar = Character.SIZE;
System.out.println("Character.MAX_VALUE:"+maxChar);
System.out.println("Character.MIN_VALUE:"+minChar);
System.out.println("Character.SIZE:"+sizeChar);
int maxShort = Short.MAX_VALUE;
int minShort = Short.MIN_VALUE;
int sizeShort = Short.SIZE;
System.out.println("Short.MAX_VALUE:"+maxShort);
System.out.println("Short.MIN_VALUE:"+minShort);
System.out.println("Short.SIZE:"+sizeShort);
int maxInt = Integer.MAX_VALUE;
int minInt = Integer.MIN_VALUE;
int sizeInt = Integer.SIZE;
int bitCount = Integer.bitCount(10);
System.out.println("Integer.MAX_VALUE:"+maxInt);
System.out.println("Integer.MIN_VALUE:"+minInt);
System.out.println("Integer.SIZE:"+sizeInt);
System.out.println("Integer.bitCount(1):"+bitCount);
long maxLong = Long.MAX_VALUE;
long minLong = Long.MIN_VALUE;
int sizeLong = Long.SIZE;
System.out.println("Long.MAX_VALUE:"+maxLong);
System.out.println("Long.MIN_VALUE:"+minLong);
System.out.println("Long.SIZE:"+sizeLong);
float maxFloat = Float.MAX_VALUE;
float minFloat = Float.MIN_VALUE;
int sizeFloat = Float.SIZE;
System.out.println("Float.MAX_VALUE:"+maxFloat);
System.out.println("Float.MIN_VALUE:"+minFloat);
System.out.println("Float.SIZE:"+sizeFloat);
Double maxDouble = Double.MAX_VALUE;
Double minDouble = Double.MIN_VALUE;
int sizeDouble = Double.SIZE;
System.out.println("Double.MAX_VALUE:"+maxDouble);
System.out.println("Double.MIN_VALUE:"+minDouble);
System.out.println("Double.SIZE:"+sizeDouble);
}
}
输出结果:
Boolean.FALSE:false
Boolean.TRUE:true
Byte.MAX_VALUE:127
Byte.MIN_VALUE:-128
Byte.SIZE:8
Character.MAX_VALUE:65535
Character.MIN_VALUE:0
Character.SIZE:16
Short.MAX_VALUE:32767
Short.MIN_VALUE:-32768
Short.SIZE:16
Integer.MAX_VALUE:2147483647
Integer.MIN_VALUE:-2147483648
Integer.SIZE:32
Integer.bitCount(1):2
Long.MAX_VALUE:9223372036854775807
Long.MIN_VALUE:-9223372036854775808
Long.SIZE:64
Float.MAX_VALUE:3.4028235E38
Float.MIN_VALUE:1.4E-45
Float.SIZE:32
Double.MAX_VALUE:1.7976931348623157E308
Double.MIN_VALUE:4.9E-324
Double.SIZE:64
从输出结果能够看出:
|
boolean |
仅仅有true和false两个取值 |
|
byte |
8位,最大存储数据量是255,存放的数据范围是-128~127之间 |
|
short |
16位,最大数据存储量是65536,数据范围是-32768~32767之间 |
|
int |
32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1(也就是-2147483648~2147483647)。从int取值范围能够看。int适合20亿级别的整形数据。 |
|
long |
64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2 的63次方减1(也就是-9223372036854775808~9223372036854775807)。 从long的取值范围能够看出。long适合海量级(亿亿级)的整形数据。 |
|
float |
32位,数据范围在3.4e-45~1.4e38。直接赋值时必须在数字后加上f或F。从float的取值范围能够看出,float适合e38级的float数据。 |
|
double |
64位,数据范围在4.9e-324~1.8e308,赋值时能够加d或D也能够不加。从double的取值范围能够看出,double适合e308的double数据。 |
|
char |
16位。存储Unicode码,用单引號赋值 |
|
基本数据类型 |
boolean |
byte |
char |
short |
int |
long |
float |
double |
|
bit位数 |
1 |
8 |
16 |
16 |
32 |
64 |
32 |
64 |
|
字节位数 |
0.125 |
1 |
2 |
2 |
4 |
8 |
4 |
8 |
|
封装类 |
Boolean |
Byte |
Character |
Short |
Integer |
Long |
Float |
Double |
參考资料:
Java基本数据类型总结
http://www.cnblogs.com/doit8791/archive/2012/05/25/2517448.html
Java核心技术之基本数据类型的更多相关文章
- java中的数据类型,运算符,字符串,输入输出,控制流,大数值,数组; 《java核心技术卷i》 第三章:java基本程序结构;
<java核心技术卷i> 第三章:java基本程序结构: 每次看书,去总结的时候,总会发现一些新的东西,这次对于java的数组有了更深的了解: java中的数据类型,运算符,字符串,输入输 ...
- 读《java核心技术卷一》有感
过去一个多月了吧.才囫囵吞枣地把这书过了一遍.话说这书也够长的,一共706页.我从来不是个喜欢记录的人,一直以来看什么书都是看完了就扔一边去,可能有时候有那么一点想记录下来的冲动,但算算时间太紧,很多 ...
- java的优点和误解 《java核心技术卷i》第一章
<java核心技术卷i>第一章主要内容包括三点: 1:Java白皮书的关键术语:描述Java的十一个关键字: 2:Java applet 3 :关于Java的常见误解 1:第一章:Ja ...
- (6)java基础知识-基本数据类型、数据类型转换
一.基本数据类型 基本的数据类型一共有四类八种 1.整型 byte: 1字节 取值范围 -128~127 short: 2字节 取值范围 -32768~32767 int: 4字节 取 ...
- java核心技术卷一
java核心技术卷一 java基础类型 整型 数据类型 字节数 取值范围 int 4 +_2^4*8-1 short 2 +_2^2*8-1 long 8 +_2^8*8-1 byte 1 -128- ...
- Java核心技术第八章-泛型
摘要 本文根据<Java核心技术 卷一>一书的第八章总结而成,部分文章摘抄书内,作为个人笔记. 文章不会过于深入,望读者参考便好. 为什么要使用泛型程序设计 泛型程序设计(Generic ...
- java核心技术(第十版卷一)笔记(纯干货!)
这是我读过的第三本关于java基础的书.第一本<<java从入门到精通>>这本书让我灵识初开.第二本<<java敏捷开发>>这本书则是有一次被一位师傅批 ...
- 2019 最新 Java 核心技术教程,都在这了!
Java技术栈 www.javastack.cn 优秀的Java技术公众号 以下是Java技术栈微信公众号发布的所有关于 Java 的技术干货,会从以下几个方面汇总,本文会长期更新. Java 基础篇 ...
- 面试必备!Java核心技术100+面试题
一线互联网公司工作了几年,我作为求职者参加了不少面试,也作为面试官面试了很多同学,整理这份面试指南,一方面是帮助大家更好的准备面试,有的放矢,另一方面也是对自己知识框架做一个体系化的梳理. 这篇文章梳 ...
随机推荐
- 转自kuangbin的AC自动机(赛前最后一博)
有了KMP和Trie的基础,就可以学习神奇的AC自动机了.AC自动机其实就是在Trie树上实现KMP,可以完成多模式串的匹配. AC自动机 其实 就是创建了一个状态的转移图,思想很 ...
- HDU-1829 A Bug's Life。并查集构造,与POJ1709异曲同工!
A Bug's Life Find them, Catch them 都是并查集构造的题,不久前 ...
- SPOJ GSS6 Can you answer these queries VI ——Splay
[题目分析] 增加了插入和删除. 直接用Splay维护就好辣! 写了一个晚上,(码力不精),最后发现更新写挂了 [代码] #include <cstdio> #include <cs ...
- [暑假集训--数位dp]hdu2089 不要62
杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer).杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍, ...
- spring和mybatis整合配置文件
查看所有springmvc spring mybatis配置文件见下链接: https://my.oschina.net/sherwayne/blog/262616 <?xml versio ...
- docker命令解析
1.docker run --name lllllll -d -p 8080:8080 -p 9000:9000 镜像id 将docker8080端口映射到服务器的8080端口 ...
- NOJ1203 最多约数问题 [搜索 数论]
传送门 njczy2010 1203 Accepted 79MS 1400K 2321Byte G++ 2015-01-25 13:14:25.0 最多约数问题 时间限制(普通/Java) : 2 ...
- 安卓解析XML文件
安卓解析XML文件 主要有三种方式:DOM解析.SAX解析.PULL解析 其中: DOM解析为等XMl文件全部加载后,然后根据需要解析的内容解析出所需的内容数据. SAX解析为从XML文件中执行一行, ...
- 初学Android,BroadcastReceiver之发送接收广播
BroadcastReceiver用于监听系统全局广播消息,由于BroadcastReceiver是一种全局的监听器,因此它可以非常方便地实现系统中不同组件之间通信 启动它需要两步 1.创建需要启动的 ...
- hdu2448 / 费用流 / harbin赛区c题
题(自)目(己)错(英)综(语)复(太)杂(差),关系理了半小时+翻译才看明白,看明白之后,直接建图,费用流击杀./简单题. 2A:有的地方,可用互通的要建双向边! #include<cstdi ...