1. Java的数据类型

Java的数据类型包括基本数据类型和引用数据类型。其中基本数据类型就是我们通常所说的4类8种数据类型,如下图所示,4类即整数类型、浮点数类型、字符型和布尔型,8种即byte、short、int、long、float、double、char、boolean,其中byte为1个字节(1个字节有8位,即8bit),short为2个字节,int为4个字节,long为8个字节,float为4个字节,double为8个字节,char为2个字节,boolean为1/8个字节,即1位(bit)。除了基本数据类型,还是引用数据类型,引用数据类型即数组、接口或类等。

2. Java基本数据类型的转换

如果系统支持把某个基本类型的值直接赋给另一个基本类型的变量,则这种方式被称为自动类型转换。Java中,当把一个表数范围小的数值或变量赋值给另一个表数范围大的变量时,系统就可以自动转换,就如同两瓶水,把小瓶的水倒入大瓶中时没有任何问题。

如下图所示,箭头左边的数值型可以自动转到箭头右边的数值型。

如下代码展示了Java的基本数据类型自动转换的功能(代码来自于《疯狂Java讲义》):

public class AutoConversion {

public static void main(String[] args) {

int a = 6;

//int可以自动转换为float类型

float f = a;

//下面将输出6.0

System.out.println(f);

//定义一个byte类型的整数变量

byte b = 9;

// 下面代码将出错,byte型不能自动类型转换为char型

//char c = b;

// 下面是byte型变量可以自动类型转换为double型

double d = b;

//下面将输出9.0

System.out.println(d);

}

}此外如果希望把箭头右边的类型转换成左边的类型,则必须使用强制转换语法:(type)value,例如int a = (int)1.0。下面代码展示了Java的基本数据类型强制转换的功能(代码来自于《疯狂Java讲义》):

public class NarrowConversion {

public static void main(String[] args) {

int iValue = 233;

//强制把一个int类型的值转换为byte类型的值

byte bValue = (byte)iValue;

//将输出-23

System.out.println(bValue);

double dValue = 3.98;

//强制把一个double类型的值转换为int

int toI = (int)dValue;

// 将输出3

System.out.println(toI);

}

}

除此之外,还有几点重要说明:

boolean类型不可以转换成其他类型,其他类型也不可以转换成boolean类型。

byte、short、char之间不会相互转换,三者在计算时首先转换成int类型后再运算。

容量大的数据类型转换成容量小的数据类型时,需要加强制转换符,但是可能造成精度降低或移除。

有多重类型的数据在作混合运算时,系统首先自动将所有的数据类型转换成最大的数据类型,然后再计算。

上述几点的说明见如下代码:

public class TestConvert {

public static void main(String[] args) {

int a = 200, b = 300;

double d1 = (a + b) * 1.2; //系统将其转换成double计算

float f1 = (float)((a + b) * 1.2); //要加强制转换符

byte b1 = 127;

byte b2 = 10;

//系统将其转换成int类型进行计算,要加强制转换符

byte b3 = (byte) (b1 + b2);

System.out.println(b3); //输出-119

double d2 = 1e200;

float f2 = (float) d2; //float最多是10e38

System.out.println(f2); //输出Infinity

float f3 = 1.53f; //必须加f

long l1 = 123;

long l2 = 4000000000L; //必须加L

float f = l1 + l2 + f3; //系统将所有类型全部转换成float类型计算

long l = (long)f; //砍掉小数点

}

}

参考文献:

疯狂Java讲义,李刚,电子工业出版社。

