Java为不同的集合提供了一个集合框架。集合基于数据结构,比如常见的:列表、数组、集合、哈希图等等。因此,在研究集合时,最好了解一点数据结构的相关知识。
主要副题:
List
Set
Map
ArrayList
LinkedList
Queue
Deque
HashSet,HashMap,HashTable
TreeSet, TreeMap
学习集合的主要困难在于他们之间的区别,以及何时用到适合的集合类型。同样的,也是必须实践出真知。
异常处理
====
异常是在执行程序时可能发生的异常情况。很多人在学习的过程中理解不了异常的作用,我在初学的时候也有相同的疑问,编辑器已经有报错的功能了,为什么还要自己去编写一段处理异常的代码。后来随着项目使用的异常处理越来越多,我对异常处理有了深刻的了解。举个简单的例子:当你下载文件时,如出现什么错误,用户希望下载器能告诉他出现了什么问题,比如硬盘不足等等,当用户提供了足够的硬盘空间以后,下载继续自动进行。而不是说空间一不足,立刻下载器就崩溃,这就是异常技术。
异常处理的关键词:
异常处理机制
Try、catch、finally
Throw、throws
异常层次结构
已检查/未检查的异常
错误和异常之间的区别
手动抛出异常
输入/输出流
======
Java使用流来执行输入和输出的操作。在项目中,需要经常进行读写操作。对于初学者来说,这也是一个比较困难的知识点,而且在Java的学习过程中,这一点的重要性并不是很突出,导致很多人在工作后碰到文件的读写操作就干瞪眼了。
流主要关键词:
字节流(FileInputStream,FileOutputStream)
字符流(FileReader,FileWriter)
标准流(http://System.in,System.out)
Java多线程/并发
==========
多线程和并发操作是Java高级编程的核心主题。这部分几乎所有的同学都理解不了,不过没有关系,这部分对于初级开发者来说不是很重要。可以在工作的过程中慢慢深入了解。我为什么要把这个模块放在文章里,主要是目前市场上有些公司的面试
会问及多线程并发的问题,为了Offer,我推荐大家还是看看。
多线程/并发关键词:
线程的生命周期
系统服务
线程同步
线程死锁
线程操作
Wait,notify,notifyAll
中断
==
Sleep,yield,join
Lambda表达式
Java lambda表达式出现在Java 8中,这是一个经常被开发者忽略的工具。Lambda表达式是一个可以创建的函数,不属于任何类,可作为对象传递或执行。
Lambda主要关键词:
单方法界面
匿名接口
Lambda类型推断
Lambda参数
Lambda函数体
从Lambda表达式返回值
Lambda作为对象
Variable capture
算法和数据结构
每一门编程语言的学习过程中,最有争议的问题之一就是每个学生是否应该学习标准的排序和搜索算法。有的人认为,大部分算法已经编写在库中,使用起来很方便。另一部分人认为,学习算法的过程就是锻炼编程思维的过程,一定要学习。
我更倾向于后者的说法,因为我经历过很多面试,无论是自己去求职还是面试求职者,都会在面试过程中考察算法和数据结构的相关问题。如果想要保证自己不被落选,这方面的知识还是多学习一点。
实用的库和组件
=======
库和组件是能否胜任一份工作的重要指标,库和组件能大大提升开发效率。所以公司在招聘时会特别注重这一点,面试时会询问你的库和组件的使用和学习经历。下面几个常见的库和组件可以多了解一下:
Servlet
JDBC
log4j
JSON
Guava
Apache Commons
Spring/Hibernate
在以前,成为Java工程师有以上知识足矣,但是随着近几年技术的变更和开发者的急剧增长,开发者的门槛也逐渐增加,比如Spring/Hibernate,不会这两门技术,很难找到工作。
结论
==
历。下面几个常见的库和组件可以多了解一下:
Servlet
JDBC
log4j
JSON
Guava
Apache Commons
Spring/Hibernate
在以前,成为Java工程师有以上知识足矣,但是随着近几年技术的变更和开发者的急剧增长,开发者的门槛也逐渐增加,比如Spring/Hibernate,不会这两门技术,很难找到工作。
结论
==