一. 基礎(chǔ)知識(shí)
- JDK 的安裝和 PATH 配置
- JDK 中最常用的的兩個(gè)命令 javac 和 java 的基本使用和常用參數(shù)用途(比如:-classpath,-encoding)
- 基本語(yǔ)法的了解與使用:數(shù)據(jù)類型(int,long,float,double,boolean,byte,char,short),數(shù)組,方法定義,類定義,流程控制,包 的用途
二. 面向?qū)ο?/h5>
- 熟悉 類,抽象類,接口 的作用與使用
- 掌握 繼承、封裝 和 多態(tài) 三個(gè)概念
- private,default,public,protected 幾個(gè)關(guān)鍵字的用途
練習(xí):
了解 策略模式,實(shí)現(xiàn)以下功能:
- 定義接口
Calculator,它包含一個(gè)方法double calculate(double[] nums) - 定義類
SumCalculator,實(shí)現(xiàn)Calculator接口,calculate方法實(shí)現(xiàn)為 求數(shù)組的和;定義AverageCalculator類,實(shí)現(xiàn)Calculator接口,實(shí)現(xiàn)方法為 求數(shù)組的平均值;定義VarianceCalculator類,實(shí)現(xiàn)Calculator接口,實(shí)現(xiàn)方法為 求數(shù)組的方差 - 定義
Main類,包含static Calculator getCalculator(char c)和main方法。在main方法中,通過(guò)Scanner類從控制臺(tái)獲得輸入。每次輸入包括 n(數(shù)組長(zhǎng)度),n 個(gè)數(shù)(數(shù)組內(nèi)容),c(操作,可以有 's','a' 和 'v',分別表示求和,求平均值,求方差);getCalculator(char c)方法通過(guò)輸入的操作返回對(duì)應(yīng)的Calculator,在main方法中使用返回的Calculator計(jì)算對(duì)應(yīng)的結(jié)果。例如:
10 // n
1 2 3 4 5 6 7 8 9 10 // n 個(gè)數(shù)
s // 操作
55 // 輸出
三. 熟悉最常用的基礎(chǔ)類
- Object,以及在 Object 中定義的每個(gè)方法的用途
- System.out 類,print、println 和 printf 三個(gè)方法的使用
- String,StringBuilder,了解 String 類和 StringBuilder 的區(qū)別
- Arrays 類(操作數(shù)組的工具類,提供了各種數(shù)組相關(guān)的操作)
- Comparable 和 Comparator,如何使用這兩個(gè)接口配合 Arrays 工具類在 Java 中對(duì)數(shù)組排序
- Scanner 類,如何使用 Scanner 從控制臺(tái)進(jìn)行輸入
四. 集合與泛型
- 掌握什么是泛型和在 Java 中如何實(shí)現(xiàn)泛型,明白 “擦除法泛型” 的實(shí)現(xiàn)原理。
- 熟悉基本的集合類的用途和用法,以及它們之間的關(guān)系。基本集合類包括 Iterable,Iterator,Collection 以及:
| 接口 | List | Queue | Map | Set |
|---|---|---|---|---|
| 實(shí)現(xiàn)類 | ArrayList | ArrayDeque | HashMap | HashSet |
| 實(shí)現(xiàn)類 | LinkedList | PriorityQueue | LinkedHashMap | LinkedHashSet |
- 熟悉工具類 Collections 的各個(gè)方法,例如 sort,binarySearch,reverse,shuffle 等等。
五. 異常
- 掌握受檢(Checked)異常 和 非受檢(Unchecked)異常
- 掌握如何捕獲異常,拋出異常,包裝受檢異常為非受檢異常以及自定義異常
六. 文件與 IO
掌握 裝飾者模式 的概念和基本輸入輸出流類的使用方法:
| 基本輸入流相關(guān)類 | 基本輸出流相關(guān)類 |
|---|---|
| InputStream | OutputStream |
| FileInputStream | FileOutputStream |
| DataInputStream | DataOutputSteam |
| BufferedInputStream | BufferedOutputStream |
| Reader | Writer |
| InputStreamReader | OutputStreamWriter |
| BufferedReader | BufferedWriter |
| Scanner | PrintWriter |
- 如何使用 Scanner 類從控制臺(tái)輸入,如何輸出 int,如何輸入 double,如何輸入 String
- File 類的作用和使用方法,使用 File 類獲得文件的各種信息;使用 File 類分別深度優(yōu)先和廣度優(yōu)先遍歷一個(gè)文件夾
- 字節(jié)流(InputStream,OutputStream)和字符流(Reader,Writer)的區(qū)別
- 使用 FileInputStream 和 FileOutputStream 復(fù)制文件,使用 BufferedInputStream 和 BufferedOutputStream 復(fù)制文件,并對(duì)比二者的效率
- 掌握 RandomAccessFile 的使用
七. 網(wǎng)絡(luò)
- 掌握 InetAddress,SocketAddress,Socket 和 ServerSocket 的用途及使用方法(TCP ),實(shí)現(xiàn)在局域網(wǎng)內(nèi)通信(發(fā)送消息和文件)
- 掌握 URL 和 HttpURLConnection的用途及用法(HTTP),實(shí)現(xiàn)從互聯(lián)網(wǎng)下載某個(gè)指定網(wǎng)址的資源(比如某張互聯(lián)網(wǎng)上的圖片)
- DatagramSocket,DatagramPacket 和 MulticastSocket 的用途及用法(UDP),實(shí)現(xiàn)局域網(wǎng)內(nèi)的廣播和多播通信
八. 多線程
- 熟悉 Thread 和 Runnable 的用途及用法;如何停止(interrupt)一個(gè)線程;同步關(guān)鍵字 synchronized 的用途。
(1)使用 Thread 和 Runnable,結(jié)合 RandomAccessFile 并行的從網(wǎng)絡(luò)上下載文件
(2)使用 wait 和 notify(notifyAll),結(jié)合 synchronized 關(guān)鍵字,實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模式。 - 熟悉 Callable,F(xiàn)uture,F(xiàn)utureTask 的用途及用法,并行的計(jì)算 1~n 的乘積
- 熟悉常用的并發(fā)工具類的使用,包括 CountDownLatch(倒計(jì)數(shù)門閂),BlockingQueue(阻塞隊(duì)列),Semaphore(信號(hào)量)
- 熟悉線程池概念和基本使用,相關(guān)類有 ExecutorService,ThreadPoolExecutor,ScheduledExecutorService,ScheduledThreadPoolExecutor,Executors,F(xiàn)orkJoinPool
九. JDBC(Java Database Connection)
- 如何獲得一個(gè) Connection(數(shù)據(jù)庫(kù)連接)
- 使用 Statement 對(duì)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)的 增刪改查
- 使用 PreparedStatement 對(duì)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)的 增刪改查
- 添加一條新的數(shù)據(jù)后,如何獲得該條數(shù)據(jù)的主鍵
- 了解數(shù)據(jù)庫(kù)連接池的概念與相關(guān)庫(kù)(c3p0,DBCP)
十. 反射
- 熟悉 Class 類對(duì)應(yīng)的方法,如何使用 Class 獲得一個(gè)類有哪些屬性(Field),有哪些方法(Method),有哪些注解(Annotation)
- 掌握如何使用反射來(lái)創(chuàng)建對(duì)象,并調(diào)用該對(duì)象的方法
- 掌握 JDK 中的代理模式的使用,了解 AOP(Aspect Oriented Programming,面向切面編程) 的概念