Head First Java笔记集:异常处理

今天刚看完的异常处理,趁热打铁。
书上这一章是从做一个播放器引入,因为会用到一个getSequencer方法,该方法是会抛出异常的,于是引入异常处理之类云云。
之前学JAVA的时候throw,try,catch的概念很混淆,仅仅停留在了样式大概上。
这次看完清楚一点了,但是做书后练习的时候还是有一点懵逼。

下载了印象笔记的手机客户端版,终于想起来就算我身边没电脑,看书的时候也要记一记。
之前是在地铁上看的都没有做记录,结果复习起来很累,需要重头看这一章节。
结果今天突然发现异常处理的章节没有同步到印象客户端上。。。
听了朋友的建议准备转战为知笔记,为知笔记有个代码显示功能我比较中意


 

下面是异常处理部分的笔记:

JAVA的异常处理机制是个简洁、轻量化的执行期间例外状况处理方式,它能够将处理错误状况的程序代码摆在一个容易阅读的位置
->必须依赖你已经知道所调用的方法是有风险的

某个方法会抛出异常 -> 该方法的声明有throws语句

编译器要确定你了解所调用的方法是有风险的 -> try/catch -> try 一下 ,出错了就就catch住

异常也是对象 -> Exception类型 – > Exception类型的对象可以是任何它的子类的实例

异常是有风险的方法抛出的,你如果需要调用这个有风险的方法,一旦发生异常,这个方法就要抛异常给你了

抛出异常 -> 用throw来声明
调用抛出异常的方法 -> 将调用包在try/catch块中,来满足编译器

继续阅读Head First Java笔记集:异常处理

Head First Java笔记集:数字与静态

开始用印象笔记之后,看书的效率好像低了,但是理解也更透彻了,方便回顾复习。
学完了数字与静态这一章,对在JAVA中数字的使用,静态的理解,还有print初始化一块加强了理解。
以下是笔记:

1. 在JAVA中没有东西是全局的
* Math()方法是最接近全局的方法,在这个类中所有方法都不需要实例变量值,因为这些方法都是静态

2. 静态的方法
* 静态方法代表:一种不依靠实例变量也就不需要对象的行为
*

* 以类的名称调用静态的方法,以引用变量的名称调用非静态的方法
* 抽象的类是不能被初始化的
* 用abstract这个修饰字来标记类以让它不能被创建出实例
* 也可以用私有的构造函数来限制非抽象类被初始化(Math()就是这样做的)
* 有main()的类都算有静态的方法

* 静态的方法无法调用非静态的变量
* 静态的方法也无法调用非静态的方法
* 静态变量的值对所有的实例来说都相同->被同类的所有实例,将会共享变量
* 静态变量是在类被加载时初始化的(加载时机:创建该类的实例时or使用该类的静态方法或变量时)
* 静态项目的初始化两项保证
继续阅读Head First Java笔记集:数字与静态

Head First Java笔记集:构造器与垃圾收集器

学长推荐了印象笔记,今天才开始用,边看书边记录了点知识点,感觉挺好的。

* 每个父类的构造函数都会在子类的创建时期执行

* 构造函数在执行时,第一件事是去执行它的父类构造函数,这会一直连锁反应到Object这个类为止 ->构造函数链(Constructor Chaining)
*
* 执行new操作时,对应构造函数进入堆栈最上方的堆栈块,但是会首先执行它的父类构造函数,所以父类构造函数将进入栈顶,如果父类构造函数还有他自己的父类构造函数,则再将该构造函数引入栈顶,一直一直连锁反应到Object( ),此时Object( )是栈顶第一个函数,它最先执行。执行完毕后,它的堆栈块被弹出,接着继续执行它的子类的构造函数,以此类推。

* 使用super( )调用父类构造函数,但是如果你没有用super( )调用,编译器会帮我们加上super( )的调用
* 对super( )的调用必须是构造函数的第一个语句(因为父类的构造函数必须先调用)
继续阅读Head First Java笔记集:构造器与垃圾收集器

关于随机取数

在学习CS将近三年的时间里,经常会用到一个random().
作为一个看书太少的小白,每次都是看着别人用了random(),傻傻的就记得这样可以随机了,但是具体文法还是看不懂。
今天在图书馆拿了一本《Head First Java》,看着书内诙谐幽默的叙述,对这个概念又有了进一步的认识。

random()是一个方法,它会返回介于0到1之间的值。
那我们该怎么利用它呢?
书里的例子是,先设定一个装载随机数据的容器(即数组),可以想成,我们需要一个瓶子,来装我们需要随机取出来的东西。
你看,要把东西,丢进一个大瓶子里,好了好了我们要看不见了,要伸手摸,这样才是随机,才会公平嘛!
丢进去之后呢,我们需要一个方法,能够模拟随机的条件。

random提供了一个随机的条件,因为它返回的数字就是随机的!
可是,怎样把这个随机数,与我们真正要随机物品,相关联呢?

我们可以这样,先计算,瓶子里一共有多少东西,这时候我们又有一个好伙伴啦,length
数组a,只要这样表达 ——> int x = a.length;
就代表,x是a数组的长度!换句话说,也就是,a数组里到底有多少东西。

继续阅读关于随机取数