黑马程序员_毕向东_Java基础视频教程——类型转换(随笔)
类型转换
class Test{
public static void main(String[] args) {
byte b = 3;
// b = b + 2;
/*
Test.java:5: 错误: 不兼容的类型: 从int转换到byte可能会有损失
b = b + 2;
^
1 个错误 错误: 编译失败
【这是Java是强类型语言导致的】
*/
/*
错误地方:
byte b = 3;
b = b + 2;
错误原因:
2 是整数,默认是int型占4个字节、32位。不同数据类型之间不可以直接进行运算。对于整数类型来讲,可以进行运算,但前提是需要进行一个叫做 “ 自动类型提升 ”的操作,提升为同一种数值类型的操作
//提升原则是:“ 以大为主 ,小的往大提升 ”
*/
//将 b = b + 2; 改写成:
b = (byte)(b + 2); //【要由括号】
//这就是强制类型转换 变量名 = (数据类型)(表达式);
System.out.println( b );
}
}
/*
输出结果:
5
*/
class Test{
public static void main(String[] args){
System.out.println('A' + 0);
System.out.println('1' + 0);
}
}
/*
输出打印结果:
65
49
*/
- 自动类型转换(也叫隐式类型转换)
- 强制类型转换(也叫显式类型转换)
- 类型转换的原理
- 什么时候要用强制类型转换
- 表达式的数据型自动提升
- 所有的 byte 型、short 型和 char 型的值将被提升到 int 型。
- 如果一个操作数是 long 型,计算机结果就是 long 型
- 如果一个操作数是 float 型,计算机结果就就是 float 型。
- 如果一个操作数是 double 型,计算机结果就是 double 型。
/*
Q:
int 和 float 在内存中都是占两个字节、32位, float 和 int 做运算时结果是 float 和 int?
A:
结果是 float ,因为 float 小数点
*/
class Test{
public static void main(String[] args){
int i = 3;
float f = 3.14f;
f = f - i;
System.out.println(f);
//System.out.println( (char)('a' +1 ) );
}
}
/*
输出打印结果:
0.1400001
*/
- 分析
- System.out.println( 'a' ) 与 System.out.println( 'a' +1 )的区别。
class Test{
public static void main(String[] args){
System.out.println('a');
//打印出a而不是97的原因是,因为计算机会把字符本身作为输出的效果显示
System.out.println('a' + 1);
// 'a' + 1代表在做运算 a对应的十进制数 + 1
//字母 a 在ASCII表中对应的十进制数是97,97 + 1 = 98
}
}
/*
输出打印结果:
a
98
*/
class Test{
public static void main(String[] args){
// char 型强制类型转换成 int 型
System.out.println( (int)('a') );
// int 型强制转换成 char 型
System.out.println( (char)('a' +1 ) );
}
}
/*
输出结果:
97
b
*/
黑马程序员_毕向东_Java基础视频教程——类型转换(随笔)的更多相关文章
- 黑马程序员_毕向东_Java基础视频教程——java语言组成部分(随笔)
java语言组成部分 Java是一种强类型语言,所谓强类型语言就是对具体的数据进行不同的定义.对类型的划分的十分细致,对内存中分配了不同大小的内u你空间 关键字 标识符 注释 变量和常量 运算符 语句 ...
- 黑马程序员_毕向东_Java基础视频教程——if 语句(单条语句)(随笔)
if 语句(单条语句) 格式(三种) [注意]:如果 if 控制的语句只有一条,则 这个 { } 括号可以不写 if (条件表达式) { 执行语句; } class Test{ public stat ...
- 黑马程序员_毕向东_Java基础视频教程——三元运算符(随笔)
三元运算符:三个元素参与运算的符号 [三元运算符:简略版的 if(){} else() {}语句] class Text { public static void main(String[] args ...
- 黑马程序员_毕向东_Java基础视频教程——位运算练习(随笔)
位运算(练习) 最有效率的方式算出 2乘以 8等于几 2 << 3 = 2 * 2^3 = 2 * 8 = 16 对于两个整数变量的值进行互换(不需要第三方变量) class Test { ...
- 黑马程序员_毕向东_Java基础视频教程——位运算符(随笔)
位运算符 左移和右移 左移 左移越移越大. 往左移几位就相当于这个数乘于2的几次方 3 << 2 --> 3 * 2^2 = 3 * 4 = 12 3 << 3 --&g ...
- 黑马程序员_毕向东_Java基础视频教程——逻辑运算符(随笔)
逻辑运算符 逻辑运算符用于连接 boolean 型的表达式 & : 只要两边都是 boolean 表达结果,有一个为 false ,则结果就是 false 只要两边都为 true 则结果就为 ...
- 黑马程序员_毕向东_Java基础视频教程——赋值(随笔)
赋值 class Test{ public static void main(String[] args) { int i = 3; // += -= *= /= %= 它们凑一块成为一个运算符 x ...
- 黑马程序员_毕向东_Java基础视频教程——转义字符(随笔)
转义字符 转义字符 通过 \ 来转变后面的字母或符号的含义 \n :换行 \b :退格.相当于 backspace \r : 相当于回车键. Windows系统中,回车是由两个字符来表示 \r \n. ...
- 黑马程序员_毕向东_Java基础视频教程——算术运算符小点(随笔)
算术运算符小点 取模 class Test{ public static void main(String[] args){ System.out.println( 1 % -5); System ...
随机推荐
- python 携程asyncio实现高并发示例1
import asyncio #携程(携程不是函数) async def print_hello(): while True: print("hello world") await ...
- 即时通信WebSocket 和Socket.IO
WebSocket HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯. 在2008年诞生,2011年成为国际标准. 现在基本所有浏览器都已经支持了. We ...
- vnpy源码阅读学习(9)回到OptionMaster
回到OptionMaster 根据我们对APP调用的代码阅读,我们基本上知道了一个APP是如何被调用,那么我们回到OptionMaster学习下这个APP的实现. 看看结构 class OptionM ...
- XSS语义分析的阶段性总结(二)
本文首发于“合天智汇”微信公众号,作者:Kale 前言 上次分享了javascript语义分析,并且简单介绍了新型xss扫描器的一些想法,如何在不进行大量fuzz的情况下又能准确的检测出xss漏洞,这 ...
- javascript-文件File转换成base64格式
不能直接访问用户计算机中的文件,一直都是Web应用开发中的一大障碍.2000年以前,处理文件的唯一方式就是在表单中加入<input type="file">字段,仅此而 ...
- 2019-2020-1 20199329《Linux内核原理与分析》第十一周作业
<Linux内核原理与分析>第十一周作业 一.本周内容概述: 学习linux安全防护方面的知识 完成实验楼上的<ShellShock 攻击实验> 二.本周学习内容: 1.学习& ...
- 利用python画出SJF调度图
最先发布在csdn.本人原创. https://blog.csdn.net/weixin_43906799/article/details/105510046 SJF算法: 最短作业优先(SJF)调度 ...
- 在java中构建高效的结果缓存
文章目录 使用HashMap 使用ConcurrentHashMap FutureTask 在java中构建高效的结果缓存 缓存是现代应用服务器中非常常用的组件.除了第三方缓存以外,我们通常也需要在j ...
- build.gradle 详解(一)
简述: 1) Java 开发中有两个大名鼎鼎的项目构建 ANT.Maven. 2) Google 推荐使用的 Android studio 是采用 Gradle 来构建项目.Gradle 是一个非常先 ...
- google proto buf学习
2019独角兽企业重金招聘Python工程师标准>>> protobuf是Google开发的一个序列化框架,类似XML,JSON,基于二进制,比传统的XML表示同样一段内容要短小得多 ...