一个高级java工程师需要具备什么能力和技术?

2020-09-18 17:19发布

8条回答
小杨小杨
2楼 · 2020-09-18 18:26

至少要懂得理论基础,完全会操作,懂得底层架构以及常用框架

Sunny
3楼 · 2020-09-18 19:15

高级,至少得有3-5年的工作经验吧!


懂系统设计、核心的框架应该熟练应用!


分布式架构、java调优、底层原理应该很清楚,常见框架的源码应该有所了解!

猫的想法不敢猜
4楼 · 2020-09-19 10:16

框架快速开发的能力,大型系统开发的配合能力,框架技术掌握娴熟

善良的琼琼姐
5楼 · 2020-09-19 17:29

3-5年的工作经验,框架快速开发的能力,大型系统开发的配合能力

浅笑嫣然
6楼 · 2020-09-20 11:54

具有大型项目实战经验以及底层框架基础和高级框架,微服务等等

爱梦 - 拿来吧你
7楼 · 2021-11-08 09:00

Java高级工程师需要弄明白的20个知识点

1、对多线程的了解,尤其是对线程池的理解,对ThreadPoolExecutor构造参数各个作用的理解、了解Fxied Pool、Cached Pool分别的作用

2、对锁的了解,synchronized、Lock接口(及其对应的实现的理解)

3、对JDK中HaskMap、ArrayList的源代码级别理解;对并发包中ConcurrentHashMap源代码级别的理解(可以基于JDK8、在了解JDK7)

4、熟练使用Mybais、Spring框架

5、对Spring Bean生命周期的理解、Spring 事务管理的理解(主要关注隔离性、事务的几种传播方式)

6、对Spring AOP能够用于哪些场景、实现AOP的核心技术是什么(JDK Proxy、cglib包)

7、对Tomcat的架构有所理解(底层通讯框架是什么:NIO、如何做到隔离:自定义的classloader)

8、对分布式理论的了解(CAP、BASE等)

9、对分布式锁理论的了解,及其哪些方式可以实现、如何实现(Redis、Zookeeper)

10、对分布式事务理论的了解(2PC、3PC、TCC),及其哪些方式可以实现、如何实现(MQ等)

11、对Redis的理解以及应用(分布式应该如何配置)有多少种的数据结构、持久化是如何设计

12、对Zookeeper的理解以及应用(选主过程ZAB协议,几种节点Leader、Follewer、Observer,4种节点:持久、持久有序、临时、临时有序)

13、基本的设计模式:工厂、单例、表驱动法、模板等

14、线程的几大状态,以及状态变化

15、数据库大数据如何优化(几千万,几亿级的)

16、如何做分布式事务锁?

17、dubbo、Sping Boot、Sping cloud等分布式框架各有什么特点,选型的依据是什么?

18、介绍下zeekeeper如何领导者决策过程

19、Java基础技术体系、JVM内存分配、垃圾回收、类装载机制、性能优化、反射机制、网络编程、常用数据结构和相关算法

20、常见的一些解决方案及其原理:单点登录、分布式缓存、SOA、全文检索、消息中间件,负载均衡、连接池、流计算等

架构师需要的知识点:

1.框架源码分析 设计模式:Singleton单例模式,Factory工厂模式,Proxy...

2.性能优化 JVM性能优化:剖析JVM整体结构,详解垃圾回收机制GC,JVM性能调优与工具...

3.掌握池技术 对象池,连接池,线程池,Java反射技术,写框架必备的技术,但是有严重的性能...

4.掌握nio,值得注意的是“直接内存”的特点,使用场景。

5.掌握Java多线程同步异步。


汽水味的小盆友
8楼 · 2021-11-08 15:16

所谓“高级”的具体含义,取决于你所在组织的实际需求以及运营方式。我的大部分工作经验都源自小型企业,因此今天提到的相关职位可能更倾向于中小企业。不过根据我的经历,很多大企业中也存在类似的模式。

专业知识:有时候,积累特定领域的专业知识往往需要耗费大量时间。如果你面对的是具有严格规范约束或相对复杂的领域,那么高级一词可能代表着“这里不适合新人”。这里,高级也就意味着专业。

技术深度:要求相关人士曾经使用过精确的技术堆栈。术语、库以及相关缺陷,这一切都在不断变化并持续提出新的要求。因此如果你希望成为一位高级技术人员,那么万不可有半点取巧之心。举例来说,如果你的应用使用 Django 编写而成,则你需要一位高级 Django 技术人员——无论候选人对 Rails 或 Laravel 多么熟悉,都将无法胜任这一职位。对于 PostgreSQL 也是如此(相对于 MySQL 而言)。我发现很多从业者都在职位申请当中体现出了这样严谨的态度,但却鲜有企业对此加以重视。总而言之,我们应当将这一点作为简历筛选当中的一项重要条件。

技术广度:这是指能够运用类似工具,并在类似情况之间加以类比以加快工作速度的能力。有时候,也许你找不到完全适应岗位需求的人选,这时候你可以扩大搜索范围。从宏观层面来讲,MySQL 与 PostgreSQL 之间其实存在很多相似的特征,因此将 PostgreSQL 的知识映射至 MySQL 身上(反之亦然)可能将带来奇效。这样的高级开发人员在与具有 “精确的技术层面技能储备”的人士进行协作时,效果最佳——因为双方将能够充分运用术语进行沟通并使用各类资源库。


超甜的布丁
9楼 · 2021-11-08 16:09

一、 JAVA。

