0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

可以不必再学习的Java知识?

小林coding 来源:小林coding 2023-02-16 09:16 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

大家好,我是小林。很多学 Java 的同学都会关心一个问题:有哪些过时的、可以不必再学习的 Java 知识?

针对这个问题,知乎上一位大佬给出了自己的见解,回答非常专业,分享给大家。

原文链接:https://www.zhihu.com/question/305924723/answer/557800752

注意,以下仅代表原作者本人的观点,大家如果有其他的想法,欢迎留言区分享。

我判断哪些技术不用学习的依据主要有以下几点:

实际开发能否用到?

是否有助于加深对技术的理解?

对面试是否有用?

JSP

JSP在实际开发中,主要是作为MVC模型中的V(View)层出现的。当然,View层的渲染技术除了JSP,还有FreeMaker、Velocity等。

JSP作为页面模板,在后端通过MVC框架渲染成HMTL,然后再发送到客户端(例如浏览器)来呈现。这也就是我们常说的“前后端不分离”,“混合式”开发。

而当前,包括我所在的公司,以及大部分互联网公司。要么已经抛弃这种模式,要么正在抛弃的路上,而转向彻底地 “前后端分离”。

在“前后端分离”模式下,后端只负责提供服务接口(例如REST),而前端(例如HTML5)通过接口发送/获取,呈现数据(例如JSON格式)。

这样,在后端,原来的MVC框架,某种意义上已经演变为MC框架。因此,与V(View)相关的一切模板技术都失去了学习的必要,其中当然也包括JSP。所以,后来的Java学习者,我的建议是:

“完全可以放弃对JSP的学习。”

Struts

在Java后端开发中,MVC模型还是主流。而Struts作为一个MVC框架,单从技术上来说,还是很优秀的。

但是,现在Spring实在是太强势了,越来越成为Java开发中的“一站式”工具包,其中的一个利器就是Spring MVC。

望名知意,Spring MVC也是一个MVC框架。而且因为它是Spring的亲儿子,自然和Spring契合得非常完美。

同时,在设计之初,Spring MVC就参照了其他MVC框架的优缺点(包括Struts),所以用起来非常爽。因此,在MVC框架领域,Spring MVC大有一统天下的趋势。

因此现在,很多公司,老的Struts项目还在维护。但新的项目开发,更多转向了Spring MVC。因此,如果你是Java新手,正在学习中,我的建议是:

“不要再学习Struts了,从Spring MVC开始吧!”

Hibernate

Hibernate作为老牌的 ORM映射框架,功能非常强大,涵盖面非常广。但这既是它的优点,同时也成为它的“负担”,是开发人员“不能承受之重”。

Hibernate的设计初衷,是为了最大程度地解放程序员,完全隔离数据库,实现彻底的OR映射。程序员甚至可以不写一行SQL语句,单通过配置就能实现对数据库的操作。

当然,为了实现这个目标,Hibernate也设计地非常复杂、非常精巧。就不可避免的带来以下副作用:

学习成本高

配置复杂

调优困难

前两点不难理解,单说“调优困难”。

因为Hibernate的设计目标是彻底的OR映射,彻底的隔离SQL语句。但必然会带来一定的性能损失。大部分情况下,应用如果对性能不敏感,Hibernate也没问题。但应用一旦对性能敏感,有SQL级别调优的需求,Hibernate的优点反而成为缺点。

虽然Hibernate也支持SQL级别的调优,但因为框架设计的过于复杂和精巧,这就需要开发人员对Hibernate理解的非常透彻,这就带来了更高的学习成本。

而现在最流行的MyBatis,作为一个“混合式”,轻量级OR映射框架,既继承了Hibernate的优点,同时也吸取了他的教训。在支持配置的同时,又能接触SQL,从而带来了更多灵活性(包括调试、优化)。

当前,在实际开发中,Hibernate使用得越来越少了。大家更偏爱MyBatis这种轻量级框架。所以,对后来学习者,我的建议是:

