Java高级主题(1)——(概述)

java在经过基础的语法学习之后,如果要更深入的学习,最好是对java的一些主题进行分类后再进行进一步研究。虽然这些主题在Java基础学习阶段很多也都有涉及,但因为在整体学习的过程中,可能印象不会太深。经过这种分类深入学习,往往可以让自己编程能力得到迅速提高。如果要详细去描述的话,某些主题可能需要一本几百业的书才能完全讲透。我这里先做一个简单概述,初学者可以按照下面的各个主题去提升自己,后续我也会对各个主题进行进一步详细讲解。(部分图和代码摘自网络)

1、基础加强

A、Java的IO框架,这个既是基础,也是实际应用中首先应该掌握的一个主题,必须要熟练。可能是因为太基础的缘故,我们经常会忽视这项技能,甚至一些编程老手,写了5、6年的程序了,都不太清楚IO体系结构是什么样的,每次要编写处理文件读写的代码,必须去搜索或查阅资料才行。

B、java.lang包,java.util这是基础,要熟悉,这些类使用得当可以解决不少问题。

C、理清继承、接口、封装等概念,对这些概念理对日后编程思维和习惯有较大的影响。

D、对象序列化:对象序列化读写,在远程接口调用,网络传输以及缓存等功能实现非常重要。

 

2、异常体系

异常主要分为错误Error和异常Exception,都是继承自Throwable类,其中异常类又分为运行时异常(不检查异常)和非运行时异常(检查异常)。除了理解异常体系之外,最好是了解一些异常处理和封装的习惯或规范,这样对于编写高质量的代码有很大的提升。

 

3、集合类

常用的数据结构:数组、队列、链表、集合、Map、栈等,以及Java中的部分实现类。


4、多线程编程

线程概念、线程池原理、并发编程(资源同步、锁)、Java自带线程池使用。


5、网络编程

基本网络编程,多线程网络编程。

 

6、数据库编程

 重点掌握JDBC,虽然现在直接使用JDBC的开发场景现在已经越来越少了,但是这是很多数据库访问的基础,后来的很多技术都是对JDBC的封装。

 

7、图形界面以及基于事件驱动的编程模式

这项了解即可,但如果是作Android开发的,则也可以直接学习Android·的开发,其图形编程原理与JSwing类似。现在完全通过JSwing来作界面开发的项目应该是比较少的。我最早在2006年的时候遇到过,做集装箱码头管理系统,该项目用户是海港码头技术操作人员,面对的用户量非常有限,对功能的实现是主要的,而对界面的美化方面要求相对较低,之后几乎没有碰到过类似项目。重点是对基于事件的编程模式的理解。


8、反射、动态代理、依赖注入、AOP

 这个主题的东西,对于初学者理解相对较难,但是非常有用,在实际工作中会利用这些技能,往往会有意想不到的的收获。


9、经典算法实现

经典八大排序算法(冒泡排序、快速排序、选择排序、插入排序、希尔排序、归并排序、堆排序、基数排序),以及二分查找

 

10、设计模式:

最经典的就是GOF的23种模式,在这些模式的基础上也出现了一些新的模式,如Ioc、AOP。这些模式看似简单,但在实际中可能是一些问题的解决思路,或者是某些技术框架的基础。

 

11、JVM虚拟机

(内存管理、类加载机制、类文件结构):JVM的主要功能之一就是帮助编程人员管理内存,对初学者可以屏蔽其实现细节,那我们为什么还要深入学习它呢。一方面是如果不了解其实现机制,编程的时候可能会对JVM内存使用上不好,会造成程序性能下降或直接内存溢出等,另一方JVM自带的内存管理对于一些大型集群框架来说,可能还是难以满足实际需求,还需要进行一些必要的优化。


12、正则表达式

 一项基本而实用的技能。


13、日志、单元测试以及XML处理

A、日志:Log4j、slf4j

B、XML处理:JDOM、DOM4j

C、测试:Junit

 

14、java ee的相关技术

JDBC、JMail、RMI、JMS、JSP+Servlet等

 

15、其它相关的技术

前面的都是Java技术主题,实际应用的话,会涉及其他的一些技术,下面列举一部分。

1、数据库相关知识,开发过程中避免不了和数据打交道,数据的来源有很多,对于大多数开发工作,数据来自数据库的可能性是最大的

2、web开发相关技术,前端:HTML、CSS、JavaScript,后台:JSP+Servlet、框架:Spring、Hibernate等

3、部署相关技术:服务器主要linux、分布式集群技术、缓存Redis等

4、开发工具:Eclipse、Maven、Git

你可能感兴趣的:(Java)