Java基础之类型转换
类型转换
- 由于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
注意点:
- 不能对布尔值进行转换。
- 不能把对象类型转换为不相干的类型。
- 在把高容量转换到低容量的时候,强制转换
- 转换的时候可能存在内存溢出,或者精度问题。
//精度问题
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基础之类型转换的更多相关文章
- Java基础之类型转换总结篇
Java中,经常可以遇到类型转换的场景,从变量的定义到复制.数值变量的计算到方法的参数传递.基类与派生类间的造型等,随处可见类型转换的身影.Java中的类型转换在Java编码中具有重要的作用. ...
- Java基础-数据类型转换
1).简单类型数据间的转换,有两种方式:自动转换和强制转换,通常发生在表达式中或方法的参数传递时. 自动转换 当一个较"小"数据与一个较"大"的数据一起运算 ...
- Java基础12 类型转换与多态
链接地址:http://www.cnblogs.com/vamei/archive/2013/04/01/2992662.html 作者:Vamei 出处:http://www.cnblogs.com ...
- java基础-- 之类型转换 和 一些运算符
--- 首先 看一个 Scanner 类 import java.util.Scanner; public class TestScanner { public static void ma ...
- Java基础12 类型转换与多态(转载)
类型检查 Java的任意变量和引用经过类型声明(type declaration),才能使用.我们之前见过对象数据.类数据.方法参数.方法返回值以及方法内部的自动变量,它们都需要声明其类型.Java是 ...
- java基础之 类型转换
一.自动类型转换 1.java中不同类型的数据在计算时,为保证数据的精度,数据的类型会以大容量的类型为主: 2.自动类型转换的排序: char.byte.short -> int -> l ...
- Java基础-基本数据类型转换案例
java基本数据类型八中 byte = Byte short = Short char = Character int = Integer long = Long float = Float doub ...
- Java基础学习-类型转换之隐式转换
+是一个运算符,我们应该能够看懂,做数据的加法. boolean类型不能转换为其他的数据类型. 默认转换: byte,short,char--int--float--double by ...
- 4.Java基础_Java类型转换
import javax.swing.plaf.synth.SynthMenuBarUI; /* 类型转换 自动类型转换: 把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量 强制类型 ...
- Java基础——常用类型转换
关于类型转化问题: (1)String--------->char / char[ ] String str = "ab"; char str1 = str.charAt(0 ...
随机推荐
- Launchpad是什么?Launchpad使用教程
Launchpad是什么?Launchpad 是用来查找和打开Mac系统下的 app 的最快捷方式,通过 Launchpad,您可以查看.整理并轻松打开Mac里面几乎所有的应用软件.下面带来Mac ...
- 高校github课程资源汇总
序号 学校名称 学校类型 课程资源链接 1 清华大学 Top 计算机系课程攻略 https://github.com/Salensoft/thu-cst-cracker https://github. ...
- 【实验】B站资源免费下载技巧you-get
搭建环境, python pip3 install you-get 查看可以下载格式 you-get -i https://www.bilibili.com/video/BV1yN411d7KH?p ...
- [iOS]Universal Link
从零开始的操作流程在后面,这里把几个坑先挪到前面来 便于查看: ️ apple-app-site-association 只会在APP第一次启动的时候请求一次,因此文件的任何更新的验证都需要APP重新 ...
- C# RichTextBox跳转到指定行(文本行跳转和显示行跳转)
文本行跳转: 对禁止自动换行(WordWrap属性为False)有效 1 /// <summary>跳到指定行</summary> 2 private void JumpToL ...
- Pycharm报错:Error running ‘‘: Cannot run program “\python.exe“ (in directory ““)系统找不到指定文件夹?已解决!
问题报错 报错原因:我修改的工程的名称/或者移动了工程位置,运行导致找不到之前的运行路径 解决办法1.在该项目文件夹下找到一个叫.idea的文件夹.(若没有,选择显示隐藏项目,可能被隐藏了)PyCha ...
- Linux df -h 显示磁盘空间满,但实际未占用满——问题分析
问题现象: 遇到一个问题,在系统上,告警提示磁盘空间不够,如下图所示: 问题分析: 1.首先使用 :du -h / --max-depth=1 命令查看各个目录的占用空间,试图找到占用较多空间的目 ...
- 广告网络归因技术之SKAdNetwork
IDFA的背景 为了保护用户隐私,早在2012年就不再允许其生态中的玩家获取用户的唯一标识符,但是商家在移动端打广告的时候又希望能监控到每一次广告投放的效果,因此,苹果想出了折中的办法,就是提供另外一 ...
- 21_webpack_DDL
DLL库(不再使用) DLL全称是动态链接库(Dynamic Link Library),是为软件在Windows中实现共享函数库的一种实现方式 webpack中也有内置DLL的功能,它指的是我们可以 ...
- vue3 门户网站搭建5-图标
奈何 element 自带的图标太少,不够用,故打算使用 vite-plugin-svg-icons 组件来封装 svg-icon . ps: ui 框架选用的 element-ui,为了能跟 vue ...