成为java高级程序员需要掌握哪些

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

section 1


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上找一些代码看看。

section 2


每逢长假都会有很多程序员跳槽,十一、过年是跳槽黄金时刻,尤其是过年。过年的时候年终奖到手,没有了多少牵挂,年终同学同事聚会比较多,沟通的就多,各种工作机会的消息也相应会多,所以跳槽的机会也就会多。跳槽就必不可少的要经过面试,那么作为一个Java程序员需要准备哪些面试知识呢?下面就给大家说说。

1、集合框架:

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


成为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、数据结构与算法:

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

section 3


section 4

如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构、算法、网 络、操作系统等知识。因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对Java高级开发工程师职位的考核纲要,希望可以帮助到需要的人。 1 Java基础 1.1 Collection和Map (1)掌握Collection和Map的继承体系。 (2)掌握ArrayList、LinkedList、Vector、Stack、PriorityQueue、HashSet、 LinkedHashSet、TreeSet、HashMap、LinkedHashMap、TreeMap、WeakHashMap、EnumMap、 TreeMap、HashTable的特点和实现原理。 (3)掌握CopyOnWriteArrayList、CopyOnWriteArraySet、ConcurrentHashMap的实现原理和适用场景。 1.2 IO (1)掌握InputStream、OutputStream、Reader、Writer的继承体系。 (2)掌握字节流(FileInputStream、DataInputStream、BufferedInputStream、 FileOutputSteam、DataOutputStream、BufferedOutputStream)和字符流 (BufferedReader、InputStreamReader、FileReader、BufferedWriter、 OutputStreamWriter、PrintWriter、FileWriter),并熟练运用。 (3)掌握NIO实现原理及使用方法。 1.3 异常 (1)掌握Throwable继承体系。 (2)掌握异常工作原理。 (3)了解常见受检异常(比如FileNotFoundException)、非受检异常(比如NullPointerException)和错误(比如IOError)。 1.4 多线程 (1)掌握Executors可以创建的三种(JAVA8增加了一种,共四种)线程池的特点及适用范围。 (2)掌握多线程同步机制,并熟练运用。 1.5 Socket (1)掌握Socket通信原理。 (2)熟练使用多线程结合Socket进行编程。 2 Java虚拟机 2.1 JVM内存区域划分 (1)掌握程序计数器、堆、虚拟机栈、本地方法栈、方法区(JAVA8已移除)、元空间(JAVA8新增)的作用及基本原理。 (2)掌握堆的划分:新生代(Eden、Survivor1、Survivor2)和老年代的作用及工作原理。 (3)掌握JVM内存参数设置及调优。 2.2 类加载 (1)掌握类的加载阶段:加载、链接(验证、准备、解析)、初始化、使用、卸载。 (2)掌握类加载器分类及其应用:启动类加载器、扩展类加载器、应用程序类加载器、自定义加载器。 3 J2EE (1) 掌握JSP内置对象、动作及相关特点和工作原理。 (2) 掌握Servlet的特点和工作原理。 (3) 掌握Spring框架的IOC和AOP实现原理(反射和动态代理)。 (4) 至少掌握一个MVC框架(Spring MVC,Struts等)的工作原理,并熟练运用。 (5) 至少掌握一个ORM框架(Hibernate,MyBatis等)的工作原理,并熟练运用。 4 数据结构与算法 (1)掌握线性表和树的特点并熟练运用。 (2)掌握常用排序和查找算法:插入排序(直接插入排序、希尔排序)、选择排序(直接选择排序、堆排序)、交换排序(冒泡排序、快速排序)、归并排序,顺序查找、二分查找、哈希查找。 (3) 熟练运用常见排序和查找算法思想解决编程问题。 (4)了解几大基本算法:贪心算法、分治策略、动态规划。 5 计算机网络 (1)掌握网络的分层结构,及每层的功能特点。 (2)掌握TCP/IP的通信原理(三次握手、四次挥手) 6 数据库 (1)掌握复杂的SQL语句编写。 (2)掌握数据库的优化(SQL层面和表设计层面)。 (3)至少掌握一款数据库产品。 (4)熟悉高并发、大数据情况下的数据库开发。 7 Web技术 (1)掌握AJAX的工作原理。 (2)至少熟悉一款JS框架(比如JQuery)。 8 设计模式 (1)熟悉常见的设计模式。 (2)会将设计模式理论应用到实际开发中。 9 Linux (1)熟练运用Linux常见命令。 (2)熟悉Linux操作系统基本概念及特点。 (3)熟悉Shell脚本。 10 操作系统 (1)掌握操作系统的进程管理。 (2)了解操作系统的I/O。 11 正则表达式 (1)掌握常见正则表达式符号。 (2)熟练运用正则表达式解决实际问题(比如匹配电话号码、邮箱、域名等)。


