如何快速入门 Java?-程序员宅基地

技术标签: jvm  java  Java进阶之路  intellij-idea  

在一线互联网公司做开发 13 年了,“精通”Java,“吊打”一众面试官,如何快速入门 Java,对我来说简直就是小儿科,相信看完后你一定能收获满满、醍醐灌顶,今年秋招拿下阿里、美团等互联网大厂的 offer。

逼装完了,我们开始。

一、劝退下

先来一张劝退型的思维导图吧,我之前根据 hollis 的成神之路手绘的。

如果看了这张图,你已经被成功劝退,那么恭喜你,你真的不用再浪费时间了,因为计算机专业现在已经是风口浪尖,如果你没有恒心,没有毅力,那不如不入门,直接去炒股,说不定还能发大财!

如果你没有被劝退,那么,恭喜你,年入 20 万+的工作即将摆在你的面前,当然了,如果你连 20 万都看不上,至少要 30 万,那么再次恭喜你,你是一名不可多得的天才!阿里、美团的大厂 offer 已经在来的路上了。

二、安装环境

工欲善其事必先利其器,战斗之前我们要先配备好武器。

第一,安装 JDK。

JDK 是 Java Development ToolKit 的简称,也就是 Java 开发工具包。JDK 是整个 Java 的核心,包括 Java 运行环境(Java Runtime Envirnment,简称 JRE),Java 工具(比如 javac、java、javap 等等),以及 Java 基础类库(比如 rt.jar),学习 Java 之前必须要安装。

建议入门安装 JDK8(尽管最新的正式版是 Java 17,但依然推荐 Java 8,源码容易懂)。

Windows 用户和 macOS 用户的安装手册我帮大家已经写好了,可以直接戳下面这个链接。可以图形化界面安装,也可以在命令行像黑客那样安装。

Windows和macOS下安装JDK教程:原生安装与包管理器(高级)

安装完,在终端可以敲 java -version 查看是否配置成功。

第二,安装 Intellij IDEA

IntelliJ IDEA 简称 IDEA,是业界公认为最好的 Java 集成开发工具,尤其是在代码自动提示、代码重构、代码版本管理、单元测试、代码分析等方面有着亮眼的发挥。

IDEA 产于捷克,开发人员以严谨著称的东欧程序员为主,分为社区版和付费版两个版本。如果只是学习 Java SE 社区版就足够用了。想要更多功能的话,比如说 Spring initializr 功能,需要下载付费版。

提升Java开发效率:在macOS和Windows上轻松安装Intellij IDEA

安装成功后,打开项目,可以看到是这样的。

第三,安装 Copilot

GitHub Copilot 是一个基于 AI 的代码自动完成工具,由 GitHub 和 OpenAI 共同开发。Copilot 可以直接集成在 Visual Studio Code 编辑器中或者 Intellij IDEA 中。帮助程序员更快、更轻松地编写代码。

对新手极为重要哈。

Intellij IDEA 打开 技术派 的源码,当我敲下注释“启动”,然后 Copilot 就直接帮你生成对应的代码 SpringApplication.run(QuickForumApplication.class, args); 了,是不是超级方便?超级智能!

第四,搞个 ChatGPT 账号

ChatGPT 就不用我多说了吧?新手不会写代码,直接问 ChatGPT 啊!

三、入门 Java

“冰冻三尺非一日之寒”,要想把 Java 学好,还是需要花费一番功夫的。Java 语言的知识点非常多,而我们又时间紧迫,意味着只能挑重点、挑实用,不能面面俱到,一些不常用的知识点可以直接 pass 掉,比如说 swing、JSP 这些有些垃圾学校还在教的东西

给大家推荐一份 GitHub 星标 8000+ 的开源知识库《二哥的 Java 进阶之路》,能在 GitHub 取得 8000+ star 品质是有目共睹的,尤其是国内还有不少小伙伴在访问 GitHub 的时候很不顺利。

总体的内容包括 Java 概述、语法基础、数组&字符串、面向对象编程、集合框架、IO、异常处理、常用工具类、Java 新特性、网络编程、NIO、并发编程、JVM、重要知识点等等。

这是地址:

https://github.com/itwanger/toBeBetterJavaer

展示一下内容吧!

我把目录也全部贴过来,方便小伙伴查看。

Java概述及环境配置

Java基础语法

数组&字符串

Java面向对象编程

集合框架(容器)

Java IO

异常处理

常用工具类

Java新特性

Java网络编程

Java NIO

重要知识点

Java并发编程

Java虚拟机

四、入门 Java 后

Java 的整个技术栈包含的内容非常多,可不只是局限于 Java 这门编程语言,我挑一张简历上的专业技能来做一下说明吧!

这篇的主题是入门,所以我这里不会讲太深入。对于新人来说,最重要的是掌握 Java 后端开发四大件,Java 基础、Spring Boot、MySQL、Redis。

Java 基础前面已经说过了,接下来只说另外三件。

学习 MySQL,这个你可以看二哥总结的MySQL 学习路线:

https://github.com/itwanger/toBeBetterJavaer/blob/master/docs/xuexiluxian/mysql.md

面试造火箭,工作拧螺丝,虽然日常开发中,大部分人也就写写 SQL 就行了,但不好意思,面试中(或者你想成为 MySQL 方面的专家)99% 的情况下,还是会被问到原理的,比如说索引、锁、日志、引擎等。

举一些例子:

1、一条 SQL 是如何执行的?也就是说,从MySQL 客户端执行了一条 SQL 语句,MySQL 服务端会进行哪些处理。

2、索引相关:索引是如何实现的?MySQL 的索引采用的哪种数据结构?哈希索引和 B+ 树索引的区别是什么?

3、事务相关:事务的四大特性是什么?什么是幻读、脏读、不可重复读?、MVCC 了解吗?怎么实现的?

4、锁相关:表锁、行锁、意向锁、乐观锁、死锁,这些锁主要是用来解决什么问题的?

5、日志相关:MySQL 日志文件有哪些?binlog 和 redo log 有什么区别?redo log 是怎么刷入磁盘的呢?

6、高可用/性能相关:数据库读写分离了解吗?读写分离是如何实现的?主从复制的原理了解吗?分库分表了解吗?

7、SQL 优化相关:慢 SQL 如何定位?如何优化慢 SQL?

学习 Redis,看这个 Redis 的学习路线:

https://github.com/itwanger/toBeBetterJavaer/blob/master/docs/xuexiluxian/redis.md

Redis 不管是在社招/校招面试中,被问到的频率都非常高;在日常开发中,Redis 的使用频率也非常高,几乎是 Java 后端开发必须掌握的技术栈,所以 Redis 也被二哥归纳到了Java 后端四大件中。

就给大家一张思维导图感受一下吧。

学习 Spring Boot,先用思维导图列一下 Java 后端开发会学到的内容(没有最强,只有光头强):

学 Spring Boot 这块,最重要的是实战,这里给大家推荐一个非常优秀的开源项目:技术派。

这是一个基于 Spring Boot、MyBatis-Plus、MySQL、Redis、ElasticSearch、MongoDB、Docker、RabbitMQ 等技术栈实现的社区系统,采用主流的互联网技术架构、全新的UI设计、支持一键源码部署,拥有完整的文章&教程发布/搜索/评论/统计流程等,代码完全开源,没有任何二次封装,是一个非常适合二次开发/实战的现代化社区项目 。

代码严格按照大厂的规范要求来,组织结构清晰、项目文档齐全、代码注释到位,你想学不到知识都难!

只要你本地安装好 JDK 8(以上版本均可),MySQL(5.x/8.x+),配置好 Maven,导入项目源码后,直接运行 main 方法就可以轻松在本地跑起来,你甚至不需要额外手动创建数据库,不用在浏览器地址栏键入 localhost:8080,只要轻轻一点控制台提供的链接就可以访问了。

GitHub 仓库:https://github.com/itwanger/paicoding

瞅瞅这首页,清新、高级、上档次!

配套的教程写得特别用心,这篇《高并发限流》近万字,手绘图也是毫不吝啬。

技术派能让你学到什么?

这绝不是我在口嗨哈,给大家看一下我们的系统架构图,就知道我们有多用心。

学完技术派,吃透 Java 基础+MySQL+Redis,你就可以放心大胆的秋招投简历,拿 25 万+ 的 offer 了!

如果你已经掌握了 Java 基础、Spring Boot、MySQL、Redis,并且想进一步提升,我推荐你学习以下内容:

  • 分布式系统开发。掌握分布式系统的原理、设计模式和常用技术(例如 Dubbo 和 ZooKeeper),能够完成分布式系统的设计与开发。推荐阅读《分布式系统原理》和《分布式服务框架原理与实践》。
  • 高并发编程。掌握高并发系统的设计和优化,了解常见的高并发问题和解决方案。推荐阅读《高性能MySQL》和《深入理解Java虚拟机》。
  • 大数据技术。掌握 Hadoop、Spark、Flink 等大数据技术,能够完成大数据处理、分析和挖掘。推荐阅读《大数据处理技术》和《Spark快速大数据分析》。

这些学习方向并不是必须掌握的,但是它们将为你的职业发展提供更多的机会和挑战。

开始行动吧?或者偷偷地收藏一下?

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qing_gee/article/details/130736088

智能推荐

遗传算法得到最优目标值及最优个体,一次迭代即产生子代1_遗传算法中最优个体是什么-程序员宅基地

文章浏览阅读1k次。import mathimport randomfrom random import sampleimport numpy as npfrom numpy import *import geatpy as eaimport xlrd##已知数据q1='F:\共享车选址调度\共享汽车数据\候选点之间的OD(13).xlsx'T1='F:\共享车选址调度\共享汽车数据\候选点之间的..._遗传算法中最优个体是什么

springboot整合微信支付笔记_cn.springboot.bestpay-程序员宅基地

文章浏览阅读1.1k次。先来看一下微信支付的流程,可见在整个支付流程中后台需要处理的事情有:1、调用统一下单api2、生成JSAPI页面调用的支付参数,并请求支付3、异步通知商户支付结果4、返回微信异步通知的处理结果下面来实际编程实现以上的过程,这里面我们使用了第三方Sdk,best-pay-sdkhttps://github.com/Pay-Group/best-pay-sdkmaven引入依赖 ..._cn.springboot.bestpay

【Linux】进程_linux so 入口函数-程序员宅基地

文章浏览阅读527次。首先通过图右边的文件编译过程,生成 so 文件和可执行文件,放在硬盘上。下图左边的用户态的进程 A 执行 fork,创建进程 B,在进程 B 的处理逻辑中,执行 exec 系列系统调用。这个系统调用会通过 load_elf_binary 方法,将刚才生成的可执行文件,加载到进程 B 的内存中执行。_linux so 入口函数

大屏可视化之适配和布局_大屏还原ui适配宽度-程序员宅基地

文章浏览阅读5k次,点赞5次,收藏53次。前言在做可视化大屏的时候,我们首先要保证UI图的比例不变,例如16:9的UI图,但大屏的比例可能是2:1,很多时候大屏的比例往往很少能与UI图的比例一模一样的,这个时候我们就要利用公式换算来适配大屏。例如16:9的UI图:适配大屏当页面首次加载时,判断视口的宽高,如果视口的宽/高 > 16/9 则说明视口宽度比较设计图宽,实际的显示宽度应该等于视口的高度*16/9。如果视口的宽/高 < 16/9 则说明视口高度比设计图高,实际的显示宽度应该等于视口的宽度,显示高度应等_大屏还原ui适配宽度

centos7挖矿病毒(xmrig,javs)清理_xmrig miner怎么彻底清除-程序员宅基地

