为什么一些人很瞧不起 Java?

Posted SiKi学院

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么一些人很瞧不起 Java?相关的知识,希望对你有一定的参考价值。

前言

瞧不起Java的大概是因为:

  1. Java 被认为是一门“老”语言,过时了。事实上,Java 由于其稳定性和安全性,一直是企业级应用开发的首选语言。而且,Java 语言还在不断更新和发展,例如 Java 8 引入了很多新特性,Java 9 和 Java 10 也相继发布,为 Java 生态系统注入了新的活力。
  2. Java 语法过于繁琐,代码冗长,不够简洁。Java 语言的确需要写更多的代码来完成相同的任务,但这也使得 Java 代码更加易于维护和调试。同时,Java 8 引入的 Lambda 表达式、Stream API 等特性也大大简化了 Java 代码的编写。
  3. Java 开发效率低,需要频繁编译。Java 确实需要进行编译,但这也保证了代码的稳定性和安全性。同时,Java 开发中使用的 IDE 工具,如 Eclipse、IntelliJ IDEA 等,也提供了大量的快捷键和智能提示,提高了开发效率。
  4. Java 的性能不够出色。Java 的确比 C++ 等编译型语言慢一些,但是随着硬件的不断升级和 JVM 的不断优化,Java 的性能也在不断提高。而且,Java 在多线程和分布式方面有很强的优势,也适合处理高并发的场景。

所以,总的来说Java是跟随时代进步的,而且在当下的语言招聘市场基本是属于数一数二的存在,对于想入门的小伙伴,我也特意准备了一份Java的学习路线,希望能为你提供些许的帮助~

先放上Java学习总体的思维导图 :

学习前准备

准备开发工具,这里推荐IDEA(全称 IntelliJ IDEA),首先安装好IDEA,并配置好环境,然后可以熟悉一下IDEA的快捷键操作和相关设置等

IDEA官网:https://www.jetbrains.com/zh-cn/idea/