Section  5


5.MVC设计模式,原理,以及相关框架,如Struts

6.SSH框架

7.缓存技术 session & cookie

12.了解或熟悉 C, C++, .NET

13.熟悉JDK的配置,环境变量

16.JDBC,连接池

17.Ajax,反向Ajax

18.HTTP协议,request 和 response的原理,HTTP status(了解常用的),Https原理

19.熟悉Linux基本命令,使用过Linux/Unix系统,可以编写shell脚本,可以在Linux上部署项目

20.了解windows系统批处理脚本bat

21.了解HTML5,最好学习过

22.熟悉一种JS框架,如Prototype

23.J2EE原理 熟悉一种以上web容器如Tomcat,JBoss,websphere,weblogic==

24.熟悉ant或maven

25.熟悉一门脚本语言,如python ,ruby

26.了解php/ asp

27.了解ftp协议及原理

28.熟练使用Junit测试,熟悉Mockito等测试工具

29,熟悉javac,javadoc,native,native2ascii等常用命令

31.了解Flex(不学也没关系)

32.了解敏捷开发模式

33.工作流workflow至少用过一种,如OSworkflow,了解原理

34.使用过VPN了解其原理

35.熟悉jstl表达式和el表达式

36.熟悉webservice,WSDL,SOAP

38.版本控制工具,CVS VSS SVN

39,JSON技术,JSON+AJAX

40.分页技术,最好自己实现过不仅仅是用过要知道原理

41.Java Mail

43.JVM原理,JVM内存管理,GC,Java堆栈池

46.使用log4j

47.使用过开放API如百度地图,腾讯街景,新浪微博等

48.页面静态化技术(伪静态页面)UrlRwriter

49.报表技术,使用过报表制作工具,如水晶易表

50.定时任务,如Spring batch,学会自定义batch任务(不适用第三方工具)

51.了解uuid

52.B/s 和 C/s架构

53.正则表达式

54.了解JNDI JMS

55. ERP

56.unicode编码,乱码的解决

57.开源网络编辑器,如ckEditor

58.二进制原理

59,使用过,了解开源论坛框架,如discuzz

60, GWT ,Closure框架

61.了解 大数据,云计算

62.搜索引擎搜索技术

63.软件工程,项目管理




























版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223710.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午1:35
下一篇 2026年3月17日 下午1:35


相关推荐

  • getResourceAsStream和getClassLoader

    getResourceAsStream和getClassLoader1. Class.getResourceAsStream(Stringpath):path不以’/’开头时默认是从此类所在的包下取资源,以’/’开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。 2.Class.getClassLoader.getResourceAsStream(Stringpath):默认则

    2022年6月9日
    47
  • linux下搭建SVN服务器

    linux下搭建SVN服务器————以下内容为转载———————https://blog.csdn.net/wuruijie321/article/details/83652705Linux下的SVN服务器搭建鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,…

    2022年7月19日
    18
  • 手机gif录屏软件_手机录制gif软件

    手机gif录屏软件_手机录制gif软件gif录屏手机app是一款免费专业的视频剪辑制作软件,下载gif录屏apk支持GIF动画录屏以及MP4视频录屏,通过手机录屏GIF制作软件,一键轻松进行视频编辑、视频压缩和视频拼接。软件介绍gif录屏app是一款完全免费的专业高清流畅的录屏软件,支持GIF动画录屏以及MP4视频录屏。功能强大,操作简单,用户可以轻松录屏,录屏生成GIF回味用户自动生成GIF文件;将屏幕录制到动画文件.GIF,一边录…

    2026年2月2日
    4
  • 7 個最佳 Manus AI 替代方案:讓自主 AI 代理更為簡便

    7 個最佳 Manus AI 替代方案:讓自主 AI 代理更為簡便

    2026年3月15日
    3
  • 盒模型:CSS 世界的物理法则,margin 塌陷与 padding 的恩怨情仇

    盒模型:CSS 世界的物理法则,margin 塌陷与 padding 的恩怨情仇

    2026年3月13日
    2
  • Azkaban简介

    Azkaban简介一 Azkaban 概论 1 1Azkaban 是什么 1 Azkaban 是由 Linkedin 公司推出的一个批量工作流任务调度器 2 主要用于在一个工作流内以一个特定的顺序运行一组工作和流程 它的配置是通过简单的 key value 对的方式 3 通过配置中的 dependencies 来设置依赖关系 这个依赖关系必须是无环的 否则会被视为无效的工作流 4 Azkaban 使用 job 配置文件建立任务之间的依赖关系 并提供一个易于使用的 web 用户界面维护和跟踪你的工作流 1 2 为什么需要工作流调度

    2025年7月24日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号