|
|
课程介绍:
. v- o# |0 ~) X0 Z1 H, _, C0 D/ s本套课程囊括了Java语言核心语法、面向对象程序设计、常用API、集合框架、IO流、多线程、网络编程、反射技术、常用设计模式、JDK新特性等JavaSE各个领域的知识,帮助学习者建立和夯实Java语言基础。本课程结合诸多设计模式,如工厂、单例、责任链、代理、观察者等,深入浅出地剖析了大量企业级技术的实现原理和工作流程,如IOC、AOP、动态代理、泛型技术、面向接口编程、自定义注解、XML配置、POI、JSON等,让学习者能够学以致用。课程本着趣味性、通俗性、实用性的原则,让学习者爱上Java、学懂Java、使用Java。+ ] t% u; p. y6 Y
2 r3 v6 {% g9 a6 r4 `1 c适合人群:) I9 E& m9 `) X
零基础、对Java感兴趣的爱好者
/ g# M0 `$ ^, r5 e9 T期望巩固Java语言基础知识的技术人员
) H1 f/ X) K4 d4 B, O7 y: s4 Z8 s- ^3 I* j+ D9 n' Y% @
课程目录:
2 a' S8 K8 j: z(一)计算机基本概念和JDK的安装/ B6 D. W3 d) M4 N
1.01.计算机的基本概念
* Q9 ~4 \* i4 D) G: H1.02.计算机功能键和常用快捷键
" S8 R# U- N% u% h1 A2 E/ P6 T1.03.JDK相关的基本概念; k% l0 a+ q! q
1.04.JDK的下载、安装和配置
5 C: o5 ]' S) K N% s; R5 ?
, k" Z! J/ |9 A! V3 J$ e(二)我的第一个Java程序:HelloWorld2 l Y5 l' g* a2 _/ ` c
2.01.IntelliJ IDEA简介3 M; n+ L8 A) _' s. T/ }: v0 M! D: R
2.02.我的第一个Java程序:HelloWorld o* b! B9 D0 ?
2.03.Java程序开发与运行原理# h4 D2 o& L a+ z+ P0 r j3 X! P
2.04.IDEA的基本配置& A* D7 W# b9 z& E5 K
2.05.IDEA常用快捷键演示
& ] v# O0 }+ B2 r5 F2.06.Java语言编码规范, M& C' _3 B% |: J- e* }
0 k4 j- E: \* y
(三)Java核心_常量、变量
/ n, a* i1 Q% ?* N- g2 m# g, b3.01.Java的注释" ]" N/ Q5 ^; ?; `; }
3.02.Java的关键字
0 S& W2 n9 W, S# g3.03.Java的常量 x" H7 G0 m' B/ f9 g: F+ v
3.04.变量的定义和使用
( o6 F: ` ]( A2 R! O" @9 p8 ?0 B3.05.Java的数据类型
! z5 c1 I# Z; O3.06.数据类型转换3 Y% S: e. g7 P4 i: H4 ^$ I
3.07.Java的标识符
. n+ `# }/ ~% w& I6 u+ W* @& M# ]) [* z ?+ J; v
(四)Java核心_运算符
+ ^' C ]# T7 R1 F7 {4.01.算数运算符
t+ x" v, v3 Q4.02.字符和字符串参与加法运算, c" I8 }4 e6 Q, K6 @1 H" n4 y
4.03.自增和自减运算符& w: \" L! v9 ~9 {+ {: Q8 t
4.04.赋值运算符6 ^& W8 |7 U( ?; G9 J4 s5 j, d
4.05.关系运算符2 M$ Z( g5 h1 ~
4.06.逻辑运算符; m* s1 ?/ \! g' w
4.07.三元运算符
. K; x/ E* t5 ]( u4 Q) ], R- z+ ?0 U
" [4 f2 q- c9 ]# p: P( @(五)Java核心_流程控制之选择结构
/ t/ E# v* @$ R7 G# V8 X5.01.Scanner的基本使用
( \' K1 I+ U6 O0 g6 W3 B' l7 q+ x& y! l5.02.【案例】Scanner类的应用_计算两个整数和+ {1 p' _. z3 h) K! z7 ~
5.03.流程控制结构的概述和顺序结构& m0 H( a4 k6 P5 O% o$ u+ {
5.04.选择结构概述
' L. M- g& V B# E9 Z; Y" b4 V5.05.if语句的第一种格式1 J" d' S w% l0 l% A
5.06.if语句的第二种格式9 ]2 ~! T6 r1 A( K9 d7 X
5.07.if语句的第三种格式7 {' i) \) O J
5.08.【案例】if语句_获取两个整数的最大值2 `' L. D' ? @; }1 _
5.09.【案例】if语句_根据考试成绩打印对应的级别 M7 }% v0 g) y- t5 `* V
5.10.switch语句简介
& ~' a% {5 I$ p0 r5.11.【案例】switch语句_根据数字打印指定的日期
( Q3 l- S$ r5 R7 n; `% x$ ~: ~6 k' C
(六)Java核心_流程控制之循环结构! {# a7 w0 c- c( ]
6.01.Java中循环结构的概述和分类
1 Q5 Y2 O' |- o6.02.for循环的格式和执行流程
- A6 Y) V% ]6 _7 L6.03.【案例】for循环_打印5次HelloWorld# B' u1 O' ~/ U9 S, t
6.04.【案例】for循环_正向以及逆向打印数字
. [0 I; u. `7 p0 a/ t6.05.【案例】for循环_求1~5之间的数字和( q, y3 @: s$ t, ^, H/ y& [
6.06.【案例】for循环_求1-100之间的偶数和
. O; J H8 `9 S& ]0 ]& g0 x6.07.【案例】for循环_打印所有的水仙花数
. g: D$ R" s: z! N2 g4 K6 K# N6.08.【案例】for循环_计算水仙花数的个数
R7 u% N2 `/ G3 o0 A+ s6.09.while循环的格式和执行流程: Q* r' i$ J) O. V. {
6.10.【案例】while循环_打印5次HelloWorld
" g5 S# C+ U1 h6 y9 g6.11.【案例】while循环_计算1~100之间的数字之和# T+ |* R! |$ z* s- x
6.12.do_while循环简介
) c7 s1 W; r M6.13.【案例】do_while循环_模拟练习知识点的次数
& N6 L" \ K f& d% y( G6.14.三种循环的区别& s7 l" r) {, W, X
6.15.死循环, C/ g! W2 N" X* G4 u# H$ l
6.16.break关键字的用法
# ~# S- i8 _* Q5 o8 f6.17.continue关键字的用法
& q s3 L" e! o4 h2 o: b6.18.循环嵌套
8 c8 W" G- u; p$ A6.19.带标号的循环结束5 D( M1 }$ J6 g1 O8 D
6.20.【案例】循环综合案例_1024程序员节小黑发橙子. ^: H3 [# {$ |, j" b- |7 D
6.21.Random类的简单使用
5 W3 g( h9 `+ K1 I( m' Y% d8 J6.22.【案例】Random类_猜数字的小游戏.mp4: Z: Z8 J( T% v* w
6 ^+ i8 Y) Y6 k6 K' ^' c5 w+ _
(七)Java核心_方法和数组' Y$ ?6 K; R; |1 S# \1 ?
7.01.方法概述
s, U8 R2 l/ @3 i& ^4 S: w7.02.方法的格式. W9 B: ?! b' |
7.03.方法的定义: }, L7 R" Q9 o: v$ x9 V
7.04.方法的调用
* V; f% o q, P. R8 y- f8 M$ ^7.05.方法调用图解' O! S% N! ~" y4 h M3 p3 d9 j
7.06.【案例】方法_比较两个整数是否相等
& W3 Y- u, P; P" Q( `8 d7.07.定义方法的注意事项
7 N" L; a* x' r6 i8 S$ u( U& d7.08.方法重载的概述* p% o- Z( T; m9 s1 }: `
7.09.【案例】方法重载: \' S' d2 d, g6 j" ?8 o, H
7.10.【练习】哪些是方法重载0 ^ f* P9 F$ o# B
7.11数组概述
2 J$ z+ z% R2 m1 \$ k7.12.数组的三种定义格式' E! \* y1 ^5 \' t+ v. d4 p1 y
7.13.数组中元素的访问方式
1 c6 ?. N8 v8 h2 x F" m4 g7 A1 _7.14数组的遍历5 f1 v+ k y3 T" K7 `% `3 q
7.15数组的初始化
2 Y8 `: ^0 ?. g* k6 ^7.16数组动态初始化图解; J$ T' c& p8 f! Z; y9 L0 d5 V
7.17数组静态初始化图解1 ]8 A! c- v# l5 z7 F E1 e4 @
7.18两个数组的内存图解
Y9 D/ X$ G6 m7.19一个数组两个引用的内存图解+ e5 ]) w+ h3 C2 b# x( T
7.20数组索引越界异常7 n X1 v0 {5 e8 k* @
7.21空指针异常
' G' q+ z" Q9 c3 b" ~7.22.【案例】获取数组中的最大值和最小值
1 D, b& [% @' O& T8 V7.23.【案例】数组_定义方法打印数组
& [& C& X3 z* S+ z& E6 u5 H% n7.24.引用类型传递和基本类型传递的区别
% ~5 D. ]6 U8 J, {, l1 u0 _9 P: x; ]1 [7 l3 O( p/ A& p$ _
(八)Java编程思想_面向对象之封装
# i- S9 _( H& y N9 w8.01.面向对象的思想概述
5 e1 l$ |& l2 Y/ i2 I5 V4 q+ m+ A: O8.02.类与对象概述9 h+ O6 f h6 c
8.03.【案例】:手机类的定义和使用% a$ h6 f" R8 `$ a: f+ m' F4 g
8.04.【案例】:学生类的定义和使用# D; Z D" r0 T8 Z) z
8.05.一个对象创建过程的内存图解
" j) |7 v2 P( Z- z4 [+ C; P8.06.两个对象创建过程的内存图解
* ]3 Z2 R! g# y, V0 \$ P# G! v8.07.对象作为参数的内存图解; v# N' {$ ?; L$ e* {- _
8.08.使用变量的规则' s' ?' j! r3 _4 S
8.09.成员变量和局部变量的区别, C7 b- C# U* @5 e) x" b
8.10.封装概述
" W2 A5 q' Q9 t$ N& S& x8.11.private关键字的用法" X' W3 Z T# S' B* P
8.12.this关键字的用法4 ?8 N( R4 E, ?4 b
8.13.构造方法及演示
/ u1 J7 \* |' |4 ]7 F( W8.14.标准的JavaBean类的定义和使用
) P/ [: ^# o F3 O4 A" f# ?6 o1 b! ]8 V# y/ b( S" R; M9 V: G
(九)Java编程思想_面向对象之继承, }9 \: Y2 }& Q6 ^1 c, w7 b% i8 Q- c
9.01.继承概述- ^3 S, w- R0 A
9.02.【案例】继承_动物类
; V% A7 _1 s! F! E+ p6 ]) J; O- o9.03.继承的优缺点
( m7 l; Z) [' `# D9.04.继承关系中成员变量的使用特点1 Y( \2 ` V* p( M5 ^
9.05.使用成员变量的内存图解4 k7 m8 C% J: _
9.06.this和super的区别
' u, W# w' Z3 l( ^2 x4 \" _9.07.继承关系中成员方法的使用格式- ^' o4 Y9 F* U) j
9.08.使用成员方法的内存图解8 _1 W) [* h) V* A
9.09.继承关系中构造方法的使用特点1 a$ V) v3 E1 w0 D3 x
9.10.方法重写的概念: E8 J9 e: S0 H: t2 b; v' B( p3 `
9.11.四大访问权限修饰符
# b' `; i; ]. B* M; K2 ^9.12.方法重写和方法重载的区别
! A+ y5 U/ u7 d9.13.Java中继承的特点6 }6 o; D+ M/ [9 M
# X% T2 l' M& `9 a( |3 F9 I
(十)Java编程思想_面向对象之多态" |) h0 z; c* A3 t
10.01.多态概述
4 {% K+ F3 m6 ^ v10.02.父类引用指向子类对象的内存图
- Q/ a" H6 G) P8 h# Z: F% N' n10.03.多态的使用场景及其内存图解) s2 B# f1 _# J8 q0 `$ v5 S
10.04.多态中成员变量的使用
/ c" {. y' g( d9 f/ }" Z10.05.多态中成员变量使用的内存图解
6 S8 D2 s9 ?+ V0 ?! v) L10.06.多态的好处和弊端7 M+ i, S3 j9 G& S/ s k
10.07.抽象类的概述 S- U) @ S; ~$ _- ]% D9 g$ l$ h
10.08.抽象类的特点
; z0 z( A0 m* V- c: w10.09.【案例】抽象类_员工类代码实现0 k# f2 O8 X* T9 ?/ Y3 Y
10.10.final关键字概述和特点
2 y1 w* q" g* @; T3 e4 p10.11.static的用法之静态成员变量
. w6 r! Y# Z5 e10.12.static的用法之静态成员方法
0 D% D) t1 C( A! z; {( L10.13.接口的概述
o5 O2 X& l7 l3 R7 T10.14.接口的特点
6 {0 c* Y! \& U10.15.接口的成员特点
" |3 ]6 a( o: D1 [( s' a q+ x8 G: U. D% S5 G& d& f: y7 {
(十一)Java常用工具_API
) D" e) x7 R8 ?3 ]11.01.API简介
9 O$ ?# q1 ^) z( p4 j11.02.Object类的特点
7 e5 o4 }2 B- q$ Y! [3 k2 j11.03.JavaBean重写Object类的方法
6 c0 G7 w2 P* }4 D" k11.04.Scanner类
/ W$ p& }% `7 |11.05.String类的判断功能) f5 E. e; _+ f, X+ ?. z/ R p' O
11.06.String类的获取功能1 g: W* `- f" Q) |
11.07.String类的转换功能2 P+ H; |2 L) T9 ^9 J4 P
11.08.StringBuilder和StringBuffer类; u$ B C0 r7 f ~) P3 n/ K e1 \
11.09.Date和Calendar类! h0 t8 u( y+ {- a8 j+ X7 g
11.10.基本类型的包装类
8 `9 P2 Q8 }1 p% M5 O7 [. B+ t2 [: g# l& L1 H' O9 N
(十二)Java常用工具_集合
# E* y" g( l9 J: F) K12.01.集合简介 }0 l/ K2 M0 s1 P( m" |5 t' L7 }
12.02.List集合的特点和应用7 R; @0 S+ ~7 C; n
12.03.增强for的使用: w$ T% `% x* E0 A" B6 B& p
12.04.迭代器演示# C [' P: {3 _( Y1 E4 j! I3 J
12.05.泛型简介
9 [4 a) j! @( P- O! N12.06.Collections工具类的使用
7 N3 W% E; m: O) F% G12.07.Set集合的使用
$ \. C$ w7 B+ u) D" V12.08.Map集合的使用
9 P- s! U; n5 r+ O' w( c) n" c12.09.【案例】模拟斗地主发牌之买牌
+ F7 [4 t5 j& f4 c7 _12.10.【案例】模拟斗地主发牌之洗牌和发牌
. G+ `5 F+ f5 ?# q2 L- w12.11.【案例】模拟斗地主发牌之看牌
% [7 s% p; r1 T$ ~8 V6 s0 s
" j: ~$ L, `2 t% E(十三)Java常用工具_IO流5 c2 `- t- B: F; F+ s, X: {
13.01.异常的分类
# @. i- ^' `% ?: C& @& O" d13.02.异常处理方式之try_catch
; F6 e% ], ?2 u8 h1 t" P13.03.异常处理方式之throws$ A+ O3 ?; ]( ^$ O! s
13.04.IO流的概述和分类
/ D$ u1 d- V' W; l( p# M4 G13.05.File类的创建及判断功能: w" @! P: ?5 Q2 w; \# w
13.06.File类的获取功能9 H6 `/ E# d* f/ D3 R
13.07.字符流读数据之一次读取一个字符( F; T# g3 v/ P/ d8 G1 b2 `8 W
13.08.字符流读数据之一次读取一个字符数组( Z1 @ W5 W; P0 a( l+ i" c
13.09.字符流写数据
% H, `7 n+ |% Q9 \8 d: |3 w13.10.字符流拷贝文件之一次读写一个字符
1 f7 k" V$ _3 J. e8 _4 ?! G13.11.字符流拷贝文件之一次读写一个字符数组- q5 {1 G3 _* ~+ u- }. |
13.12.字符缓冲流普通用法
/ }) J7 \& K; f/ B7 V" |13.13.字符缓冲流之一次读写一行
8 B+ \3 _* Q" ~- U13.14.普通字节流一次读写一个字节
+ C9 X' a7 ^' ~7 O8 ]13.15.普通字节流一次读写一个字节数组. c1 N4 p6 \! n' k! x
13.16.高效字节流的用法
/ Y) r5 B, _3 {0 z% `2 M2 \13.17.【案例】模拟用户上传头像之获取合法路径
8 t3 q) q5 \+ t- e( `! [( _' q4 b13.18.【案例】模拟用户上传头像之判断要上传的文件是否存在
' l, O: f% l* _13.19.【案例】模拟用户上传头像之上传功能实现2 X2 h- C: s9 b* g1 l6 R* D
/ E# `: [" N3 p0 T(十四)Java高级_反射( w B- | C4 W5 P: M% ?. h" B1 e0 K
14.01.反射基本概念
) d4 I [' y" k: u- y/ M3 p; d& m14.02.获取字节码文件对象的三种方式
& g3 y$ ^) I( m6 I {. u14.03.通过反射的方式获取构造方法并使用
$ u9 J1 i) E: b) l M14.04.通过反射的方式获取成员方法并使用
6 V/ }- g7 o, M6 S( c/ \' {3 ~' ~14.05.【案例】反射_获取setter方法给对象的属性设置值
; e/ t ^) N! T7 W! e14.06.通过反射的方式获取成员变量并使用& _' w; v; i8 R5 q, F
9 s4 v; z1 H4 C$ T(十五)项目实战) G# ~" b7 K0 c7 h
实战项目
* ?, C. L2 I6 E! Y `* u项目名称: EShop网上商城(控制台版) ~' B) E! V6 X8 R# p
项目描述:2 t, b, H) f8 @0 k) A
EShop网上商城项目是一个在线商城控制台模拟项目,主要功能包括后台管理、商品管理、订单管理和购物车管理等模块,构建了一个大型web系统所必须的基础功能,同时支持在该模块上进行二次开发。涉及反射技术、泛型类、泛型方法、泛型固定边界、注解、JSON、POI、Properties、XML技术、枚举、Debug调试技术、工厂、单例、适配器、代理、责任链、观察者、模板方法、MVC、面向对象程序设计和面向接口程序设计等技术。通过该项目的学习,能够了解实际开发环境中大型web项目的开发模式和流程,掌握常用框架中部分重要技术的实现原理,大大提升编码能力和业务分析能力。9 v+ z" E- c% ^# m
7 a4 N/ D5 c8 P* [6 C1 [' Z2 {
# T! k5 B9 ]4 J- z2 @* E' b" N6 O
来源: 2019 博学谷Java基础精讲(入门篇)视频教程 |
|