Skip to content

Latest commit

 

History

History
137 lines (105 loc) · 6.63 KB

JavaReadme.md

File metadata and controls

137 lines (105 loc) · 6.63 KB
title date tags categories
Java Readme
2020-03-27 08:28:15 -0700
Readme
Java

💠

💠 2024-02-03 10:54:46


计算机基础


Java

Oracle JavaSE Overview | openjdk | AdoptOpenJDK mirrors

Oracle: java tutorial 入门时首先通读一遍
java turtorials 能在线运行简易Java代码

wiki: java language

如何快速打好Java基础?
tutorials
Java 故障处理
JSRs: Java Specification Requests社区确认的标准


基础 进阶
基础语法 反射
继承和接口 JVM
异常 字节码
泛型 测试
集合 打包部署
线程 持续集成 CI
并发 网络编程
IO
注解
JDBC

JDK

Free Java & OpenJDK Info for Daily Java Usage | foojay

相关资源

Java核心知识思维导图
阿里巴巴Java开发手册 | 阿里巴巴Java开发手册

effective-java-3rd

前辈建议

Java 中有三大支柱(多线程、网络和安全),在 java.util.concurrent、java.security、javax.cropty、javax.security 四个包中就占了两个(多线程、安全)
还有一个网络在 java.net、javax.net 中 掌握了上面 6 个包及其子包中内容的话,那 Java 水平可以说达到了另一种境界。

多线程(multi-threading and concurrent)

  1. 关键词:volatile, sychronized
  2. 传统的线程 API:java.lang.Thread, java.lang.Runnable, java.lang.ThreadGroup, Object#wait, Object#notify, Object#notifyAll
  3. JDK 5 并发包(java.util.concurrent)API:线程池、任务执行器、计数信号量、倒计数门闩、并发集合(并发 Map、阻塞队列等)、基于 CPU CAS 指令的原子 API(java.util.concurrent.atomic)、锁 API(java.util.concurrent.lock)和条件对象等。
  4. 作为个人知识提升,还需要理解诸如自旋锁、分离锁、分拆锁、读写锁等的同步锁策略,以及可重入锁、锁的公平性的意义。以及各种并发锁的算法,比如:Peterson锁、Bakery锁 等等,以及现代 CPU 体系结构

涉及多线程及并发的 API 在 java.lang 中及 java.util.concurrent.* 中。

网络(network communication)

  1. 阻塞 TCP 通信、阻塞 UDP 通信、组播
  2. 非阻塞 TCP 通信、非阻塞 UDP 通信
  3. 客户端通信 API(java.net.URL, java.net.URLConnection 等类库)

涉及网络通信的 API 都在 java.net 和 java.nio.channels 包中。这里的网络已经将 RMI 相关包 java.rmi, javax.rmi 都排除了。

安全(security, cryptography and AAA)

  1. Java 加密类库 JCA
  2. Java 加密类库扩展 JCE
  3. 涉及密码学知识点的消息摘要、消息认证码、对称加密、非对称加密、数字签名
  4. 涉及网络通信证书管理工具(keytool)及 API(PKI、X.509证书)
  5. 基于 SSL/TLS 的安全网络通信 API(JSSE),包括:密钥库管理、信任库管理、阻塞 SSL 通信和非阻塞 SSL 通信等等
  6. Java 认证及授权服务(JAAS)API

涉及安全的东西都在:

  • java.security(JCA、JCE、数字证书,以及 JCE 的 SPI)
  • javax.net(SSL/TLS)
  • javax.security(JAAS)
  • javax.crypto(密码学)
  • keytool 的 JDK 工具

环境配置

Linux搭建Java开发环境