文章浏览阅读3.3k次。1. 查看计划任务ls /var/spool/cron删除异常任务其配置项。如果当前系统之前并未配置过计划任务,可以直接删除计划脚本目录即可:rm -rf /var/spool/cron/*2. 查看密钥认证文件删除木马创建的密钥认证文件,如果当前系统之前并未配置过密钥认证,可以直接清空认证存放目录:rm -rf /root/.ssh/*如果有配置过密钥认证,需要删除指定的黑客创建的认证文件即可。3. 修复 SSH 配置项一般默认脚本中进行修改的 PermitRootLogin、R._xmrig miner怎么彻底清除

随便推点

如何用python进行数据预处理_Python数据预处理-程序员宅基地

文章浏览阅读2.3k次。数据预处理是指在对数据进行数据挖掘之前,先对原始数据进行必要的清洗、集成、转换、离散和规约等一系列的处理工作,已达到挖掘算法进行知识获取研究所要求的最低规范和标准。通常数据预处理包括:数据清洗、数据集成、数据变换、数据规约。一:数据清洗数据清洗是填充缺失数据、消除噪声数据等操作,主要通过分析“脏数据”的产生原因和存在形式,利用现有的数据挖掘手段和方法去清洗“脏数据”,将“脏数据”转化为满足数据质量..._python数据预处理

华为鸿蒙系统支持批次,机型正式确认,鸿蒙OS 2.0第一批名单曝光!花粉:华为不够厚道...-程序员宅基地

文章浏览阅读96次。原标题:机型正式确认,鸿蒙OS 2.0第一批名单曝光!花粉:华为不够厚道最新消息:华为的鸿蒙OS2.0暂定在12月18日开放Beta测试版本,明年一二月份将面向部分手机用户提供升级渠道(机型下方公布),与此同时,华为方面表示,市面上百分之九十的华为机型都可以升级鸿蒙。 鸿蒙姗姗来迟‍从去年开始,中国的手机用户就在期待华为自家的手机操作系统,鸿蒙OS已经不只是简简单单的代表一个自研的操作系统了,它更..._鸿蒙开放批次

计算机遵守谁提出的基本原理,2010年全国自考计算机网络基本原理模拟试卷(十)及答案.doc...-程序员宅基地

文章浏览阅读97次。2010年全国自考计算机网络基本原理模拟试卷(十)及答案更多优质自考资料,请访问自考乐园俱乐部/club/53463892010年全国自考计算机网络基本原理模拟试卷(十)一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1.在公开密钥密码体制中,()A.加密密钥能用来解密B.加密密钥不能..._ansi的高级通信控制过程adccp是

基于C#的波形显示控件的实现_kaic_c# 波形图控件-程序员宅基地

文章浏览阅读410次。开发完成后的波形显示控件,可以快速嵌入到.NET平台下的软件工程中,开发者只需简单的操作,就可以使用该控件友好地显示波形数据,从而达到快速开发的目的。本文先介绍了.NET平台下用户控件开发的基本方法,以及用C#描述的GDI+图形开发技术,然后提出一种基于C#的波形显示控件的设计思路,并对波形坐标值转换、坐标标尺、工具栏、局部放大等具体的设计细节进行详细解析。该波形显示控件能够根据当前要显示的波形数据的值,自动选择最佳的坐标范围,来直观地在控件的波形显示区域显示完整的波形曲线。关键词:波形显示控件;_c# 波形图控件

c语言考试程序改错只要结果对吗,计算机等级考试二级C语言程序设计第17章上机指导.ppt...-程序员宅基地

文章浏览阅读338次。计算机等级考试二级C语言程序设计第17章上机指导第17章 上机指导 17.1 上机考试简介   上机考试包括三个部分:程序填空题、程序改错题和程序设计题。填空和改错部分如果有指定的结果输出文件时,只要运行结果正确即可得满分,如果运行结果有错误或无结果文件输出时,则上机考试系统将对其修改或填充部分进行检测,如果其内容全部正确,则也可以得满分,如果部分正确,则按比例进行给分。而程序编制、调试运行类..._计算机二级c语言改错如果运行结果正确

java netty html,Netty框架的理解和简单使用-程序员宅基地

文章浏览阅读93次。Netty是什么Netty是一个高性能的异步的,基于事件驱动的NIO框架,它是JBOSS提供的一个开源框架,用以快速开发高性能,高可靠性的网络服务器和客户端程序。netty的架构 Netty官网https://netty.io/index.html 这里可以找到jar包或者maven依赖类似框架Apache 的 Minajava和nettyJava使用netty,建议jdk版本为1.5以后的,这是..._netty-codec-4.1.33.final.jar作用