这篇文章。我们讨论一些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核心技术之基本数据类型的更多相关文章

  1. java中的数据类型,运算符,字符串,输入输出,控制流,大数值,数组; 《java核心技术卷i》 第三章:java基本程序结构;

    <java核心技术卷i> 第三章:java基本程序结构: 每次看书,去总结的时候,总会发现一些新的东西,这次对于java的数组有了更深的了解: java中的数据类型,运算符,字符串,输入输 ...

  2. 读《java核心技术卷一》有感

    过去一个多月了吧.才囫囵吞枣地把这书过了一遍.话说这书也够长的,一共706页.我从来不是个喜欢记录的人,一直以来看什么书都是看完了就扔一边去,可能有时候有那么一点想记录下来的冲动,但算算时间太紧,很多 ...

  3. java的优点和误解 《java核心技术卷i》第一章

    <java核心技术卷i>第一章主要内容包括三点: 1:Java白皮书的关键术语:描述Java的十一个关键字: 2:Java applet 3 :关于Java的常见误解   1:第一章:Ja ...

  4. (6)java基础知识-基本数据类型、数据类型转换

    一.基本数据类型 基本的数据类型一共有四类八种 1.整型 byte:  1字节 取值范围 -128~127 short: 2字节    取值范围 -32768~32767 int:     4字节 取 ...

  5. java核心技术卷一

    java核心技术卷一 java基础类型 整型 数据类型 字节数 取值范围 int 4 +_2^4*8-1 short 2 +_2^2*8-1 long 8 +_2^8*8-1 byte 1 -128- ...

  6. Java核心技术第八章-泛型

    摘要 本文根据<Java核心技术 卷一>一书的第八章总结而成,部分文章摘抄书内,作为个人笔记. 文章不会过于深入,望读者参考便好. 为什么要使用泛型程序设计 泛型程序设计(Generic ...

  7. java核心技术(第十版卷一)笔记(纯干货!)

    这是我读过的第三本关于java基础的书.第一本<<java从入门到精通>>这本书让我灵识初开.第二本<<java敏捷开发>>这本书则是有一次被一位师傅批 ...

  8. 2019 最新 Java 核心技术教程,都在这了!

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 以下是Java技术栈微信公众号发布的所有关于 Java 的技术干货,会从以下几个方面汇总,本文会长期更新. Java 基础篇 ...

  9. 面试必备!Java核心技术100+面试题

    一线互联网公司工作了几年,我作为求职者参加了不少面试,也作为面试官面试了很多同学,整理这份面试指南,一方面是帮助大家更好的准备面试,有的放矢,另一方面也是对自己知识框架做一个体系化的梳理. 这篇文章梳 ...

随机推荐

  1. 从PHP5到PHP7的注意事项——PHP7全面删除Mysql扩展支持

    PHP删除了一些函数,其中是吓人的是两个: 1. ereg_* 系列的正则函数 2. mysql_* 系列的数据库连接函数 PHP7全面删除Mysql扩展支持,原本的mysql_*系列函数将在mysq ...

  2. php(ajax)异步刷新(转)

    第一种方法,ajax实现:当然,ajax使用起来确实很简单就可以实现,但是里面的很多知识还是比较有点深的.我之前做页面时间自动刷新的功能就是用的ajax.完整代码是:1.getTime.php: 复制 ...

  3. 【Luogu】P3567Kur-Couriers(主席树)

    题目链接 数组大小开到一千二百万才过- - 可以把数先离散化再全都加到主席树中. 对于一个区间[from,to] 取中间点mid 看看小于mid的数有多少个,如果个数的两倍<=to-from+1 ...

  4. 【Luogu】P1586四方定理(DP)

    题目链接 此题使用DP.设f[i][j]表示数i用j个数表示,则对于所有的k<=sqrt(i),有 f[i][j]=∑f[i-k*k][j-1] 但是这样会有重复情况.所以先枚举k,再枚举i和j ...

  5. BZOJ 1026: [SCOI2009]windy数 【数位dp】

    Description windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间,包括A和B,总共有多少个windy数? In ...

  6. Linux性能分析Top

    前言 在实际开发中,有时候会收到一些服务的监控报警,比如CPU飙高,内存飙高等,这个时候,我们会登录到服务器上进行排查.本篇博客将涵盖这方面的知识:Linux性能工具. 一次线上问题排查模拟 背景:服 ...

  7. WAMP本地环境升级php版本

    !!!本次测试未完全成功,仅供提供经验. (1)下载php最新版本 http://windows.php.net/download/ (2)解压放到wamp/bin/php目录下 (3) 从已存在的p ...

  8. MongoDB存储引擎(上)——MMAPv1

    3.0版本以前,MongoDB只有一个存储引擎——MMAP,MongoDB3.0引进了一个新的存储引擎——WiredTiger,同时对原有的MMAP引擎进行改进,产生MMAPv1存储引擎,并将其设置为 ...

  9. 洛谷——P2690 接苹果

    P2690 接苹果 题目背景 USACO 题目描述 很少有人知道奶牛爱吃苹果.农夫约翰的农场上有两棵苹果树(编号为1和2), 每一棵树上都长满了苹果.奶牛贝茜无法摘下树上的苹果,所以她只能等待苹果 从 ...

  10. Hadoop HDFS 常用命名

    HDFS命令基本格式:hadoop fs -cmd < args > ls 命令hadoop fs -ls / 列出hdfs文件系统根目录下的目录和文件 hadoop fs -ls -R ...