首页 文章详情

一不小心,知乎炸了!

路人甲Java | 1057 2021-07-11 00:24 0 0 0
UniSMS (合一短信)

来自公众号:沉默王二

前段时间在知乎上回答了一个问题:如何看待一些大学生说 3 天学会了 Java

结果万万没想到,这个回答竟然火了,第一天就涨了 1000 多赞,目前累计 3167 赞!在知乎经常回答问题的大佬应该知道,计算机领域的回答能上千赞就非常不容易。关键是,这个回答得到了很多同学的认可和称赞!

所以借这个机会,在公众号再发一遍。看过的同学请自觉假装自己没看过,权当是一次知识的温习,哈哈哈😆

以下是原文。


如何看待一些大学生说 3 天学会了 Java?我就是呀!这有什么难的?

3 天,也就是 3*24 个小时,72 个小时啊,完全能学会!

01、第 1 个小时,环境和工具准备

  • 准备一台电脑,要能联网
  • 下载、配置 Maven
  • 下载、安装 IntelliJ IDEA
  • 准备一个 GitHub 仓库(或者码云),管理 Java 源代码

Java 是一门计算机编程语言,学它的话,连台电脑都没有,学个屁。有了电脑,还得联网,遇到问题的时候就问搜索引擎,推荐谷歌和必应,搜索引擎用得好,几乎没有解决不了的问题。

Maven 是需要提前安装和配置的,因为后面进阶的话,需要一些练手项目,它们通常都需要 Maven 来加载第三方类库。

敲代码就用 IntelliJ IDEA 吧,千万别用记事本,否则 3 天时间真学不会!有了 IDEA,连 JDK 都可以直接下载了,舒服啊!后面学习源码的话,还可以直接反编译字节码。什么?英语功底不行,安装这两款 IDEA 插件啊:中文汉化包和 translation 翻译插件

为什么还需要 GitHub 仓库或者码云仓库呢?它们可以用来在线云同步源代码,防止版本丢失。学到最后,还可以形成一套自己的工具库,轮子就有了,上班的时候工作效率就会高很多,能直接用的代码再也不用重新写了。

02、第 2 - 12 个小时,Java 基础入门

1)基本数据类型

2)操作符

  • 算术运算符
  • 逻辑运算符
  • 比较运算符

3)流程控制语句

  • 条件分支 「if/else/else if、三元运算符、switch
  • 循环或者遍历(for、while、do-while)
  • break 和 continue

4)包

  • 创建包
  • 导入包
  • 包全名

5)main 方法详解

6)数组

7)注释

8)字符串

03、第 13 -20 个小时,Java 核心技术

1)面向对象

2)常用工具类

3)集合框架

4)反射机制

5)异常处理

6)注解

7)IO 流

  • 字符流、字节流
  • 输入流、输出流
  • 同步、异步
  • 阻塞、非阻塞
  • BIO、NIO 和 AIO
  • NIO 2.0

8)序列化

9)泛型

10)单元测试

11)编码方式

  • ASCII
  • Unicode
  • UTF-8
  • GBK、GB2312
  • 如何解决乱码问题

12)并发编程

  • 什么是并发
  • 什么是并行
  • 什么是线程
  • 什么是进程
  • 线程的状态
  • 线程的优先级
  • 创建线程
  • 创建线程池
  • 什么是线程安全
  • 多级缓存和一致性问题
  • CPU 时间片和原子性问题
  • 指令重排和有序性问题
  • 线程安全和内存模型
  • happens-before
  • 可重入锁
  • 阻塞锁
  • 乐观锁
  • 悲观锁
  • 分布式锁
  • CAS
  • ABA
  • 偏向锁
  • 轻量级锁
  • 重量级锁
  • 自旋锁
  • 什么是死锁
  • 如果避免死锁
  • synchronized
  • volatile
  • ThreadLocal
  • Executors
  • CountDownLatch
  • Thread
  • Runnable
  • Callable
  • ReentrantLock
  • ReentrantReadWriteLock
  • Atomic 相关类

13)Java 新特性

04、第 21 -24 个小时,JVM 和性能优化

