Java 复习计划
前言
打算下学期开学,也就是九月份,去找实习,现在还有三个月时间。(然而还在天天玩 Python。。)
定个复习计划。
1. 基础
- 并发:Java并发编程实战
- [ x ] SQL:MySQL,看看书,上 LeetCode 刷刷题。
- 设计模式:学一学常见的八九个就行。
必须要掌握的工具:
- [ x ] git: git 一段时间没复习,感觉很多东西都记不太清了。。
- [ x ] 项目构建: gradle, 另外 maven 也要会复制粘贴。。
- Junit: 要记得写测试,人不能太懒啊
- 日志:slf4j、log4j/logback
2. Web 框架
这是要干点实事了。
- Spring: 依赖注入、面向切面,再稍稍复习一下。
- Spring MVC
- Mybatis: 数据库框架。小项目也可以直接用 Spring JPA,更简单轻量级。
- Mockito: 做Web肯定少不了模拟测试了。
前端:Html JS Css。。
虽然使用上述框架时,几乎不需要了解底层,但是底层也是要复习的:
- jdbc: 原生的 jdbc 真的很啰嗦,可拿来和 Spring JdbcTemplate 比较一下。
- servlet: Java Web 的核心。相当于 http 服务器端的一个实现规范。
- tomcat: 它是 servlet 规范的一个实现,此外还有个 jetty 也很有名。
做上一两个小网站后,可以复习下 Spring Boot,体验一下约定优于配置的便捷。
3. 再复习基础
找工作的话,好像就喜欢问基础题。
- 泛型:类型擦除、通配符、extends/super 等。
- 集合框架源码,同时复习下算法和数据结构。好像说面试都是面集合框架和并发?
- 网络:TCP/IP、HTTP、WebSocket
4. 刷题
刷题应该是贯穿整个复习过程的,主要网站是 牛客、Leetcode、codewars。
5. 其他边用边学的内容
官方库:
- io/nio 库
- 网络编程: socket/http
- 函数式:Java8 函数式编程( lambda、runnable、stream...)
第三方库:
- json: gson、fastjson. 两个库的 api 都很简洁,按需要选取就行。
- xml: dom4j. 进阶可以看看 xstream.
- Http: HttpClient、OkHttp
- Google Guava: 好像就不可变集合最使用率最高。
- Apache Commons: 提供了很多很有用的工具.
语言进阶
这个是复习计划没有覆盖到的基础内容,以后有时间要补补
- 反射机制
- 注解机制
- 类加载器
- RPC调用:有个著名的第三方框架:netty
- Java 9 模块化:解决了 jar 包存在的缺陷:弱封装和配置问题,模块化很值得学习。
然后可以学个 Kotlin 玩玩了。Kotlin 野心挺大的,虽然暂时就 android 开发用得最多,但明确表示支持 server side,现在 native 项目都 3000 多次提交了(2018-06-11)。顺便现在 gradle、spring 也都支持 kotlin 了。还能和 Java 完美互调,看着就眼馋。
P.S. 截止 2019 年 3 月 30 日(该项目起始于 2017 年 6 月的样子),kotlin-native 已经 4751 次提交了,仍然是 beta 状态。今年的 KotlinConf 会在年底 12 月份举行,我估摸着 kotlin-native 会在这之前 release。
但真正的成熟,还得等到明年,毕竟 native 相当于是在 llvm 上重新实现一遍 kotlin 了。而且底层的一些 java 标准库,也要想办法转成 native 的。
Web 进阶
- 反向代理:nginx
- 缓存/消息队列:redis
- 其他:Spring全家桶。。
其他
- docker: 容器可是个好东西。
- [ x ] Travis CI: 持续集成:自动测试、自动部署
画外
现在新出的语言里,Kotlin、Swift 两个,都是立足于手机 App 开发,然后尝试将应用拓展到 Server、PC 端、Web 前端,尝试大一统。
而 Rust 和 Julia,则是专注于自己的优势。Rust 是高性能领域,Julia 是科学计算。
这四个都是基于 LLVM 开发的,借助 LLVM 这个平台,它们既可以编译成可执行程序,也可以解释执行,亦或者编译成 WebAssembly 放到浏览器上执行。
参考
Java 复习计划的更多相关文章
- 分享一个生成反遗忘复习计划的java程序
想必这个曲线大家都认识,这是遗忘曲线,展示人的记忆会随着时间的延长慢慢遗忘的规律,同时还展示了如果我们过一段时间复习一次对遗忘的有利影响. 道理大家都懂,关键怎么做到? 靠在本子上记下今天我该复习哪一 ...
- java 复习003 之排序篇
由java 复习003跳转过来的C语言实现版见some-sort-algorithms 快速排序(不稳定 O(n log n)) package vell.bibi.sort_algorithms; ...
- java 复习001
java 复习001 比较随意的记录下我的java复习笔记 ArrayList 内存扩展方法 分配一片更大的内存空间,复制原有的数据到新的内存中,让引用指向新的内存地址 ArrayList在内存不够时 ...
- java复习(1)---java与C++区别
[系列说明]java复习系列适宜有过java学习或C++基础或了解java初步知识的人阅读,目的是为了帮助学习过java但是好久没用已经遗忘了的童鞋快速捡起来.或者教给想快速学习java的童鞋如何应用 ...
- Java学习计划
Java学习计划&书单--2018.10.13 W3C Struts教程 W3C Spring教程 W3C Hibernate教程 <深入JavaWeb技术内幕> Java Web ...
- Java复习11. 单例编程
Java复习11. 单例编程 1.最简单的写法,那个方式是线程不安全的 public class Singleton { private static Singleton instance; ...
- Java复习9网路编程
Java 复习9网路编程 20131008 前言: Java语言在网络通信上面的开发要远远领先于其他编程语言,这是Java开发中最重要的应用,可以基于协议的编程,如Socket,URLConnecti ...
- Java复习8.多线程
Java复习8 多线程知识 20131007 前言: 在Java中本身就是支持多线程程序的,而不是像C++那样,对于多线程的程序,需要调用操作系统的API 接口去实现多线程的程序,而Java是支持多线 ...
- Java复习10.Servlet编程
Java复习10. Servlet编程知识 20131008 前言: 之前在大三下的时候,学习了一个月的JSP和Servlet知识,但是没有什么项目经验,把JSP Web开发学习实录看了前面几张,后面 ...
随机推荐
- Spring Security 实现手机验证码登录
思路:参考用户名密码登录过滤器链,重写认证和授权 示例如下(该篇示例以精简为主,演示主要实现功能,全面完整版会在以后的博文中发出): 由于涉及内容较多,建议先复制到本地工程中,然后在细细研究. 1. ...
- LIS的string用法
题目链接 使用的是string里的find函数 stl大法好 #include<iostream> #include<cstdio> #include<cstring&g ...
- Python,针对指定文件类型,过滤空行和注释,统计行数
参考网络上代码编辑而成,无技术含量,可自行定制: 目前亲测有效,若有待完善之处,还望指出! 强调:将此统计py脚本放置项目的根目录下执行即可. 1.遍历文件,递归遍历文件夹中的所有 def getFi ...
- BZOJ4008: [HNOI2015]亚瑟王(期望dp)
Time Limit: 20 Sec Memory Limit: 512 MBSec Special JudgeSubmit: 1952 Solved: 1159[Submit][Status] ...
- LeetCode969. 煎饼排序
问题:969. 煎饼排序 给定数组 A,我们可以对其进行煎饼翻转:我们选择一些正整数 k <= A.length,然后反转 A 的前 k 个元素的顺序.我们要执行零次或多次煎饼翻转(按顺序一次接 ...
- iOS各个版本的特点
一.导航控制器中: iOS7: 栈顶控制器默认是320*480:控制器有64的高度看不见:
- HDU 6274 二分+预处理(CCPC K题
#include"bits/stdc++.h" #define db double #define ll long long #define vec vector<ll> ...
- 代码review的流程
以前我们一直都是如果要进行代码review的时候,要不我们就直接用idea来进行查看,根据不同的来查看 但是我们都是看代码的不同来进行来实现的,其实我们不需要这样,我们可以使用工具Phabricato ...
- Android 懒加载简单介绍
1.懒加载介绍 1.1.效果预览 1.2.效果讲解 当页面可见的时候,才加载当前页面. 没有打开的页面,就不会预加载. 说白了,懒加载就是可见的时候才去请求数据. 1.3.懒加载文章传送门 参考文章: ...
- TouTiao开源项目 分析笔记8 图解分析数据加载方式
1.整体构架 1.1.以一个段子页面为例,列出用到的主要的类,以图片的方式展示. 1.2.基础类 这里最基础的接口有: IBaseView<T>==>定义了5个方法. 然后最基础 ...