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框架:

成为Java高级工程师需要掌握哪些核心点?

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

3、String先关:

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

4、异常处理:

成为Java高级工程师需要掌握哪些核心点?

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

5、多线程:

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

6、JVM知识:

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

7、数据结构与算法:

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

  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
作为一个Java后端程序员,有几个必备知识是非常重要的: 1. Java核心知识:你需要熟悉Java的基本语法、面向对象编程的概念和特性,以及Java的常用类库和API。 2. 数据结构和算法:理解常用的数据结构(如数组、链表、栈、队列、树、图等)和基本算法(如排序、查找、递归等),能够根据问题的特点选择合适的数据结构和算法。 3. 多线程和并发:对于Java后端开发来说,多线程和并发是非常重要的概念。你需要了解线程的创建与管理、线程安全、锁机制等相关知识。 4. 数据库和SQL:大部分后端开发都会涉及到数据库操作,你需要熟悉关系型数据库(如MySQL、Oracle等)和SQL语言的基本知识,能够编写高效的SQL查询语句。 5. Web开发掌握Java的Web开发框架(如Spring、Spring Boot等),了解HTTP协议、Servlet技术、RESTful服务等。 6. 设计模式:熟悉常用的设计模式(如单例模式、工厂模式、观察者模式等),能够应用到实际项目中,提高代码的可维护性和可扩展性。 7. 单元测试:掌握单元测试框架(如JUnit、TestNG等),能够编写和执行单元测试,保证代码的质量和稳定性。 8. 版本控制工具:熟练使用版本控制工具(如Git、SVN等),能够进行团队协作和代码管理。 除了以上的知识,持续学习和自我提升也是非常重要的。不断关注新技术、参与开源项目和技术社区,积累经验和提高技能。希望对你有所帮助!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值