郭子衡
Published on 2017-09-02 11:31 in 暂未分类 with 郭子衡

回头望望来时路

勿忘初心,方得始终

作为一个初学者,回头望望模糊的清楚了一些。
先谈谈遇到的最多的异常,NullPointerException空指针异常。谈空指针异常前,先谈下JS中的的null和defined。

null与defined有什么区别呢。null是没有对象,比如你的js代码如下alert(document.getElementById("aa")),如果不存在id为aa的元素则会弹一个null。

defined则是表示有对象,但是对象没有值。比如你的js代码如下 var a; alert(a);,a是定义了的,但a没有赋值,所以它会弹一个defined。

Java中的NullPointerException跟js有异曲同工之处。首先NullPointerException明确一点,NullPointerException是针对于引用类型的,基本类型是不存在NullPointerException。这点大家可能都知道,但是为什么基本类型不存在空指针异常,而引用类型会存在呢?从字面上理解空指针异常,就是因为没有指针而引发的异常。为什么会这样呢。首先基本类型数据存在的位置是栈中,引用数据类型存在堆中。在栈中的数据会自动初始化,而堆则不会(至于为什么就不谈了),所以引用类型如果没有初始化,堆内存中就不会开辟它的储存空间,所以堆内存中就没有他的地址,所以就会报NullPointerException。所以会不会报空指针异常就看这个对象有没有在堆内存中开辟存储空间。这里的NullPointerException异常就相当于js中的null,js中的“defined”在Java中又是什么呢。Java中“defined”跟js一样就是创建了对象但是没有赋值,但是不会报异常。

第二个心得,方法怎么写?

首先你得明白你写这个方法是为了实现什么功能,它需要用到哪些变量!这点很重要。其次,抛开方法体的内容,看他的参数列表(有无参数,什么类型的参数,几个参数)及返回值。返回值怎么写?从实际出发来判断有无返回值。比如增加一个元素,它有没有返回值呢,当初的我觉得他是没有返回值的,public void add(Object o){}应该这样写。后来发现Java自带的一些类它的增加元素的方法是有返回值的,返回值是布尔类型。那么为什么要有返回布尔类型呢,细细想来发现是因为自己考虑不周,你如果传进来的是一个空的对象,那么我还需要执行增加的方法吗,显然不需要,所有应当有个返回值表示是否增加成功。参数列表怎么写?来看第一条“这个方法是为了实现什么功能,它需要用到哪些变量”。就是说它实现这个功能需要哪些变量。而这些变量就是参数列表。

第三个心得。学技术怎么学。明白三点就可以了。1.这技术有什么特点2.这技术解决什么问题3。什么时候用它(这很重要)

第四个心得,多敲这才是精髓!

最后,作为一个学技术的person,如果装X装不过对方是件很难受的事情啊。

 

posted @ 2017-04-06 10:54  郭子衡  阅读(206)  评论(0编辑  收藏  举报