类型转换

  • 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
低  --------------------------------------------------------> 高
byte, short, char -> int -> long -> float -> double
int i = 128;
byte b = (byte)i;//内存溢出
System.out.println(i); //128
System.out.println(b); //-128
  • 运算中,不同类型的数据先转化为同一类型,然后进行运算。

  • 强制类型转换: 高 ---> 低

格式:(类型)变量名
byte b = (byte)i
  • 自动类型转换: 低 ---> 高
int i = 128;
double b = i;
System.out.println(i); //128
System.out.println(b); //128.0

注意点:

  1. 不能对布尔值进行转换。
  2. 不能把对象类型转换为不相干的类型。
  3. 在把高容量转换到低容量的时候,强制转换
  4. 转换的时候可能存在内存溢出,或者精度问题。
//精度问题
System.out.println((int)23.7); //23
System.out.println((int)-45.89f); //-45
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
int total = money*years;
long total2= money*years;//默认是int,转换之前已经存在问题!
long total3= money*((long)years);//先把一个数转换为long System.out.println(money); //1000000000
System.out.println(total); //-1474836480,计算的时候溢出了
System.out.println(total2); //-1474836480
System.out.println(total3); //20000000000

从第一声响亮的啼哭开始,你踏上人生的旅途,义无反顾地一路走去。虽然欢笑多于苦恼,但是每个人都会生病,这是生命的一部分。——《重症监护室的故事》

Java基础之类型转换的更多相关文章

  1. Java基础之类型转换总结篇

    Java中,经常可以遇到类型转换的场景,从变量的定义到复制.数值变量的计算到方法的参数传递.基类与派生类间的造型等,随处可见类型转换的身影.Java中的类型转换在Java编码中具有重要的作用.    ...

  2. Java基础-数据类型转换

     1).简单类型数据间的转换,有两种方式:自动转换和强制转换,通常发生在表达式中或方法的参数传递时.  自动转换 当一个较"小"数据与一个较"大"的数据一起运算 ...

  3. Java基础12 类型转换与多态

    链接地址:http://www.cnblogs.com/vamei/archive/2013/04/01/2992662.html 作者:Vamei 出处:http://www.cnblogs.com ...

  4. java基础-- 之类型转换 和 一些运算符

    ---   首先   看一个 Scanner  类 import java.util.Scanner; public class TestScanner { public static void ma ...

  5. Java基础12 类型转换与多态(转载)

    类型检查 Java的任意变量和引用经过类型声明(type declaration),才能使用.我们之前见过对象数据.类数据.方法参数.方法返回值以及方法内部的自动变量,它们都需要声明其类型.Java是 ...

  6. java基础之 类型转换

    一.自动类型转换 1.java中不同类型的数据在计算时,为保证数据的精度,数据的类型会以大容量的类型为主: 2.自动类型转换的排序: char.byte.short -> int -> l ...

  7. Java基础-基本数据类型转换案例

    java基本数据类型八中 byte = Byte short = Short char = Character int = Integer long = Long float = Float doub ...

  8. Java基础学习-类型转换之隐式转换

    +是一个运算符,我们应该能够看懂,做数据的加法. boolean类型不能转换为其他的数据类型. 默认转换:     byte,short,char--int--float--double     by ...

  9. 4.Java基础_Java类型转换

    import javax.swing.plaf.synth.SynthMenuBarUI; /* 类型转换 自动类型转换: 把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量 强制类型 ...

  10. Java基础——常用类型转换

    关于类型转化问题: (1)String--------->char / char[ ] String str = "ab"; char str1 = str.charAt(0 ...

随机推荐

  1. SpecCPU2017 测试cpu性能

    SpecCPU介绍见: https://blog.csdn.net/qq_36287943/article/details/103601539 官网:https://spec.org/ 1.SpecC ...

  2. 在sublime text 3中编译javascript

    1.整理步骤: 1).安装node.js: 2).配置js编译系统: 2.过程 1).先是按照网上的方法,在配置的时候输入如下内容: {"cmd": ["node&quo ...

  3. PK获取面积

    BOOL PK_AskFaceAreas(tag_t face_tag, double tol, double &areas) {//获得面积 tag_t ps_tag = NULL_TAG; ...

  4. 错误 C2664 “int fputs(const char *,FILE *)”: 无法将参数 1 从“char”转换为“const char *”解决方法

    遇到这个问题,请打开本项目的Properties(属性) -------> Configuration Properties(配置属性) -------->General(常规) ---- ...

  5. qt creator 常量中有换行符(转)

    这篇文章写于QT5.6的诞生,它是QT5的第一个长期支持版.这也是QT5已成熟的里程碑. 我搭建的环境是:Win10+VS2015+QT5.6+QtCreator 在安装VS2015的时候,若是用Qt ...

  6. python 爬虫 selenium 与 chromedriver

    selenium  安装 pip install   selenium chromedriver  下载 https://npm.taobao.org/mirrors/chromedriver?spm ...

  7. LENGTH,LENGTHB

    LENGTH 1.语法 length(string) 2.说明: 统计字段的字符长度 3.示例: select length('abcd') from dual; --返回值:4 select len ...

  8. Apache SSI远程命令执行漏洞复现

    漏洞原理:当目标服务器开启了SSI与CGI支持,就可以上传shtml文件,并利用语法执行任意命令,例如<!- - #exec cmd="ls"- ->,cmd后面跟要执 ...

  9. temp_laijx_2023

    ############################ [{\"itemKey\": \"jenkinsConfig\",\"itemValue\& ...

  10. 在虚拟机安装用友u8的时候出现的一些问题

    几个星期前装的了,小问题不记得,但是有个问题还是记一下 在win10,sql sever2008,u8都装完后,想登录账号,但总是找不到数据源,初始化也失败(密码也不记得自己设过没),也就是登陆时会有 ...