广告
返回顶部
首页 > 资讯 > 精选 >Java中的数据类型有哪几种
  • 451
分享到

Java中的数据类型有哪几种

2023-06-16 01:06:04 451人浏览 薄情痞子
摘要

这篇文章主要讲解了“Java中的数据类型有哪几种”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中的数据类型有哪几种”吧!Java 中的数据类型可分为 2 种:1)基本数据类型。基本数

这篇文章主要讲解了“Java中的数据类型有哪几种”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中的数据类型有哪几种”吧!

Java 中的数据类型可分为 2 种:

1)基本数据类型。

基本数据类型是 Java 语言操作数据的基础,包括 boolean、char、byte、short、int、long、float 和 double,共 8  种。

2)引用数据类型。

除了基本数据类型以外的类型,都是所谓的引用类型。常见的有数组(对,没错,数组是引用类型)、class(也就是类),以及接口(指向的是实现接口的类的对象)。

来个思维导图,感受下。

Java中的数据类型有哪几种

通过上一节的学习,我们知道变量可以分为局部变量、成员变量、静态变量。

当变量是局部变量的时候,必须得先初始化,否则编译器不允许你使用它。拿 int 来举例吧,看下图。

Java中的数据类型有哪几种

当变量是成员变量或者静态变量时,可以不进行初始化,它们会有一个默认值,仍然以 int 为例,来看代码:

 public class LocalVar {     private int a;     static int b;      public static void main(String[] args) {         LocalVar lv = new LocalVar();         System.out.println(lv.a);         System.out.println(b);     } }

来看输出结果:

0 0

瞧见没,int 作为成员变量时或者静态变量时的默认值是 0。那不同的基本数据类型,是有不同的默认值和大小的,来个表格感受下。

数据类型默认值大小
booleanfalse1比特
char'\u0000'2字节
byte01字节
short02字节
int04字节
long0L8字节
float0.0f4字节
double0.08字节

“比特和字节是什么鬼?”

比特币听说过吧?字节跳动听说过吧?这些名字当然不是乱起的,确实和比特、字节有关系。

1)bit(比特)

比特作为信息技术的最基本存储单位,非常小,但大名鼎鼎的比特币就是以此命名的,它的简写为小写字母“b”。

大家都知道,计算机是以二进制存储数据的,二进制的一位,就是 1 比特,也就是说,比特要么为 0 要么为 1。

2)Byte(字节)

通常来说,一个英文字符是一个字节,一个中文字符是两个字节。字节与比特的换算关系是:1 字节 = 8 比特。

在往上的单位就是 KB,并不是 1000 字节,因为计算机只认识二进制,因此是 2 的 10 次方,也就是 1024 个字节。

(终于知道 1024 和程序员的关系了吧?狗头保命)

Java中的数据类型有哪几种

接下来,我们再来详细地了解一下 8 种基本数据类型。

01、布尔

布尔(boolean)仅用于存储两个值:true 和 false,也就是真和假,通常用于条件的判断。代码示例:

boolean flag = true;

02、byte

byte 的取值范围在 -128 和 127 之间,包含 127。最小值为 -128,最大值为 127,默认值为 0。

网络传输的过程中,为了节省空间,常用字节来作为数据的传输方式。代码示例:

byte a = 10; byte b = -10;

03、short

short 的取值范围在 -32,768 和 32,767 之间,包含 32,767。最小值为 -32,768,最大值为 32,767,默认值为  0。代码示例:

short s = 10000; short r = -5000;

04、int

int 的取值范围在 -2,147,483,648(-2 ^ 31)和 2,147,483,647(2 ^ 31 -1)(含)之间,默认值为  0。如果没有特殊需求,整形数据就用 int。代码示例:

int a = 100000; int b = -200000;

05、long

long 的取值范围在 -9,223,372,036,854,775,808(-2^63) 和  9,223,372,036,854,775,807(2^63 -1)(含)之间,默认值为 0。如果 int 存储不下,就用 long,整形数据就用  int。代码示例:

long a = 100000L;  long b = -200000L;

为了和 int 作区分,long 型变量在声明的时候,末尾要带上大写的“L”。不用小写的“l”,是因为小写的“l”容易和数字“1”混淆。

06、float

float 是单精度的浮点数,遵循 IEEE 754(二进制浮点数算术标准),取值范围是无限的,默认值为 0.0f。float  不适合用于精确的数值,比如说货币。代码示例:

float f1 = 234.5f;

为了和 double 作区分,float 型变量在声明的时候,末尾要带上小写的“f”。不需要使用大写的“F”,是因为小写的“f”很容易辨别。

07、double

double 是双精度的浮点数,遵循 IEEE 754(二进制浮点数算术标准),取值范围也是无限的,默认值为 0.0。double  同样不适合用于精确的数值,比如说货币。代码示例:

double d1 = 12.3

