Java基础-Java基本数据类型

目录
  • 1 前言
  • 2 布尔类型
  • 3 字符类型
  • 4 值类型
    • 4.1 byte
    • 4.2 short
    • 4.3 int
    • 4.4 long
    • 4.5 float
    • 4.6 double
  • 5 码农来洞见
    • 5.1 类型转换
    • 5.2 存储空间

1 前言

变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。

内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。

因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。
 
Java支持八种基本数据类型,包括一种布尔类型、一种字符类型、一种数值型,包括四种整数类型和两种浮点数类型。

2 布尔类型

  • boolean数据类型表示一位的信息;
  • 只有两个取值:true false
  • 这种类型只作为一种标志来记录true/false 情况;
  • 默认值是 false;
  • 例子:
boolean b = true2

3 字符类型

  • char 类型是一个单一的 16 位 Unicode 字符;
  • 最小值是 \u0000(十进制等效值为 0);
  • 最大值是 \uffff(即为 65535);
  • char 数据类型可以储存任何字符;
  • 例子:
  char c = 'A';

4 值类型

4.1 byte

  • byte 数据类型是8位、有符号的,以二进制补码表示的整数;
  • 最小值是 -128(-2^7);
  • 最大值是 127(2^7-1);
  • 默认值是 0;
  • byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
  • 例子:
  byte b = 100;

4.2 short

  • short 数据类型是 16 位、有符号的以二进制补码表示的整数
  • 最小值是 -32768(-2^15);
  • 最大值是 32767(2^15 - 1);
  • Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
  • 默认值是 0;
  • 例子:
  short short s = -10000;

4.3 int

  • int 数据类型是32位、有符号的以二进制补码表示的整数;
  • 最小值是 -2,147,483,648(-2^31);
  • 最大值是 2,147,483,647(2^31 - 1);
  • 一般地整型变量默认为 int 类型;
  • 默认值是 0 ;
  • 例子:
  int a = 100000;

4.4 long

  • long 数据类型是 64 位、有符号的以二进制补码表示的整数;
  • 最小值是 -9,223,372,036,854,775,808(-2^63);
  • 最大值是 9,223,372,036,854,775,807(2^63 -1);
  • 这种类型主要使用在需要比较大整数的系统上;
  • 默认值是 0L;
  • 例子:
 long l = 100000L;

"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。

4.5 float

  • float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
  • float 在储存大型浮点数组的时候可节省内存空间;
  • 默认值是 0.0f;
  • 浮点数不能用来表示精确的值,如货币;
  • 例子:
  float f1 = 234.5f;

4.6 double

  • double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数;
  • 浮点数的默认类型为 double 类型;
  • double类型同样不能表示精确的值,如货币;
  • 默认值是 0.0d;
  • 例子:
  double d5 = 12.9867; 

5 码农来洞见

5.1 类型转换

Java允许整数和浮点数之间互相转换。并且,由于每个字符都对应Unicode编码中的一个数字,所以char与整数和浮点数之间也可以相互转换。事实上,在Java中,boolean类型是唯一一种不能跟其他基本类型相互转换的基本类型。

自动类型转换:

也叫隐式类型转换,其实就是小范围的数据类型向大范围的数据类型转换(byte ->short(char)->int->long->float->double)

强制类型转换:

也叫显式类型转换,是从存储范围大的类型到存储范围小的类型(double→float→long→int→short(char)→byte)。强制类型转换所带来的结果是可能会丢失精度,如果此数值尚在范围较小的类型数值范围内,对于整型变量精度不变,但如果超出范围较小的类型数值范围内,很可能出现一些意外情况。

int i = 223;
byte b = (byte) i;

上面的例子中输出值是-23.

为什么结果是-23?需要从最根本的二进制存储考虑。

233的二进制表示为:24位0 + 11101001,byte型只有8位,于是从高位开始舍弃,截断后剩下:11101001,由于二进制最高位1表示负数,0表示正数,其相应的负数为-23。

数据类型自动提升:

数值类型在内存中直接存储其本身的值,对于不同的数值类型,内存中会分配相应的大小去存储。如:byte类型的变量占用8位,int类型变量占用32位等。相应的,不同的数值类型会有与其存储空间相匹配的取值范围。

