高校招生热点问题
更多>>- 泉州纳税事务和会计事务有区别吗?中职学财
- 当今社会,会计行业因与企业经济利益密切相关而备受关注。其中,纳税和会计事务都...查看更多>>
- 泉州学国际商务专业要学外语吗?需要学生具
- 中国经济发展的过程就是不断对外开放和对外贸易的过程。在国际国内双循环不断完善...查看更多>>
- 泉州计算机与数码设备维修是什么专业?有什
- 科技的发展给生活带来了便利,电脑和数码设备的普及率越来越高,人们的日常生活已...查看更多>>
- 泉州中专学舞蹈毕业可以干什么?有什么相关
- 舞蹈是人类以体育锻炼的形式表达情感的一种方式。如今,人们安居乐业,舞蹈成为人...查看更多>>
经常在知乎上看到一个问题:Java到什么程度才算精通?
今天,我就来重点说说这个问题。其实学习Java的熟练程度并没有定论,也不代表拿着年薪几十万的offer就可以自称熟练。
在我看来,如果你熟悉市面上的这些资料和书籍,并能跻身于所有Java程序员的前0.1%,你就能达到& # 34;精通& # 34;在这个阶段,因为没有人比你强,你当然精通。
所以,我今天列举一些知识点。如果你能掌握并真正理解这些东西,那么你就能掌握这个阶段。
首先要学的是计算机基础知识,因为Java不像Python那么简单,需要一定的基础。如果你上来直接硬Java,那么有90%的几率你会放弃。
因为要想学好Java,你得明白什么是面向对象的设计思想,而这种面向对象的设计思想不是刚开始学编程的新人能熟练掌握的。那么我们该怎么办呢?这不是死路一条吗?
其实如果真的想理解这种设计思路,可以先了解C语言,再学习Java。
为什么?因为C语言是面向过程的,那么什么是面向过程和面向对象的设计思想呢?
我举个例子你就知道了。
从“如何把大象放进冰箱”看面向过程和面向对象的区别:
一、面向过程的
为了把大象放进冰箱,需要三个过程。
想法:
1.打开冰箱门(打开冰箱门)。
2.把大象放进去(开门后,拿到放大象的冰箱)。
3.关闭冰箱门(打开门安装大象后,在门关闭的情况下获取冰箱)。
按照上面的思路,我们可以看到每个过程都有一个阶段性的目标。依次完成这些过程,就可以把大象放进冰箱了。
第二,面向对象
为了把大象放进冰箱,需要三个动作(或行为)。每一个动作都有一个执行者,这个执行者就是对象。
想法:
1.冰箱,给我开门。
2、冰箱,你给我把大象放进去(或者,大象,你给我往冰箱里钻)。
3.冰箱,你给我关上门。
依次完成这些动作,就可以把大象放进去了。
这里我只是举个例子。
好了,那么从现在开始,我们就进入Java的学习环节。
学习Java,我会从三个阶段来介绍,分为初级、中级、高级。
计算机基础
计算机基础包括什么?
计算机组成原理,操作系统,计算机网络,数据结构和算法。
计算机组成原理
先说计算机组成原理,主要涉及
计算机系统概述
数据与运算CPU 概述存储子系统概述总线和 IO 概述Java基金会
初级Java是什么水平?我觉得是了解Java的语法规则和语言特点,有点干巴巴,直接上思维导图!
就这张图,如果你能看懂图中的所有内容,你就可以说你是Java入门了,但是这里要注意一个概念,这并不代表你就是一个合格的初级Java程序员,因为如果你想达到初级Java程序员的水平,你必须会工作,而工作的标准就是你要懂框架,不要着急,后面我们会说。
有人问为什么图中没有并发或者Java虚拟机?这些都是中高级内容。刚开始学Java不需要懂什么并发和JVM!!!
话说回来,怎么才能学习和理解上面的内容呢?接下来,重点来了!!!
如果你能看到这一点,我想你已经养成了每天编程的习惯,现在可以静下心来编程了。
嗯,首先推荐一本非常适合Java初学者的书。
Head First Java
Head First Java是一个完整的面向对象(OO)编程和Java学习指南。这本书是根据学习理论设计的,让你学习编程语言从基础到项目包括线程、网络、分布式程序。更重要的是,你将学会如何像面向对象开发人员那样思考。
视频观看:
https://www . ixigua . com/6798426044178104839
如果你能掌握以上基本内容,我觉得你至少要花3 - 6个月。如果你能坚持下来,我在这里需要鼓励你,但是不要自满,因为这只是比较基础的部分,但是现在你可以说你已经踏入了Java的大门。
关系型数据库
其实MySQL应该和Java基础一起学习。学完Java基础就可以学MySQL了。
这个时候的MySQL指的是MySQL基础,因为MySQL博大精深,要深入理解MySQL并不容易,而我们在Java开发中一般能掌握MySQL到中级水平。
MySQL的初级要求你会写MySQL。这里推荐一个视频教程,从初级到高级!
视频观看:
https://www . ixigua . com/6794696042571891204
MySQL需要掌握的知识点:
MySQL数据库概述及数据准备MySQL安装教程SQL分类MySQL导入数据MySQL数据库表与MySQL表结构MySQL数据库常用命令MySQL查询字段MySQL条件查询MySQL排序MySQL函数MySQL分组函数/聚合函数/多行处理函数MySQL分组查询MySQL连接查询MySQL子查询MySQL UNIONMySQL中limit的用法MySQL表MySQL存储引擎MySQL事务MySQL索引MySQL视图MySQL DBA命令MySQL数据库设计的三大范式高级MySQL内容在工作中慢慢掌握。如果你想成为一个初级的Java程序员,掌握这些内容,并按照这些内容去做,那么你就可以说你的MySQL已经达到了入门水平,你可以学习下面的内容了!!
Javaweb
JavaWeb利用Java技术解决相关Web互联网领域的技术总和。Java提供了解决客户端和服务器端实现的技术方案,尤其是服务器端的应用,如Servlet、JSP、第三方框架等。
对于JavaWeb,我们需要掌握以下知识:
Servlet,JSP,MVC设计模式,Cookie,Session,JavBean组件技术,EL表达式,JSTL表达式,Filter过滤器,监听器,文件上传下载,国际化。
视频观看:
https://www . ixigua . com/6935719174542983718
设计模式
设计模式不是放在这里让你马上学习的(当然你也可以学习,没有人能阻止你学习),因为设计模式涉及到你工作的方方面面。有些设计模式可能在你的生活中用不到,但你需要理解他们的想法,才能写出经过深思熟虑、组织良好的代码。
我给你推荐几本书。你可以读任何一本。
头部优先设计模式
这本书虽然只有14章,但是介绍了全部23种设计模式,每种设计模式都有自己对应的应用案例。它会用幽默的语言描述,一步步揭开设计模式的面纱,告诉你设计模式的演变过程。
读这本书不仅仅是学习知识,而是学习一种思维方式,学习一种认知技能,学习一个成长的阶梯。总之,业余时间看这本书,不亚于把精力放在工作或学习上。
平面设计模式
设计模式更多的是一种想法,而不是一种固定的编码方式,所以不要局限于这些规则。日语写作很受欢迎,容易理解,适合小白。194个图表+Java样本代码= GoF的23种设计模式很容易理解。
这本书用通俗易懂的语言对GoF的23种设计模式进行了逐一讲解。在讲解过程中,不仅配有丰富的图片,而且理论与实例相结合,用Java语言编写设计模式的程序,使程序真正运行起来,并提供运用模式解决具体问题的练习和答案。
此外,本书在必要时补充了Java语言的功能,以加深读者对Java的理解,在学习设计模式的同时复习Java。
这两本书非常适合初学者学习设计模式。
设计模式不适合一口气看完,因为看完几个设计模式你会很容易搞混。相信我,你可以在一周内熟悉一个设计模式,以便在工作中使用。一口气看完所有东西,你会记得对比后面的设计模式,相信我,自己去实践。
Java高级版
高级Java要学的东西很多,涵盖很多方面。接下来和你聊聊。
注意:当你学习了这些高级Java内容,并不代表你就是中级程序员。相反,你需要把这些知识整合起来,应用到项目/实践中去。掌握多少取决于自己。
首先是Java多线程,下面是多线程应该掌握的知识点:
什么是进程、线程?线程和进程的区别?多线程的优势Java中创建线程方法用Runnable还是ThreadJava以及创建线程两种方法对比?Thread 类中的start() 和 run() 方法有什么区别?线程的生命周期java控制线程方法sleep()方法和yield()方法的区别为什么Thread类的sleep()和yield()方法是静态的?sleep方法与wait方法的区别?线程安全问题同步代码块同步方法何时会释放对同步监视器锁定?同步锁(Lock)与死锁说到这里,我推荐几本关于Java并发的书。
Java并发编程实践
不要犹豫,这本书是并发编程之王,也是你必读的书。
国外版的书不会和你讨论任何源代码,只看思路,有了思路,实现就容易了。所以实际讨论并发编程更多的是思路,本书也列举了很多伪代码和应用场景来验证这些思路。
这本书不完全适合国内互联网现状,因为在八股和背书的今天,我想进大厂,成为& # 34;高级程序员& # 34;你需要了解一些八股。
Java并发编程艺术
所以如果你想在中国找工作,那么下面这本书更适合你。别担心我。为什么?阿里写的。
这本书里列举的一些知识点,其实也是各大厂商经常问的,所以这本书值得你仔细研究。
说起来,关于Java并发,你应该掌握的知识点有哪些?
进程和线程的概念Java 多线程基础,Java 线程状态以及线程状态的转换Java 线程间的通信机制理解 Java 内存模型happens-beforevolatile 关键字解析Synchronized 关键字解析CAS 与原子操作AQS 大厂面试必问的 AQS线程池相关原理如果你能理解以上内容,那么你的Java部分已经可以算是高级水平了。可以去大厂面试,问一些八股,多线程问题不大。
虚拟机(Java Virtual Machine的缩写)
Java虚拟机也叫JVM,是判断一个Java程序员的分水岭的关键。如果你想达到中高级Java程序员的水平,那么JVM就是你必须突破和提高的一个点。让我告诉你JVM需要知道什么。
和往常一样,我先给大家介绍几本关于JVM的优秀书籍。
对Java虚拟机的深刻理解
这本书是你的必读之作,作者是我国的周志明。总的来说,国内作者实现较多,专业术语较少。这本书更是通俗易懂。虽然有许多概念,周志明已经给出了例子和解释。
豆瓣能给国内作者打9.5分,可见这本书写得有多好。这本书是一本非常经典的关于JVM的书,是五极力推荐的。
Java虚拟机规范
《Java虚拟机规范》也是周志明翻译的一本书。这本书的权威性是毋庸置疑的。其实是根据Java官方文档写的。可以说,看完这本书,你就可以在面试的时候谈JVM的时候给出一个“官方”的答案,大大增加了你通过面试的几率。
虽然有很多高质量的JVM书籍,但是由于JVM晦涩难懂的技术原理和术语描述,初学者在阅读时很容易放弃。
视频观看:
https://www . ixigua . com/6981367790372389414
主要知识点:
Java 内存划分与内存管理JVM 中的垃圾收集器JVM 性能监控JVM 调优JVM 中的类文件结构JVM 类加载机制JVM 字节码真正掌握以上内容至少需要2 - 3年的时间,并不是说这三年就能学会以上的东西,你还能学会其他的东西。下面我推荐的是你在这个时间段应该掌握的内容。
专家
在学习框架之前,建议你先了解一下Maven是什么,为什么项目要用Maven。
Maven只是给初学者理解的,但是这种优秀的架构是如何简化代码的,如何让我们使用起来更方便,Maven中一些不为人知的秘密。
视频观看:
https://www . ixigua . com/6772335925071446531
接下来该学什么?后是框架!!!作为一个开发,框架是你的武器!!!只是玩玩!抗美援朝战争中,志愿军用轻武器和迫击炮推翻了美军第一骑兵师和第一陆战师的王牌部队。
学习的框架是SpringMVC,Spring,MyBatis。
首先要了解的框架是MyBatis。
米巴蒂斯
开始使用MyBatis
刚开始学MyBatis的时候推荐过这本书。我把书中的内容都打了出来,可以说是一本很有价值的书。
MyBatis从入门到精通从一个简单的MyBatis查询开始,为学习MyBatis搭建一个基本的开发环境。通过全面的样例代码和测试,说明了在MyBatis XML模式和注释模式下添加、删除、修改、搜索的基本用法,并介绍了动态SQL在不同方面的应用以及使用过程中较好的实践方案。为MyBatis的高级映射、存储过程和类型处理器提供了丰富的示例,使读者通过自下而上的方法更好地理解和掌握MyBatis的高级用法,并为MyBatis的代码生成器提供了详细的配置介绍。
这部分MyBatis看视频更容易理解
https://www . ixigua . com/6772337398400418307
那么MyBatis应该掌握什么呢?当然,如果你想知道如何使用MyBatis,只要看视频教程或者MyBatis从入门到掌握这本书就可以了。
MyBatis框架概述MyBatis框架快速入门案例MyBatis框架Dao代理MyBatis框架动态SQLMyBatis配置文件扩展春天
学完了MyBatis,是时候学习我们的核心框架了,Spring。现在春天受欢迎肯定是有原因的,等你上班了就会慢慢体会到它的精髓。
学习春天,我推荐给你的第一本书是《春天在行动》。我觉得就算《学习春天》是更好的书,也没有人。
视频观看:
https://www . ixigua . com/6772336469072675339
关于春天,你需要了解什么?
Spring概述loC控制反转AOP面向切面编程Spring集成MyBatisSpring事务Spring与WebSpring单独使用的场景很少,更多的是作为框架集成使用。Spring的主要特性有两个:IOC容器和Aop。IOC容器是Spring和各种资源集成的基础。可以说,有了IOC的这个特性,就会有bean组装、自动组装等特性,而Aop就是一种降低业务耦合的技术,这样我们就可以用& # 34;第& # 34;查看业务相关性的方法。这两个技术为主,理解Spring也差不多。
Spring MVC
SpringMVC终于来了!!!!对比之后为什么不说SpringMVC?因为Spring MVC实际上是Servlet的一种封装,而Spring MVC处理的对象是HTTP协议,所以你需要在学习Spring MVC之前掌握以上知识。
学习SpringMVC,可以看这个视频
https://www . ixigua . com/6772336921155731976
那么关于SpringMVC需要掌握什么呢?
Spring MVC概述Spring MVC 解析之 DispatcherServletSpring Web MVC-过滤器与拦截器 Handler and FilterSpringMVC全局异常处理SpringMVC 单文件上传与多文件上传SpringMVC上传文件的三种方式SpringMVC中的文件上传与下载Spring MVC打印@RequestBody、@Response日志Spring MVC拦截器实现用户登录权限验证Spring MVC框架原理分析SpringMVC - 视图解析过程RestTemplateSpring MVC中使用RestTemplate访问REST服务详解SpringMVC之Controller常用注解功能全解析MVC设计模式介绍 & SpringMVC实现当您从Java Foundation -& gt;MySQL基础 -& gt;Java web -& gt;my batis -& gt;spring -& gt;学完SpringMVC,我觉得你大概需要1 - 2年的时间。这个时候,你应该可以完成一个小的SSM项目。现在,别忘了继续学习。你应该整合你的知识。可以根据书上的内容搭建一个小项目,或者完成一些SSM的项目,很多Java方向的毕业设计都会在这里完成。
Java毕业设计视频:
https://www . ixigua . com/6969831045722178061
这时候你可以说你可以具备初级Java开发的基本素质,但是你可能还找不到工作。为什么?因为你还没有接触过现阶段比较流行的框架,所以有请大名鼎鼎的SpringBoot。
跳羚
SpringBoot可以说是当今Java领域炙手可热的框架,那么SpringBoot为什么这么火呢?
从设计理念说起
要说Spring Boot为什么这么受欢迎,就要说Spring Boot的设计理念,它奠定了Spring Boot的开发设计基础,也成就了Spring Boot的今天。
Spring Boot的设计理念是什么?
这是约定胜于配置。
约定优于配置不是一个新概念,它是一种软件设计范式,在软件架构设计中已经使用了很长时间。它的功能是减少软件开发人员需要做出的决策数量,并在不损失灵活性的情况下获得简单的好处。
只是Spring Boot把这个设计理念提升到了一个更高的层次。Spring Boot不仅在某个功能上实现了这种设计理念,整个软件系统都在实践约定胜于配置。
Spring Boot系统体现了约定胜于配置的理念,从配置文件到中间件的默认配置再到内置容器以及生态中的各类启动器都遵循这一设计规则。
Spring Boot JPA 80%的查询功能是约定俗成提供的,20%的复杂场景是通过其他技术手段解决的。典型约定优于配置。
Spring Boot启动器,当项目启动时,根据约定的信息加载和初始化组件。因此,在项目中引入启动器后,可以达到开箱即用的效果。
就连春云的设计都借鉴了常规优于配置的理念。很多组件在启动时默认提供了其相关功能,可以让我们的使用达到少配置或者零配置。
所以你只需要重新学习SpringBoot,就可以完成一个初级Java开发的就业要求。所以你一定要学好跳羚。
视频观看:
https://www . ixigua . com/6824729668344611340
其实学习一段时间后,你会发现SpringBoot完全就是一个脚手架,方便我们快速搭建项目,简化配置。您不必编写复杂的XML表达式,而是使用注释来实现它。它们的原理是相似的,除了使用注释可以使你的项目更简洁。
春天的云
Spring Cloud是基于SpringBoot的微服务项目架构。现在大部分互联网公司甚至一些传统行业都开始使用Spring Cloud作为基础架构,有的是为了业务需求,有的是为了装b,反正面试官问你会不会知道Spring Cloud,如果你说不会,印象分就会降低,所以初级程序员多多少少都要了解Spring Cloud。
视频观看:
https://www . ixigua . com/6885622656545391116
杜博
春云之后,怎么能少了Dubbo?
https://www . ixigua . com/6824745322846093838
雷迪斯
Redis可以说是一个受欢迎的NoSQL数据库。你可能不知道Redis是干什么的。我先给你普及一下。
目前常用的两个缓存数据库是Redis和Memcached。与Memcached相比,Redis的特点是支持丰富的数据类型(Memcached只能使用字符串类型)。由于其丰富的数据结构,Redis的应用范围不仅限于缓存,有很多场景都可以通过Redis实现,可以大大减少工作量。
视频观看:
https://www . ixigua . com/6772338007803429387
Nginx
Nginx的基础知识
什么Nginx?
Nginx是一个web服务器,主要处理客户端和服务器的请求分发。
特点和优势:
高并发热部署快低功耗热部署使用和扩展开源和免费的Nginx和商业版Nginx Plus,对应免费的OpenResty和商业版OpenResty。
开源版 http://nginx.org商业版 NGINX Plus阿里巴巴 Tengine开源版 OpenResty商业版 OpenRestyNginx正向代理和反向代理
为了理解,我们先来了解一些基础知识。nginx是高性能的反向代理服务器,那么什么是反向代理呢?
代理是服务器和客户端之间的一层服务器。代理将接收客户机的请求并将其转发给服务器,然后将服务器的响应转发给客户机。
无论是正向代理还是反向代理,都实现了上述功能。
视频观看:
https://www . ixigua . com/6907437541557797390
转发代理
转发是指位于客户端和源服务器之间的服务器。为了从源服务器获得内容,客户端向代理发送请求并指定目标(源服务器),然后代理将请求转发给源服务器并将获得的内容返回给客户端。
转发代理是给我们的,也就是给客户端的,客户端根据转发代理可以访问自己不能访问的服务器资源。
转发代理对我们是透明的,对服务器是不透明的,也就是说,服务器不知道它是从代理还是从真实的客户机接收访问。
反向代理
反向代理是指代理服务器在互联网上接受连接请求,然后将请求转发给内部网络上的服务器,并将从服务器获得的结果返回给互联网上请求连接的客户端。此时,代理服务器对外表现为反向代理服务器。
反向代理服务于服务器。反向代理可以帮助服务器接收客户端的请求,帮助服务器转发请求,平衡负载。
反向代理对服务器透明,对我们不透明,就是我们不知道我们在访问代理服务器,但是服务器知道反向代理在为他服务。
妮蒂
Netty是一个客户机/服务器框架,它使用Java的高级网络功能来隐藏其背后的复杂性,并提供一个易于使用的API。
Netty是一个广泛使用的Java网络编程框架(Netty在2011年获得了杜克选择奖,参见https://www . Java . net/Duke Choice/2011)。它在用户社区中非常活跃,并且还在不断增长,比如脸书这样的大公司,以及InfiniSpan、Hornetq、Vert这样的流行开源项目。x,Apache Cassandra和Elasticsearch,都是用它强大的核心代码进行网络抽象。
饭桶
Git是一个优秀的分布式版本控制平台。当团队或人们联合开发一个项目时,通常使用代码协作。刚开始可能无法理解,也就是说你和同事共同开发一个项目,你们的代码也要放在一起,对方可以看到你提交的代码,你也可以看到对方提交的代码。
不用说,我改了代码发给你了。一方面你知道你改的内容可能有疏漏。有人说,只记录你修改了哪些文件是不够的。但是你这样做的工作量有多少呢?如果您和您的同事更改了同一个文档,会怎么样呢?还要记住同一文档中有多少内容没有被更改?
这样太麻烦,效率太低,所以用Git来解决这种情况。Git是目前大多数企业的选择,但仍有一些传统软件公司使用SVN,这也是一个代码协作平台。我们来详细介绍一下Git:
Git 是分布式的,SVN 是集中式的Git是分布式的,SVN是集中式的这是Git和SVN的一大区别。如果能掌握这个概念,基本上就能理解两者的大部分区别。因为Git是分布式的,所以Git支持离线工作,可以在本地做很多操作,包括接下来会重磅推出的branch功能。SVN必须联网才能正常工作。
Git有很多复杂的概念,而SVN简单易用
所有同时掌握Git和SVN的开发者都必须承认,Git中的命令太多,需要掌握Add、Commit、Status、fetch、Push、rebase等。为了熟练掌握它们,他们还必须掌握Rebase和merge、Fetch和pull等之间的区别。此外,还有樱桃采摘,子模块,隐藏等功能。只是这些条款听起来很不错。
在易用性方面,SVN会好很多,简单易用,对新手友好。但是另一方面,Git命令意味着许多功能。如果我们能掌握Git的大部分功能,理解其中的奥妙,我们会发现我们再也回不到SVN时代了。
Git分行便宜,SVN分行贵
在版本管理中,分支是一个非常常见的功能。在版本发布之前,需要发布分支,进行大需求开发,需要特性分支,大团队也会有开发分支和稳定分支。在大型团队开发过程中,经常需要创建分支和切换分支。
Git分支指的是提交,而SVN分支指的是复制的目录。这个特性使得Git的分支切换非常快,创建成本非常低。
Git有地方分行,SVN没有地方分行。在实际的开发过程中,我们经常会遇到一些未完成的代码,但又急需处理其他问题。如果我们使用Git,我们可以创建一个本地分支来存储未完成的代码,然后在问题解决后回到本地分支来完成代码。
视频观看:
https://www . ixigua . com/6903813762755592716[/S2/]
学习Git的方法有很多,但重要的是你去实践。无论是看书,还是按照教程做练习题,都需要再练习一遍,差不多就可以用Git了。
经过比较,提出了几点建议:
学编程,记住两个字:“戒贪”!
但是我已经学了一半了,想学点别的技能再学完。
这是非常致命的!学习一定要脚踏实地!
为什么这么说?因为我自己也吃过这种亏,所以就大嘴巴了。
给自己一个目标,或者一个项目,在完成之前不要想别的。道理和爬山一样。学完了再去学别的吧!
- 2023-07-07 泉州纳税事务和会计事务有区别吗?中职学财会有前途吗?
- 2023-06-17 泉州学国际商务专业要学外语吗?需要学生具备什么品质?
- 2023-06-17 泉州计算机与数码设备维修是什么专业?有什么就业岗位?
- 2023-06-17 泉州中专学舞蹈毕业可以干什么?有什么相关专业?
- 2023-06-17 泉州淡水养殖要学什么内容?学生好就业吗?