Java 重点基础知识(持续更新 2020.05.25)

1. [静态变量、实例变量、局部变量、成员变量]、[静态方法、成员方法]的区别

名称 特定修饰符 定义位置 描述 用法 作用域
静态变量 static 类内,且在方法 类的属性 类名.变量名 类内
实例变量 - 类内,且在方法 对象的属性 由对象调用 对象内
局部变量 - 类内,且在方法 方法的变量 - 方法内
- - - - - -
静态方法 static 类内 类的方法 类名.变量名 类内
成员方法 - 类内 对象的方法 由对象调用 对象内
  • 注* :
  • 包括访问控制修饰符在内的其他修饰符不能区分它们的区别,故不在讨论之内。
  • 成员变量查询资料有异议,一般认为是非静态变量,更准确一点,指的应该是实例变量。以上三个变量已经涵盖Java中的所有变量,成员变量只是一种叫法。
  • 静态变量又名类变量,静态方法又名类方法。

2. 创建自定义异常时,继承RuntimeException与继承Exception的区别

RuntimeException是Exception的子类,表示运行时异常,是非编译异常。即:不抛出不捕获也可以通过编译器,编译器不会提示程序员是否有错。比如:1/0,只有在程序运行后才会抛出异常,并终止程序。

Exception除了RuntimeException一个子类外,还包括一些其他的子类,比如SQLException等,只是除了RuntimeException外,其他子类(包括自定义继承该类的类)都是非运行时异常,是编译异常。即:要么抛出要么捕获,否则无法通过编译器,在IDE环境下,编译器一般会将需要处理异常的代码标红,以提示程序员需要处理。比如:conn.prepareStatement(sql),操作数据库预处理语句不处理异常会标红报错。

所以,区别是:
继承RuntimeException可以不对异常主动处理,但发生异常时会导致程序终止。
继承Exception必须对异常主动处理,既然已经处理,发生异常时就不会导致程序终止了。

才疏学浅,如果差错,还请批评指正。
作者:@nokbita

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试
应支付0元
点击重新获取
扫码支付

支付成功即可阅读