Java易错点分析

Java 中 a += b; 与 a = a + b; 有什么区别?

在 Java 语言中,a += b; 与 a = a + b; 的区别主要体现在运算精度上。

public class Num {
    public static void main(String[] args) {
        byte a = 1;
        /*这里报错的原因是数字4默认是int型的,a是byte型的。在进行a+4时候,会自动进行类型转换,转换为int型,所以a+4会被
        转换为int型*/
        a = a + 4;
        /*
        * 使用a+=4这种形式就没有报错
        * 为什么呢?
        * 因为“+=”是Java中的一个运算符,而不是两个,所以在运算时,会进行自动类型转换
        * */
        a += 4;
        System.out.println(a);
    }
}

在这里插入图片描述

关于abstract为什么不能和static连用

关于abstract为什么不能和static连用

静态分派与动态分派

  • 静态类型:变量声明时的类型
  • 动态类型:变量实例化时采用的类型

Human man=new Man();
我们把“Human”称为变量的静态类型,后面的“Man”称为变量的实际类型。
编译器在编译期并不知道一个对象的实际类型是什么。
编译器在重载时是通过参数的静态类型而不是实际类型作为判定依据。

  • 静态分派:所有依赖静态类型来定位方法执行版本的分派动作称为静态分派,其典型应用是方法重载(根据参数的静态类型来定位目标方法)。

Scanner 的 hasNext() 方法

Scanner的hasNext()
当执行hasNext()时,它会先扫描缓冲区中是否有字符,有则返回true,继续扫描。直到扫描为空,这时并不返回false,而是将方法阻塞,等待你输入内容然后继续扫描。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值