索鸟网

  1. 首页
  2. Java 小类型与大类型

Java 小类型与大类型


小类型向大类型(隐式类型转换)

小类型向大类型的转换JVM会自动完成,不需要编写额外的代码。如下代码:

byte b1 = 3;
b1 = b1 +3

这样会在b1 = b1 +b2处报错,原因在于Java默认的证书类型的是 int 类型,b1+b2返回的结果会通过隐式类型转换将结果变成int类型,又由于b1是 byte类型的变量,因此赋值会报错。

如果这样写代码:

int b1 = 3;
byte b2 = 3;
b1 = b1 +b2;

因为JVM会自动完成隐式类型转换,所以 b1+b2 的结果会变成 int 类型,什么事都没有、

大类型向小类型

还是上面的例子:

byte b1 = 3;
b1 = b1 +3

如果想要将结果类型保存为 byte类型,则需要强制类型转换。将代码改成如下形式:

byte b1 = 3;
b1 = (byte)b1 +3

报错便消失了。

需要注意的是大类型转换小类型时,源数据的数据位会变成符号位。

int i=257
byte b = (byte)i

因为257 = 100000001
经过强制类型转换,超出长度的位数会被丢弃,剩下的数据位成为了符号位
结果 = 00000001 ,即1

结论:
小类型向大类型的转换JVM会自动完成隐式类型转换,不需要编写额外的代码。
大类型向小类型的转换需要编写额外代码进行强制类型转换。

欢迎加入学习交流群569772982,大家一起学习交流。

java

来源地址:https://segmentfault.com/a/1190000011377975 版权归作者所有!

相关教程

  • JAVA 基本类型与 引用类型区别

    栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和 multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不
  • C# 值类型与引用类型 null与可空类型

    一,值类型与引用类型 值类型就是内存中某处位置保存的值,该值具备实际意义。比如int i=10;内存中的10就是i的值。 引用类型也是内存中保存的值,但是该值指向内存中其他位置。比如String str=”123”。str保存的实际上是”123”在内存中存储的位置的地址,只是我们在使用的时候C#语言知道str是引用类型就把对应的”123”取出来给我们用。 二,null的含义 值类型总是包含
  • JavaScript基本类型与引用类型复制变量值

    在学习JavaScript变量后,我们知道从一个变量向另一个变量复制基本类型的值跟引用类型的值时,是存在不同的。来看一个例子: var num1=5; var num2=num1; num1=10; console.log(num1);//10 console.log(num2);//5 在这个例子中用num1中的值用来初始化num2,所以num2中保存的值为5,但后来
  • Integer类型、int类型类型、String类型的相互转换

    public class TestInteger { public static void main(String[] args) { //使用Integer类中的构造方法来构造对象,该类没有无参构造方法 // int类型转换成Integer Integer it1 = new Integer(123); //自动调用toString()方法
  • JS值类型、引用类型、强制类型转换

    1、js中的数据类型 js中有5中简单数据类型(也称为基本数据类型): Undefined、Null、Boolean、Number和String。一种复杂类型:Object 2、js变量按照存储类型分为值类型和引用类型 值类型: string number boolean undefined 引用类型: Object Array Function //数
  • 《javascript高级程序设计》笔记:值类型与引用类型

    基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值;引用类型的值是保存在内存中的对象,在操作对象时,实际上是在操作对象的引用而不是实际的对象; 值类型 如果一个变量存储的是值的本身那么就是一个值类型number / string / Boolean / Null / Undefined —值类型的变量本身就是含有赋予给它的数值的,它的变量本身及
  • javascript日期类型(Date)与php日期类型详解

    前言 一个网站的开发需要要UI、前端、后端三种工程师。现在的企业在招聘前端工程师的时候一般都要求其了解或者掌握一些后端的知识。因此,此文章主要介绍javascript的日期类型,也粗略的介绍一下php的日期类型,以及二者是如何交互数据的。 时间戳 什么是时间戳 时间戳是从格林威治时间1970年1月1日(00:00:00 GMT)至今的总秒数。它也被
  • java的变量类型

    一.首先我们应该知道类体是由哪几部分构成:   1.   类是由定义的变量和定义的方法(一个类可以有多个方法)构成;         java语言支持的变量有两种,一种是成员变量(成员变量也就是我们所说的全局变量),一种是局部变量;         成员变量:在类里面定义的变量,在整个类里都有