类型转换

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的自动装箱

    JDK5的新特性自动装箱:把基本类型转换为包装类类型自动拆箱:把包装类类型转换为基本类型 注意一个小问题: 在使用时,Integer x = null;代码就会出现NullPointerExcepti ...

  2. Java中Date时间类

    Date:表示特定的瞬间,精确到毫秒. 构造方法: Date():根据当前的默认毫秒值创建日期对象 Date(long date):根据给定的毫秒值创建日期对象 public static void ...

  3. JWT验证机制【刘新宇】【Django REST framework中使用JWT】

    JWT 在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证.我们不再使用Session认证机制,而使用Json Web Token认证机制. 什么是JWT Json web t ...

  4. 【mybatis annotation】数据层框架应用--Mybatis(二) 基于注解实现数据的CRUD

    使用MyBatis框架进行持久层开发 MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架. MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索. MyBa ...

  5. Windows SDK 的 ctype.h 里有一些有用的函数,例如字符串的大小写转换

    #define _tolower(c) ((c) - 'A' + 'a') #define _toupper(c) ((c) - 'a' + 'A')

  6. java中ThreadLocalRandom的使用

    java中ThreadLocalRandom的使用 在java中我们通常会需要使用到java.util.Random来便利的生产随机数.但是Random是线程安全的,如果要在线程环境中的话就有可能产生 ...

  7. css之颜色表示法

    css之颜色表示法 十六进制颜色 所有浏览器都支持十六进制颜色值. 十六进制颜色是这样规定的:#RRGGBB,其中的 RR(红色).GG(绿色).BB(蓝色)十六进制整数规定了颜色的成分.所有值必须介 ...

  8. OSChina 清明节乱弹 ——准备好纸巾了看乱弹

    2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单(2017)请戳(这里) [今日歌曲] @亚麻仔 :分享 范忆堂 的歌曲<酡颜 (夏热版)> 同一个 ...

  9. 11.25-11.27 配置防盗链,访问控制(Directory,FilesMatch)

    4月17日任务 11.25 配置防盗链 11.26 访问控制Directory 11.27 访问控制FilesMatch 扩展 几种限制ip的方法 http://ask.apelearn.com/qu ...

  10. linux和windows互传文件、用户配置文件和密码配置文件、用户组管理、用户管理...

    linux和windows互传文件 第一种:在linux主机上下载lrzsz软件包 1.yum install lrzsz 2.通过rz命令上传window的文件到linux主机上 用过sz 文件名下 ...