在Java中,整数类型(byte/short/int/long)中,对于未声明数据类型的整型,其默认类型为int型。在浮点类型(float/double)中,对于未声明数据类型的浮点型,默认为double型。

5.2 存储空间

注意事项1:

如果需要一个占位符来存储数字1000000,那么需要一个int型数,long可以用于存储更大的数字,读者可能问,既然long可以包含比byte和int型数更大的数字,为什么不总是使用long呢?这是因为long需要64位,相比byte
或int,这会占用更多的内存空间。因此,为了节省空间,需要选择合适的基本类型。

注意事项2:

将一个int型的1000赋给一个byte型的变量a,提示出错,但是最后一句:将一个int型的3赋给一个byte型的变量c,居然编译正确,这是为什么呢?

byte b1 = 1000;
byte b2 = 3;

原因在于:jvm在编译过程中,对于默认为int类型的数值时,当赋给一个比int型数值范围小的数值类型变量,会进行判断,如果此int型数值超过数值类型,那么会直接编译出错。但是如果此int型数值尚在数值类型范围内,jvm会自动进行一次隐式类型转换。

到此这篇关于Java基础-Java基本数据类型的文章就介绍到这了,更多相关Java基本数据类型内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java基础教程之基本类型数据类型、包装类及自动拆装箱

    前言 我们知道基本数据类型包括byte, short, int, long, float, double, char, boolean,对应的包装类分别是Byte, Short, Integer, Long, Float, Double, Character, Boolean.关于基本数据类型的介绍可参考Java基础(一) 八大基本数据类型 那么为什么需要包装类? JAVA是面向对象的语言,很多类和方法中的参数都需使用对象,但基本数据类型却不是面向对象的,这就造成了很多不便. 如:List<in

  • Java 基础 byte[]与各种数据类型互相转换的简单示例

    Java 基础 byte[]与各种数据类型互相转换的简单示例 这里对byte[]类型对long,int,double,float,short,cahr,object,string类型相互转换的实例, 在socket开发过程中,通常需要将一些具体的值(这些值可能是各种Java类型)转化为byte[]类型,为此我总结了如下这个示例,贴出来,以便经常翻看: public class TestCase { /** * short到字节数组的转换. */ public static byte[] shor

  • Java基础教程之八大基本数据类型

    前言 自从Java发布以来,基本数据类型就是Java语言的一部分,分别是byte, short, int, long, char, float, double, boolean. 其中: 整型:byte, short, int, long 字符型:char 浮点型:float, double 布尔型:boolean 在详细介绍之前,先科普一下,Java中最小的计算单元为字节,1字节=8位(bit). 一. 整型 Java中整型数据属于有符号数,即第一个bit位为0表示正整数,第一个bit位为1表

  • Java基础之详解基本数据类型的使用

    一.整型 主要扩展一下不同进制的整型 二进制.八进制.十进制.十六进制 * 二进制 : 0B(数字零+B) 0b(数字零+b) * 八进制 :0(数字零开头) * 十进制 :正常写就是十进制 * 十六进制 : 0X (数字零+X)0x (数字零+x) A-F 代表 10-15 1.1 测试代码 /** * 进制 : * 二进制 : 0B(数字零+B) 0b(数字零+b) * 八进制 :0(数字零开头) * 十进制 :正常写就是十进制 * 十六进制 : 0X (数字零+X)0x (数字零+x) *

  • java基础详解之数据类型知识点总结

    一.基本数据类型 1.1 整形 1.1.1 int int a = Integer.MAX_VALUE;//int最大值 int b = Integer.MIN_VALUE;//int最小值 在java中int占4个字节,和操作系统每任何关系.这也是java的可移植性. int 能表示的范围为-231~231-1,如果超出最大值或者小于最小值则会发生溢出. public static void main(String[] args) { int a = Integer.MAX_VALUE;//i

  • 初识Java基础之数据类型与运算符

    目录 数据类型 布尔类型 字符串类型String 拼接字符'+' 转义字符 运算符 加减乘除 模运算 增量赋值运算符 自增运算符和自建运算符 赋值运算符 判断运算符 逻辑判断符 按位运算符 移位运算 条件运算符 运算符优先级 总结 数据类型 布尔类型 Java当中的bool类型也是两个:true(真) 和false(假) 不同于C语言,在C语言中,我们可以将一个数字放在bool类型中,0为假,非0为真 int fun(){ return 1; } bool a = fun(); 在Java中,b

  • JAVA基础之基本数据类型全面解析

    基本数据类型: 一.数值型 1)整数: 1.byte一个字节,8位,取值范围0~255,用于存放二进制数据. 2.short两个字节,16位,取值范围是在-32768~32767之间. 3.int四个字节,32位,取值范围为-2147483648~2147483648之间 4.long八个字节,64位,取值范围为 -9,223,372,036,854,775,808 ~9,223,372,036,854,775,807之间 2)浮点型: 1.float,四个字节,单精度浮点数,范围为-2^128

  • Java基础-Java基本数据类型

    目录 1 前言 2 布尔类型 3 字符类型 4 值类型 4.1 byte 4.2 short 4.3 int 4.4 long 4.5 float 4.6 double 5 码农来洞见 5.1 类型转换 5.2 存储空间 1 前言 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据. 因此,通过定义不同类型的变量,可以在内存中储存整数.小数或者字符. Java支持八种基本数据类型,包括一种布

  • Java基础-Java变量的声明和作用域

    目录 1 前言 2 变量的声明 3 变量的作用域 4 总结 1 前言 变量是计算机语言中的一个概念,可以表示某个具体数值,并且这个值可以改变,所以叫变量.与之对应的是常量,常量也是用来表示某个数值的,但值是固定的,不能改变. 2 变量的声明 声明变量就是要告诉编译器这个变量的数据类型,这样编译器才知道需要配置多少空间给它,以及它能存放什么样的数据.在程序运行过程中,空间内的值是变化的,这个内存空间就称为变量.为了便于操作,给这个空间取个名字,称为变量名. 语法: 数据类型 变量名 [=初始值]

  • Java基础-Java常量和常量值

    目录 1 常量定义 2 常量语法命名 3 常量值 3.1 整型常量值 3.2 浮点数常量值 3.3 布尔常量值 3.4 字符型常量值 3.5 字符串常量值 4 码农来洞见 4.1 注意事项 4.2 常量作用 4.3 常量声明位置 1 常量定义 在程序中存在大量的数据来代表程序的状态,其中有些数据在程序运行过程中值不能发生改变,这些数据在程序中被叫做常量. 2 常量语法命名 Java常量的语法格式如下: final 数据类型 常量名称 = 值: 示例代码如下: //声明双精度型常量PI并赋值 fi

  • Java基础-Java编程语言发展史

    目录 1 Java由来 2 Java发展阶段 3 码农洞见 3.1 为什么企业程序开发要用JDK8 1 Java由来 Java源自Sun公司的一个叫Green的项目,其原先的目的是为家用电子消费产品开发一个分布式代码系统,这样就可以将通信和控制信息发给电冰箱.电视机.烤面包机等家用电器,对它们进行控制和信息交流.最初Green项目的工程师们准备采用C++,但C++比较复杂,最后经过裁剪.优化和创新,1990年,由Sun公司的James Gosling(詹姆斯·高斯林)领导的小组基于C++开发了一

  • Java基础-Java的体系结构

    目录 1 前言 1. 1 Java技术平台 1.2 Java开源文化 1.3 Java强大社区 2 Java体系结构的组成 2.1 Java编程语言 2.2 字节码 2.3 Java API 2.4 Java虚拟机 3 总结 1 前言 到目前为止Java仍然是使用最多的编程语言,随着Java以及Java社区的不断壮大,Java也早已不再是简简单单的一门计算机语言了,它更是一个平台.一种文化.一个社区. 1. 1 Java技术平台 根据不同的技术规范,Java划分为3中结构独立但又相互依赖的技术分

  • java基础教程之拼图游戏的实现

    目录 前言 废话不多说,直接上效果图: 1.所需技术 2.具体实现 2.1 图片制作 2.2 创建项目 2.3 编码实现 总结 前言 大家在初学java的时候,大部分的代码都是在控制台上运行的.可能大家辛辛苦苦写了几十行代码,最终就只是在控制台输出一个字符,这个时候,心里肯定是拔凉拔凉的,心中那一朵编程的火花,就马上给扑灭了.我们都知道兴趣是最好的老师.为了拯救大家快要熄灭的小火花,小编在这里给大家带来使用java做个小游戏,并且通过做这个游戏,好好收悉一下面向对象的实际使用. 废话不多说,直接

随机推荐