那精确的数值用什么表示呢?最好使用 BigDecimal,它可以表示一个任意大小且精度完全准确的浮点数。针对货币类型的数值,也可以先乘以 100  转成整形进行处理。

Tips:单精度是这样的格式,1 位符号,8 位指数,23 位小数,有效位数为 7 位。

Java中的数据类型有哪几种

双精度是这样的格式,1 位符号,11 位指数,52 为小数,有效位数为 16 位。

Java中的数据类型有哪几种

取值范围取决于指数位,计算精度取决于小数位(尾数)。小数位越多,则能表示的数越大,那么计算精度则越高。

一个数由若干位数字组成,其中影响测量精度的数字称作有效数字,也称有效数位。有效数字指科学计算中用以表示一个浮点数精度的那些数字。一般地,指一个用小数形式表示的浮点数中,从第一个非零的数字算起的所有数字。如  1.24 和 0.00124 的有效数字都有 3 位。

08、char

char 可以表示一个 16 位的 Unicode 字符,其值范围在 '\u0000'(0)和  '\uffff'(65,535)(包含)之间。代码示例:

char letterA = 'A'; // 用英文的单引号包裹住。

“char 既然只有一个字符,为什么占 2 个字节呢?”

“主要是因为 Java 使用的是 Unicode 字符集而不是 ASCII 字符集。”

这又是为什么呢?我们留到下一节再讲。

基本数据类型在作为成员变量和静态变量的时候有默认值,引用数据类型也有的。

String 是最典型的引用数据类型,所以我们就拿 String 类举例,看下面这段代码:

 public class LocalRef {     private String a;     static String b;      public static void main(String[] args) {         LocalRef lv = new LocalRef();         System.out.println(lv.a);         System.out.println(b);     } }

输出结果如下所示:

null null

null 在 Java 中是一个很神奇的存在,在你以后的程序生涯中,见它的次数不会少,尤其是伴随着令人烦恼的“空指针异常”,也就是所谓的  NullPointerException。

也就是说,引用数据类型的默认值为 null,包括数组和接口。

为什么数组和接口也是引用数据类型啊?

先来看数组:

 public class ArrayDemo {     public static void main(String[] args) {         int [] arrays = {1,2,3};         System.out.println(arrays);     } }

arrays 是一个 int 类型的数组,对吧?打印结果如下所示:

