java学习进度

来源:互联网 发布:淘宝店铺不装修可以吗 编辑:程序博客网 时间:2024/06/05 02:22

学了那么久的java,一直不得要义,关键是没有真正的参与到有价值的商业项目中,都是学校里的“小打小闹”。经过几次面试,约略明白了一些比较重要的方面,以下是最近学习的流程以及在看的书,感觉这次的学习是一脉相承的,说得不对的地方大家多多包涵,欢迎补充~

一、String

1、String,StringBuffer,StringBuilder三者适用场合(不可变,线程安全,非线程安全)

2、字符串处理:拼接,子串

3、正则表达式

二、IO(阻塞)

1、字节流 InputStream/OutputStream

2、字符流 Reader/Writer

3、随机访问文件 RandomAccessFile

三、NIO(非阻塞)

1、Buffer

2、Channel

3、Selector

四、Thread

1、单线程及线程常用的三种实现方式

2、多线程(同步、异步)

3、线程池

4、锁、死锁等问题(synchronized,lock,volatile关键字,wait/notify,sleep,yield等方法)

五、Concurrent并发工具类

BlockingQueue接口及其实现的子类

六、Collection集合框架

1、List(ArrayList和LinkedList适用场景,线程安全性,LinkedList还可用来代替Stack,代替Queue)

2、Set(无序,不重复,HashSet和TreeSet)

3、Map(键值对,HashMap和TreeMap,注HashMap和Hashtable(过时了)的线程安全性,ConcurrentHashMap线程安全)

4、Queue(PriorityQueue)

5、Collection

6、Collections

 

还有JSP方面和Android开发一点都不熟悉啊,抓紧时间融合上面的点搞个项目出来先。。。

七、动态反射

八、设计模式

九、数据库相关:

自己没有用过的:

1、索引到底有什么用?怎么用?

主键索引,唯一索引,

2、视图,有什么用?怎么用?定义、查询、更新视图

3、触发器怎么用?定义、激活、删除

4、第1,2,3,4范式,数据库设计的时候要注意

**5、数据库的并发控制

封锁、活锁和死锁、并发调度、封锁的粒度、怎么保证数据库在高并发的情况下不宕机

6、xml数据库

7、数据库的安全性:包括数据的安全和数据库本身的安全

还有很多很多我不知道自己不知道的地方,不知有哪位可以提点一下,马上找工作了,略紧张啊

 

十、数据结构和算法方面

1、数组:实现,增删查改

2、链表:单链表、双链表、循环链表实现,增删查改

3、栈:数组实现和链表实现,栈与递归的实现,应用(中缀转后缀,逆波兰表达式,迷宫求解)

4、队列:链队列(链表)、循环队列(数组)

5、串:模式匹配算法,KMP算法啊呀。。。

 

6、二叉树的几条常用性质

7、二叉树的实现、遍历(前中后层次)

8、线索二叉树

9、二叉排序(查找)树与二分查找

10、最优二叉树(哈夫曼树)的实现及压缩解压算法(还有很多个其他压缩算法哦)

11、回溯法与树的遍历

 

12、图的几个概念(连通图……)、性质

13、图的存储:邻接表,邻接矩阵

14、图的遍历:深度优先(DFS)和广度优先(BFS)

15、最小生成树(最小支撑树):Prim算法和Krusual算法

16、单源最短路径算法:Dijkstra算法

17、关键路径和拓扑排序,了解下?

 

19、8种排序编程手写都要十分熟练:

直接插入、二分插入

冒泡

选择

 

希尔

快速

归并

基数

每种排序的时间、空间复杂度,稳定性,最佳、平均、最坏情况

每种排序适用的情况,可以结合使用

 

20、外部排序:这个搞不懂啊???归并

 

21、平衡二叉树(AVL树左旋右旋),B_树和B+树,234树。。有难度,嗯!

 

22、更难的来了:哈希,处理冲突的方法,什么时候用呢???

 

23、文件和动态存储管理有点布吉岛在讲神马啊

 

最神秘的算法来了,不会挖:

1、递归与分治:这个好理解,不断将问题分为子问题直到不能再分(如二分搜索,合并排序,快排)

2、动态规划:不太好理解,整体最优——>局部最优(如最长公共子序列,最大子段和,0-1背包问题,最优二叉树)

3、贪心算法:如哈夫曼编码,最小生成书,单源最短路径

4、回溯法:如N皇后问题,0-1背包问题

5、分支限界法:如0-1背包问题,单源最短路径问题

…………………………最头疼的莫过于算法啦,智商余额不足没法完全理解,要是都能理解和写出代码就无敌了,这是我的目标。其他的那什么NP问题,NP完全问题更不知道干啥的了。

 

附几本还不错的书,有些是看过的,有些是听别人说的:

1、java编程思想

2、java并发编程实战

3、深入理解java虚拟机

4、java核心技术卷一卷二

5、effective java

6、j2ee核心技术

7、java多线程设计模式详解

8、还有专门关于Thread,NIO,Concurrent,IO,Collection的,全英文啊,六级考过表示没有用。有需要电子档的可以留个言

 

还有几个网站可以多去看看

github,开源中国,并发编程网……欢迎补充

 

 

 

0 0
原创粉丝点击