Java 基础(5)——数据转换 & 特殊的引用类型
数据转换
变量在第(3)篇中有讲到过八种数据类型,分别是能够用来表示整型的 byte、short、int、long 和表示浮点型的 float、double 以及字符型 char、布尔型 boolean。
那就又衍生了一个问题:我怎么让 int 型的 1 转成 byte 型的 1 呢?
so easy,把 byte 型变量赋值给 int 型就可以啦~
byte a = 1;
int b = a; // 这时候b的值就会是1了
像这样就完成了转换。
然鹅,这里要注意的是因为是从范围小的 byte 转成范围大的 int,所以可以直接转。那么如果是从范围大的 int 转成范围小的 byte 呢?
我们就需要给后面的值做一个强调,like this:
int a = 1;
byte b = (byte) a;
这个操作【(byte)】就是强转了。当然,如果 a 是超过了 byte 的范围 - 128~127 的话,那么就会丢失精度。比如:
int a = 130;
byte b = (byte)a;
System.out.println("b="+b);
130 超过 127 了吧,我们看看运行结果:

是的,结果果然就不是 130,而变成了 - 126。Java 在这个强转之后把多余的 2 加上了 (-128) 就成了 - 126 了。所以呀,强转要注意范围区间哟!
好了,讲到这里,需要给三个定义了:
- 优先级:是根据数据类型分配空间的大小,取值范围的不同来划分。(按字节呗,详见下表)
- 从优先级低的数据类型转成优先级高的数据类型是可以直接进行转换的,这种转换就叫隐式类型转换。
- 从优先级高的数据类型转成优先级低的数据类型是不能直接进行转换的,需要进行强转,这种转换就叫显式类型转换。

引用类型
除了上表中八种基本类型之外,Java 还有一种比较特殊的类型,叫引用类型。
引用了,就是在别的地方写好了,我在这里用嘛~ Java 的引用类型只想的是一个对象,不是像 byte、int 这种是一个原始值。
当然了,既然叫引用类型,那么根据它引用的对象的不同,我们大致上可以把引用类型分为三种,类、接口和数组。(就这么一说,之后再仔细讲)。
那么怎么用呢?比如说我这里有个用户实体类(User),那么我们用的时候就是
User user = new User();
这里的user变量就是引用类型啦~
当然,常用的 String 也是一个类,
String str = "ahan";
这个 str 也是引用类型哦~
以上,阿里嘎多,20190406 from ahanwhite。
Java 基础(5)——数据转换 & 特殊的引用类型的更多相关文章
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- Java基础知识【下】( 转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- Java基础进阶整理
Java学习笔记整理 本文档是我个人整理的,首先是想通过完成本文档更加扎实自己的基础加强对java语言的理解,然后就是想给入了门的同志们做下贡献. 当然,本文档主要是对java语言基础(当然还有很多基 ...
- java 基础题 很基础, 很有趣
都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底, 老手们就不用进来了,免得笑话我们这些未出校门的孩纸们, ...
- Java基础复习笔记系列 四 数组
Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...
- java 基础拾漏
1.java语言支持的类型非为两类:基础类型(primitive Type) 和引用类型(Reference Type),基础类型8种 2.数组元素的类型是基本类型中的整数类型(byte,short, ...
- java基础要点
Java语言是现在比较常用的编程语言,因为Java语言可以编写桌用程序,也可以编写web程序,还能编写嵌入式程序.这是由于相比脚本语言,Java 的运行速度要快.而对于底层语言,Java与平台无关,可 ...
- 【概念笔记】JAVA基础 - part1
IT`huhui前言录 这是自己对JAVA基础的一个小总结,会不断完善.因为时间仓促的原因. 每学习一段时间,停下来,静心总结一下,甚好.停停走,走走停,一往无前,不摔倒. 一些链接里面是我看到一些人 ...
- Java基础-String、StringBuffer、StringBuilder
看下面这段代码: public class Main { public static void main(String[] args) { String string = ""; ...
- Java基础——数组Array
一.数组基本概念 数组是相同类型数据的有序集合. 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成.其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们. 数组有三 ...
随机推荐
- “全栈2019”Java第四十六章:继承与字段
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- link和@import的区别是什么 ?
1.link是XHTML标签,除了加载CSS外,还可以定义RSS等其他事务:@import属于CSS范畴,只能加载CSS. 2.link引入CSS是,在页面载入时间同时加载:@import页面网页完全 ...
- Python报错信息收集(1)
UnboundLocalError: local variable 'count' referenced before assignment 局部变量错误:赋值之前引用的本地变量'count' ,un ...
- [Python]json 错误xx is not JSON serializable
TypeError: Decimal('1457501') is not JSON serializable 在使用json的时候经常会遇到xxx is not JSON serializable, ...
- 浅谈SLAM的回环检测技术
什么是回环检测? 在讲解回环检测前,我们先来了解下回环的概念.在视觉SLAM问题中,位姿的估计往往是一个递推的过程,即由上一帧位姿解算当前帧位姿,因此其中的误差便这样一帧一帧的传递下去,也就是我们所说 ...
- Codeforces Round #556 (Div. 2) - C. Prefix Sum Primes(思维)
Problem Codeforces Round #556 (Div. 2) - D. Three Religions Time Limit: 1000 mSec Problem Descripti ...
- 进阶篇:2)DFMA方法的运用
本章目的:DFMA方法运用,引导后面的章节.(运用比只理解重要!) 1.DFMA概述 1.1 DFMA的由来 工艺粗略可分为装配工艺和制造工艺.在这里,我们所讲的“制造”是指产品或部件的某个零件的制造 ...
- Oracle 数据库创建、表空间创建、用户创建 步骤
一.数据库创建: 1.利用数据库配置助手(DBCA,Database Configuration Assistant)图形化方式 2.创建完成之后,找到 D:\oracle\product\11.2 ...
- 实现微信小程序支付
1.在小程序中获取用户的登录信息,成功后可以获取到用户的code值 2.把code值传给服务端,服务端请求微信获取用户openid接口,成功后可以获取用户的openid值 3.服务器上面请求微信的统一 ...
- U盘拷贝大文件提示文件过大无法拷贝解决方案
工具: 计算机 windows操作系统 U盘 原因:由于U盘的格式问题导致的,当期的磁盘格式是FAT32类型的,无拷贝过大的文件 方法:接下来修改U盘类型,且不格式化U盘 1.键盘win+R快捷键弹出 ...