当前课程知识点:“做中学”Java程序设计 > 第2章使用Java基本语法(1) > 2.3数据类型和类型转换 > 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还有浮点数 字符串
布尔型等其他数据类型
大家可以通过类似的方式来尝试并分析这些基本类型数据的使用
好了 今天的课就讲到这里 你学会了吗
-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.1认识标识符
--Video
-2.2变量和变量类型
--Video
-2.3数据类型和类型转换
--Video
-2.4使用常量
--Video
-2.5使用注释
--Video
-2.6使用运算符进行算术运算
--Video
-第2章使用Java基本语法(1)--测试题
-2.7使用运算符进行逻辑处理
--Video
-2.8使用if进行流程控制
--Video
-2.9使用switch进行流程控制
-2.10使用循环
--Video
-2.11循环的跳出和继续
--Video
-2.12多重循环
--Video
-第2章使用Java基本语法(2)--测试题
-3.1认识类和对象
--Video
-3.2为类添加属性
--Video
-3.3为类添加方法
--Video
-3.4为类添加静态方法
--Video
-3.5递归方法
--递归方法
-3.6构造方法
--Video
-3.7重载方法
--Video
-第3章使用面向对象基础语法--测试题
-4.1使用继承语法
--Video
-4.2使用数组
--Video
-4.3使用数组类操作数组
--Video
-4.4使用抽象类
--Video
-4.5使用接口
--Video
-第4章使用面向对象高级语法--测试题
-5.1异常处理机制
--Video
-5.2捕获异常
--Video
-5.3创建自定义异常
--Video
-第5章捕获并处理异常--测试题
-6.1SWT图形界面
--Video
-6.2使用SWT布局管理-FillLayout
-6.3使用SWT布局管理-RowLayout
-6.4SWT中的事件模型
--Video
-6.5常见事件处理写法
--Video
-第6章使用SWT设计界面--测试题
-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