“不需要再学习Hibernate了,学MyBatis就够了。”

Servlet(要精通)

当然,现在不会有任何公司,再用纯粹的Servlet来实现整个Web应用,而是转向一些更高级的技术(例如各种 MVC 框架)。因此,会给人一种错觉:Servlet已经过时,后来者就不需要再学习了。

在这里,我可以非常负责任地说:这种观点是极端错误,极端不负责任的。

Servlet不仅要学,而且要学深,学透。

当前,Servlet虽然不再是一个主流web开发技术,但依然是Java Web开发技术的基础,是Java Web容器的基石,是行业标准。而现在流行的各种MVC框架(包括SpringMVC),在最底层,还是以 Servlet为基础的。

为此,我画了一个简单的图(不准确,会意即可):

54044604-ad48-11ed-bfe3-dac502259ad0.jpg

图片

所以,如果你想要彻底掌握某个MVC框架,则必须彻底理解Servlet。

而且,Servlet作为一个基础设施。精通它,不仅有助于理解各种MVC框架。即使Servlet本身,也有很多实用价值。

如果你深刻理解了Servlet的生命周期,就可以在底层做很多事情。譬如在Request进来的时候,进行拦截,进行权限的判定。也可以在Response发出的时候,进行拦截,统一检查、统一附加。

所以,如果你正在学习Java,对Servlet,我的建议是:

“Servlet不仅要学,而且要学深,学透。”

其他

目前在国内,Java更多是作为web后端技术出现的。因此在实际学习中,很多技术就不符合“国情”,学习的现实意义不大。下面我就简单列举下。

1)Applet

作为页面插件技术,不用多说,连flash都快被淘汰了,更无论从未流行的applet。

2)Swing

作为桌面UI框架。且不说本身设计得咋样。现实开发中,我接触的桌面应用,要么用C++(例如MFC),要么用C#(Winform、WPF)。所以,Swing就没有学习的必要了。

3)JDBC

作为较低层的数据库基础设施,JDBC被很多框架(例如MyBatis)支持。但在实际开发中,程序员即使不了解也无大碍。因此,虽然我不能建议你放弃JDBC学习,但如果你时间有限,完全可以把它的优先级排低一点。

4)XML

XML现在还在广泛应用。但作为一个web数据传输格式,正在逐渐被JSON替代。所以,对Java后端学习来说,XML简单了解即可。至于庞杂的XML操作API(例如XPath),完全不必学习。将来真要用到,再查也不迟。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    20

    文章

    3005

    浏览量

    116822
  • 模型
    +关注

    关注

    1

    文章

    3811

    浏览量

    52257
  • MVC
    MVC
    +关注

    关注

    0

    文章

    73

    浏览量

    14489

原文标题:一些已经淘汰的 Java 技术,别再学了!

