黑马程序员_毕向东_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 ...
随机推荐
- Pytorch实现的语义分割器
使用Detectron预训练权重输出 *e2e_mask_rcnn-R-101-FPN_2x* 的示例 从Detectron输出的相关示例 使用Detectron预训练权重输出 *e2e_keypoi ...
- ubuntu16.04-交叉编译opencv3.4.6
0.前言 在要移植opecv和SeetaFaceEngine-master到ARM板子上运行的所有步骤之前,有几点需要注意的: 查看板子运行的Kernel版本 交叉编译工具链的gcc版本,关键就是工具 ...
- Ubuntu中安装Hadoop
安装前 1,更新apt sudo apt-get update 会让你输入密码(自己登录Ubuntu的时候设置的),输入密码不会显示在终端面板上,确定自己敲对之后点回车就行. 2,安装SSH服务器 ...
- Spark-BlockManager
简单说明 BlockManager是管理整个Spark运行时数据的读写,包含数据存储本身,在数据存储的基础之上进行数据读写.由于Spark是分布式的,所有BlockManager也是分布式的,Bloc ...
- Python爬取全球疫情数据,实现可视化显示地图数据(附代码)
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 武汉地区,目前已经实现住院患者清零了,国内疫情已经稳定,然而中国以外新冠确 ...
- css3--:target选择器称为目标选择器
:target选择器称为目标选择器,用来匹配文档(页面)的url的某个标志符的目标元素.我们先来上个例子,然后再做分析. 示例展示 点击链接显示隐藏的段落. HTML代码: <h2>< ...
- 【JAVA基础】10 Object类
1. Object类概述 是类层次结构的根类 每个类都使用 Object 作为超类 所有类都直接或者间接的继承自该类 所有对象(包括数组)都实现这个类的方法. 2. Object的构造方法 publi ...
- 硬纪元AI峰会前瞻:如何才能做好智能家居?用户体验最重要
用户体验不到位,市场就不能说真的发展起来. 可以明显的感觉到,随着人工智能.物联网等技术的发展和应用,我们的生活正在发生翻天覆地的变化,其中感觉最为明显的就是智能家居. 据前瞻产业研究院的数据统计,我 ...
- C++编程入门--No.6
题目:用*号输出字母C的图案. 程序分析:可先用'*'号在纸上写出字母C,再分行输出. #include <bits/stdc++.h> using namespace std; int ...
- Spring IOC的核心机制:实例化与注入
上文我们介绍了IOC和DI,IOC是一种设计模式,DI是它的具体实现,有很多的框架都有这样的实现,本文主要以spring框架的实现,来看具体的注入实现逻辑. spring是如何将对象加入容器的 spr ...