当前课程知识点:“做中学”Java程序设计 >  第2章使用Java基本语法(1) >  2.3数据类型和类型转换 >  Video

返回《“做中学”Java程序设计》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《“做中学”Java程序设计》慕课在线视频列表

Video课程教案、知识点、字幕

变量通常需要有自己的数据类型 那么今天我们就来了解一下Java当中有哪些数据类型

以及这些数据类型能否进行相互的转换

Java提供了八种基本数据类型变量

在这张表里我们列出了Java的现有的八种基本数据类型

需要注意的是 每种数据类型都自身的字节大小

而不同的字节大小决定了数据的描述范围

例如Java当中提供了四种用于描述整型的数据类型

分别是byte short int long

他们分别占用了1个字节 2个字节 4个字节和8个字节

对应相应的二进制位分别是8位16位32位64位

计算机最终将以二进制的形式来存储这些数据

存储的位数不同直接导致每种数据类型所能表达的数值范围各不相同

对于整数而言 我们可以使用一个通用的公式来计算他们不同的取值范围

它的最小值是-2的n-1次 最大值是2的n-1次再减1

对于八位的byte类型而言 那么他的最小值就是-128

最大值就是+127

正是由于(存储)位数的不同 因此 byte short int long 对整数的描述能力各不相同

有了这点区别以后 我们在定义变量 选择相应的数据类型的时候

就一定要根据实际的情况来考虑选择哪种数据类型比较合适

要在自己的程序代码当中定义变量 需要符合变量定义的语法

它的基本结构是 变量类型 变量名 ;

比如你要处理一年内的天数

那么你就不能用byte 因为365已经超过了我们byte的最大范围127

如果你要存储一年有多少分钟

那么你就不能用short类型

如果你要存储100年经历的秒数

那么你就不能用int类型

下面我们来看几个整型变量的示例

我要在代码当中定义一个变量a

让他等于18 我们可以这样写

在第10行当中 我们定义了一个变量a

11行当中 我们通过赋值语句将18这个整数数据赋值给我们的变量a

通常我们将这里的18称之为“直接量”

或者叫做字面量

Java当中的每一条语句以分号作为它的结束

我们可以将这两行语句合成一行 写成这种初始化的形式

它表示 在定义变量a的时候 直接将它的值初始化为18

用同样的方式 我们可以声明short类型

如果你要声明多个相同类型的变量

我们可以用逗号进行隔开

比如像这里我们可以定义x y z

用逗号隔开 同时 让y等于10

z等于20

下面我们来看一个非常有意思的问题

代码的第12行把这里的y和z的和赋值给我们的x

y和z他们都是short类型

x也是short类型

左右两侧变量的数据类型都相同

但是系统还是报错了

为什么这里会提示不能从int类型转换为short类型呢

这主要是因为Java在进行运算表达式计算的时候会自动地将数值转换成int类型

也就是说我们相加得到的结果其实是一个int

现在你就是将一个int赋值给左侧的short类型变量

这就需要我们使用强制类型转换了

强制类型转换的语法可以参考这样的格式

非常简单 只要在你转换的目标类型前面加一个圆括号就可以了

我们在12行

y+z的前面加上一个圆括号 里面填上我们要目标转换到short类型

需要注意的是 y+z我们也要用圆括号进行把它括起来

下面我们一起来看一个非常有意思的问题

我们这里声明一个long的数据类型 用它来存储一个直接量

12345678987654321

那么我们会发现 这时候系统会提示一个错误信息

告诉你12345678987654321超出了int的描述范围

事实上 我们的Java默认处理直接量呢

它使用int类型来存储这些数字

当某个数值超出int范围以后

不会自动地转换成我们需要的long类型

那么我们需要在这个直接量的后面加上一个后缀符号L

这里的后缀符号可以使用采用大写或者小写的形式

但是在这里

你要是采用小写的形式 这个L容易和数字1搞混