文章出处:【微信号:小林coding,微信公众号:小林coding】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Java并发编程的“基石”——多线程概念初识

    (GC)调优手段,使得工程师可以在复杂的长周期任务调度中,精准控制内存起伏,避免因内存泄漏导致的集群停摆。 三、 跨界融合:Java 调度框架与 AI 生态的深度耦合 在当下的主流 AI 算力调度平台(如
    发表于 04-16 18:50

    开发知识库测试添加知识

    文档类型的知识要等待数据校验完成后才能上架 可以点击知识名称查看知识详情 等待后端处理完成可以点击知识
    发表于 03-06 15:07

    鸿蒙智能体开发知识库---创建知识

    。 从列表点击知识库名称进入知识列表页面 选择对应的知识类型填写相关信息: 导入方式-文档:使用文档形式导入知识数据,可以配置引用源信息
    发表于 03-06 10:18

    嵌入式单片机开发学习路径

    路径,让你的学习过程更加轻松有趣。 1. 入门基础 1.1 了解嵌入式系统 在开始学习之前,首先需要了解什么是嵌入式系统以及它的基本构成和应用场景。可以阅读一些基础书籍和网上资源。 1.2
    发表于 02-09 15:42

    小白也能听懂的单片机知识路径

    。 为什么从51单片机开始? 51单片机以其结构简单、学习资源丰富、易于上手的特点,成为单片机学习的理想起点。通过学习51单片机,你可以快速理解单片机的基本工作原理、编程方法以及基
    发表于 02-04 16:44

    学习单片机快速方法

    使用开发软件,比如KEIL。建议大家用C言语编程,汇编语言有时间可以学习一下。 毕竟C语言一目了然,移植性较好。虽然汇编效率高,但是难懂。况且现在单片机集成度越来越高,不必要那么高效率的代码。你想想,花
    发表于 01-14 07:42

    无刷电机驱动器的基础知识

    本文将从技术角度出发,对三相无刷电机的电机驱动器的作用、种类和规格进行介绍。通过本文,您可以学习到电机驱动器选型所需的基础知识
    的头像 发表于 12-10 14:13 6887次阅读
    无刷电机驱动器的基础<b class='flag-5'>知识</b>

    嵌入式应掌握的几种能力

    RT-Thread等。学习操作系统内核知识:线程调度、时钟管理、线程间同步、线程间通信、内存管理、设备管理等,并掌握基本的使用。 再熟悉Linux操作系统的基本使用。 再学习Linux下的应用开发
    发表于 12-08 06:05

    Arm Neoverse CPU上大代码量Java应用的性能测试

    Java 是互联网领域广泛使用的编程语言。Java 应用的一些特性使其性能表现与提前编译的原生应用(例如 C 程序)大相径庭。由于 Java 字节码无法直接在 CPU 上执行,因此通常运行时在
    的头像 发表于 11-05 11:25 926次阅读
    Arm Neoverse CPU上大代码量<b class='flag-5'>Java</b>应用的性能测试

    Java效率提升指南:5个Java工具选型建议及Perforce JRebel和XRebel介绍

    企业级Java环境越来越复杂,真正的破局点,可能不在“人”,而在于“工具”。5个实用建议,帮你理清Java工具的选型思路。
    的头像 发表于 09-11 13:59 1865次阅读
    <b class='flag-5'>Java</b>效率提升指南:5个<b class='flag-5'>Java</b>工具选型建议及Perforce JRebel和XRebel介绍

    ARM入门学习方法分享

    )架构。学习ARM的开始可以学习RISC和CISC架构的基础知识开始。 二、学习汇编语言:ARM架构的核心是汇编语言。
    发表于 07-23 10:21

    EtherCAT运动控制卡应用开发教程之Java

    运动控制卡的Java开发及DLL调用
    的头像 发表于 06-13 14:29 1005次阅读
    EtherCAT运动控制卡应用开发教程之<b class='flag-5'>Java</b>

    电路基础学习资料

    不可多得的电路基础知识学习资料,作者郝铭先生具有深厚的电路功底,且讲解的非常通俗易懂,非常适合初学者。 纯分享贴,有需要可以直接下载附件获取完整资料! (如果内容有帮助可以关注、
    发表于 05-17 15:01

    使用MATLAB进行无监督学习

    无监督学习是一种根据未标注数据进行推断的机器学习方法。无监督学习旨在识别数据中隐藏的模式和关系,无需任何监督或关于结果的先验知识
    的头像 发表于 05-16 14:48 1587次阅读
    使用MATLAB进行无监督<b class='flag-5'>学习</b>

    Java开发者必备的效率工具——Perforce JRebel是什么?为什么很多Java开发者在用?

    Perforce JRebel是一款Java开发效率工具,旨在帮助java开发人员更快地编写更好的应用程序。JRebel可即时重新加载对代码的修改,无需重启或重新部署应用程序,就能让开发者即时看到代码更改的效果,从而缩短开发、调试和测试周期,大大提升开发效率。
    的头像 发表于 04-27 13:44 969次阅读
    <b class='flag-5'>Java</b>开发者必备的效率工具——Perforce JRebel是什么?为什么很多<b class='flag-5'>Java</b>开发者在用?