我的编程空间,编程开发者的网络收藏夹
学习永远不晚

java中基本数据类型分别有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

java中基本数据类型分别有哪些

这篇文章主要为大家展示了“java中基本数据类型分别有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java中基本数据类型分别有哪些”这篇文章吧。

八种基本数据类型分别是:1、4种整数类型(byte、short、int、long);2、2种浮点类型(float、double);3、1种字符类型“char”;4、1种布尔类型“boolean”。

本教程操作环境:windows7系统、java8版、DELL G3电脑。

8种基本数据类型

java中有8种基本数据类型, 分别用于存储整数、浮点数、字符数据和布尔类型数据。需要注意的是: 现在所介绍的仅仅是基本数据类型,后续还会介绍很多非基本数据类型。基本数据类型如图 – 1所示:

java中基本数据类型分别有哪些

图- 1

从图- 1中可以看出, 基本数据类型主要分为4大类 (整数类型、浮点类型、char、boolean), 整数类型又分为了4小类(byte、short、int、long), 浮点类型也分了2小类(float、double),这些数据类型的区别是怎样的?通过图– 2展示了这8种数据类型的存储空间及使用场景:

java中基本数据类型分别有哪些

图- 2

在如上这8种数据类型中,最常用的有5种,分别为int、long、double、char、boolean。其余的数据类型几乎不用,要求对这5种基本数据类型重点掌握,其余的数据类型,有兴趣了解就可以了。

2. int类型

2.1. int类型

int是最常用的整数类型,一个int类型的变量占用4个字节,即32位的内存空间。Int的最大表示范围为:-231~231-1,即-2147483648 ~2147483647,大约正负21个亿多些。

2.2. 整数直接量是int类型

所谓整数直接量(literal)就是直接写出的整数,例如:下面的语句中,100就是直接量。

int a = 100;int a = 100;

关于整数直接量,需要注意如下要点:

整数的直接量的类型默认为int类型,如果直接写出的整数超过了int的表达范围,将会出现编译错误,下面的语句,就是因为超出了整数的范围而导致的编译错误。

int d = 10000000000; // 编译错误10000000000这个数值写出来就是错误的,因为Java认为所有直接写出的整数都是int类型,而这个数值超过了int的表达范围。int d = 10000000000; // 编译错误10000000000这个数值写出来就是错误的,因为Java认为所有直接写出的整数都是int类型,而这个数值超过了int的表达范围。

除了通常的十进制数字形式,整数直接量也可以写成16进制的形式(以0X或0x开头)或8进制的形式(以0开头),请看如下直接量三种表现形式:

int a = 100000; // 10进制 int b = 0x186a0; // 16进制 int c = 0303240; // 8进制 int a = 100000; // 10进制int b = 0x186a0; // 16进制int c = 0303240; // 8进制

2.3. 整型数据除法运算中的取整

若对两个整数相除,会舍弃小数的部分(注意:不是四舍五入),结果也是整数。示例代码如下所示:

int c = 5/3;System.out.println(c);  // c的值为1,取整int total = 87;    int error = 23;int percent = error / total * 100;System.out.println(percent+"%");  //结果为0%,23除以87整数部分为0,乘以100,为0 percent = 100 * error / total;System.out.println(percent + "%");  // 结果为26%,230除以87整数部分为26 int c = 5/3;System.out.println(c);  // c的值为1,取整int total = 87;    int error = 23;int percent = error / total * 100;System.out.println(percent+"%");  //结果为0%,23除以87整数部分为0,乘以100,为0 percent = 100 * error / total;System.out.println(percent + "%");  // 结果为26%,230除以87整数部分为26

2.4. 运算时要防止溢出的发生

当两个整数进行运算时, 其结果可能会超过整数的范围而发生溢出,正数过大而产生的溢出,结果为负数;负数过大而产生的溢出,结果为正数。示例代码如下所示:

int a = 2147483647;    //int类型整数的上限int b = -2147483648;    //int类型整数的下限a = a + 1;b = b - 1;System.out.println("a=" + a);    //输出结果: a=-2147483648 溢出,结果错误。 System.out.println("b=" + b);    //输出结果: b=2147483647溢出,结果错误。 int a = 2147483647;    //int类型整数的上限int b = -2147483648;    //int类型整数的下限a = a + 1;b = b - 1;System.out.println("a=" + a);    //输出结果: a=-2147483648 溢出,结果错误。System.out.println("b=" + b);    //输出结果: b=2147483647溢出,结果错误。

3. long类型

3.1. long类型