1)JVM

2)性能优化

  • 使用单例
  • 使用线程池
  • 减少上下文切换
  • 减小锁粒度
  • 数据压缩
  • Stream 并行流
  • GC 调优
  • JVM 内存分配调优
  • btrace

05、第 2 天,补充基础知识

1)设计模式

  • 设计模式的六大原则
  • 创建型设计模式(单例、抽象工厂、建造者、工厂、原型)
  • 结构型设计模式(适配器、桥接、装饰、组合、外观、享元、代理)
  • 行为型设计模式(模板方法、命令、迭代器、观察者、中介者、备忘录、解释器、状态、策略、责任链、访问者)
  • 单例的七种写法

2)数据结构和算法

3)操作系统

  • Linux 常用命令(find、top、tar、move、grep、tail、netstat、curl、wget、ping、ssh)
  • 服务器性能指标(qps、CPU 利用率)
  • 进程同步
  • 分段和分页
  • 虚拟内存和主存

4)网络安全

  • CSRF
  • XSS
  • SQL 注入
  • 加密和解密(对称加密、非对称加密)
  • MD5、SHA1、DES、RSA
  • DDOS 攻击
  • HTTP 和 HTTPS
  • SSL
  • TLS
  • TCP 和 UDP
  • Cookie、Session
  • CDN
  • DNS

5)数据库

  • MySql
  • 索引
  • 存储过程
  • 分库分表
  • binlog
  • 读写分离
  • 数据库缓存(RedisMongoDB
  • 数据库中间件(MyCat)
  • 数据库连接池(Durid)

6)大数据

  • 搜索(Elasticsearch 、Solr)
  • 流式计算(Storm、Spark、Flink)
  • Hadoop

7)服务器

  • Tomcat
  • jetty
  • Nginx

8)框架

  • Spring
  • MyBatis
  • Spring MVC
  • Spring Boot
  • Spring Security
  • Spring Cloud
  • Netty
  • Dubbo

9)消息队列

10)容器

  • Docker
  • K8s

06、第 3 天

前半天刷面试题和算法题,听说 GitHub 上有一份星标 10W+ 的 Java 面试刷题攻略,用量子读书法快速过一遍

GitHub标星10W+,有了这份Java面试攻略,和面试官硬刚没毛病

还有这份 LeetCode 刷题笔记,整整 300 多道,关键是纯 Java 版的,对于我们 Java 程序员来说,用自己熟悉的编程语言真的能提高刷题的幸福指数。想去大厂的话,算法是必须刷的。

真的是图文并茂,不只是干巴巴的解题代码,可以直接点击领取吃完 300 道 LeetCode 题后,我胖得快炸了!with Java

后半天准备简历,入职 BAT 大厂!

入职阿里后,才知道原来简历这么写


“什么?”

“吹牛皮!”

“你说什么?再说一遍?”

“你丫的在吹牛皮!”

“你丫的才吹牛皮呢,信不信老子踹你一脚!”只听咣当一声,我感觉脚指头要断了,原来我踹到墙了!!!!!!!!!!!!疼啊。

“兄弟,你刚刚在干嘛?没事吧你?醒醒!你吓我一大跳!”睡在我下铺的兄弟,少博关心地问。

“疼疼疼疼。。。。。。。别动,疼。。。。。”我摸着脚指头哭着说。

有一说一,真没想到这篇回答能成为高赞,挺惊喜挺意外的。评论区还有同学说,“二哥,你可以去写小说了”,你别说,还真有点微小说的雏形,哈哈。

重磅!程序员交流群(无广告)已成立

在群里和大家分享一些程序员开发相关的知识,包括部分自己的实战项目,基础入门知识,spring,jvm,mysql等等。也会免费分享一些Java视频教程、电子资料、Mysql资料、Kubernetes及最新Java面试资料

同时为了帮助到其他技术栈 小伙伴,我也准备了一些Python,前端,Linux,C语言等其他技术资料!

有兴趣入群的同学,可长按扫描下方二维码添加微信

一定要备注:Java,可更快被通过且邀请进群


good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter