学好Java的一套方式,跟着我的步骤走下去,或许能进大厂

[复制链接]
天天尿床 发表于 2023-8-12 19:37:24|来自:四川宜宾 | 显示全部楼层 |阅读模式
我曾在去哪儿网做过 Java 开发,也曾拿过腾讯T8的offer和饿了么、华为等公司的offer,职位都是 Java开发工程师,期间也面试过不少同学,所以我有这样的经历,可以给大家分享一下我的学习经验。
我会从Java基础部分、主流框架计算机基础以及Java工程实践这四个方面来进行叙述,还会给大家推荐一些比较经典的书籍配合学习,都是我自己亲自阅读过的,有很强的提升作用。


一、Java 基础部分


  • 基础语法
  • 流程控制
  • 数组
  • 面向对象
  • 异常处理
  • 集合与队列
  • I/O
  • 多线程
  • 网络编程
  • 虚拟机
推荐书籍:


  • 《Java核心技术1》
  • 《Java核心技术2》
  • 《Java并发编程实战》
  • 《Java并发编程的艺术》
  • 《Java网络编程》
  • 《Java网络编程精解》
  • 《深入理解Java虚拟机》
  • 《深入分析Java  Web技术内幕  修订版》
完整的书单以及全文涉及的视频学习教程,还有我所有的Java学习笔记,可以点击下面的插件获取,这是我建立的Java交流学习群,想要学好Java,并且想要进入大厂的同学,可以加入我的群进行学习,我会定期给大家推荐大厂的实习offer。

二、Java 框架



1. Netty
做Java开发的如果不了解Netty框架,那基本很难成为高级开发者,我们平时虽然不会直接用到Netty,但是我们常用的框架底层基本都是Netty,所以学习Java的同学,必须首先要熟练了解Netty。

2. SSM 框架
目前Java开发的主要流行框架就是SSM整合框架,就是Spring + SpringMVC + MyBatis。SSM框架的书籍没什么好推荐的,我建议大家结合一些视频进行学习,可以点击我上面的插件加群进行获取。
三、学习 Java 注意事项


  • 尽量不要机械式的死记硬背知识点,想要卷的过别人,就要深挖一些Java背后运行的原理。
  • 建议多看看Java经典项目的源码,XXXX管理系统已经烂大街了,面试基本没什么竞争力。
  • 多写代码才是能学好Java的关键,光看视频没有用,跟着书上的代码都敲下来,代码写的多了,水平自然就会上去。
  • 不要一个人闭门造车,你遇到的问题,在之前都已经被解决过,多跟比你强的人沟通交流,才会使你快速的进步。
四、计算机基础原理


想要进大厂,不仅仅需要你把Java语言学好,还会考察你的计算机基础掌握的如何,对于想要进大厂的同学、计算机网络,计算机组成,操作系统,算法,数据结构是必须要熟练掌握的。对基础知识的掌握程度决定着技术这条路将来能走多远,且新技术不断产生,根本学不完,而掌握基础原理可以以不变应万变。

1、算法与数据结构
建议你每周都去牛客和力扣上刷几道题,做到常见的算法和数据结构的问题都可以对答如流。如果你是应届生,毕业求职的时候可以轻松拿到一些大厂的offer,走社招的话,这部分也是非常重要的加分项。

推荐书籍:



  • 《数据结构与算法分析》
  • 《算法导论》
  • 《大话数据结构》
  • 《编程之美》
  • 《剑指offer》
我目前人就在大厂做开发,同时也担任面试官的角色,我分享一下我的算法题库 + 整理了一些常见的大厂算法题与面经,需要的同学可以点击下面插件加我的Java交流群进行获取。



2、操作系统
我的建议学习操作系统知识时,不一定要看完所有操作系统书籍,但一定要将一些基础概念,如进程、线程、内存模式等看懂理清。推荐去看一下《现代操作系统》,这本书同时涉及到了 Windows 和 Linux 两个操作系统平台,用各种辅助工具剖析了程序从源码到二进制文件再到装载到进程地址空间里面的各个细节,甚至连进程地址空间中的堆结构、栈结构也分析得清清楚楚,同时也分析了 C Runtime(CRT)、glibc 这样的操作系统接口库的原理和执行逻辑,是一本实实在在帮你实战操作系统原理的好书
3、计算机网络
我们现在学习计算机网络,除了要掌握网络的基础知识外,还要熟悉网络编程。推荐你去看《计算机网络:自顶向下方法》这本书。网络编程方面的实战书我推荐《TCP/IP 网络编程》,这本书也适合无任何 Socket API 编程经验的小白,这本书涵盖从基础的 Socket API 到高级的 IO 网络模型,有非常详细和生动的例子。
4、数据库

  • 熟悉基本 SQL 操作 包括增删改查(insert、delete、update、select语句),排序 order,条件查询(where 子语句),限制查询结果数量(LIMIT语句)等
  • 稍微高级一点的 SQL 操作(如 Group by,in,join,left join,多表联合查询,别名的使用,select 子语句等)
  • 索引的概念、索引的原理、索引的创建技巧
  • 数据库本身的操作,建库建表,数据的导入导出
  • 数据库用户权限控制(权限机制)
  • MySQL的两种数据库引擎的区别
  • SQL 优化技巧
    以上属于对开发的基本的数据库知识要求,推荐一本入门级的数据库书籍《MySQL技术内幕》
想要成为Java高级工程师,除了以上要求外,还要熟悉高可用 MySQL、主从同步、读写分离、分表分库等技术,它们是你成为高级技术专家的必备知识。我在实际面试中,在讨论高可用服务方案时,一般面试者也会和我讨论到这些,但是大多数面试者只知道大致思想,细节往往都不懂。

推荐书籍:



  • 《高性能 MySQL》
  • 《MySQL 排错指南》
  • 《数据库索引设计与优化》
5、计算机组成原理
我推荐去看《编译系统透视:图解编译原理》和《计算机组成与设计:硬件软件接口》这两本就够了。
以上所有电子书都可以点击上面的插件加群进行获取。

五、Java 工程实践与代码规范



Java 是一门面向对象的编程语言,会使用大量的设计模式,如果你想写出道高效的代码,只有基础知识是不够的,建议你还得学习一些 Java编码技巧和工程实践方面的知识。

推荐书籍:  


  • 《Effective Java》
  • 《阿里Java开发手册》
  • 《重构_改善既有代码的设计》
  • 《大话设计模式》

代码规范与风格优化
《重构:改善既有代码设计》《代码整洁之道》这两本书大家一定要去看一下,绝对可以大幅度提高你实际编码的技巧和编码的风格。

五、面经与刷题
我根据自己当面试官和面试者的经验整理一套 Java面经和面试题,现在分享给你。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
全部回复4 显示全部楼层
xingke 发表于 2023-8-12 19:38:06|来自:四川宜宾 | 显示全部楼层
cnz1035 发表于 2023-8-12 19:38:33|来自:四川宜宾 | 显示全部楼层
[赞同]你真是见缝插针
wang4444 发表于 2023-8-12 19:39:05|来自:四川宜宾 | 显示全部楼层
干嘛动不动就卖课啊
wushuhong 发表于 2023-8-12 19:39:58|来自:四川宜宾 | 显示全部楼层
这都能进来卖?

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则