类型转换

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
*/
  • 自动类型转换(也叫隐式类型转换
  • 强制类型转换(也叫显式类型转换
  • 类型转换的原理
  • 什么时候要用强制类型转换
  • 表达式的数据型自动提升
    1. 所有的 byte 型、short 型和 char 型的值将被提升到 int 型。
    2. 如果一个操作数是 long 型,计算机结果就是 long 型
    3. 如果一个操作数是 float 型,计算机结果就就是 float 型。
    4. 如果一个操作数是 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
*/
  • 分析

    1. 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基础视频教程——类型转换(随笔)的更多相关文章

  1. 黑马程序员_毕向东_Java基础视频教程——java语言组成部分(随笔)

    java语言组成部分 Java是一种强类型语言,所谓强类型语言就是对具体的数据进行不同的定义.对类型的划分的十分细致,对内存中分配了不同大小的内u你空间 关键字 标识符 注释 变量和常量 运算符 语句 ...

  2. 黑马程序员_毕向东_Java基础视频教程——if 语句(单条语句)(随笔)

    if 语句(单条语句) 格式(三种) [注意]:如果 if 控制的语句只有一条,则 这个 { } 括号可以不写 if (条件表达式) { 执行语句; } class Test{ public stat ...

  3. 黑马程序员_毕向东_Java基础视频教程——三元运算符(随笔)

    三元运算符:三个元素参与运算的符号 [三元运算符:简略版的 if(){} else() {}语句] class Text { public static void main(String[] args ...

  4. 黑马程序员_毕向东_Java基础视频教程——位运算练习(随笔)

    位运算(练习) 最有效率的方式算出 2乘以 8等于几 2 << 3 = 2 * 2^3 = 2 * 8 = 16 对于两个整数变量的值进行互换(不需要第三方变量) class Test { ...

  5. 黑马程序员_毕向东_Java基础视频教程——位运算符(随笔)

    位运算符 左移和右移 左移 左移越移越大. 往左移几位就相当于这个数乘于2的几次方 3 << 2 --> 3 * 2^2 = 3 * 4 = 12 3 << 3 --&g ...

  6. 黑马程序员_毕向东_Java基础视频教程——逻辑运算符(随笔)

    逻辑运算符 逻辑运算符用于连接 boolean 型的表达式 & : 只要两边都是 boolean 表达结果,有一个为 false ,则结果就是 false 只要两边都为 true 则结果就为 ...

  7. 黑马程序员_毕向东_Java基础视频教程——赋值(随笔)

    赋值 class Test{ public static void main(String[] args) { int i = 3; // += -= *= /= %= 它们凑一块成为一个运算符 x ...

  8. 黑马程序员_毕向东_Java基础视频教程——转义字符(随笔)

    转义字符 转义字符 通过 \ 来转变后面的字母或符号的含义 \n :换行 \b :退格.相当于 backspace \r : 相当于回车键. Windows系统中,回车是由两个字符来表示 \r \n. ...

  9. 黑马程序员_毕向东_Java基础视频教程——算术运算符小点(随笔)

    算术运算符小点 ​ 取模 class Test{ public static void main(String[] args){ System.out.println( 1 % -5); System ...

随机推荐

  1. 支付宝开源非侵入式 Android 自动化测试工具 Soloπ

    Soloπ(SoloPi)是支付宝开源的一个无线化.非侵入式的Android自动化测试工具,公测版拥有录制回放.性能测试.一机多控三项主要功能,能为测试开发人员节省宝贵时间. 本文是SoloPi团队关 ...

  2. CentOS6.5环境下搭建Apache httpd服务器

    前期准备: 1.CentOS6.5虚拟系统: 2.CentOS6.5 IP地址:192.168.2.99 3.虚拟系统能上外网 下面我们就开始配置: 第一步:安装 首先我们需要把Apache http ...

  3. 4.K均值算法应用

    一.课堂练习 from sklearn.cluster import KMeans import matplotlib.pyplot as plt import numpy as np from sk ...

  4. Python 基础教程(第二版)笔记 (2) 字典

    P59 字典方法 1. clear 2. copy, deepcopy 3. fromkeys 4. get 比下标安全 5. has_key 6. items, iteritems 7. keys, ...

  5. 剑指offer---05---用栈实现队列

    题意 给了两个栈去实现队列   分析 两个栈如下情况       1       2 4    3 这个时候就不能够把4插入到第二个弹出栈了否则弹出顺序出错. 所以这个时候就应该等第二个栈空了的时候再 ...

  6. Java之JVM(初学者)

    学习Java的第一次总结 1.Java程序的编译和执行 通过上图,我们轻易得出java执行过程:由javac编译为字节码文件,通过JVM转换为底层操作系统可识别的命令操作. 注意:①Java跨平台的始 ...

  7. Centos7网络配置( 网关、dns、ip地址配置)

    0.前提:设置VMware的虚拟网络编辑器 子网和网关设置   虚拟网络编辑器 1.配置DNS(可忽略) $vim /etc/resolv.conf nameserver 192.168.0.1 2. ...

  8. Codeforce 263D Cycle in Graph 搜索 图论 哈密尔顿环

    You've got a undirected graph G, consisting of n nodes. We will consider the nodes of the graph inde ...

  9. 【网络基础】ARP地址解析协议

    ARP(Address Rssolution Protocol) 地址解析协议 用于将IP地址解析为MAC地址. MAC地址是设备的物理地址,是被分配给每一个网络接口卡的全球唯一序号. 全球唯一:理论 ...

  10. 编译原理-第四章 语法分析-4.7 规范的LR分析

    规范的LR分析 一.规范LR(l)项 二.规范LR(l)项集族 1.构建项目集 2.例 三.规范LR(1)语法分析表 1.构造 2.例1 3.例2 四.LALR语法分析表 1.重要性 2.特点 3.构 ...