java中级

来了来了他真的来了

初级

1.掌握java语法

oop+io+网络

2.基本的数据结构

3.基本的算法-例如排序,合并

4.基本的几个javaee框架

springmvc+springboot

mybatis

5.知道如何使用tomcat等容器

6.会使用linux操作系统

7.对并发,调度有一定了解

8.会写基本的操作手册,阅读有关设计概要文档

9.掌握svn,git等代码管理工具

11.熟悉h5,css,js等基本内容

中级

1.掌握java语法

数量掌握 泛型,并发,反射

2.数据结构

熟悉各种数据结构,并能够使用

3.算法

算法导论提到的算法应该都了解

4.javaee框架

springmvc+springboot+cloud

mybatis

5.会使用各种容器和服务器,并适当欧化

6.熟练使用linux操作系统+windows

7.深入并发

8.会做整体设计

9.掌握svn,git等代码管理工具

11.熟悉h5,css,js等基本内容

高级

除了中级的,还必须能够解决如下问题:

1)大型并发设计

2)分布式系统设计

3)能够解决一些比较复杂的算法问题

4) 对jvm有深入了解

5) 熟悉编译原理

6) 熟悉网络原理

7)对it趋势有个清醒的认识!

下面是一些涉及更深入的内容:

1.Core Java,就是Java基础、JDK的类库,很多童鞋都会说,JDK我懂,但是懂还不足够,知其然还要知其所以然,JDK的源代码写的非常好,要经常查看,对使用频繁的类,比如String,集合类(List,Map,Set)等数据结构要知道它们的实现,不同的集合类有什么区别,然后才能知道在一个具体的场合下使用哪个集合类更适合、更高效,这些内容直接看源代码就OK了

2.多线程并发编程,现在并发几乎是写服务端程序必须的技术,那对Java中的多线程就要有足够的熟悉,包括对象锁机制、synchronized关键字,concurrent包都要非常熟悉,这部分推荐你看看《Java并发编程实践》这本书,讲解的很详细 3.I/O,Socket编程,首先要熟悉Java中Socket编程,以及I/O包,再深入下去就是Java NIO,再深入下去是操作系统底层的Socket实现,了解Windows和Linux中是怎么实现socket的 4.JVM的一些知识,不需要熟悉,但是需要了解,这是Java的本质,可以说是Java的母体, 了解之后眼界会更宽阔,比如Java内存模型(会对理解Java锁、多线程有帮助)、字节码、JVM的模型、各种垃圾收集器以及选择、JVM的执行参数(优化JVM)等等,这些知识在《深入Java虚拟机》这本书中都有详尽的解释,或者去oracle网站上查看具体版本的JVM规范. 5.一些常用的设计模式,比如单例、模板方法、代理、适配器等等,以及在Core Java和一些Java框架里的具体场景的实现,这个可能需要慢慢积累,先了解有哪些使用场景,见得多了,自己就自然而然会去用。 6.常用数据库(Oracle、MySQL等)、SQL语句以及一般的优化 7.JavaWeb开发的框架,比如Spring、iBatis等框架,同样他们的原理才是最重要的,至少要知道他们的大致原理。

8.其他一些有名的用的比较多的开源框架和包,Netty网络框架,Apache common的N多包,Google的Guava等等,也可以经常去Github上找一些代码看看。

1、集合框架:

从上图可以看到主要是Collection和Map的继承类和Iterator的实现类,重点掌握ArrayList、LinkedList、Vector、Stack、PriorityQueue、HashSet、LinkedHashSet、TreeSet、HashMap、LinkedHashMap、TreeMap、WeakHashMap、EnumMap、TreeMap、HashTable的特点和实现原理,还有多线程使用场景和插入多还是删除多的时候使用什么样的集合类效率会更高。

2、IO框架:

主要掌握Reader、Writer、InputStream、OutputStream的继承类,重点掌握字节流(FileInputStream、FileOutputSteam、BufferedInputStream、BufferedOutputStream、DataInputStream、DataOutputStream)和字符流(FileReader、FileWriter、BufferedReader、BufferedWriter、InputStreamReader、OutputStreamWriter),并熟练运用。还有就是NIO的工作原理要知道。

3、String先关:

主要考察对String的处理,顺带考察多线程和,大公司就是喜欢考察字符串的算法,主要是字符串查找或者剔除,多线程打印字符串,超大字符串处理。

4、异常处理:

掌握Throwable继承类,理解Error和Exception的区别,理解运行时异常和编译异常的区别,掌握异常的处理方法,掌握try、catch、finally、throw、throws关键字的意义,掌握try-catch-finally语句的执行顺序,掌握异常的工作原理,知道常见的异常有哪些。

5、多线程:

如何创建和启动一个线程,有哪些方法?多线程如何交互,线程之间的调度、让步、合并,如何同步?生产和消费者模型。还有就是掌握线程安全、线程池,死锁。

6、JVM知识:

掌握常见的垃圾回收机制,掌握程序计数器、堆、栈、方法区的作用,掌握类的加载机制。掌握内存分代模型和工作原理。掌握JVM启动参数常见配置,了解JVM调优。

7、与算法:

掌握常见查找和排序算法实现及其时间、空间复杂度。掌握常见数据结构如链表、队列、栈的基本原理和实现。

经验分享 程序员 微信小程序 职场和发展