这是我参与「第四届青训营 」笔记创作活动的第9天。 本文内容仅对于写者初学Java时的一些概念作出详细说明,包括 稀疏数组、面向对象OOP、内部类、异常。
稀疏数组
存在多个有规律的0,或为统一数组,可以用稀疏数组保存该数组,即压缩成一个二元数组,第0行记录共有几行几列,有几个有效数字;后面则是对应几行几列及对应值。
面向对象编程OOP
以类的方式组织代码,以对象的组织封装数据 三大特性:封装继承多态
- 直接写return;即为返回一个null
- 静态方法static 非静态方法
- new一个对象,也就是实例化后可以调用静态方法
- 静态直接用类调用就好
- 属性:字段Field 成员变量
内部类
- 成员内部类
- 静态内部类
- 局部内部类
- 匿名内部类
内部类可以获得外部类的私有属性。 静态内部类 只能访问静态 在方法里面写类 为 局部内部类 匿名内部类
//没有名字去初始化类,不用将实例保存到变量中。
//eat为该类里自己设计的方法
new Apple().eat();
异常
异常处理框架 在Java API中已经定义了许多异常类,所有异常归属于超类Throwable ,这些异常类分为两大类,错误Error和异常Exception
Error类对象由Java虚拟机生成并抛出:
- Java虚拟机运行错误,当JVM不再继续执行操作所需要的内存资源时,将出现OutOfMemoryError。该类异常发生时,JVM一般会选择线程终止。
- 虚拟机试图执行应用时,发生类定义错误(NoClassDefFoundError)、链接错误(LinkageError)。这些错误是不可查的,因为他们在应用程序的控制和处理能力之外,而且绝大多数程序运行时不允许出现这类状况。
- Exception分支下有一个重要的子类RuntimeException(运行时异常):包括数组下标越界、空指针异常、算术异常、丢失资源等等
- 非运行时异常
Error与Exception区别:
Error是程序无法控制和处理的,JVM直接终止进程;Exception是可以被程序处理的,并且在程序中应该尽可能去处理该异常。
try{}中是监控区域 捕获后不报错,而是执行catch里面的内容
catch的内容一般有e.printStackTrace();//打印错误栈信息,但是尽量去处理异常,不要默认语句
finally 可以不要,作为一些善后工作,对 IO、资源 关闭 可以同时多个catch,但catch的传参 需要层层包含(从小到大 )或者是分支
在方法中throw,它将将该方法抛到上一级
自定义异常
- 创建自定义异常类
- 在方法中通过throw关键字抛出异常对象
- 如果在当前抛出异常的方法中处理异常,开有事用try-catch语句铺货并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。
- 在出现异常方法的调用者中捕获并处理异常
快捷键
ctrl+alt+t 对当前语句进行包裹的选项,第七个是try、catch