美文网首页读书
Java程序员简历中的“精通”到底该如何定义?要掌握哪些知识?

Java程序员简历中的“精通”到底该如何定义?要掌握哪些知识?

作者: 管彤Java架构师 | 来源:发表于2022-05-10 17:43 被阅读0次

    首先Java平台博大精深,一直被誉为互联网霸主;我们都知道互联网技术结构之复杂,所以Java的技术组件,架构也非常之多和复杂;正所谓万丈高楼平地起对吧,想要精通Java,那么首先基础知识必不可少,基础知识我有分为两部分:

    1:计算机基础知识

    Java也是一门计算机语言,当然暂且不表Java的特点以及和其他语言的对比之类的话。既然是计算机语言那么计算机的基础知识肯定是必备的,操作系统(这个知识最起码在学习Java多线程的时候才能真正的说理解多线程以及多线程调度等等,还有进程管理等等要不很多人动不动就是什么JVM调优,垃圾回收器呀什么什么的,JVM调优并不是简简单单的改动点参数,如果仅仅是改动一点参数就叫JVM调优...对吧其他的这里就不说了);

    计算机网络基础知识(最起码的你知道HTTP,TCP/IP,UDP等最基本的这些协议吧,网络通信原理)。

    2:程序基础知识

    程序的基础知识:

    计算机语言的运行原理(例如二进制的计算肯定比十进制的快这些基本的运行原理,还有就是要不你怎么理解JVM对吧等等);

    算法(重要,很多互联网大公司很看重这个,算法都不懂,你还说什么代码运行效率;还有就是JDK源码你怎么看都需要算法知识)

    数据结构(重要,你去看看Java集合类的源码,哪一个不是数据结构的东西)

    image.png

    下来进入到Java中来说

    首先还是那句话,精通一门语言,那么你必须要从它的平台内部开始,所以JVM就是第一个需要深入了解的东西;JVM怎么进行内存管理(这就常见的堆,栈,方法区,程序计数器等等),ClassLoader(类加载的机制的层次:Bootstrap ClassLaoder,Extension ClassLoader,System ClassLoader,以及自定义类加载器,双亲委派模式原理,Clasl文件的显示加载与隐式加载),GC管理(前面了解了JVM的内存管理,这个地方才能知道GC的作用,知道新生代,老生代,永久代,GC收集算法,强引用,弱引用,软引用,虚引用等等);常用的一些Java命令(例如:Java反编译,性能监控,故障处理)这是必备的就不多说

    Java基础知识

    Java基础知识比较多就不一一罗列,但是例如String,StringBuffer,StringBuilder,Integer,ArrayList , LinkedList、Vector,Stack, HashMap , LinkedHashMap , TreeMap , CouncurrentHashMap、HashSet , LinkedHashSet , TreeSet , HashMap,Queue ,Deque,BlockingDeque, BlockingQueue, TransferQueue(太多了就不全列举出来)这些基本的集合,线程,线程锁,线程池,Socket,反射等类的源码要熟读;。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

    JavaWeb部分

    基本的网络知识,网络协议知识;Servlet标准,JSP的原理(虽说现在这些直接使用的少了,但是基础知识在理解其他知识绝对需要);服务器的配置和管理(这部分一会在分布式中详细说);AJAX,JSON等等;数据池,数据缓存,性能优化等等

    mybatis , Spring(这个厉害了,这个都成了分布式系统生态链),Spring基础的IOC,AOP(重复一次,不是说你会使用和配置,而是要深入理解以及理解源码),SpringMVC,SpringBoot(这个加上maven,对于构建微服务有着非常重要的地位),SpringCloud,RestFull,RPC,RMI,SOAP协议,微服务的管理(Eureka,Zookeeper等),负载均衡(Nginx,Ribbon等),Dubbo,Hystrix(微服务熔断保护),Config(远程配置与管理维护),Zuul(路由),Feign,MQ(消息中间件,RabbitMQ,kafka,ActiveMQ等等),elasticsearch(搜索服务器),Memcache等等

    数据库方面:

    先说数据库常用的产品:mysql,oracle,redis,mongodb 这些都要会;

    mycat的读写分离,数据库集群

    mysql的存储引擎(这个不但要了解理论知识还要知道实际使用),索引(数据库高效的最基本的东西),存储过程(这里申明一下不是说会定义一个存储过程不是说语法,而是存储真正在实际中的运用)等,Oracle的内存结构,进程结构,SQL优化,数据库服务器管理调优等,其他的就不过多赘述;在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

    redis,mongodb(这个不用多说,现在使用非常广泛)

    操作系统:

    Liunx一定要熟练使用(现在好多技术都是更加适应Liunx,再说服务器大部分肯定是Liunx居多)

    实战:

    所有的理论都需要实践去检验,所以最终要成为高手或者说是所谓的精通,一定且唯一的校验标准一定是在实际的项目中来完成。

    所以想要精通,那么一定是非常扎实的理论,对理论能有自己的领悟,然后用来解决实际问题;在实际的问题中夯实自己的知识。

    相关文章

      网友评论

        本文标题:Java程序员简历中的“精通”到底该如何定义?要掌握哪些知识?

        本文链接:https://www.haomeiwen.com/subject/pynhurtx.html