我们输入以下代码:

public class DataType07
{
public static void main(String[]args){ byte b1 = 4;
byte b2 = 5;
byte b3 = b2 + b1;
System.out.println(b3);
}
}

在命令行编译如下:

我们发现报错了,不兼容的类型,程序运行的时候,会将b1和b2转换成iint类型,然后再做加法运算。

所以我们应该这样做,输入以下代码:

public class DataType07
{
public static void main(String[]args){ byte b1 = 4;
byte b2 = 5;
//byte b3 = b2 + b1; error 不兼容的类型,程序运行的时候,会将b1和b2转换成iint类型,然后再做加法运算。
//System.out.println(b3); byte b3 = (byte)(b1+b2);
System.out.println(b3); }
}

命令行解释如下:

我们是把b1+b2强制转换成了byte类型。

在输入以下这段代码:

public class DataType07
{
public static void main(String[]args){ byte b1 = 4;
byte b2 = 5;
//byte b3 = b2 + b1; error 不兼容的类型,程序运行的时候,会将b1和b2转换成iint类型,然后再做加法运算。
//System.out.println(b3); byte b3 = (byte)(b1+b2);
System.out.println(b3); byte b4 = 10;
short s1 = 5;
int i1 = b4 + s1 ;
System.out.println(i1); }
}

命令行结果为:

我们可以看到是没有报错的,因为程序会默认把byte类型的数字与short类型的数字自动转换成int类型。

然后看一下代码:

public class DataType07
{
public static void main(String[]args){ byte b1 = 4;
byte b2 = 5;
//byte b3 = b2 + b1; error 不兼容的类型,程序运行的时候,会将b1和b2转换成iint类型,然后再做加法运算。
//System.out.println(b3); byte b3 = (byte)(b1+b2);
System.out.println(b3); byte b4 = 10;
byte s1 = 5;
int i1 = b4 + s1 ;
System.out.println(i1); char c1 = 'a';//97
int i2 = c1+100;
System.out.println(i2) //197
System.out.println((byte)c1); }
}

总结:

关于基本数据类型转换规则:

1.8种基本数据类型除boolean类型之外都可以相互转换.

2.小容量向大容量转换叫做自动类型转换:byte<short(char)<int<long<float<double

3.byte,short,char做混合运算的时候,各自都先转换成int在做运算

4.大容量向小容量转换是强制类型转换,需要加强制转换符,编译虽然通过,运行期可能损失精度。谨慎使用。

5.如果整数没有超出byte,short,char的取值范围,可以直接将这个整数赋值给byte,short,char

6.多种数据类型做混合运算,先转换成容量最大的那种再做运算。

