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
一.数组基本概念 数组是相同类型数据的有序集合. 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成.其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们. 数组有三 ...
随机推荐
- 逃生(反向topo)
逃生 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status De ...
- Windows IIS ASP.NET Core中创建和使用HTTPS自签名证书
为什么要用Https就不说了. 第一步:创建自签名的证书.在Windows下开启PowerShell,将以下文字粘贴进去: # setup certificate properties includi ...
- 外网域名映射内网Ip 内网使用外网域名的https证书
用nslookup www.baidu.com nslookup www.qq.com 15.64.64.53 测试了内网的dns可以解析外网域名 那么我买个外网域名,再对这个外网域名买个证书,然后外 ...
- noip提高组模拟赛(QBXT)T2
T2count题解 [ 问题描述]: 小 A 是一名热衷于优化各种算法的 OIER,有一天他给了你一个随机生成的 1~n 的排列, 并定 义区间[l,r]的价值为: \[ \huge C_{l,r}= ...
- Maven依赖的JAR包下载慢?赶紧看过来
相信许多JAVA开发者在日常工作中时常会碰到这种情况,那就是编译Maven工程时,工程所依赖的jar包文件下载非常慢,甚至经常出现下载不成功的问题,今天,小编就给大家讲讲如何提升Maven依赖包的下载 ...
- jquery选项卡效果
效果图: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...
- java操作html格式数据
近期在做数据抓取功能,抓取到的数据为html格式,需在后台进行转换后取值,为了避免使用字符串查找方式获取而使用Jsonp完美实现. 1. 引入Jsonp: <dependency> < ...
- 移动端遇到的常见JS与CSS问题及解决方法
由于笔者的水平有限,虽说都是笔者遇到过使用过的,但文中可能也会出现一些问题或不严谨的地方,望各位指出,不胜感激! 一. css部分 body如果设置height:100%;overflow:hidde ...
- P1001 A+B Problem (树链剖分)
这题考验我们构造模型的能力. 考虑构造一棵树,树上有3个节点,节点1和节点2连一条权值为a的边,节点1和节点3连一条权值为b的边,显然答案就是节点2到节点3的最短路径. 但这样还不够.考虑加法的性质, ...
- Dynamics CRM 365常用js记录。
var entityname =window.parent.Xrm.Page.data.entity.getEntityName();//获取实体名称 var sampid = window.pare ...