我们输入以下代码:

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. gRPC-go源码(2):ClientConn

    摘要 在上一篇文章中,我们聊了聊gRPC是怎么管理一条从Client到Server的连接的. 我们聊到了gRPC拥有Resolver,用来解析地址:拥有Balancer,用来做负载均衡. 在这一篇文章 ...

  2. 一个页面中多个window.onload = function(){}冲突问题解决思路

    转: 一个页面中多个window.onload = function(){}冲突问题解决思路 一个页面中多个window.onload = function(){}冲突问题解决思路 参考文章: (1) ...

  3. 微信小程序进入广告实现

    <view class="container"> <image src="../../imgs/swiper1.jpg"></im ...

  4. pytorch(06)autograd与逻辑回归

    autograd与逻辑回归 自动求导系统中两个常用的方法: torch.autograd.backward and torch.autograd.grad 演示理解一阶导数.二阶导数的求导过程 理解自 ...

  5. C#中的字段与属性的区别及属性的作用

    C#中的字段与属性的区别及属性的作用 先上代码 public class Employee { //字段 private string name; //属性 public string Name { ...

  6. gpfdist原理解析

    gpfdist原理解析 前言:gpfdist作为批量向postgresql写入数据的工具,了解其内部原理有助于正确使用以及提供更合适的数据同步方案.文章先简要介绍gpfdist的整体流程,然后针对重要 ...

  7. Linux普通用户安装配置mysql(非root权限)

    Linux普通用户安装配置mysql(非root权限) 说明:在实际工作中,公司内网的机器我们一般没有root权限,也没有连网,最近参考网上的资料使用一般的账户成功安装mysql,记录如下 Linux ...

  8. JVM之调优及常见场景分析

    JVM调优 GC调优是最后要做的工作,GC调优的目的可以总结为下面两点: 减少对象晋升到老年代的数量 减少FullGC的执行时间 通过监控排查问题及验证优化结果,可以分为: 命令监控:jps.jinf ...

  9. java.lang.IllegalArgumentException: MALFORMED

    java.lang.IllegalArgumentException: MALFORMED at java.util.zip.ZipCoder.toString(ZipCoder.java:58) a ...

  10. XML数据持久化学习笔记

    一.XML基础语法 1.XML结构:XML是一种树结构的文本 2.XML注释:格式:<!--在其中书写注释-->,在注释中可以单行注释也可以多行注释 3.固定内容:<?xml ver ...