《java300集》由北京尚学堂科技高淇老师领衔录制,广受好评。2018年新版课程基于JDK8录制,特点:
1. 全面讲解Java基础技术点
2. 深入(内存分析、JDK源码讲解)
3. 手把手敲代码(让学生理解每个字符来源和老师思考过程)
4. 项目穿插(以项目带教学,学生更强)
《JAVA300集》推出四年来,受到了广泛好评,成为多所985高校推荐学习的视频,甚至北大教授都对学生做强力推荐。
课程目录:
01 java入门阶段 001_如何学习JAVA300集 002_计算机发展史和未来方向 003_多种编程语言介绍 004_JAVA的发展历史和未来 005_JAVA的核心优势和生态体系 006_JAVA三大版本含义_JAVAME和安卓开发的关系 007_JAVA的特性和优势 008_JAVA应用程序的运行机制 010_JDK下载和安装_JDK目录介绍 011_JDK环境变量PATH设置_classpath问题 012_控制台测试JDK安装和配置成功 013_写出第一个JAVA程序 014_第一个JAVA程序错误总结 015_第一个JAVA程序详细解析 016_最常用DOS命令 017_常用开发工具介绍 018_eclipse开发环境使用原因 019_eclipse下载版本选择和使用 020_eclipse下建立JAVA项目_项目的结构 021_eclipse开发和运行JAVA程序 023_注释(单行注释、多行注释、文档注释) 024_标识符规则_驼峰规则 025_JAVA的关键字保留字 026_变量的本质_声明格式和初始化问题 027_变量分类(局部变量、成员变量、静态变量) 028_常量和final 030_整型变量和整型常量 031_浮点型变量和BigDecimal的使用 032_字符型类型_转义字符 033_布尔型_if语句使用要点 034_运算符介绍 035_算术运算符(二元、自增和自减) 036_赋值和赋值扩展运算符 037_关系运算符 038_逻辑运算符_短路运算详解 039_位运算符 040_字符串连接符 041_条件运算符目 042_运算符优先级_逻辑与或优先问题 043_自动类型转化~1 044_强制类型转换 045_基本类型常见错误_溢出_L问题~1 046_使用Scanner获得键盘输入~1 047_控制语句介绍 048_控制语句_if单选择结构~1 049_ifelse双选择结构~1 050_ifelseifelse多选择结构 051_switch语句的使用 052_while循环详解 053_for循环详解_dowhile简介 054_嵌套循环_循环相关练习 055_break和continue语句 056_带标签的break和continue 057_方法的定义_形参_实参_返回值_语句块 058_方法的重载overload 059_递归算法详解_递归和迭代效率测试 060_面向过程和面向对象区别 061_对象是什么_对象和数据管理 062_对象和类的关系_属性_成员变量_方法 063_一个典型类的写法和调用_类的UML图入门 064_内存分析详解_栈_堆_方法区_栈帧_程序执行的内存变化过程 065_构造方法详解_构造方法重载 066_垃圾回收机制介绍_垃圾回收算法(引用计数和引用可达) 067_通用分代垃圾回收详解(年轻代,年老代,持久代) 068_this的本质_对象创建过程的4步 069_static关键字_内存分析静态变量和静态方法 070_静态初始化块_继承树的追溯 071_JAVA的参数传值机制_值传递 072_java包机制_package的使用_JDK提供的常见包的作用 073_import详解_静态导入详解 074_继承_instanceOf的使用 075_方法的重写override_返回值类型问题 076_Object类的用法_重写toString方法 077_equals方法的重写_阅读Object和String的源码 078_super父类对象引用_继承树追溯问题 079_封装的使用_访问控制符 080_封装的使用细节_javabean的规则 081_多态_多态的三个必要条件 082_对象的转型_向上自动转型_向下强制转型_ClassCastException处理 083_final修饰变量和方法和类 084_数组的使用_内存状态_动态初始化和遍历_数组越界异常 085_数组的3中初始化方式_静态初始化_动态初始化_默认初始化 086_数组的遍历_foreach循环
087_游戏项目介绍_建立游戏主窗口 088_图形绘制_文本绘制_颜色改变_图像对象的加载 089_线程内部类实现动画 090_游戏物体根类的实现 091_面向对象思想重构飞机类设计 092_键盘控制游戏物体原理 093_面向对象重构飞机类的键盘控制代码 094_炮弹类设计_任意角度飞行 095_容器或数组产生多发炮弹 096_双缓冲解决闪烁问题_矩形检测原理 097_炮弹和飞机的碰撞检测_飞机死掉 098_爆炸类_图片数组轮播处理 099_主窗口画出爆炸类 100_飞机死亡和计时功能 101_总结和期望 04 面向对象深入和数组深入 102_多态_内存分析 104_抽象类_抽象方法 105_接口详解 106_回调的实现_模板方法模式 107_内部类详解 108_String类的常用方法_JDK源码分析 109_String类的补充_常见 面试题_内存分析 110_StringBuilder和StringBuffer的使用_常用方法_方法链的实现_JDK源码分析 111_StringBuilder和StringBuffer的使用_JDK源码分析内部机制 112_StringBuilder和StringBuffer的使用_常用方法补充_常见面试题答法 113_模拟ArrayList容器的底层实现_JDK源码分析ArrayList 114_数组_多维数组_基本语法_内存分析 115_数组_多维数组_练习_矩阵运算 116_数组的拷贝_排序_二分法_命令行参数_增强for循环
05 常用类 117_常用类_包装类_Integer_Number_JDK源码分析 119_常用类_Date类的使用_JDk源码分析 120_常用类_DateFormat和SimpleDateFormat_时间和字符串的互相转换 121_常用类_Calendar和GregorianCalendar的使用_日期计算 122_常用类_可视化日历程序_01 123_常用类_可视化日历程序_02_ 124_常用类_file类的使用 125_常用类_file类_打印目录树状结构_递归算法 06 异常机制 126_异常机制_Exception_Throwable_Error的概念 127_常见异常分类_异常简单处理 128_异常机制_try_catch_finally_return执行顺序 129_声明异常throw_方法重写中异常的处理_手动抛出异常 130_异常机制_自定义异常_总结
07 容器和数据结构 131_容器_基本概念_Collection_Set_List接口介绍 132_容器_List_ArrayList_LinkedList_Vector用法_详解 133_容器_JDK源代码分析_自己实现ArrayList_01_数组扩容_add_get方法的实现 134_容器_JDK源代码分析_自己实现ArrayList_02_remove_set_add方法_equals问题 135_容器_JDK源代码分析_自己实现LinkedList_双向链表的概念_节点定义_add方法 136_容器_JDK源代码分析_自己实现LinkedList_遍历链表_get_remove_add插入节点 137_容器_Map和HashMap的基本用法_hashMap和HashTable的区别 138_容器_自己实现HashMap_SxtMap原始版_效率较低 139_容器_自己实现HashMap_Map底层实现_哈希算法实现_使用数组和链表 140_容器_equals和hashcode_JDK源代码分析 141_容器_List_Map底层源码再分析_bug解决 142_容器_Set_HashSet基本用法_源码分析 143_容器_自定义实现HashSet 144_容器_ 数据存储综合练习_javabean的介绍 145_容器_数据存储综合练习_map保存表记录 146_容器_迭代器遍历List和Set_List迭代器源代码分析 147_容器_迭代器遍历Map的两种方式 148_自定义泛型_泛型类_泛型接口_泛型方法_安全_省心 149_自定义泛型_深入1_子类_属性类型_重写方法类型_泛型擦除 150_自定义泛型_深入2_无多态_通配符_无泛型数组_jdk7泛型使用 151_自定义实现迭代器_深入迭代器_迭代器原理_面向对象实现 152_HashMap_经典存储_分拣思路_简单_容易 153_HashMap_经典存储_经典分拣思路_与面向对象组合解题 154_排序_冒泡_初级版 155_排序_冒泡_优化版与最终版 156_引用类型_内置类比较_Comparable_排序工具类实现 157_引用类型_内置类比较_Comparator_排序工具类实现 158_引用类型_自定义数据排序 159_引用类型_排序容器_TreeSet与TreeMap 160_工具栏Collections_洗牌 161_Queue接口_单向队列_模拟银行业务_自定义堆栈 162_enumeration接口_Vector_StringTokenizer 163_Hashtable与Properties_绝对_相对_类路径存储与读取 164_引用(强软弱虚)_WeakHashMap_IdentityHashMap与EnumMap 165_容器的同步控制与只读设置
08 IO流技术 166_IO_File_路径常量_绝对与相对路径_构建对象 167_IO_File_常用方法_文件名_判断_长度_创建_删除 168_IO_File_常用方法_文件夹操作_命令模式查找 169_IO_原理_分类_标准步骤 170_IO_字节流_节点流_文件读取_写出_追加文件 171_IO_字节流_节点流_文件的拷贝 172_IO_字节流_节点流_文件夹拷贝_工具制作_文件后缀与软件的关系 173_IO_字节流_节点流_拷贝_工具健壮性 174_IO_字符流_纯文本_节点流_Reader_FileReader_Writer_FileWriter_读取_写出_拷贝 175_IO_缓冲流_BufferedInputStream_BufferedOutputStream_BufferedReader_BuffereWriter 176_IO_转换流_字节转为字符_乱码分析_编码与解码字符集 177_IO_转换流_字节转为字符_InputStreamReader_OutputStreamWriter_文件编码与解码 178_IO_重点流_总结 179_IO_其他流_字节数组流 180_IO_其他流_字节数组流_与文件流对接 181_IO_其他流_基本数据类型处理流 182_IO_其他流_对象处理流_序列化_反序列化 183_IO_关闭流方法_jdk1.7try-with-resource 184_IO_打印流 185_IO_装饰设计模式 186_IO_文件夹bug修复_超长文件夹删除 187_IO_文件分割与合并_RandomAccessFile 188_IO_文件分割与合并_初始化各项参数 189_IO_文件分割与合并_分割 190_IO_文件分割与合并_文件合并_SequenceInputStream 191_IO_总结
09 多线程 192_线程_概念 193_线程创建之一_继承_Thread 194_静态代理模式 195_线程创建之二_接口_Runnable 196_线程创建之三_接口_Callable_Future_龟兔赛跑 197_线程状态与停止线程 198_线程阻塞1_join_yield 199_线程阻塞2_sleep_倒计时_网络延时 200_线程基本信息_优先级 201_线程同步与锁定1_synchronized 202_线程同步与锁定2_synchronized_单例模式_doubleChecking 203_线程_死锁 204_线程_生产者消费者模式_信号灯法 205_线程_任务调度 206_线程_总结
10 网络编程 207_网络编程_概念_网络_端口_URL_TCP_UDP 208_网络编程_InetAddress_InetSocketAddress 209_自定义注解 210_网络编程_UDP编程1_原理 211_网络编程_UDP编程2_发送类型_cs与bs区别 212_网络编程_TCP_Socket通信_原理 213_网络编程_TCP_Socket通信_多个客户端_聊天室原理 214_网络编程_TCP_Socket通信_聊天室_客户端多线程 215_网络编程_TCP_Socket通信_聊天室_群聊 216_网络编程_TCP_Socket通信_聊天室_私聊_构思 217_网络编程_TCP_Socket通信_聊天室_私聊_实现
11 手写服务器httpserver项目(java基础集大成者) 218_手写服务器httpserver_准备_Socket入门 219_手写服务器httpserver_准备_ HTML220_手写服务器httpserver_准备_http协议 221_手写服务器httpserver_准备_http工具 222_手写服务器httpserver_封装Response 223_手写服务器httpserver_封装Request_method_url 224_手写服务器httpserver_封装Request_储存参数_处理中文 225_手写服务器httpserver_封装分发器 226_手写服务器httpserver_多请求处理_多态 227_手写服务器httpserver_多请求处理_反射 228_手写服务器httpserver_xml配置文件_sax解析基础 229_手写服务器httpserver_xml配置文件_sax解析应用 230_手写服务器httpserver_整合最终版
12 注解_反射_字节码_类加载机制
231_注解_Annotation_内置注解 232_自定义注解 233_反射机制读取注解 234_反射机制_介绍_Class对象获取 235_反射机制_动态操作_构造器_方法_属性 236_反射机制_提高反射效率_操作泛型_操作注解 237_动态编译_DynamicCompile_反射调用main方法问题 238_脚本引擎执行javascript代码_Rhino引擎 239_字节码操作_javaassist库_介绍_动态创建新类_属性_方法_构造器 240_字节码操作_javaassist库_介绍_API详解 241_JVM核心机制_类加载全过程_JVM内存分析_反射机制核心原理_常量池理解 242_JVM核心机制_类加载全过程_初始化时机_类的主动引用和被动引用_静态初始化块执行顺序问题 243_JVM核心机制_深入类加载器_层次结构(三种类加载器)_代理加载模式_双亲委派机制 244_JVM核心机制_深入类加载器_自定义文件系统类加载器_网络自定义类加载器 245_JVM核心机制_深入类加载器_自定加密解密类加载器 246_JVM核心机制_线程上下文类加载器_web服务器类加载机制_OSGI技术模块开发原理介绍
13 GOF23设计模式全解 247_【GOF23设计模式】_单例模式_应用场景_饿汉式_懒汉式 248_【GOF23设计模式】_单例模式_双重检查锁式_静态内部类式_枚举式_UML_类图 249_【GOF23设计模式】_单例模式_反射和反序列化漏洞和解决方案_多线程环境测试_CountDownLatch同步类的使用 250_【GOF23设计模式】_简单工厂模式详解_面向对象设计原则_开闭原则_依赖反转原则_迪米特法则 251_【GOF23设计模式】_工厂方法模式详解 252_【GOF23设计模式】_抽象工厂模式详解 253_【GOF23设计模式】_建造者模式详解_类图关系 254_【GOF23设计模式】_原型模式_prototype_浅复制_深复制_Clonable接口 255_【GOF23设计模式】_原型模式_反序列化实现深复制_效率对比_创建型模式总结 256_【GOF23设计模式】_适配器模式_对象适配器_类适配器_开发中场景 257_【GOF23设计模式】_代理模式_静态代理 258_【GOF23设计模式】_代理模式_动态代理_开发中常见的场景 259_【GOF23设计模式】_代理模式_动态代理_内存和调用过程分析_AOP面向切面编程介绍 260_【GOF23设计模式】_桥接模式_多层继承结构_银行日志管理_管理系统消息管理_人力资源的奖金计算 261_【GOF23设计模式】_组合模式_树状结构_杀毒软件架构_JUnite底层架构_常见开发场景 262_【GOF23设计模式】_装饰模式_IO流底层架构_装饰和桥接模式的区别 263_【GOF23设计模式】_外观模式_公司注册流程_迪米特法则 264_【GOF23设计模式】_享元模式_享元池_内部状态_外部状态_线程池_连接池 265_【GOF23设计模式】_责任链模式_公文审批_供应链系统的采购审批_异常链_过滤器和拦截器调用过程 266_【GOF23设计模式】_迭代器模式_JDK内置迭代器_内部类迭代器 267_【GOF23设计模式】_中介者模式_同事协作类_内部类实现 268_【GOF23设计模式】_命令模式_ 数据库事务机制底层架构实现_撤销和回复 269_【GOF23设计模式】_解释器模式_访问者模_数学表达式动态解析库式 270_【GOF23设计模式】_策略模式_CRM中报价策略_GUI编程中布局管理器底层架构 271_【GOF23设计模式】_模板方法模式_钩子函数_方法回调_好莱坞原则 272_【GOF23设计模式】_状态模式_UML状态图_酒店系统房间状态_线程对象状态切换 273_【GOF23设计模式】_观察者模式_广播机制_消息订阅_网络游戏对战原理 274_【GOF23设计模式】_观察者模式_obserable类和observer接口_应用场景总结 275_【GOF23设计模式】_备忘录模式_多点备忘_事务操作_回滚数据底层架构
276_正则表达式_介绍_标准字符集合_自定义字符集合_01 277_正则表达式_自定义字符集合特殊用法_量词_贪婪和非贪婪模式_02 278_正则表达式_字符边界_匹配模式(单行和多行模式)_03 279_正则表达式_分支结构_捕获组_非捕获组_反向引用_04 280_正则表达式_预搜索_零宽断言(4个语法结构)_05 281_正则表达式_电话号码_手机号码_邮箱_常用表达式_06 282_正则表达式_开发环境_文本编辑器中使用_07 283_正则表达式_JAVA编程中使用_查找_替换_分割_08 284_正则表达式_手写网络爬虫_基本原理_乱码处理_09
15 JDBC数据库操作 285_JDBC_mysql安装和启动_安装问题的解决 286_JDBC_mysql_navicat客户端软件使用_建库_建表_主键自增_SQL执行 287_JDBC_mysql_环境变量配置_命令行模式操作 288_JDBC_设计架构_驱动类加载_建立Connection_效率测试 289_JDBC_statement接口用法_SQL注入 290_JDBC_PreparedStatement用法_占位符_参数处理 291_JDBC_ResultSet结果集用法_游标原理_关闭连接问题 292_JDBC_批处理Batch_插入2万条数据的测试 293_JDBC_事务概念_ACID特点_隔离级别_提交commit_回滚rollback 294_JDBC_时间处理_Date_Time_Timestamp区别_随机日期生成 295_JDBC_时间操作_时间段和日期段查询 296_JDBC_CLOB文本大对象操作 297_JDBC_BLOB_二进制大对象的使用 298_JDBC_代码总结_简单封装_资源文件properties处理连接信息 299_JDBC_ORM原理_使用Object数组存储一条记录 300_JDBC_ORM原理_Map封装一条记录_Map和List封装多条记录 301_JDBC_ORM原理_使用javabean对象封装一条记录
16 手写SORM框架(学有余力同学观看) 302_【手写SORM框架】_思想介绍_架构介绍 303_【手写SORM框架】_架构设计_接口设计 304_【手写SORM框架】_DBManager_配置信息_获取表结构_TableContext处理 305_【手写SORM框架】_mysql数据类型转化器_MySqlTypeConvertor 306_【手写SORM框架】_根据表信息生成JAVA类源代码_1 307_【手写SORM框架】_根据表结构生成JAVA类源代码_2 308_【手写SORM框架】_同步表结构到po包_生成所有java类 309_【手写SORM框架】_delete方法的实现_class和表结构对应处理 310_【手写SORM框架】_executeDML方法_测试delete方法 311_【手写SORM框架】_插入数据_insert方法的实现 312_【手写SORM框架】_修改数据_update方法实现 313_【手写SORM框架】_查询多行记录封装成List和Javabean_queryRows方法 314_【手写SORM框架】_联表查询测试_VO值对象封装查询结果 315_【手写SORM框架】_其他查询方式_一行记录_一个对象 316_【手写SORM框架】_模板方法模式_回调方法优化Query类 317_【手写SORM框架】_工厂模式QueryFactory_克隆模式 318_【手写SORM框架】_连接池原理_手写连接池 319_【手写SORM框架】_连接池效率测试 320_【手写SORM框架】_jar包和API文档生成 321_【手写SORM框架】_使用说明_配置和启动过程_1 322_【手写SORM框架】_使用说明_bug修复_2
17 预科阶段(针对零基础和行业介绍,可跳过) 323_为什么需要学编程,什么样的人可以做程序员 324_流行的编程语言,应该怎么选择 325_本行不行,我可以转行到IT开发吗 326_程序员不是青春饭,程序员迈向百万年薪之路 327_零基础学员学习JAVA的秘诀 328_十分钟秒懂编程,程序就是现实逻辑的表达 329_表格思想_理解数据库存储数据 330_表格思想_理解JAVA类和对象 331_表格思想_理解XML文档 332_写出一份吸引面试官的简历(六大要素) 333_面试前,三大步让你秒杀90%竞争者 334_面试中,十大要点吸引面试官 335_技术面试中,不该问的4个问题 336_职场成功的核武器_7A+软实力理论 |