[I@2d209079

[I 表示数组是 int 类型的,@ 后面是十六进制的 hashCode——这样的打印结果太“人性化”了,一般人表示看不懂!为什么会这样显示呢?查看一下  java.lang.Object 类的toString() 方法就明白了。

Java中的数据类型有哪几种

数组虽然没有显式定义成一个类,但它的确是一个对象,继承了祖先类 Object 的所有方法。那为什么数组不单独定义一个类来表示呢?就像字符串 String  类那样呢?

一个合理的解释是 Java 将其隐藏了。假如真的存在一个 Array.java,我们也可以假想它真实的样子,它必须要定义一个容器来存放数组的元素,就像  String 类那样。

public final class String     implements java.io.Serializable, Comparable<String>, CharSequence {          private final char value[]; }

数组内部定义数组?没必要的!

再来看接口:

 public class IntefaceDemo {     public static void main(String[] args) {         List<String> list = new ArrayList<>();         System.out.println(list);     } }

List 是一个非常典型的接口:

public interface List<E> extends Collection<E> {}

而 ArrayList 是 List 接口的一个实现:

public class ArrayList<E> extends AbstractList<E>         implements List<E>, RandoMaccess, Cloneable, java.io.Serializable {}

对于接口类型的引用变量来说,你没法直接 new 一个:

Java中的数据类型有哪几种

只能 new 一个实现它的类的对象&mdash;&mdash;那自然接口也是引用数据类型了。

来看一下基本数据类型和引用数据类型之间最大的差别。

基本数据类型:

变量名指向具体的数值。2、基本数据类型存储在栈上。

引用数据类型:

变量名指向的是存储对象的内存地址,在栈上。2、内存地址指向的对象存储在堆上。

“堆是什么,栈又是什么?”

堆是堆(heap),栈是栈(stack),如果看到“堆栈”的话,请不要怀疑自己,那是翻译的错,堆栈也是栈,反正我很不喜欢“堆栈”这种叫法,容易让新人掉坑里。

堆是在程序运行时在内存中申请的空间(可理解为动态的过程);切记,不是在编译时;因此,Java 中的对象就放在这里,这样做的好处就是:

当需要一个对象时,只需要通过 new 关键字写一行代码即可,当执行这行代码时,会自动在内存的“堆”区分配空间&mdash;&mdash;这样就很灵活。

栈,能够和处理器(CPU,也就是脑子)直接关联,因此访问速度更快。既然访问速度快,要好好利用啊!Java  就把对象的引用放在栈里。为什么呢?因为引用的使用频率高吗?

不是的,因为 Java  在编译程序时,必须明确的知道存储在栈里的东西的生命周期,否则就没法释放旧的内存来开辟新的内存空间存放引用&mdash;&mdash;空间就那么大,前浪要把后浪拍死在沙滩上啊。

感谢各位的阅读,以上就是“Java中的数据类型有哪几种”的内容了,经过本文的学习后,相信大家对Java中的数据类型有哪几种这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Java中的数据类型有哪几种

本文链接: https://www.lsjlt.com/news/282032.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java中的数据类型有哪几种
    这篇文章主要讲解了“Java中的数据类型有哪几种”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中的数据类型有哪几种”吧!Java 中的数据类型可分为 2 种:1)基本数据类型。基本数...
    99+
    2023-06-16
  • JavaScript的数据类型有哪几种
    本篇内容介绍了“JavaScript的数据类型有哪几种”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!本教程...
    99+
    2022-10-19
  • java有哪几种类型的流?
    流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流。Java中的流是个抽象的概念,当程序需要从某个数据源读入数据的时候,就会开启一个数据流,数据源可以是文件、内存或网络等等。相反地,需要写出数据...
    99+
    2017-12-12
    java
  • javascript中有几种数据类型
    本篇内容主要讲解“javascript中有几种数据类型”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript中有几种数据类型”吧! ...
    99+
    2022-10-19
  • php中的标量数据类型有哪几种
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑PHP 的数据类型可以分为三大类,分别是标量数据类型、复合数据类型和特殊数据类型。其中,标量数据类型是数据结构的最基础单元,只能存储一个数据。在 PHP 中的标量数据类...
    99+
    2015-08-09
    php 标量数据类型
  • redis有几种数据类型
    今天就跟大家聊聊有关redis有几种数据类型,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Redis支持五种数据类型:string(字符串),has...
    99+
    2022-10-18
  • Python支持的数据类型有哪几种
    Python支持的数据类型有以下几种: 数字类型(Number):包括整数(int)、浮点数(float)、复数(complex)...
    99+
    2023-10-24
    Python
  • python基本数据类型有哪几种
    python基本数据类型有七种,详细介绍:1、数字,Python支持几种类型的数字,包括整数、浮点数、复数和布尔值;2、字符串,是由零个或多个字符组成的有序字符序列,在Python中,字符串是不可变的,这意味着不能更改字符串中的字符;3、列...
    99+
    2023-12-11
    python 基本数据类型
  • 在mysql中有几种数据类型
    这篇文章主要介绍了在mysql中有几种数据类型,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 1. mysql的数据类型 ...
    99+
    2022-10-19
  • python数值类型有哪几种
    Python的数值类型有以下几种:1. 整数类型(int):表示整数,例如1、-5、100等。2. 浮点数类型(float):表示带...
    99+
    2023-10-08
    python
  • css有哪几种类型
    本篇内容主要讲解“css有哪几种类型”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css有哪几种类型”吧! css是用来表示html...
    99+
    2022-10-19
  • javascript有几种基本数据类型
    小编给大家分享一下javascript有几种基本数据类型,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2022-10-19
  • JavaScript中的类型转换有哪几种
    这篇文章主要讲解了“JavaScript中的类型转换有哪几种”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript中的类型转换有哪几种”吧! ...
    99+
    2022-10-19
  • angular中的类型指令有哪几种
    本篇内容介绍了“angular中的类型指令有哪几种”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • java中类与类的关系有哪几种
    首先在java编程中类与类之间有如下关系:依赖关联(聚合(整体和部分的关系,例如人与手)和组合(整体与部分的关系,例如人与大脑))继承实现java相关视频教程分享:java学习一、依赖(Dependence)定义:表示一个类依赖于另一个类的...
    99+
    2019-02-15
    java入门 java 关系
  • GraphQL类型系统有哪几种
    今天小编给大家分享一下GraphQL类型系统有哪几种的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。GraphQL 最初于 2...
    99+
    2023-07-05
  • jQuery中有哪几种类型的选择器
    这篇文章给大家分享的是有关jQuery中有哪几种类型的选择器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。jQuery中有哪几种类型的选择器?基本选择器:直接根据 id、CSS ...
    99+
    2022-10-19
  • Java中的数据类型有哪些?每种数据类型的作用是什么?
    Java是一种面向对象的编程语言,它具有平台无关性、安全性和可移植性等特点,是一门广泛使用的编程语言。在Java中,数据类型是程序中最基本的概念之一,它用于描述数据的特性和取值范围,是程序中最基本的组成部分之一。Java中的数据类型可以分...
    99+
    2023-09-13
    日志 数据类型 打包
  • PG数据类型有哪几个
    这期内容当中小编将会给大家带来有关PG数据类型有哪几个,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。概述PG的数据类型还是有点多的,为了避免写成博客,所以分成了两部分来做...
    99+
    2022-10-19
  • Java中有多少种数据类型
    这篇文章将为大家详细讲解有关Java中有多少种数据类型,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。public class BaseDataType{public stat...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作