Java中的数据类型
数据类型是不同的大小和值,可以存储在根据方便和情况制作的变量中以覆盖所有测试用例。另外,让我们掩盖其他重要的疾病,主要有两种语言,如下所示:
- 首先,一种是静态类型语言,其中每个变量和表达式类型在编译时都是已知的。一旦变量被声明为某种数据类型,它就不能保存其他数据类型的值。例如 C、C++、 Java。
- 另一种是动态类型语言。随着时间的推移,这些语言可以接收不同的数据类型。例如 Ruby、 Python
Java是静态类型的,也是一种强类型语言,因为在Java中,每种类型的数据(例如整数、字符、十六进制、压缩十进制等)都被预定义为编程语言的一部分,并且所有常量或变量都被定义为必须使用其中一种数据类型来描述给定的程序。
Java有两类数据类型被隔离
- 原始数据类型:如 boolean、char、int、short、byte、long、float 和 double
- 非原始数据类型或对象数据类型:如字符串、数组等。
原始数据类型的类型
原始数据只是单个值,没有特殊功能。有8 种原始数据类型。它们在下面的表格格式中描述如下:
让我们讨论和实现以下每种数据类型:
类型 1:布尔值
Boolean 数据类型仅代表true 或 false的一位信息,但 boolean 数据类型的大小取决于虚拟机。 boolean 类型的值不会隐式或显式(使用强制转换)转换为任何其他类型。但是程序员可以很容易地编写转换代码。
句法:
boolean booleanVar;
大小:取决于虚拟机
值:布尔值,例如 true、false
默认值:假
例子:
Java
// Java Program to Demonstrate Boolean Primitive DataType
// Class
class GFG {
// Main driver method
public static void main(String args[])
{
// Setting boolean to true initially
boolean b = true;
// If condition holds
if (b == true)
// Print statement
System.out.println("Hi Geek");
}
}
Java
// Java Program to demonstrate Byte Data Type
// Class
class GFG {
// Main driver method
public static void main(String args[]) {
byte a = 126;
// byte is 8 bit value
System.out.println(a);
a++;
System.out.println(a);
// It overflows here because
// byte can hold values from -128 to 127
a++;
System.out.println(a);
// Looping back within the range
a++;
System.out.println(a);
}
}
Java
// Java Program to Illustrate Float Primitive Data Type
// Importing required classes
import java.io.*;
// Class
class GFG {
// Main driver method
public static void main(String[] args)
{
// Declaring and initializing float value
// float value1 = 9.87;
// Print statement
// System.out.println(value1);
float value2 = 9.87f;
System.out.println(value2);
}
}
Java
// Java Program to Demonstrate Char Primitive Data Type
// Class
class GFG {
// Main driver method
public static void main(String args[])
{
// Creating and initializing custom character
char a = 'G';
// Integer data type is generally
// used for numeric values
int i = 89;
// use byte and short
// if memory is a constraint
byte b = 4;
// this will give error as number is
// larger than byte range
// byte b1 = 7888888955;
short s = 56;
// this will give error as number is
// larger than short range
// short s1 = 87878787878;
// by default fraction value
// is double in java
double d = 4.355453532;
// for float use 'f' as suffix as standard
float f = 4.7333434f;
System.out.println("char: " + a);
System.out.println("integer: " + i);
System.out.println("byte: " + b);
System.out.println("short: " + s);
System.out.println("float: " + f);
System.out.println("double: " + d);
}
}
Hi Geek
类型 2:字节
字节数据类型是一个 8 位有符号二进制补码整数。 byte 数据类型对于在大型数组中节省内存很有用。
句法:
byte byteVar;
大小: 1 字节(8 位)
值: -128 到 127
默认值: 0
例子:
Java
// Java Program to demonstrate Byte Data Type
// Class
class GFG {
// Main driver method
public static void main(String args[]) {
byte a = 126;
// byte is 8 bit value
System.out.println(a);
a++;
System.out.println(a);
// It overflows here because
// byte can hold values from -128 to 127
a++;
System.out.println(a);
// Looping back within the range
a++;
System.out.println(a);
}
}
126
127
-128
-127
类型 3:短
短数据类型是一个 16 位有符号二进制补码整数。与 byte 类似,在内存节省实际上很重要的情况下,使用 short 来节省大型数组中的内存。
句法:
short shortVar;
大小: 2字节(16位)
值: -32、768 到 32、767(含)
默认值: 0
类型 4:整数
它是一个 32 位有符号二进制补码整数。
句法:
int intVar;
大小: 4字节(32位)
值: -2、147、483、648 到 2、147、483、647(含)
Note: The default value is ‘0’
Remember: In Java SE 8 and later, we can use the int data type to represent an unsigned 32-bit integer, which has a value in the range [0, 232-1]. Use the Integer class to use the int data type as an unsigned integer.
类型5:长
long 数据类型是 64 位二进制补码整数。
句法:
long longVar;
大小: 8 字节(64 位)
值: {-9, 223, 372, 036, 854, 775, 808} 到 {9, 223, 372, 036, 854, 775, 807}(含)
Note: The default value is ‘0’.
Remember: In Java SE 8 and later, you can use the long data type to represent an unsigned 64-bit long, which has a minimum value of 0 and a maximum value of 264-1. The Long class also contains methods like comparing Unsigned, divide Unsigned, etc to support arithmetic operations for unsigned long.
类型 6:浮动
float 数据类型是单精度 32 位 IEEE 754 浮点数。如果您需要在大型浮点数数组中节省内存,请使用浮点数(而不是双精度数)。
句法:
float floatVar;
大小: 4 字节(32 位)
值:最多 7 位十进制数字
Note: The default value is ‘0.0’.
例子:
Java
// Java Program to Illustrate Float Primitive Data Type
// Importing required classes
import java.io.*;
// Class
class GFG {
// Main driver method
public static void main(String[] args)
{
// Declaring and initializing float value
// float value1 = 9.87;
// Print statement
// System.out.println(value1);
float value2 = 9.87f;
System.out.println(value2);
}
}
9.87
如果我们取消注释第 14、15、16 行,那么输出将完全不同,因为我们将面临错误。
类型 7:双
double 数据类型是双精度 64 位 IEEE 754 浮点数。对于十进制值,此数据类型通常是默认选择。
句法:
double doubleVar;
大小: 8 字节或 64 位
值:最多 16 位十进制数字
Note:
- The default value is taken as ‘0.0’.
- Both float and double data types were designed especially for scientific calculations, where approximation errors are acceptable. If accuracy is the most prior concern then, it is recommended not to use these data types and use BigDecimal class instead.
建议在Java中进行四舍五入。
类型 8:字符
char 数据类型是单个 16 位 Unicode字符。
句法:
char charVar;
大小: 2字节(16位)
值: '\u0000' (0) 到 '\uffff' (65535)
Note: The default value is ‘\u0000’
您一定想知道为什么Java中 char 的大小是 2 个字节?
因此,在 C/C++ 等其他语言中,仅使用 ASCII字符,并且用 8 位表示所有 ASCII字符就足够了。但是Java使用Unicode 系统而不是 ASCII 代码系统,并且表示 Unicode 系统 8 位不足以表示所有字符,因此Java使用 2 个字节来表示字符。 Unicode定义了一个完全国际化的字符集,可以代表世界上大多数的书面语言。它是数十种字符集的统一,例如拉丁文、希腊文、西里尔文、片假名、阿拉伯文等等。
例子:
Java
// Java Program to Demonstrate Char Primitive Data Type
// Class
class GFG {
// Main driver method
public static void main(String args[])
{
// Creating and initializing custom character
char a = 'G';
// Integer data type is generally
// used for numeric values
int i = 89;
// use byte and short
// if memory is a constraint
byte b = 4;
// this will give error as number is
// larger than byte range
// byte b1 = 7888888955;
short s = 56;
// this will give error as number is
// larger than short range
// short s1 = 87878787878;
// by default fraction value
// is double in java
double d = 4.355453532;
// for float use 'f' as suffix as standard
float f = 4.7333434f;
System.out.println("char: " + a);
System.out.println("integer: " + i);
System.out.println("byte: " + b);
System.out.println("short: " + s);
System.out.println("float: " + f);
System.out.println("double: " + d);
}
}
char: G
integer: 89
byte: 4
short: 56
float: 4.7333436
double: 4.355453532
非原始数据类型或引用数据类型
引用数据类型将包含变量值的内存地址,因为引用类型不会将变量值直接存储在内存中。它们是字符串、对象、数组等。
字符串 被定义为一个字符数组。 Java中字符数组和字符串之间的区别在于,字符串旨在将字符序列保存在单个变量中,而字符数组是单独的 char 类型实体的集合。与 C/C++ 不同, Java字符串不以空字符结尾。
语法:声明一个字符串
= “”;
例子:
// Declare String without using new operator
String s = "GeeksforGeeks";
// Declare String using new operator
String s1 = new String("GeeksforGeeks");
答:类
类是用户定义的蓝图或原型,从中创建对象。它表示一种类型的所有对象共有的一组属性或方法。一般来说,类声明可以包括这些组件,按顺序:
- 修饰符:一个类可以是公共的或具有默认访问权限。请参阅Java中类或接口的访问说明符
- 类名:名称应以首字母开头(按约定大写)。
- 超类(如果有):类的父类(超类)的名称,如果有的话,前面有关键字extends。一个类只能扩展(子类)一个父类。
- 接口(如果有):由类实现的接口的逗号分隔列表,如果有的话,前面有关键字 implements。一个类可以实现多个接口。
- 主体:类主体由大括号 { } 包围。
B:对象
它是面向对象编程的基本单元,代表现实生活中的实体。一个典型的Java程序会创建许多对象,如您所知,这些对象通过调用方法进行交互。一个对象包括:
- 状态:它由对象的属性表示。它还反映了对象的属性。
- 行为:它由对象的方法表示。它还反映了一个对象对其他对象的响应。
- 身份:它为一个对象赋予一个唯一的名称,并使一个对象能够与其他对象交互。
C:接口
和类一样,接口可以有方法和变量,但是接口中声明的方法默认是抽象的(只有方法签名,没有人)。
- 接口指定一个类必须做什么而不是如何做。这是班级的蓝图。
- 接口是关于能力的,比如 Player 可能是一个接口,任何实现 Player 的类都必须能够(或必须实现)move()。所以它指定了类必须实现的一组方法。
- 如果一个类实现了一个接口并且没有为接口中指定的所有函数提供方法体,那么这个类必须被声明为抽象的。
- Java库示例是比较器接口。如果一个类实现了这个接口,那么它就可以用来对集合进行排序。
D:数组
数组是一组由通用名称引用的类似类型的变量。 Java中的数组的工作方式与 C/C++ 中的不同。以下是关于Java数组的一些要点。
- 在Java中,所有数组都是动态分配的。 (下文讨论)
- 由于数组是Java中的对象,我们可以使用成员长度找到它们的长度。这与我们使用大小找到长度的 C/C++ 不同。
- Java数组变量也可以像其他变量一样在数据类型后面加上 [] 来声明。
- 数组中的变量是有序的,每个变量都有一个从 0 开始的索引。
- Java数组也可以用作静态字段、局部变量或方法参数。
- 数组的大小必须由 int 值指定,而不是 long 或 short。
- 数组类型的直接超类是 Object。
- 每个数组类型都实现了接口 Cloneable 和Java.io.Serializable。
查看: Java中的数据类型测验