要想成为JAVA(高级)工程师肯定要学习JAVA。一般的程序员或许只需知道一些JAVA的语法结构就可以应付了。但要成为JAVA(高级) 工程师,您要对JAVA做比较深入的研究。

二、 设计模式。

代码可重用性,可维护性,可扩展性等。如何写出好的代 码往往要借助一些设计模式。当然长期的代码经验积累,只要您用心,会使您形成自己代码风格。

三、 XML。

现在的系统中不使用XML几乎是不可能的。XML的功能非常强大,它可以做数据转换、做系统的配置、甚至可保存您的系统业务数据。因此您必须了解 XML,包括它的语法,结构。

四、 精通使用一种或两种框架。

“框架都会有许多可重用的代码,良好的层次关系和业务控制逻辑,基于框架的开 发使你可以省出很多的开发成本”。

五、 熟悉主流数据库。

其实真正比较大的项目都是有人专门做数据库的,但往往很多项目要求作为(高级)工程师的您也参与数据库的设计以及SQL的编写。

六、 精通一种或两种WEBServer。

七、 UML。

在比较正规的开发团队中,UML是讨论项目的交流工具

八、 站在高度分析问题。


相关问题推荐

  • 回答 2

    Statement的execute(String query)方法用来执行任意的SQL查询,如果查询的结果是一个ResultSet,这个方法就返回true。如果结果不是ResultSet,比如insert或者update查询,它就会返回false。我们可以通过它的getResultSet方法来获取ResultSet,或者通过getUpda...

  • 回答 22

    忙的时候项目期肯定要加班 但是每天加班应该还不至于

  • 回答 108
    已采纳

    虽然Java人才越来越多,但是人才缺口也是很大的,我国对JAVA工程师的需求是所有软件工程师当中需求大的,达到全部需求量的60%-70%,所以Java市场在短时间内不可能饱和。其次,Java市场不断变化,人才需求也会不断增加。马云说过,未来的制造业要的不是石油,...

  • 回答 5
    已采纳

    工信部证书含金量较高。工信部是国务院的下属结构,具有发放资质、证书的资格。其所发放的证书具有较强的权威性,在全国范围内收到认可,含金量通常都比较高。 工信部证书,其含义也就是工信部颁发并承认的某项技能证书,是具有法律效力的,并且是国家认可的...

  • 回答 70
    已采纳

    学Java好不好找工作?看学完Java后能做些什么吧。一、大数据技术Hadoop以及其他大数据处理技术都是用Java或者其他,例如Apache的基于Java 的 HBase和Accumulo以及ElasticSearchas。但是Java在此领域并未占太大空间,但只要Hadoop和ElasticSearchas能够成长壮...

  • 回答 16
    已采纳

    就是java的基础知识啊,比如Java 集合框架;Java 多线程;线程的五种状态;Java 虚拟机;MySQL (InnoDB);Spring 相关;计算机网络;MQ 消息队列诸如此类

  • 回答 12

    #{}和${}这两个语法是为了动态传递参数而存在的,是Mybatis实现动态SQL的基础,总体上他们的作用是一致的(为了动态传参),但是在编译过程、是否自动加单引号、安全性、使用场景等方面有很多不同,下面详细比较两者间的区别:1.#{} 是 占位符 :动态解析 ...

  • 回答 62

    没问题的,专科学历也能学习Java开发的,主要看自己感不感兴趣,只要认真学,市面上的培训机构不少都是零基础课程,能跟得上,或是自己先找些资料学习一下。

  • 回答 4

    1、反射对单例模式的破坏采用反射的方式另辟蹊径实例了该类,导致程序中会存在不止一个实例。解决方案其思想就是采用一个全局变量,来标记是否已经实例化过了,如果已经实例化过了,第 二次实例化的时候,抛出异常2、clone()对单例模式的破坏当需要实现单例的...

  • 回答 5

     优点: 一、实例控制  单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。 二、灵活性  因为类控制了实例化过程,所以类可以灵活更改实例化过程。 缺点: 一、开销  虽然数量很少,但如果每次对象请求引用时都要...

  • 回答 4

    这个主要是看你数组的长度是多少, 比如之前写过的一个程序有个数组存的是各个客户端的ip地址:string clientIp[4]={XXX, xxx, xxx, xxx};这个时候如果想把hash值对应到上面四个地址的话,就应该对4取余,这个时候p就应该为4...

  • 回答 6

     哈希表的大小 · 关键字的分布情况 · 记录的查找频率 1.直接寻址法:取关键字或关键字的某个线性函数值为散列地址。即H(key)=key或H(key) = a·key + b,其中a和b为常数(这种散列函数叫做自身函数)。...

  • 回答 6

    哈希表的大小取决于一组质数,原因是在hash函数中,你要用这些质数来做模运算(%)。而分析发现,如果不是用质数来做模运算的话,很多生活中的数据分布,会集中在某些点上。所以这里最后采用了质数做模的除数。 因为用质数做了模的除数,自然存储空间的大小也用质数了...

  • 回答 2

    是啊,哈希函数的设计至关重要,好的哈希函数会尽可能地保证计算简单和散列地址分布均匀,但是,我们需要清楚的是,数组是一块连续的固定长度的内存空间

  • 回答 3

     解码查表优化算法,seo优化

  • 回答 5

    1.对对象元素中的关键字(对象中的特有数据),进行哈希算法的运算,并得出一个具体的算法值,这个值 称为哈希值。2.哈希值就是这个元素的位置。3.如果哈希值出现冲突,再次判断这个关键字对应的对象是否相同。如果对象相同,就不存储,因为元素重复。如果对象不同,就...

没有解决我的问题,去提问