所以为了增加代码的可读性

采用大写的后缀符号是一个良好的编程习惯

加上这个后缀符号

就告诉我们的系统 前面的直接量将以long类型来存储

如果我要将一个整型数据赋值给长整型变量

把a当中的18赋值给b

根据赋值语句的基本原则 我们需要保持两者的数据类型是一致的

但是我们发现

这里完全可以将一个整型赋值给long类型

这是由于我们的int类型它的表述范围相对较小

而左侧的long类型的表述范围要比int来得大

就好像我们的小杯子要倒到大杯子里面

这是合法有效的 像这种现象我们称之为“自动提升”

反之 如果要将大杯子当中的数据倒到小杯子当中去 可能会造成数据的丢失

那么 如果你非得这样做 我们就需要使用强制转换

这里我们定义了一个byte类型变量c

这次将a的变量值赋值给c

这就需要使用强制转换了

除了整型数之外 Java还有浮点数 字符串

布尔型等其他数据类型

大家可以通过类似的方式来尝试并分析这些基本类型数据的使用

好了 今天的课就讲到这里 你学会了吗

“做中学”Java程序设计课程列表:

第1章初始Java

-1.1Java简介

--01Java简介

-1.2搭建Java开发环境

--Video

-1.3使用记事本编写Java程序

--Video

-1.4使用Eclipse开发Java程序

--Video

-1.5导入/导出Java项目

--Video

-1.6管理组织代码

--Video

-第1章初始Java--测试题

第2章使用Java基本语法(1)

-2.1认识标识符

--Video

-2.2变量和变量类型

--Video

-2.3数据类型和类型转换

--Video

-2.4使用常量

--Video

-2.5使用注释

--Video

-2.6使用运算符进行算术运算

--Video

-第2章使用Java基本语法(1)--测试题

第2章使用Java基本语法(2)

-2.7使用运算符进行逻辑处理

--Video

-2.8使用if进行流程控制

--Video

-2.9使用switch进行流程控制

--使用switch进行流程控制

-2.10使用循环

--Video

-2.11循环的跳出和继续

--Video

-2.12多重循环

--Video

-第2章使用Java基本语法(2)--测试题

第3章使用面向对象基础语法

-3.1认识类和对象

--Video

-3.2为类添加属性

--Video

-3.3为类添加方法

--Video

-3.4为类添加静态方法

--Video

-3.5递归方法

--递归方法

-3.6构造方法

--Video

-3.7重载方法

--Video

-第3章使用面向对象基础语法--测试题

第4章使用面向对象高级语法

-4.1使用继承语法

--Video

-4.2使用数组

--Video

-4.3使用数组类操作数组

--Video

-4.4使用抽象类

--Video

-4.5使用接口

--Video

-第4章使用面向对象高级语法--测试题

第5章捕获并处理异常

-5.1异常处理机制

--Video

-5.2捕获异常

--Video

-5.3创建自定义异常

--Video

-第5章捕获并处理异常--测试题

第6章使用SWT设计界面

-6.1SWT图形界面

--Video

-6.2使用SWT布局管理-FillLayout

--使用SWT布局管理-FillLayout

-6.3使用SWT布局管理-RowLayout

--使用SWT布局管理-RowLayout

-6.4SWT中的事件模型

--Video

-6.5常见事件处理写法

--Video

-第6章使用SWT设计界面--测试题

第7章微波炉模拟程序

-7.1微波炉模拟程序的界面制作

--Video

-7.2微波炉模拟程序的代码重构

--Video

-7.3微波炉模拟程序的事件监听

--Video

-7.4微波炉模拟程序的数字键盘

--Video

-7.6微波炉模拟程序CookTimer

--Video

-7.7微波炉模拟程序添加图像

--Video

-7.8微波炉模拟程序添加声音

--Video

-7.9微波炉模拟程序安装包制作

--Video

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。