在表示整数时,如果int类型的范围不够,可以使用long类型,一个long型的变量占用8个字节(即64位),最大表示范围为:-263 ~ 263-1,即 -9223372036854775808 ~ 9223372036854775807。

如果要表示long直接量,需要以 L 或 l 结尾。示例代码如下:

long a = 10000000000;   //会有编译错误,因为10000000000编译器认为是int类型,而这个值,已经超出了int的范围long b = 10000000000l;   //正确long a = 10000000000;   //会有编译错误,因为10000000000编译器认为是int类型,而这个值,已经超出了int的范围long b = 10000000000l;   //正确

3.2. 使用long类型进行较大整数的运算

对于较大的整数运算(超过int的表达范围),可以使用long型。示例代码如下:

long distance1 = 10000 * 365 * 24 * 60 * 60 * 299792458l;  //必须有一个long型数据参与的运算结果才是long型 System.out.println("distance1="+distance1);//distance1=547836957965889536 结果正确 long distance2 = 10000 * 365 * 24 * 60 * 60 * 299792458; System.out.println("distance2="+ distance2);  //distance2=-1973211136 溢出,=号后面的数据默认为int类型,超出了范围,发生溢出。long distance1 = 10000 * 365 * 24 * 60 * 60 * 299792458l;  //必须有一个long型数据参与的运算结果才是long型System.out.println("distance1="+distance1);//distance1=547836957965889536 结果正确 long distance2 = 10000 * 365 * 24 * 60 * 60 * 299792458;System.out.println("distance2="+ distance2);  //distance2=-1973211136 溢出,=号后面的数据默认为int类型,超出了范围,发生溢出。

3.3. 通过时间毫秒数来存储日期和时间

JDK提供 System.currentTimeMillis() 方法,返回1970年1月1日零点到此时此刻所经历的毫秒数,数据太大,故其数据类型为long。示例代码如下:

long time = System.currentTimeMillis();System.out.println(time);     //输出的结果为: 1383835712828long time = System.currentTimeMillis();System.out.println(time);     //输出的结果为: 1383835712828

通过上面的代码可以看出,输出的结果已经超出int类型的最大值,因此,JDK设计的返回类型为long型,该方法常常被用于计时操作。

4. double类型

4.1. 使用double进行浮点数的运算

前面所学习的int、long都是用于存储整数的,小数即为浮点数,包括: float(单精度)和double(双精度),double类型的精度值是float类型的两倍,因此而得名双精精,在实际的应用开发中,float应用极少,大多数场合使用double表示浮点数。示例代码如下:

double pi = 3.14;double r = 8;double s = pi * r * r;System.out.println("s=" + s);   // 输出的结果为:s=200.96double pi = 3.14;double r = 8;double s = pi * r * r;System.out.println("s=" + s);   // 输出的结果为:s=200.96

4.2. 浮点数直接量是double类型

浮点数的直接量有两种写法:1)通常写法,如:3.14、314、0.1、.5。 2)科学计数法,如:1.25E2、1.25e2、1.25E-2。其中,1.25E2表示1.25乘以10的2次方。

默认的浮点直接量为double型,如果需要表示float类型的直接量,需要加“f”或“F”后缀。例如:

float f1 = 3.14   //编译错误,应该写成3.14ffloat f1 = 3.14   //编译错误,应该写成3.14f

4.3. double运算时会出现舍入误差

2进制系统中无法精确的表示1/10,就好像十进制系统中无法精确的表示1/3一样,

所以,2进制表示10进制会有一些舍入误差,对于一些要求精确运算的场合会导致代码的缺陷。示例代码如下所示:

double money = 3.0; double price = 2.9; System.out.println(money - price);   //输出的结果是: 0.10000000000000009 double money = 3.0;double price = 2.9;System.out.println(money - price);   //输出的结果是: 0.10000000000000009

如果需要精确的运算可以考虑放弃使用double或float而采用BigDecimal 类来实现。关于这一点,将在后续的章节中介绍。

5. char类型

5.1. char类型

字符类型char事实上是一个16位无符号整数(都是正数),这个值是对应字符的编码,Java字符类型采用Unicode字符集编码(通用码、统一码、万国码),而Unicode是世界通用的定长字符集,所有的字符都是16位来表示。例如:字符a实际的值为97,字符A实际的值为65,字符0实际的值为48。

字符直接量可以采用诸如:‘中’的形式,也可以采用16进制的表示形式,例如: ‘\u4e2d’,代码如下所示:

char c1 = ‘中’;   //c1中存的是”中”的编码 char c2 = '\u4e2d';   //‘4e2d’为‘中’所对应的16位Unicode编码的16进制表示形式System.out.println(c1);System.out.println(c2);char c1 = ‘中’;   //c1中存的是”中”的编码char c2 = '\u4e2d';   //‘4e2d’为‘中’所对应的16位Unicode编码的16进制表示形式System.out.println(c1);System.out.println(c2);

如上代码的输出结果:c1的值为中,c2值也为中,但c1和c2内部存储的其实是”中”这个字符所对应的Unicode码,即:一个无符号的整数。

5.2. 对char型变量赋值

在对char型变量赋值时,可以采用如下三种方式:

方式一:

字符直接量:形如‘A’,变量中实际存储的是该字符的Unicode编码(无符号整数值),一个char型变量只能存储一个字符。示例如下:

char c1 = 'A';   char c1 = 'A';

方式二:

整型直接量:范围在0~65535之间的整数,变量中实际存储的即该整数值,但表示的是该整数值所对应的Unicode字符。示例如下:

char c2 = 65;    char c2 = 65;

Unicode形式:形如‘\u0041’,Unicode字符的16进制形式。示例如下:

char c3 = '\u0041'; char c3 = '\u0041';

5.3. 使用转义字符

字符直接量需要包含在一对’’单引号之中,那如果想表示单引号’的字符时,需要怎么表示?想表示回车、换行符时,怎么表示?

因为单引号为特殊意义的字符, 那么,对于不方便输出的字符可以采用转义字符来表示,示例代码如下:

char c = '\\';System.out.println(c);  //输出的结果为:\ char c = '\\';System.out.println(c);  //输出的结果为:\

常用转义字符如下图 – 2所示:

java中基本数据类型分别有哪些

图- 2

6. boolean类型

6.1. 使用boolean变量进行关系运算

boolean类型适用于关系、逻辑运算, 表示某个条件是否成立, 只允许取值true或false,true表示条件成立, 而false表示条件不成立。

boolean型变量经常用于存储关系运算的结果,所谓关系运算就是比较两个变量的大小相等等关系(此知识点,后续详细介绍)。boolean示例代码如下所示:

int age = 18;boolean isChild = age<16;  System.out.println(isChild);   // isChild的值为falseboolean running = true; boolean closed = false; int age = 18;boolean isChild = age<16;  System.out.println(isChild);   // isChild的值为falseboolean running = true;boolean closed = false;

7. 基本类型间转换

7.1. 类型间转换

不同的基本类型直接可以相互转化,主要有两种方式:

自动类型转化(隐式类型转换):从小类型到大类型可以自动完成。类型的大小关系如下图 - 3所示:

java中基本数据类型分别有哪些

图- 3

强制转化:从大类型到小类型需要强制转换符,语法如下:

(需要转换成的类型)变量

因为大类型的精度值大于小类型,取值范围大于小类型,所以,当使用强制转化时,有可能会造成精度的损失或者溢出,所以,在使用强制转化时要求显式的告诉编译器,正在进行强制转换。

7.2. 强制转换时的精度丧失和溢出

基本类型转化如下示例所示,注意强制转换时可能会造成的精度丧失和溢出。

int a = 100;int b = 200;long c = a + b;  //自动将int转化为long long l1 = 1024l; int i = (int) l1;  //需要加强制转化符由于1024在int的范围内,所以没有产生溢出 long l = 1024L * 1024 * 1024 * 4;int j = (int) l;    //会产生溢出System.out.println(j);  // 结果为:0 double pi = 3.1415926535897932384;float f = (float) pi;   //会造成精度的损失,因为单精度的精确度小于doubleSystem.out.println(f);  //结果为:3.1415927 int a = 100;int b = 200;long c = a + b;  //自动将int转化为long long l1 = 1024l;int i = (int) l1;  //需要加强制转化符由于1024在int的范围内,所以没有产生溢出 long l = 1024L * 1024 * 1024 * 4;int j = (int) l;    //会产生溢出System.out.println(j);  // 结果为:0 double pi = 3.1415926535897932384;float f = (float) pi;   //会造成精度的损失,因为单精度的精确度小于doubleSystem.out.println(f);  //结果为:3.1415927

7.3. 数值运算时的自动转换

如果在一个表达式中出现了多种数据类型,则运算结果会自动的向较大的类型进行转化,

示例如下:

//由于有long型的直接量参与,整个表达式的结果为long long distance = 10000 * 365 * 24 * 60 * 60 * 299792458l; //由于有double型的直接量599.0参与,整个表达式的结果为 double double change = 800 - 599.0;    //结果为0.0,右边都是int型数据运算结果也为int类型,结果为0,再赋值给double将0转化为 0.0double persent1 = 80 / 100;  //结果为0.8,右边表达式有double型直接量参与, 运算结果为double型double persent2 = 80.0 / 100;  //由于有long型的直接量参与,整个表达式的结果为longlong distance = 10000 * 365 * 24 * 60 * 60 * 299792458l; //由于有double型的直接量599.0参与,整个表达式的结果为 doubledouble change = 800 - 599.0;    //结果为0.0,右边都是int型数据运算结果也为int类型,结果为0,再赋值给double型,将0转化为 0.0double persent1 = 80 / 100;    //结果为0.8,右边表达式有double型直接量参与, 运算结果为double型double persent2 = 80.0 / 100;

7.4. byte、char、short转换为int

在前面所介绍的8种数据类型中,byte、char、short、int、long都表示整数类型,而整型的直接量为int,在实际使用中,为了方便使用,遵循了如下的规则:

int直接量可以直接赋值给byte、char和short,只要不超过其表示范围。示例如下:

byte  b  = 97;short  s  = 97;char  c  = 97;byte  b  = 97;short  s  = 97;char  c  = 97;

byte、char、short三种类型参与运算时,先一律转换成int类型再进行运算。示例如下:

byte  b  =  97;int  num = b + b;   //num的值为194

以上是“java中基本数据类型分别有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

java中基本数据类型分别有哪些

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

下载Word文档

猜你喜欢

java中基本数据类型分别有哪些

这篇文章主要为大家展示了“java中基本数据类型分别有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java中基本数据类型分别有哪些”这篇文章吧。八种基本数据类型分别是:1、4种整数类型(b
2023-06-20

Java基本数据类型有哪些

本篇内容介绍了“Java基本数据类型有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java 基本数据类型变量就是申请内存来存储值。也就
2023-06-02

JAVA基本数据类型有哪些呢

本篇文章给大家分享的是有关JAVA基本数据类型有哪些呢,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1:关键字(掌握) (1)被Java语言赋予特定含义的单词
2023-06-02

redis基本数据类型有哪些

redis基本数据类型有:1、String;2、List;3、Set;4、Hash;5、Sorted Set。详细介绍:1、String,这是Redis最基本的数据类型,可以存储任何类型的数据,包括字符串、数字和二进制数据等;2、List,
redis基本数据类型有哪些
2023-12-18

Swift基本数据类型有哪些

这篇文章主要介绍Swift基本数据类型有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Swift 基本数据类型1. 整型var intType: Int = 11print(intType) // 112. 浮点
2023-06-25

numpy基本数据类型有哪些

numpy基本数据类型有bool、int、uint、float和complex。详细介绍:1、bool,用于表示逻辑值,值为True或False;2、int,用于表示整数值,可以是有符号或无符号整数;3、uint,用于表示无符号整数值;4、
numpy基本数据类型有哪些
2023-11-21

c#基本数据类型有哪些

c# 中的基本数据类型表示单个特定值的内置数据类型,它们不可变,这意味着一旦创建,其值就无法更改。这些数据类型包括:整型类型:byte、sbyte、short、ushort、int、uint、long、ulong浮点型类型:float、do
c#基本数据类型有哪些
2024-04-04

php有哪些基本数据类型

php的基本数据类型有字符串、整数、浮点数、布尔型、数组、对象、NULL、资源和回调函数。详细介绍:1、字符串,用于存储文本数据,字符串是由一系列字符组成的,可以使用单引号或双引号括起来,字符串是PHP中最常用的数据类型之一,可以用于存储文
php有哪些基本数据类型
2023-11-02

c#中的基本数据类型有哪些

c#中提供的基本数据类型包括:整型(byte、sbyte、short、ushort、int、uint、long、ulong),浮点型(float、double),其他类型(char、bool、decimal、string)。C# 中的基本数
c#中的基本数据类型有哪些
2024-04-04

Java基本数据类型的知识点有哪些

这篇“Java基本数据类型的知识点有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java基本数据类型的知识点有哪些”文
2023-06-27

Rust的基本数据类型有哪些

这篇文章主要讲解了“Rust的基本数据类型有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Rust的基本数据类型有哪些”吧!Rust 和 Go 一样,都是静态类型语言,这表示每个变量的类
2023-06-15

VB.NET基本数据类型都有哪些

VB.NET基本数据类型都有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。VB.NET基本数据类型的重要方法和属性举例 Dim i As Int32 Dim s As
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录