自动转换(隐式转化)与强制转换(显式转换)

Java中,基本数据类型之间的运算,有时候需要类型的转换。8位的byte类型扩展转换为32位的int类型,不会发生信息丢失。相反,32位的int类型转换为8位的byte类型,很可能发生信息丢失,如发生一般舍弃高位部分。

隐式转化

小类型和大类型结合时,结果自动转换为大类型

字符串和数字结合时,结果自动转换为字符串

强制转换

强制转换是在要转换的数值或表达式之前指明目标类型,并用括号括住该类型。强制转换会发生信息损失,如:


1

2

3


int i = 200;

byte b  = (byte)i;

System.out.println(b);// -56

public class App {

    public static void main( String[] args ){

        short sh = 20;//编译正确

        sh = sh + 12L;//编译错误

        float ret = sh + 12L;//编译正确

    }

}

//编译通过

short s1 = 1

s1 += 1;

时间: 2024-08-09 14:40:50

自动转换(隐式转化)与强制转换(显式转换)的相关文章

Scala中的Implicit(隐式转换,隐式参数,隐式类)

文章来自:http://www.cnblogs.com/hark0623/p/4196452.html  转发请注明 代码如下: /** * 隐式转换 隐式参数 隐式类 */ //隐式转换 class Implicit(a: A) { def Test: Unit = { println("Implicit") } } class A { } object Implicit { //隐式转换 implicit def a2Implicit(a: A) = new Implicit(a)

Programming in Scala (Second Edition) 读书笔记21 隐式转化

1. There's a fundamental difference between your own code and libraries of other people: you can change or extend your own code as you wish, but if you want to use someone else's libraries, you usually have to take them as they are. 你可以改变或扩展自己的代码,但是对

C#4.0语法糖之第一篇:自动属性&隐式类型

今天给大家分享一下C#语法糖的简单的两个知识点吧. 自动属性:在 C# 4.0 和更高版本中,当属性的访问器中不需要其他逻辑时,自动实现的属性可使属性声明更加简洁. 客户端代码还可通过这些属性创建对象. get and set accessors." id="mt3">如下面的示例所示声明属性时,编译器将创建一个私有的匿名支持字段,该字段只能通过属性的 get 和 set 访问器进行访问. 我们C#4.0以前的传统方式的属性是用来封装字段的,这里我简单的对比一下这两种方

(java)selenium webdriver学习---三种等待时间方法:显式等待,隐式等待,强制等待

selenium webdriver学习---三种等待时间方法:显式等待,隐式等待,强制等待 本例包括窗口最大化,刷新,切换到指定窗口,后退,前进,获取当前窗口url等操作: import java.util.Set;import java.util.concurrent.TimeUnit; import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.openqa.selenium.By;import org.openqa.

Java数据类型的转换:隐式(自动)转换与强制转换

原文链接:http://java.chinaitlab.com/base/725590.html 简单数据类型之间的转换 简单数据类型由低到高(byte.short.char)< int < long < float< double 简单数据类型转换分为:低级到高级的自动转换:高级到低级的强制转换:包装类过渡类型能够转换: 自动类型转换:直接将低级类型只赋值给高级类型:如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值, 强制类型转换:高级类型赋值给低级

Scala隐式转化和并发编程

1.Scala隐式彻底详解 隐式转换 implicit ,可通过手动指定将某种类型的对象或者某种类转换成其他类型的类或者对象 形式:implicit def function 隐式函数.隐式参数.隐式对象.隐式类 隐式函数:指有implicit前置修饰的函数 Scala会根据上下文,利用隐式转换函数的签名主要是输入类型,在程序运行时利用隐式转换函数,将接受的隐式函数参数类型定义的对象自动升级转换成隐式转换后的对象.转换成另外一种对象返还,任务完成后重新转换为原来类型.如果调用对象没有要调用的方法

mysql的几种隐式转化

1. 表定义是字符型,传入的是Int 2. 字符集不一致.表定义的字段是gbk,传入的是utf8:这种在存储过程中出现得比较多. 数据库的字符集utf8 mysql> show create database jstmonitor;+------------+---------------------------------------------------------------------+| Database | Create Database |+------------+------

C#语法糖之第一篇:自动属性&amp;隐式类型

今天给大家分享一下C#语法糖的简单的两个知识点吧. 自动属性:在 C# 4.0 和更高版本中,当属性的访问器中不需要其他逻辑时,自动实现的属性可使属性声明更加简洁. 客户端代码还可通过这些属性创建对象. get and set accessors." id="mt3">如下面的示例所示声明属性时,编译器将创建一个私有的匿名支持字段,该字段只能通过属性的 get 和 set 访问器进行访问. 我们C#4.0以前的传统方式的属性是用来封装字段的,这里我简单的对比一下这两种方

项目知识储备-自动属性 隐式类型Var

在项目中应用到的一些基本的小知识点,也不知道原理是什么 ,也不知道为什么.今天查了一下,原来这些东西在 之前的视频中就看到过.小小总结一下. 在 C# 3.0 和更高版本中,当属性的访问器中不需要其他逻辑时,自动实现的属性可使属性声明更加简洁. 客户端代码还可通过这些属性创建对象. 知识点一:自动属性 例如下面 class myClass{ //一般属性用法 privae string name; public string Name{ get { return name;} set { nam