在一段时间的复习巩固基础(c语言深入学习,java学习)后,我笔试入围了一家心怡的公司,然后再在第一轮面试中,大约有10位同学吧来竞争这同一职位–java软件开发岗,其中不乏研究生。对于我本科毕业的还是很有压力的,因为我预计他们最多再这10位同学中挑选4人。上午面试完第一轮,说等通知下轮的面试,然后我右回到了学习的地方,继续看我的jdbc,然而却静不下心来。直到下午5:05分的时候接到电话,里面说叫我明天带上三方去下面,具体时间后和地点稍后短信通知。当时那个激动,然后我就一直在等短信,到21:27的时候,我还没有收到短信,然后给今天打电话那边发短信过去问通知短信发了没?然后在0:21的时候收到这样一条短信:临时接到通知,应聘研发职位的同学需要在进行一次电话面试。具体的面试时间,需要回去后做安排。 看到这样的短信,我第一感觉是,感觉应该是找的借口忽悠我吧,我被刷了!没办法,只好当真的等电话面试吧。我调理好心情,整理下我java学习的知识点,为电话面试做下准备吧。—–不管过没过,被刷没被刷,自己的学习还得继续,因为我现在还不够强!静心,静心,静心。
下面我就来整理下目前已学习java的知识结构。
- 第一部分:基础
1.基础环境的配置,逻辑结构和基础数据类型
2.java的环境配置我就不具体讲了。
3.从变量开始,变量的定义,赋值,局部变量和全局变量的区别
4.java中就基本数据类型,引用数据类型,结合c这的知识,深入理解应用类型
5.逻辑结构:if,if…else,for,while,do…while,switch…case
这些什么时候该用什么逻辑结构,for引升出的增强for循环,case后面jdk1.7后支持String匹配等详细知识点 一一在脑海中复习一遍。
6.数组,数组的声明,赋值的几种方式以及
第一部分差不多就这些吧,这些基础的东西是必须牢牢掌握住的! - 第二部分:oop
1.对象和类,什么是类,什么是对象,为什么要面向对象,这与面向过程有何差别,对象与类的关系,类中成员和方法的定义、调用,引用类型的赋值等。
对象我觉得是java的核心,这个点必须熟练掌握,理解透彻,我在学的时候反复的看,反复的练习,直到一看到代码new就能在头脑中浮现这些在内存中的分布,生命周期等。第一遍掌握定义概念,在后面学了java的内存管理后就要结合起来,这样才能更加深入的理解,掌控程序运行的每一个细节,自己不仅在编程,也是一个测试人员。自己写的程序要清楚的知道弱点在哪里,优点在哪里。能怎样改进等。不扯多了,这些都要学好后面的知识,积累经验。
2.数组的深入,数字的类型是引用类型,字符串一也是引用类型,虽然java中弱化了指针,因为java觉得指针太危险了,但是引用就是通过指针来实现的。所以在学java的时候,学好c会对学java有非常大的好处。一维数组,二维数组,n维数组…其实不管多少维数组,都可以用二维数组来实现,只不过是二维数组中的元素又是其他维数的数组罢了,理解了就很简单。这里本应该画个图来解释更加容易理解。但我很懒。
3.接下来就是内存管理了,这里要知道堆,栈,方法区,这三个部分的作用,堆里存放哪些内容,栈里存放哪些内容,栈帧又是怎么回事,静态的变量和方法存放在哪里,这三个地方中存放东西的生命周期,jvm的垃圾回收机制等。我闭上眼睛,很快的一一回顾。
4.接下来是继承,extends关键字,子类能继承父类的哪些东西(我觉得这个点不要一掠而过,仔细想下各种修饰符下的变量和方法能否继承),子类继承后,构造方法里要注意哪些(这个点会被很多初学者忽略,这个点值得去详细理解一下),说到构造方法,上面的还忽略了方法签名,方法的重载这几个知识点。继承后子类要重写父类的方法,super()这个放的位置,重写和重载的区别。
5.访问控制,package的作用,import的作用。访问控制修饰符public,private,protected,默认四个的访问范围。static和final。static修饰变量,方法后,变量和方法会怎样,static块的作用。final修饰方法,变量,类后方法,变量,类会怎样。static final连用表示常量。这里的知识点超级重要,里面包含的细节很多,需要一一回顾品味,对以后的编程设计,笔试中有奇效。
6.抽象类,abstract关键字。为什么要抽象类,抽象类有什么作用。抽象方法又是什么,抽象方法所在的类是怎么样的。继承抽象类的子类必须要做什么事,抽象类能不能被实例化。
接口,什么是接口,为什么需要接口,接口的定义(interface)和实现(implement),接口与接口间的继承,接口与抽象类的区别。
7.多态,多态实际上就是向上造型的结果,这样说吧,一个父类是不是可以被多个子类继承?,也就是说,一个父类可以有多个儿子,那么儿子自己重新父类的方法不同,就会有不同的功能,比如大儿子重写后会教书,二儿子会杀猪,三儿子会看病,向上造型后(向上造型就是父类的引用指向子类的对象,懂c的指针,就很好理解),父类型的引用指向大儿子,那么效果就是教书,指向二儿子效果就是杀猪。。。所以父类的引用指向不同的子类对象,就会有不同的功能,这就是多态。
判断能不能向上造型的依据就是该子类是否继承了父类(传递继承也算)或者实现了父类的接口,用instanceof来判断。
然后就是内部类和匿名内部类,知道内部类和外部类的关系及调用情况就行。匿名内部类的用途(一般创建之后,该类就没有什么意义了,那么就使用匿名内部类吧)
这部分就差不多啦,吧上面两个部分学完,java的基础就差不多完事了。接下来的就是api部分,基础一定要牢靠,不能半点马虎。一个细节不到位,后面基本上就是蝴蝶效应,你懂的。 -
第三部分javaSE
1.api文档,编程的时候,多按照给定的规范写文档注释,增强代码的可读性。当然,从开始就养成这种良好的习惯,确实会写出非常漂亮的代码,但对于新手来说,做到这点不太容易。反正记得,当你把程序完成之后,自己测试通过之后,没事做了就要记得来写注释,这相当于重新梳理一次思路,说不定就自己发现了漏洞。
2.字符串的基本操作。理解什么事String常量池,它与new出来字符串有何差别(呵呵,这里又是c指针的问题来了,懂c指针so easy)这个点也常出现笔试题中哦。然后是字符的长度问题,不同的编码,字符的长度是不同的。要熟悉的三种编码GBK,UTF-8,unicode这三种编码一定要牢牢记住他们各自存放英文,中文字符的长度大小。unicode:不管是什么符号,都是2个字节来存放;先暂时写到这儿吧,写累了。。。