类型转换

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. java 容器(collection)--ArrayList 常用方法分析 源码分析

    ArrayList 介绍 打开jdk源码看看官方文档的介绍 粗糙的翻译下大致意思是: List接口的可调整大小的数组实现.实现了所有可选的列表操作,并允许所有元素,包括 null .除了实现List接 ...

  2. python在linux调用shell脚本实时打印输出信息并对信息进行判断

    核心代码 def run(command): #实时获取打印的命令 process = Popen(command, stdout=PIPE, shell=True) while True: line ...

  3. sql注入原理+mysql相关知识点

    什么是SQL注入 sql就是经常说的数据库,而sql注入就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.SQL注入是比较常见的网络攻击 ...

  4. Hbase详细架构图解

    @ 目录 主要组件 数据模型 注意:Hbase是依赖zookeeper和hdfs的,需要启动zk和hdfs. 主要组件 Zookeeper: HBase 通过 Zookeeper 来做 Master ...

  5. 面试题56 - I. 数组中数字出现的次数

    面试题56 - I. 数组中数字出现的次数 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次.请写程序找出这两个只出现一次的数字.要求时间复杂度是O(n),空间复杂度是O(1). 示例 ...

  6. 20199326《Linux内核原理与分析》第十一周作业

    Shellsock攻击实验 实验背景 2014年9月24日,Bash中发现了一个严重漏洞shellshock,该漏洞可用于许多系统,并且既可以远程也可以在本地触发. Shellshock,又称Bash ...

  7. GDI+ 绘制砂岩含量图版

    图版是在工作中经常会使用到的工具,它能够大大提高我们日常工作效率.地质图版在地质工作中具有举足轻重的作用,不仅可以轻松判断岩性,也可以依据经验图版直接得到结果,十分方便. 本程序目的绘制出一个地质常用 ...

  8. Vue Cli 3 打包上线 部署到Apache Tomcat服务器

    使用 npm run build 打包项目 在根目录中有一个dist文件夹 我使用的服务器是 Apache  Tomcat 把项目放进tomcat /webapps 中 启动服务器 <mac O ...

  9. Vue项目中jQuery的引入

    1.安装jQuery依赖 npm install jquery --save-dev 2.在webpack.base.conf.js头部加入如下代码 var webpack = require(&qu ...

  10. 图论--2-SAT--详解

    问题描述: 现有一个由N个布尔值组成的序列A,给出一些限制关系,比如A[x]AND A[y]=0.A[x] OR A[y] OR A[z]=1等,要确定A[0..N-1]的值,使得其满足所有限制关系. ...