021- Java语言基础-基本数据类型的一些问题和总结的更多相关文章

  1. day02<Java语言基础+>

    Java语言基础(常量的概述和使用) Java语言基础(进制概述和二,八,十六进制图解) Java语言基础(不同进制数据的表现形式) Java语言基础(任意进制到十进制的转换图解) Java语言基础( ...

  2. Java学习总结(二)----Java语言基础

    1.     Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...

  3. java语言基础02

    一.Java语言基础(常量的概述和使用)(掌握) 1:什么是常量 就是在程序的执行过程中其值不发生改变的量. 2:Java中常量的分类 (1):字面值常量 (2):自定义常量(面向对象部分讲解) 3: ...

  4. Java之--Java语言基础组成—数组

    Java语言基础组成-数组 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的数组,数组 ...

  5. Java之--Java语言基础组成—函数

    Java语言基础组成-函数 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的函数,函数 ...

  6. Java之--Java语言基础组成(关键字、标识符、注释、常量和变量、运算符)

    Java语言基础组成-关键字.标识符.注释.常量和变量.运算符 Java语言由8个模块构成,分别为:1.关键字:2.标识符(包名.类名.接口名.常量名.变量名等):3.注释:4.常量和变量:5.运算符 ...

  7. Java语言基础(四)

    Java语言基础(四) 一.基本数据类型(8) byte  8位  使用较少,一般用于网络传输: -128-+127 short  16位 不常用 -32768-+32767 int  32位 常用  ...

  8. Java入门篇(二)——Java语言基础(下)

    上篇说到Java中的变量与常量,接下来就是简单的计算了,首先需要了解一下Java中的运算符. 六.运算符 1. 赋值运算符 赋值运算符即"=",是一个二元运算符(即对两个操作数进行 ...

  9. 第二十六节:复习Java语言基础-Java的概述,匿名对象,封装,构造函数

    Java基础 Java语言概述 Java语言 语言 描述 javaee 企业版 javase 标准版 javame 小型版 JDK JDK(Java开发工具包) Java语言 语言 Java语言 Ja ...

  10. 第二十一节:Java语言基础-关键字,标识符,注释,常量和变量,运算符

    Java语言基础-关键字,标识符,注解,常量和变量,运算符 class Demo { public static void main(String[] args){ System.out.printl ...

随机推荐

  1. Python 过滤字母和数字

    [前言]在写爬虫时,正则表达式有时候比较难写,一个是自己不熟练,二者数据分析提取数据千奇百怪. 一.好在python有个re模块,提供了很多更加简便的方法:可参考此文档:https://www.cnb ...

  2. PAT-1086(Tree Traversals Again)Java语言实现+根据中序和前序遍历构建树并且给出后序遍历序列

    Tree Traversals Again Tree Traversals Again 这里的第一个tip就是注意到非递归中序遍历的过程中,进栈的顺序恰好是前序遍历的顺序,而出栈的顺序恰好是中序遍历的 ...

  3. rest framework Genericview

    通用视图 Django的通用视图...被开发为普通使用模式的快捷方式......他们采取某些共同的习惯和模式的发展观和抽象,从而使您可以快速地将数据写入的共同看法,而不必重复自己发现的. - Djan ...

  4. WPF 基础 - 图片与 base64

    1. base64 转图片 将 base64 转成 byte[] 将 byte[] 作为内存流保存到一个 BitmapImage 实例的流的源 把 BitmapImage 作为目标图片的 Source ...

  5. 对Java异常的理解

    JAVA小白手写总结 提示:本篇简单列举了一些Java中的异常与异常处理 前言 提示:很多小伙伴们都会问到,什么是异常呢,又该怎么解决呢? 下面我们就从下面的一个案例中切入今天的内容. 提示:以下是本 ...

  6. Harry And Magic Box HDU - 5155

    题目链接:https://vjudge.net/problem/HDU-5155#author=0 题意:在一个n*m的方格中要满足每一行每一列至少有一个珠宝,问总共有多少种方案. 思路:利用递推的思 ...

  7. 【LeetCode】4. Median of Two Sorted Arrays(思维)

    [题意] 给两个有序数组,寻找两个数组组成后的中位数,要求时间复杂度为O(log(n+m)). [题解] 感觉这道题想法非常妙!! 假定原数组为a,b,数组长度为lena,lenb. 那么中位数一定是 ...

  8. warpperspective 透视变化的opencv实现

    warpperspective 透视变化的opencv2.0实现 1st-------2nd | | | | | |3rd-------4th 原始代码              cv::Mat sr ...

  9. [Design Pattern With Go]设计模式-工厂模式

    这次介绍的设计模式是工厂模式,这是一个比较常见的创建型模式.一般情况下,工厂模式分为三种:简单工厂.工厂方法和抽象工厂,下面慢慢举例介绍下. 简单工厂 考虑一个加密程序的应用场景,一个加密程序可能提供 ...

  10. 力扣 - 347. 前 K 个高频元素

    目录 题目 思路1(哈希表与排序) 代码 复杂度分析 思路2(建堆) 代码 复杂度分析 题目 347. 前 K 个高频元素 思路1(哈希表与排序) 先用哈希表记录所有的值出现的次数 然后将按照出现的次 ...