IDEA环境配置具体操作:[https://blog.csdn.net/qq_33215972/article/details/73693140

IDEA官方快速上手教程:https://www.jetbrains.com/zh-cn/idea/resources/

阶段一:Java 基础

通过本阶段的学习,初步认识Java相关的语法以及一些基础知识,学会编译一些简单的程序

相关资源

文档教程

【菜鸟教程】:https://www.runoob.com/java/java-tutorial.html

视频教程

siki学院】Java编程学习第一季: https://www.sikiedu.com/course/157

siki学院】Java编程学习第二季:http://www.sikiedu.com/course/165

siki学院】Java编程学习第三季:http://www.sikiedu.com/course/202

siki学院】Java编程学习第四季:https://www.sikiedu.com/course/205

文章推荐

Java基础知识点总结归纳:[https://blog.csdn.net/qq_41701956/article/details/116375749

书籍推荐

【推荐一】《Head First Java(中文版)》

豆瓣评分8.6高分书籍,这本书利用图文结合的方式来将原本枯燥的代码以图片的形式来讲述,且其中配置了大量的代码练习,结合上面推荐的教学视频,通过学习和大量敲代码的练习更容易掌握对应知识点

》》【电子书】下载链接:

链接:https://pan.baidu.com/s/1uD0xwaU0IZhblN4wE0iOzw?pwd=siki 提取码:siki

》》【纸质书】当当链接:https://product.dangdang.com/9265169.html

【推荐二】《Effective Java中文版(原书第3版)》

豆瓣评分9.0高分书籍,这本书我觉得学Java的人都需要看一下,它能教授你眼前一亮的编程概念,帮你更加有效地使用Java编程语言及其基本类库

》》【电子书】下载链接:

链接:https://pan.baidu.com/s/1k5vLqNqBd-YQ5jHsrH0v7g?pwd=siki

提取码:siki

》》【纸质书】链接:https://product.dangdang.com/26437835.html

面试题

Java基础面试题:(https://juejin.cn/post/6844904127059738631)

阶段二:数据库

当下大部分企业都是用关系数据库来储存数据,其中最具代表性的就是mysql

相关资源

文档教程

MySQL】官网:MySQL

MySQL】官方文档:MySQL Documentation

JDBC】官方教程:https://pingfangx.github.io/java-tutorials/jdbc/basics/index.html

视频教程

siki学院】MySQL:https://www.sikiedu.com/course/48

siki学院】JDBC:https://www.sikiedu.com/course/203

文章推荐

推荐1】MySQL必备基础知识(常用):https://blog.csdn.net/weixin_51483932/article/details/115582156

推荐2】如何系统学习 MySQL?:如何系统学习 MySQL? - 知乎

推荐3】JDBC详细介绍:https://blog.csdn.net/Jungle_Rao/article/details/81274720

书籍推荐

【推荐一】《MySQL必知必会

豆瓣8.4高分书籍,这一本书适合零基础的学习者,它里面知识的内容讲的比较通俗易懂,由浅入深,让你能透彻地理解SQL的基础概念与语法

》》【电子书】下载链接:

链接:https://pan.baidu.com/s/19GRuLsAjb1c90yqtgdA0Dw?pwd=siki 提取码:siki

》》【纸质书】链接:http://product.dangdang.com/28522531.html

【推荐二】《高性能MySQL(第3版)》

豆瓣9.3高分优秀书籍,这本书MySQL的经典

》》【电子书】下载链接:

链接:https://pan.baidu.com/s/1XpPDLo-0pPOzb4RBugNmDQ?pwd=siki 提取码:siki

》》【纸质书】链接:http://product.dangdang.com/29227172.html

面试题

MySQL面试题(2022年最新):https://blog.csdn.net/adminpd/article/details/122910606

JDBC常见面试题:JDBC常见面试题 - 知乎

阶段三:Web前端

前端这一块重点掌握html+CSS+javascript+Vue就可以了,其他的可以了解一下。

相关资源

文档教程

HTML 】w3school教程 :https://www.w3school.com.cn/html/index.asp

CSS 】w3school教程:https://www.w3school.com.cn/css/index.asp

JavaScript】w3school教程:https://www.w3school.com.cn/js/index.asp

【JQuery】w3school教程:https://www.w3school.com.cn/jquery/index.asp

【AJAX】w3school教程:https://www.w3school.com.cn/js/js_ajax_intro.asp

(w3school的网页当中能直接输入代码练习,可以直接显示页面效果,挺不错的)

Vue】菜鸟教程:https://www.runoob.com/vue2/vue-tutorial.html

【React】菜鸟教程:https://www.runoob.com/react/react-tutorial.html

【Angular】菜鸟教程:https://www.runoob.com/angularjs/angularjs-tutorial.html

(三大框架一般至少掌握一种,国内用得多的是Vue和React,根据自己的需求学习,如果有时间可以都学一下)

视频教程

siki学院】HTML:https://www.sikiedu.com/my/course/206

siki学院】CSS: https://www.sikiedu.com/course/207

siki学院】JavaScript:https://www.sikiedu.com/course/212

siki学院】jQuery:https://www.sikiedu.com/course/213

动力节点】最新AJAX:https://www.bilibili.com/video/BV1cR4y1P7B1

尚硅谷】Vue:https://www.bilibili.com/video/BV1Zy4y1K7SH

尚硅谷】React:https://www.bilibili.com/video/BV1wy4y1D7JT

IT营】Angular教程:https://www.bilibili.com/video/BV1bt411e71b

书籍推荐

《JavaScript权威指南原书第7版》

这本书适合有一定编程经验的人,当然,初学者也可以买来学习,它是JavaScript程序员必读的一本书

》》【电子书】下载链接:

链接:https://pan.baidu.com/s/1SX7fUWw5DIXH6Ve21UVdGA?pwd=siki 提取码:siki

》》【纸质书】链接https://product.dangdang.com/11163420580.html

面试题

注:这些面试题一般是专注于前端方向的,如果只是向往后端发展的就不用太过于注重这一块的面试题

HTML高频面试题:https://juejin.cn/post/6905294475539513352

CSS高频面试题:https://juejin.cn/post/6905539198107942919

JavaScript高频面试题(上篇):https://juejin.cn/post/6940945178899251230

JavaScript高频面试题(下篇):https://juejin.cn/post/6941194115392634888

阶段四:Java web

重点关注JSP和Servlet两部分
Git——版本控制工具 svn——版本控制系统 Maven——项目构建工具 Linux——服务器构建系统

相关资源

文档教程

JSP】教程 :https://c.biancheng.net/jsp2/

Servlet】教程:https://c.biancheng.net/servlet2/

Tomcat 】教程:https://www.w3cschool.cn/tomcat/

HTTP】 教程:https://www.w3cschool.cn/http/

Git】 菜鸟教程:https://www.runoob.com/git/git-tutorial.html

SVN】 菜鸟教程:https://www.runoob.com/svn/svn-tutorial.html

Maven】菜鸟教程:https://www.runoob.com/maven/maven-tutorial.html

Linux】菜鸟教程:https://www.runoob.com/linux/linux-tutorial.html

视频教程

siki学院】JSP&Servlet:https://www.sikiedu.com/my/course/214

狂神study】Tomcat详解:https://www.kuangstudy.com/course/play/1320997023852003330

狂神study】HTTP协议详解:https://www.kuangstudy.com/course/play/1320997359610232834

尚硅谷】Git 入门到精通全套教程:https://www.bilibili.com/video/BV1vy4y1s7k6

尚硅谷】SVN版本控制软件教程:https://www.bilibili.com/video/BV1mW411M7yR

尚硅谷】2022版Maven教程:https://www.bilibili.com/video/BV12q4y147e4

乐字节】Linux:https://www.bilibili.com/video/BV16Q4y1y7xS

文章推荐

推荐1】JSP的基本使用总结:https://blog.csdn.net/weixin_49343190/article/details/107932765

推荐2】Tomcat是干什么用的:https://blog.csdn.net/qq_44285562/article/details/102969252

推荐3】HTTP协议入门教程:https://www.jianshu.com/p/083f992d0ee3

推荐4】Git常用命令:https://support.huaweicloud.com/usermanual-codehub/devcloud_faq_0060.html

推荐5】maven的下载与安装教程:https://blog.csdn.net/u012660464/article/details/114113349

推荐6】史上最全Linux基础知识点大全:程序员必备!史上最全Linux基础知识点大全? - 知乎

面试题

【JSP】面试题及答案:https://www.cnblogs.com/iOS-mt/p/5717631.html

【Tomcat&Servlet】面试题:https://juejin.cn/post/6844904127059722247

【HTTP协议】面试题:https://blog.csdn.net/weixin_45819386/article/details/123219420

关于Git的20个面试题:https://segmentfault.com/a/1190000019315509

Maven面试题:https://blog.csdn.net/a303549861/article/details/93752178

46个经典Linux面试题:46个经典Linux面试题!(附答案) - 知乎

阶段五:Java web主流框架

完善的框架使Java成为一门主流的语言,用好框架能大大提升开发的效率,目前主流的框架有SSM框架和Spring boot框架

相关资源

文档教程

MyBatis】 w3cschool教程:https://www.w3cschool.cn/mybatis/

Spring】 w3cschool教程:https://www.w3cschool.cn/wkspring/

Spring MVC】 w3cschool教程:https://www.cainiaojc.com/spring/spring-mvc-tutorial.html

视频教程

siki学院】Mybatis:https://www.sikiedu.com/course/258

siki学院】Spring:https:https%3A//www.sikiedu.com/course/267

siki学院】SpringMVC:[https://www.sikiedu.com/course/277

siki学院】SpringBoot:https://www.sikiedu.com/course/541

文章推荐

推荐1】SSM框架讲解:https://blog.csdn.net/weixin_45650003/article/details/121623824)

推荐1】如何快速学习ssm 框架:如何快速学习ssm 框架? - 知乎

面试题

SSM常用面试题60道:整理出来SSM常用面试题60道(SpringMVC+Spring+Mybatis) - 知乎

阶段六:微服务技术栈

当企业面对庞大的设计规模和愈加复杂的业务需求时,就需要我们掌握微服务技术栈相关的知识
Spring Cloud是基于 Spring Boot 实现的微服务框架,而Spring Cloud Alibaba对Spring Cloud进行了高性能改进,逐步替代Spring Cloud成为主流微服务框架

相关资源

文档教程

Spring Cloud】教程:http://c.biancheng.net/springcloud/

(按照教程当中的顺序Eureka->Ribbon->Feign->Hystrix->Gateway->Config->Nacos->Sentinel->Seata)

Elasticsearch 】教程:https://www.cainiaojc.com/elasticsearch/elasticsearch-tutorial.html

Redis】教程:https://www.runoob.com/redis/redis-tutorial.html

RabbitMQ 】教程:https://www.hxstrive.com/subject/rabbitmq.htm

Jenkins】教程:https://www.yiibai.com/jenkins

Docker 】教程:https://www.runoob.com/docker/docker-tutorial.html

视频教程

黑马程序员】SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式:https://www.bilibili.com/video/BV1LQ4y127n4

黑马这个视频几乎涵盖了微服务所有,强烈推荐

尚硅谷】SpringCloud框架开发教程:https://www.bilibili.com/video/BV18E411x7eT

尚硅谷】ElasticSearch教程入门到精通:https://www.bilibili.com/video/BV1hh411D7sb

尚硅谷】Redis 6入门到精通超详细教程:https://www.bilibili.com/video/BV1Rv41177Af

尚硅谷】RabbitMQ教程:https://www.bilibili.com/video/BV1cb4y1o7zz/

尚硅谷】Jenkins教程:https://www.bilibili.com/video/BV1GW411w7pn

尚硅谷】2022版Docker实战教程:https://www.bilibili.com/video/BV1gr4y1U7CY

书籍推荐

【推荐一】《微服务架构设计模式

这一本书教会你如何开发和部署生产级别的微服务架构应用,豆瓣9.1高分优秀书籍

》》【电子书】下载链接:

链接:https://pan.baidu.com/s/1yKV6u1vPgxfvK3_Ch89gkw?pwd=siki 提取码:siki

》》【纸质书】链接http://product.dangdang.com/27860466.html

【推荐二】《凤凰架构:构建可靠的大型分布式系统》

这一本书从架构视角讲解如何构建大型分布式系统,豆瓣9.2高分优秀书籍

》》【电子书】下载链接:

链接:https://pan.baidu.com/s/1qxiZWMafgGFdWY67sj8SQg?pwd=siki 提取码:siki

》》【纸质书】链接:http://product.dangdang.com/29265341.html

面试题

SpringCloud面试题:https://juejin.cn/post/6844904125717544973

RabbitMQ面试题:https://juejin.cn/post/6844904125935665160

Docker面试题:https://www.cnblogs.com/peteremperor/p/14536899.html

Redis面试题:《进大厂系列》系列-Redis常见面试题(带答案) - 知乎

Elasticsearchs面试题:https://juejin.cn/post/6958408979235995655/

阶段七:项目实战

通过以上知识的学习,相信你对Java这门已经有了一定的理解,现在可以开始结合知识做项目了,可以先跟着视频模仿,后面再去看我所分享的开源的项目深入学习

相关资源

项目视频教程

这里的项目选取其中的2-3个学习即可

黑马程序员】生活服务项目-好客租房:http://yun.itheima.com/course/894.html

黑马程序员】金融项目-万信金融:http://yun.itheima.com/course/902.html

黑马程序员】品达通权限系统:http://yun.itheima.com/course/905.html

尚硅谷】《尚医通》Java微服务+分布式+全栈项目:https://www.bilibili.com/video/BV1V5411K7rT

尚硅谷】《尚融宝》Java微服务分布式金融项目:https://www.bilibili.com/video/BV1VV411n7nR

尚硅谷】《尚筹网》Java项实战开发教程:https://www.bilibili.com/video/BV1bE411T7oZ

GitHub优质开源项目分享

1.人力资源管理系统

用于企业人力的管理,不同的用户登录所看到的页面各不相同

仓库文件:https://github.com/lenve/vhr

视频教程:https://mp.weixin.qq.com/s/dcJv6BIVFPnokI8nBf4IrQ

2.云收藏 

用户在线随时随地收藏的一个网站,在网站上分类整理收藏的网站或者文章,可以作为稍后阅读的一个临时存放

仓库文件:https://github.com/cloudfavorites/favorites-web

文档教程:https://github.com/cloudfavorites/favorites-web/wiki

3.V 部落

多用户的博客管理平台

仓库文件:https://github.com/lenve/VBlog

4.【 学之思开源考试系统

包含了学生对于自己的任务、消息、考试的查收与练习,管理员可以布置任务、考试,修改、删除学生信息等

码云文件:https://gitee.com/mindskip/uexam

视频教程:https://ke.qq.com/course/3614230#term_id=103758206

5.电商系统

一套完整的前后台电商管理系统

仓库文件:https://github.com/macrozheng/mall

文档教程:https://www.macrozheng.com/

6.微服务商城系统

在电商业务的基础集成了注册中心、配置中心、监控中心、网关等系统功能

仓库文件:https://github.com/macrozheng/mall-swarm

7.新蜂商城

包括 newbee-mall 商城系统及 newbee-mall-admin 商城后台管理系统,前后台各自包括多个功能模块

仓库文件:https://github.com/newbee-ltd/newbee-mall

视频教程:https://download.csdn.net/learn/26258

8.后台管理系统

国内首个Spring Cloud微服务化RBAC的管理平台,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API 管理等多个模块

仓库地址:https://github.com/wxiaoqi/Spring-Cloud-Platform

文档教程:https://gitee.com/geek_qi/cloud-platform/blob/master/dev-doc.md#cloud-platform

9.eladmin

前后端分离的后台管理系统

仓库地址:https://github.com/elunez/eladmin

文档教程:https://eladmin.vip

阶段八:面试就业

面试的相关经验技巧,了解面试究竟考什么方面、该怎么应对面试

视频教程

【尚硅谷】IT面试技巧\\简历撰写\\就业指导:https://www.bilibili.com/video/BV1o4411p7An

面试官自爆程序员面试技巧:https://www.bilibili.com/video/BV1j44y1r7nd/

文章推荐

1.简历书写

推荐1】Java程序员简历模板:https://github.com/geekcompany/ResumeSample/blob/master/java.md

推荐2】Java面试个人简历:https://blog.csdn.net/qq_38225558/article/details/89489727

2.面试经验

推荐1】斩获 20+ 大厂 offer 的面试经验分享:https://mp.weixin.qq.com/s/HXKg6-H0kGUU2OA1DS43Bw

推荐2】从面试官的角度看面试:https://www.cnblogs.com/lovesqcc/p/15169365.html

推荐3】普通人的春招:https://www.nowcoder.com/discuss/640519

3.就业指导

Java开发工程师就业指导:https://www.cnblogs.com/justdoitba/articles/8067895.html

网盘面试就业相关文件分享

*想要pdf版的小伙伴可以自行下载(包含面试题、简历模板等)

度娘自取链接

链接:https://pan.baidu.com/s/1tGzKljTTJqgTYjKgMoMN3A 提取码:367c

Java 中的 FileLock 在 Docker 挂载卷中不起作用

【中文标题】Java 中的 FileLock 在 Docker 挂载卷中不起作用【英文标题】:FileLock in Java doesn't work in Docker mount volume 【发布时间】:2020-11-11 17:06:39 【问题描述】:

在我的情况下,一些 Web 配置文件是通过 Docker 中的挂载文件夹共享的。在相同的情况下,我们希望同时修改这些文件。这就是为什么我想使用 lock 来确保文件同时被修改一次。但我发现flock 在Docker 中不起作用。不支持吗?

 public void modifyFile() 

    try 
        File file = new File("/tmp/fileToLock.dat");

        // Creates a random access file stream to read from, and optionally to write to
        FileChannel channel = new RandomAccessFile(file, "rw").getChannel();

        // Acquire an exclusive lock on this channel's file (blocks until lock can be retrieved)
        FileLock lock = null;

        // Attempts to acquire an exclusive lock on this channel's file (returns null or throws
        // an exception if the file is already locked.
        try 
            lock = channel.tryLock();
            if (null != lock) 
                List<String> fileToString = FileUtils.readLines(file, StandardCharsets.UTF_8);
                long l = 0l;
                if (null != fileToString && fileToString.size() > 0) 
                    l = Long.valueOf(fileToString.get(fileToString.size() - 1));
                
                l++;
                FileUtils.writeStringToFile(file, String.valueOf(l) + "\r\n", StandardCharsets.UTF_8, true);
            
         catch (OverlappingFileLockException e) 
            // thrown when an attempt is made to acquire a lock on a a file that overlaps
            // a region already locked by the same JVM or when another thread is already
            // waiting to lock an overlapping region of the same file
            System.out.println("Overlapping File Lock Error: " + e.getMessage());
            channel.close();
        

        // release the lock
        if (null != lock) 
            lock.release();
        
        // close the channel
        channel.close();

     catch (IOException e) 
        System.out.println("I/O Error: " + e.getMessage());
    


【问题讨论】:

网络文件锁总是有问题的,我相信FileLock的Javadoc是这么说的。 【参考方案1】:

最后,我只保留文件的任何锁定实现,没有任何 Redis 锁定。

【讨论】:

以上是关于为什么一些人很瞧不起 Java?的主要内容,如果未能解决你的问题,请参考以下文章

类在什么时候加载和初始化

Java swing在Debian 9.2中不起作用

Java -- 每日一问:JVM优化Java代码时都做了什么?

Java基础篇(JVM)——总领

作为一名java开发人员,不了解jvm调优对工作有什么影响?

Java面试笔试:面试为什么需要了解Java虚拟机?