Java 基础学习大纲

一. 基础知识
  1. JDK 的安装和 PATH 配置
  2. JDK 中最常用的的两个命令 javacjava 的基本使用和常用参数用途(比如:-classpath,-encoding)
  3. 基本语法的了解与使用:数据类型(int,long,float,double,boolean,byte,char,short),数组,方法定义,类定义,流程控制, 的用途
二. 面向对象
  1. 熟悉 抽象类接口 的作用与使用
  2. 掌握 继承封装多态 三个概念
  3. private,default,public,protected 几个关键字的用途

练习:
了解 策略模式,实现以下功能:

  1. 定义接口 Calculator,它包含一个方法 double calculate(double[] nums)
  2. 定义类 SumCalculator,实现 Calculator 接口,calculate 方法实现为 求数组的和;定义 AverageCalculator 类,实现 Calculator 接口,实现方法为 求数组的平均值;定义 VarianceCalculator 类,实现 Calculator 接口,实现方法为 求数组的方差
  3. 定义 Main 类,包含 static Calculator getCalculator(char c)main 方法。在 main 方法中,通过 Scanner 类从控制台获得输入。每次输入包括 n(数组长度),n 个数(数组内容),c(操作,可以有 's','a' 和 'v',分别表示求和,求平均值,求方差);getCalculator(char c) 方法通过输入的操作返回对应的 Calculator,在 main 方法中使用返回的 Calculator 计算对应的结果。例如:
10 // n
1 2 3 4 5 6 7 8 9 10 // n 个数
s  // 操作
55 // 输出
三. 熟悉最常用的基础类
  1. Object,以及在 Object 中定义的每个方法的用途
  2. System.out 类,print、println 和 printf 三个方法的使用
  3. String,StringBuilder,了解 String 类和 StringBuilder 的区别
  4. Arrays 类(操作数组的工具类,提供了各种数组相关的操作)
  5. Comparable 和 Comparator,如何使用这两个接口配合 Arrays 工具类在 Java 中对数组排序
  6. Scanner 类,如何使用 Scanner 从控制台进行输入
四. 集合与泛型
  1. 掌握什么是泛型和在 Java 中如何实现泛型,明白 “擦除法泛型” 的实现原理。
  2. 熟悉基本的集合类的用途和用法,以及它们之间的关系。基本集合类包括 Iterable,Iterator,Collection 以及:
接口 List Queue Map Set
实现类 ArrayList ArrayDeque HashMap HashSet
实现类 LinkedList PriorityQueue LinkedHashMap LinkedHashSet
  1. 熟悉工具类 Collections 的各个方法,例如 sort,binarySearch,reverse,shuffle 等等。
五. 异常
  1. 掌握受检(Checked)异常 和 非受检(Unchecked)异常
  2. 掌握如何捕获异常,抛出异常,包装受检异常为非受检异常以及自定义异常
六. 文件与 IO

掌握 装饰者模式 的概念和基本输入输出流类的使用方法:

基本输入流相关类 基本输出流相关类
InputStream OutputStream
FileInputStream FileOutputStream
DataInputStream DataOutputSteam
BufferedInputStream BufferedOutputStream
Reader Writer
InputStreamReader OutputStreamWriter
BufferedReader BufferedWriter
Scanner PrintWriter
  1. 如何使用 Scanner 类从控制台输入,如何输出 int,如何输入 double,如何输入 String
  2. File 类的作用和使用方法,使用 File 类获得文件的各种信息;使用 File 类分别深度优先和广度优先遍历一个文件夹
  3. 字节流(InputStream,OutputStream)和字符流(Reader,Writer)的区别
  4. 使用 FileInputStream 和 FileOutputStream 复制文件,使用 BufferedInputStream 和 BufferedOutputStream 复制文件,并对比二者的效率
  5. 掌握 RandomAccessFile 的使用
七. 网络
  1. 掌握 InetAddress,SocketAddress,Socket 和 ServerSocket 的用途及使用方法(TCP ),实现在局域网内通信(发送消息和文件)
  2. 掌握 URL 和 HttpURLConnection的用途及用法(HTTP),实现从互联网下载某个指定网址的资源(比如某张互联网上的图片)
  3. DatagramSocket,DatagramPacket 和 MulticastSocket 的用途及用法(UDP),实现局域网内的广播和多播通信
八. 多线程
  1. 熟悉 Thread 和 Runnable 的用途及用法;如何停止(interrupt)一个线程;同步关键字 synchronized 的用途。
    (1)使用 Thread 和 Runnable,结合 RandomAccessFile 并行的从网络上下载文件
    (2)使用 wait 和 notify(notifyAll),结合 synchronized 关键字,实现生产者消费者模式。
  2. 熟悉 Callable,Future,FutureTask 的用途及用法,并行的计算 1~n 的乘积
  3. 熟悉常用的并发工具类的使用,包括 CountDownLatch(倒计数门闩),BlockingQueue(阻塞队列),Semaphore(信号量)
  4. 熟悉线程池概念和基本使用,相关类有 ExecutorService,ThreadPoolExecutor,ScheduledExecutorService,ScheduledThreadPoolExecutor,Executors,ForkJoinPool
九. JDBC(Java Database Connection)
  1. 如何获得一个 Connection(数据库连接)
  2. 使用 Statement 对数据库进行数据的 增删改查
  3. 使用 PreparedStatement 对数据库进行数据的 增删改查
  4. 添加一条新的数据后,如何获得该条数据的主键
  5. 了解数据库连接池的概念与相关库(c3p0,DBCP)
十. 反射
  1. 熟悉 Class 类对应的方法,如何使用 Class 获得一个类有哪些属性(Field),有哪些方法(Method),有哪些注解(Annotation)
  2. 掌握如何使用反射来创建对象,并调用该对象的方法
  3. 掌握 JDK 中的代理模式的使用,了解 AOP(Aspect Oriented Programming,面向切面编程) 的概念
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,567评论 18 399
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,424评论 25 707
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,066评论 0 62
  • 深夜,坐在宿舍里看考试的书,舍友开着外放和男朋友你一句我一句的聊着,分手边缘的对话,却因彼此找不到更好的而继续维持...
    梦渊阅读 338评论 2 2
  • 你看,豆豆不见了,只见几条突起的地平线……
    兰草心子阅读 429评论 0 0