• 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 放到浏览器上执行。

    参考

  • 相关阅读:
    【noip2014】解方程
    2013南大专业课试题答案
    如何计算多边形面积
    坐标转换成点
    几何对象和空间参考
    StoryBoard(动画故事版)
    五种画刷
    SL的六种变换
    SL中MediaElement(视频播放)
    SL的四种样式
  • 原文地址:https://www.cnblogs.com/kirito-c/p/9166677.html
Copyright © 2020-2023  润新知