从大层次讲java技术学习路线

Java从95年至今经过多年发展,由于各位前辈的不断创新,Java的成熟性已不可置疑;同时也导致java技术琳琅满目。那么在学习Java前我们应该如何选择技术方向呢?目前,哪些技术非常流行呢?另外,小编听到很多人说软件是吃青春饭的,30+混不好就没什么发展前途了,现实真实如此吗?针对以上问题小编从个人理解上梳理一下,意见不同者欢迎讨论。

JAVA SE(java基础)

java基础就不用说了,这是必须掌握的。重点要理解面向对象的思想,理解集合(List、Set和Map)的源码。

JVM部分

知道内存模型、工作原理和流程,JVM调优:参数和内存回收原理

页面层知识点

小编接触java最早是在大学期间,大学的教材一般都比较落后,像servlet、jsp,这两种技术是j2ee里最老的两门技术了。从工作至今我从未使用过jsp,现在互联网公司早已不使用。servlet大家还是有必要认真学一下的,它是MVC框架的核心,对我们理解MVC有很大帮助。

MVC框架知识点

MVC框架在大学学了Struts 2.x,现在也没有公司在试用。现今流行的MVC框架就是SpringMVC,这个肯定是要学习的,建议搞清其中的原理,对理解现在比较流行的springboot是一个很好的铺垫。

持久层知识点

持久层技术Hibernate和mybatis用的较多,这就是我们常说的SSH和SSM中的H和M。小编在毕业第一年主要用Hibernate,后来由于新项目选型mybatis,至今一直在试用mybatis,这两者小编更偏向也mybatis,原因如下表1

表1

对比方向MybatisHibernate
上手难以程度
ORM半自动化完全的自动化
Sql配置文件
数据库无关性
SQL灵活性
性能
适合的行业互联网 电商传统的(ERP CRM OA)
社区活跃度

 

数据库连接池知识点

DB频繁地建立、关闭连接,会极大的减低系统的性能,因为对于连接的使用成了系统性能的瓶颈。这时我们可以使用数据库连接池来解决这个问题,如:c3p0、dbcp、druid和HikariCP。目前c3p0、dbcp已经被逐渐淘汰,国内目前比较流行的高性能的Druid连接池(阿里巴巴研发)优点如下:

  1. 可以监控数据库访问性能,这对于线上分析数据库访问性能很有帮助;
  2. 替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池;
  3. 数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback;
  4. SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog;
  5. druid集群可以很方便的扩容到PB的数据量,每秒百万级别的数据注入。即便在加大数据规模的情况下,也能保证时其效性;
  6. druid既可以运行在商业的硬件上,也可以运行在云上。它可以从多种数据系统中注入数据,包括hadoop,spark,kafka,storm和samza等;
  7. druid拥有丰富的社区,供大家学习。

 

spring boot

学习完以上大家对Spring 框架一定会有更好地认识。几乎所有 Java 企业应用需要用到的基础组件都可以在 Spring 框架中找到。但在一个新应用中将所有需要的 Spring 组件整合并配置好并不容易,使用 xml集成所需组件和spring bean特别繁琐。为了解决这一问题Spring Boot 出现了,它是在 Java 中开发基于 REST 的微服务 Web 应用程序的最快方法之一。

微服务技术:SpringCloud、Dubbo

在国内目前使用最多的还是SpringCloud和Dubbo。看看他们提供了哪些支持

对比方向Spring CloudDubbo
服务注册中心Spring Cloud Netflix EurekaZookeeper
服务调用方式REST APIRPC
服务网关Spring Cloud Netflix Zuul
断路器Spring Cloud Netflix Hystrix不完善
分布式配置Spring Cloud Config
服务跟踪Spring Cloud Sleuth
消息总线Spring Cloud Bus
数据流Spring Cloud Stream
批量任务Spring Cloud Task

看上去有很多功能Dubbo都没有,但它可以继承第三方组件很好的实现同样功能,甚至用起来比Spring Cloud更容易。Spring Cloud功能比较齐全(就像一个全家桶),Dubbo只是实现服务治理,需要用到其他组件,需要进行整合。

编程与年龄的关系

小编认为软件在我国发展比较晚,国内第一批从事java开发的目前也就是40+岁,由于当时开发人员也比较少,所有给人一种错觉:编程是吃青春饭的。不以为然的可以向java大数据方向发展,在方面大龄coder很多,而且还是主力军。
作者:小码君
链接:https://juejin.im/post/5c20a61ee51d45342a253971
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值