我是靠谱客的博主 漂亮小海豚,最近开发中收集的这篇文章主要介绍Java中8个基础类型以及其存储背景8种基础类型,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

背景

作为科班出身,又写了几年的Java,被一个老弟的一个问题难住了,问: 1/10.0的小数为什么不能用二进制完整表示?
思考了很久,发现自己已经把最基本的东西忘记了,这里回顾一下,最后再回答这个问题。

8种基础类型

首先占用空间的大小从小到大来介绍一下java的8种基础类型。

类型类型说明默认值取值范围占用空间(位数)举例说明
byte字节0-2^7 - 2^7-18byte b = 10;
boolean布尔型falsefalse, true未知(虚拟机规范是4字节,也可能是1字节)boolean b = false;
char字符0 - 2^16-116char c = ‘a’;
short短整数0-2^15 - 2^15-116short s = 1;
int整数0-2^31 - 2^31-132int i = 12;
float单精度小数0.01.4e-45f - 3.4028235e+38f32float f = 12.0F;
long长整数0-2^63 - 2^63-164long l = 12L;
double双精度小数0.04.9e-324 - 1.7976931348623157e+30864double d = 12.0;

写一段代码验证一个表格里的说明。

public class BasicData {
static byte b;
static short s;
static int i;
static long l;
static float f;
static double d;
static char c;
static boolean bo;
public static void main(String[] args) {
System.out.println("byte的大小:" + Byte.SIZE
+ ";默认值:" + b
+ ";数据范围:" + Byte.MIN_VALUE + " - " + Byte.MAX_VALUE);
System.out.println("boolean的大小:未知;默认值:" + bo
+ ";数据范围:" + Boolean.FALSE + " - " + Boolean.TRUE);
System.out.println("char的大小:" + Character.SIZE
+ ";默认值:" + c
+ ";数据范围:" + Character.MIN_VALUE + " - " + Character.MAX_VALUE);
System.out.println("short的大小:" + Short.SIZE
+ ";默认值:" + s
+ ";数据范围:" + Short.MIN_VALUE + " - " + Short.MAX_VALUE);
System.out.println("int的大小:" + Integer.SIZE
+ ";默认值:" + i
+ ";数据范围:" + Integer.MIN_VALUE + " - " + Integer.MAX_VALUE);
System.out.println("float的大小:" + Float.SIZE
+ ";默认值:" + f
+ ";数据范围:" + Float.MIN_VALUE + " - " + Float.MAX_VALUE);
System.out.println("long的大小:" + Long.SIZE
+ ";默认值:" + l
+ ";数据范围:" + Long.MIN_VALUE + " - " + Long.MAX_VALUE);
System.out.println("double的大小:" + Double.SIZE
+ ";默认值:" + d
+ ";数据范围:" + Double.MIN_VALUE + " - " + Double.MAX_VALUE);
System.out.println(-2 % 12);
}

输出的结果:

byte的大小:8;默认值:0;数据范围:-128 - 127
boolean的大小:未知;默认值:false;数据范围:false - true
char的大小:16;默认值:;数据范围: -
short的大小:16;默认值:0;数据范围:-32768 - 32767
int的大小:32;默认值:0;数据范围:-2147483648 - 2147483647
float的大小:32;默认值:0.0;数据范围:1.4E-45 - 3.4028235E38
long的大小:64;默认值:0;数据范围:-9223372036854775808 - 9223372036854775807
double的大小:64;默认值:0.0;数据范围:4.9E-324 - 1.7976931348623157E308

下面分别介绍一下每个数据类型在内存中的存储方式,在介绍之前先温习一下什么是补码原码反码,具体可以看这个博客:

https://www.cnblogs.com/wqbin/p/11142873.html

下面的标识都是以补码的形式表示,因为内存中也是补码。

byte

举个例子

10进制: 8
二进制: 00001000

最大值

十进制: 127
二进制: 01111111

最小值

十进制: -128
二进制: 111111111

最后

以上就是漂亮小海豚为你收集整理的Java中8个基础类型以及其存储背景8种基础类型的全部内容,希望文章能够帮你解决Java中8个基础类型以及其存储背景8种基础类型所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部