7.JavaSE之类型转换

public class Demo04 {
public static void main(String[] args) {
int i = 128;
byte b = (byte) i;//内存溢出,Byte范围-128~127
//强制类型转换:(类型)变量名 高--低
//自动类型转换:不用写 低--高
double c = i;
System.out.println(i);//
System.out.println(b);//-128 高到低
System.out.println(c);//128.0 低到高
/*
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型。例如不能把人变成猪,但是可以把一个男人变成一个女人
3.在把高容量转换为低容量的时候,强制转换,反之不用管。
4.转换的时候可能存在内存溢出(高-低),或者精度问题(小数,精度丢失问题)
*/
System.out.println((int) 23.7); //
System.out.println((int) -45.99f);//-45
System.out.println("======================");
char d = 'a';
int e = d + 1;
System.out.println(e); //
System.out.println((char) e);//b
}
}
注意:
public class Demo05 {
public static void main(String[] args) {
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用_分割,而且下划线不会被打印出来
int money = 10_0000_0000;
int years=20;
System.out.println(money);//
int total=money*years;
long total2 =money*years;
System.out.println(total);//-1474836480,计算的时候溢出了
System.out.println(total2);//默认是int,计算完后默认是int数你转换成long没用,还是-1474836480怎么解决呢?
long total3=money*((long)years);//在计算前转换,将一个数转换为long类型就可以了。
System.out.println(total3);//20000000000
//L l 用L表示long类型,容易看成1。需要注意代码规范,从刚开始就抓起。
}
}
7.JavaSE之类型转换的更多相关文章
- 【黑马JavaSE】1.1JavaSE、环境变量、CMD使用、常量、变量、数据类型转换(自动/强制)、ASCII码表、Unicode万国码表
文章目录 SUN公司,詹姆斯.劳瑟琳,Java祖师爷 Java语言开发环境搭建 把Java添加到环境变量的方法 命令行CMD里一些报的错误 命令控制行常用操作的代码展示 Notepad++.注释.标识 ...
- JavaSE学习(二):进制转换—数据类型转换—Java运算符
一.进制转换 1.1 其他进制转十进制(以十六进制为例): 十六进制范围:0-9, A-F对应数字10-15 2A7E(16) = 14*16(0) +7*16(1) + 10*16(2) + ...
- [javaSE] 类型转换(1加1等于几)
打印 ‘a’+1,输出98,解释:’a’是char类型占2个8bit,1是int类型占4个,’a’字符会被自动强制转换为int类型对应ascii码表97 打印’1’+1,输出 50,解释:’1’是ch ...
- Java 基础入门随笔(2) JavaSE版——关键字、进制转换、类型转换
1.Java语言-关键字 关键字:被java语言赋予了特殊含义的词,特点是所有的字母都为小写. java涉及到的关键字整理: 用于定义数据类型的关键字 class interface byte sho ...
- JavaSE基础(十)--Java中的基本数据类型转换
Java中的基本数据类型转换 说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示. 重新温故了下原始数据类型,现在来解释下它们之间 ...
- 类型转换——JavaSE基础
类型转换 类型判断 可以通过Instanceof关键字判断左操作数是否是右操作数的父类或本身 强制类型转换 不能对布尔值进行转换 不能将对象类型转换为不相关的类型 把高容量转向低容量时,需要进行强制类 ...
- javaSE基础03
javaSE基础03 生活中常见的进制:十进制(0-9).星期(七进制(0-6)).时间(十二进制(0-11)).二十四进制(0-23) 进制之间的转换: 十进制转为二进制: 将十进制除以2,直到商为 ...
- JavaSE基础知识总结
最近回顾了一下Java的基础知识,决定写成博客梳理一遍,主要是JavaSE部分最基础的知识,适合考前突击,学后回顾,不适合作为初学材料. 简单的列个目录吧: 一.数据类型和运算符 二.流程控制与数组 ...
- javase基础复习攻略《三》
编程语言的发展: 机器语言——直接由计算机的指令组成,指令.地址.数据都是以"0"和"1"的符号串组成,可以被计算机直接执行. 汇编语言——用容易理解和记忆的符 ...
随机推荐
- setTimeout第三个参数
在廖雪峰大神的官方网站看nodejs的时候,发现自己对Promise函数不甚了解,于是转去看Promise函数,看到了这段代码: function multiply(input) { return n ...
- Spring AOP 源码分析
一.准备工作 在这里我先简单记录下如何实现一个aop: AOP:[动态代理] 指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式: 1.导入aop模块:Spring AOP: ...
- linux 在 1 MB 之下的 ISA 内存
一个最著名的 I/O 内存区是在个人计算机上的 ISA 范围. 这是在 640 KB(0xA0000)和 1 MB(0x100000)之间的内存范围. 因此, 它正好出现于常规内存 RAM 中间. 这 ...
- Vue与React比较
与React 相似: (1)虚拟DOM(Virtual DOM) 虚拟DOM的诞生是基于:改变真实的DOM状态远比改变一个JS对象的花销要大的多. 虚拟DOM是一个映射真实DOM的JS对象,当有变化产 ...
- mysql(8.0.16)安装及使用注意事项
1.安装地址:https://dev.mysql.com/downloads/mysql/ 2.在安装路径:D:\mysql\mysql-8.0.16-winx64(安装时的路径,可自己选择)下面新建 ...
- JavaScript 面向对象的拖拽
一.body <div id="box"></div> 二.css <style> #box { position: abaolute; top ...
- struts2中的数据类型自动转换
参考:https://blog.csdn.net/qq_35326718/article/details/72453042 https://www.cnblogs.com/aigeileshei/p/ ...
- MFC入门
目录 001.MFC_应用程序类型 002.MFC_对话框_静态文本_编辑框 003.MFC_对话框_访问控件_7种方法_A 004.MFC_对话框_访问控件_7种方法_B 005.M ...
- Java面向对象程序设计第9章1-9
Java面向对象程序设计第9章1-9 1. 线程和进程的联系和区别是什么? 联系: 一个进程可以包括多个线程. 区别: 进程: 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,它是系统 ...
- 程序员必须掌握的性能调优 X Y Z
热评博文:<如何设计出优美的Web API?>,现阅读量超 2500,小伙伴们不要错过哦! 2003 ~ 2008 年,这五年老兵哥我在通信行业做实习生和开发岗,主要用 C / C++ / ...