java 基本的数据类型_Java的基本数据类型介绍相关推荐

  1. java短整型_Java的基本数据类型

    变量就是用来储存值而保留的内存位置.这就意味着当创建一个变量时就会在内存中占用一定的空间. 基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中.因此,通过给变量分配不同的数据类 ...

  2. java变量数据类型_Java——变量和数据类型

    变量 变量就是一个临时存储数据的空间.那么我们把数据存在内存空间里面,怎么取呢? 举例说明: 我们可以把旅馆的一个个房间看作一个存储空间,把房间的名字"101"看成变量名,把房间类 ...

  3. java中的基本数据类型_java的基本数据类型有哪些

    展开全部 java的基本数据类型有: 1.布尔型(boolean) 取值范围e68a84e8a2ad3231313335323631343130323136353331333366303837:Tru ...

  4. java变量数据类型_java变量与数据类型

    第二章 变量与数据类型 变量 变量的概述 变量是指内存中的一个存储区域,该区域要有自己的名称(变量名).类型(数据类型),该区域的数据可以在同一数据类型的范围内不断变化值. 每个变量都有自己的作用范围 ...

  5. java 集合数据类型_Java基础知识(数据类型和集合)

    一.数据类型 包装类型 包装类型是对基本数据类型不足之处的补充. 基本数据类型的传递方式是值传递,而包装类型是引用传递,同时提供了很多数据类型间转换的方法. Java1.5 以后可以自动装箱和拆箱 二 ...

  6. java短整型_JAVA个基本数据类型

    Java有8大基本数据类型,分别是: 1).字节类型:byte Byte数据类型是8位 取值范围:(-128 - 127) 默认值:0 byte a= 100; byte b = -20; 2).短整 ...

  7. java int 无符号_Java 无符号数据类型

    Java数据类型教程 - Java无符号数据类型 Java不支持无符号数据类型. byte,short,int和long都是有符号数据类型. 对于有符号数据类型,值范围的一半存储正数,一半用于负数,因 ...

  8. java异或运算结果数据类型_java中的数据类型和运算符的总结归类。

    首先学习java肯定先要了解java的发展史,以及java的特点,常见的dos命令,jdk的安装,如何开发java程序等等一下概念行的东西,这里面我都不一一说了. 今天这一章主要想总结一下java中的 ...

  9. java中nio流_Java输入输出流IO介绍(与NIO比较)

    一.Java中流的类型 根据流的方向划分:输入流,输出流 根据流的传输单位:字节流,字符流 根据流的角色划分:节点流,处理流 节点流:直接连接数据源的流 处理流:通过构造方法接收一个节点流,对节点流使 ...

最新文章

  1. UA STAT675 统计计算I 随机数生成1 随机数生成器的一般理论
  2. Alpine Linux 使用简介
  3. 清北·NOIP2017济南考前冲刺班 DAY1 morning
  4. jzoj5057-[GDSOI2017模拟4.13]炮塔【网络流,最大权闭合图】
  5. 1.NoSQL与MongoDB简介
  6. Struts2自定义标签(template)——示例
  7. 矩形并的面积(51Nod-2488)
  8. javaweb基础知识点记录1
  9. Android的手势识别
  10. php如何让B链接在当前页面打,javascript - 如何实现点击链接 A 弹出窗口 X,点击链接 B 继续在弹出窗口 X (刷新)打开?...
  11. DOM和Events
  12. android 网络程序下载,Android从网络上下载文件
  13. 中文ocr-Benchmarking Chinese Text Recognition: Datasets, Baselines, andan Empirical Study
  14. 计算机专业必须考过英语4级吗,计算机专业英语必须过六级吗
  15. 梦想易语言零基础注册机到多线程教程
  16. final 的三种用法是什么?
  17. 【JAVA】RequestResponse
  18. mosaic数据增强
  19. [附源码]java毕业设计网络身份认证技术及方法
  20. 943数据结构勘误表

热门文章

  1. js进阶 11-22/23 js如何实现选项卡
  2. 3.6 迁移故障恢复
  3. 8.6亿个人信息被偷 网络安全团队曝光交易内幕
  4. 第六讲:软考中高项06_质量管理、人力资源管理
  5. 怎么样MyEclipse配置Tomcat?
  6. 评论,转自于《低端没出路,请接触高端!》
  7. C/C++中memset()函数
  8. java.sql.SQLException: Unknown system variable 'query_cache_size'
  9. 特来电自动运维应用实践
  10. Flink1.4.0中反序列化及序列化类变化