在本文中,我们将了解 Java 中的不同数据类型。数据类型构成了学习编程语言指南的基本构建块。每种编程语言都提供自己的一组具有不同特性和功能的数据类型(通常相同)。
因此,了解 Java 编程中的数据类型对于更深入地了解该语言的核心概念非常重要。我们将通过详细的解释和示例来查看 Java 中的不同数据类型,以展示我们如何声明、初始化和使用变量。
数据类型定义为可以存储在变量中的数据类型。它告诉 Java 编译器用户想要如何使用数据。除此之外,数据类型限制了变量或函数可能采用的值,同时它定义了数据在内存中的存储方式。
由于 Java 是一种强类型语言,您需要定义变量的数据类型才能使用它,并且不能分配不兼容的数据类型,否则编译器会报错。
Example of Data Type in Java: int num = 10;
这里我们定义了一个数据类型为int的变量**num是 Integer 的缩写。这表明变量num**只能存储整数值。因此我们给它赋值 10。
如果我们尝试分配整数以外的值,它将与变量的数据类型不兼容。
Example:
``如果我们这样声明一个变量:
int d="Hello";
编译器将通过此消息给您一个错误 - "Type mismatch: cannot convert from String to int"。
"Type mismatch: cannot convert from String to int"
我们收到此错误是因为我们将 String 分配给了 int 类型变量。因此,为了将字符串值分配给变量,我们在 Java 中使用字符串数据类型。
所以我们这样定义它:
String d = "Hello";
java中有两种数据类型。
原始数据类型是由 Java 语言本身定义的那些数据类型。
java中有8种原始数据类型。
现在,让我们快速浏览一下每种数据类型。
例子: boolean var = true;
boolean var = true;
这里我们定义一个布尔变量 var initialize 为true。
例子:char i = 'a';
char i = 'a';
我们在单引号中输入 char 值。如果我们将整数值分配给 char 类型变量,编译器将通过将整数转换为其相应的 ASCII 值来隐式地将整数类型转换为 char。
因此,如果我们分配 char i = 97,那么变量i将保存该值a,因为 a 的 ASCII 值是 97。
i
a
示例: byte num1 = 127;是一个有效的声明。
byte num1 = 127;
byte num2 = -129;是无效的声明。
byte num2 = -129;
例子: short num = 10;
short num = 10;
我们已经在文章中讨论了上面的例子。Java 中有一个关于int的有趣特性。如果我们将字符值分配给int类型变量,编译器将隐式将其转换为 int 类型并分配相应的ASCII值。
例子:int var = 'A';
int var = 'A';
在这种情况下,var将保存值65,因为 ASCII 代码中的 A 具有值 65。隐式类型转换的这一特性也适用于短和长数据类型。
例子:long num = 10000000000000L;
long num = 10000000000000L;
在这里,当我们将一个大于 Java 中的整数范围(- 2,147,483,648 到 2,147,483,647)的值分配给 long 数据类型变量时,我们必须为其提供L上面示例中声明的 an 。这告诉编译器该值是长类型的。如果你这样分配它:
L
long num = 10000000000000;
编译器会报错:integer number too large当我们硬编码一个值时,Java 不知道它是否是一个长类型的值。它对所有数字一视同仁。
integer number too large
例子:float num = 10.567F;
float num = 10.567F;
我们用后缀声明浮点变量,F or f以指示编译器它是一个浮点变量,类似于我们在长数据类型示例中看到的。如果我们声明它没有像这样的后缀:
F or f
float num = 10.567;
然后编译器会抛出一个错误:possible lossy conversion from double to float. 原因是,在 Java 中,您分配给变量的任何十进制数默认情况下都被视为双精度字面量或值,我们正在尝试将双精度值分配给浮点类型。
possible lossy conversion from double to float
例子:double num = 10034.5674546;
double num = 10034.5674546;
在 Java 中,char 的大小为2 个字节,而 C/C++ 等编程语言只为 char 类型变量分配了 1 个字节的空间。原因是 Java 支持Unicode 字符并使用UTF-16编码其字符,而不是 ASCII 代码系统。在开发 Java 时,预计任何 Unicode 字符都需要16 位或 2 字节的内存来存储,这些 Unicode 用于表示特殊符号。因此, char 在 Java 中的大小为 2 个字节。
现在,让我们看一些原始数据类型的实际示例:
package org.arpit.java2blog; public class DataTypesDemo { public static void main(String[] args) { int a=10; int b=20; int c=a+b; System.out.println(c); } }
当你运行上面的程序时,你会得到下面的输出:
30
在这里,我们将分配一个 int 给 double。因为双比 int 占用更多的内存。这是一个加宽操作。
package org.arpit.java2blog; public class DataTypesDemo { public static void main(String[] args) { int a=30; double b=a; System.out.println(a); System.out.println(b); } }
30 30.0
在这里,我们将 double 分配给 int。因为双比 int 占用更多的内存。这是一个收窄操作。
package org.arpit.java2blog; public class DataTypesDemo { public static void main(String[] args) { double a=30.0; int b=(int) a; System.out.println(a); System.out.println(b); } }
你运行上面的程序时,你会得到下面的输出:
30.0 30
当您将 int 分配给 byte 并且 int 的值大于 byte 的大小时,这是一种溢出的情况。
package org.arpit.java2blog; public class DataTypesDemo { public static void main(String[] args) { int a=200; byte b=(byte) a; System.out.println(a); System.out.println(b); } }
200 -56
简单来说,引用数据类型是由 Java API 或您创建的类作为类提供的那些数据类型。因此,类类型的变量是引用数据类型或非原始数据类型。它并不总是 Java 的内置功能,但是有一个例外。
String 类是 java 提供的 Reference 数据类型的一个示例,它不是原始类型,因为它也提供了内置方法。
每次我们将 String 变量创建为对象或字面量时,都会在内部创建一个对象,当我们将其分配给变量时,它就成为引用数据类型。数组也是非原始数据类型的一个例子,因为我们必须在定义数组时创建一个对象。
Java 默认为我们创建的每个引用类型变量分配8 个字节的空间。
总结 Java 中的数据类型:
现在让我们快速浏览一下原始数据类型和非原始数据类型或引用数据类型之间的主要区别。
Primitive Data Types
Non-Primitive or Reference Data Types
以上就是 Java 编程中的数据类型。
原文链接:https://codingdict.com/