1、传智播客 JAVA学习笔记 第 一 页 JAVA 学 习 路 线 传智播客 JAVA学习笔记 第 二 页 第一天 1:计算机概述 (了解 )2 2:键盘功能键的认识和快捷键 (掌握 )2 3:常见的 DOS命令 (掌握 )3 4:Java语言概述 (了解 )3 5:JDK,JRE,JVM的作用及关系 (掌握 ) 3 6:JDK的下载 ,安装 ,卸载 (掌握 )4 7:第一个程序: HelloWorld案例 (掌握 )4 8:常见的问题 (掌握 )5 9:path环境变量 (掌握 )5 10:classpath环境变量 (理解 )5 第二天 1:关键字 (掌握 )6 2:标识符 (掌握 )6 3
2、:注释 (掌握 )7 4:常量 (掌握 )7 5:进制转换 (了解 )7 6:变量 (掌握 )8 7:数据类型 (掌握 )8 8:数据类型转换 (掌握 )8 第三天 1:运算符 (掌握 )10 2:键盘录入 (掌握 )11 3:流程控制语句 12 4:if语句 (掌握 )12 第四天 1:switch语句 (掌握 )14 2:循环语句 (掌握 )15 3:控制跳转语句 (掌握 )17 第五天 1:方法 (掌握 )18 2:数组 (掌握 )19 第六天 1:二维数组 (理解 )23 2:两个思考题 (理解 )23 3:面向对象 (掌握 )23 第七天 传智播客 JAVA学习笔记 第 三 页 1:
3、成员变量和局部变量的区别 (理解 )25 2:类作为形式参数的问题 ?(理解 )25 3:匿名对象 (理解 )25 4:封装 (理解 )25 5:private关键字 (掌握 )25 6:this关键字 (掌握 )26 7:构造方法 (掌握 )26 8:代码: Student s = new Student();做了哪些事情 ?(理解 )27 9:面向对象的练习题 (掌握 )27 第八天 1:如何制作帮助文档 (了解 )28 2:通过 JDK提供的 API学习了 Math类 (掌握 )28 3:代码块 (理解 )28 4:继承 (掌握 )28 第九天 1:final关键字 (掌握 )30 2:
4、多态 (掌握 )30 3:抽象类 (掌握 )32 4:接口 (掌握 )33 第十天 1:形式参数和返回值的问题 (理解 )35 2:包 (理解 )35 3:导包 (掌握 )35 4:权限修饰符 (掌握 )36 5:常见的修饰符 (理解 )36 6:内部类 (理解 )37 第十一天 1:Eclipse的概述使用 (掌握 )40 2:API的概述 (了解 )40 3:Object类 (掌握 )40 第十二天 1:Scanner的使用 (了解 )41 2:String类的概述和使用 (掌握 )41 第十三天 1:StringBuffer(掌握 )44 2:数组高级以及 Arrays(掌握 )44 传
5、智播客 JAVA学习笔记 第 四 页 3:Integer(掌握 )46 4:Character(了解 )47 第十四天 1:正则表达式 (理解 )47 2:Math(掌握 )49 3:Random(理解 )49 4:System(掌握 )49 5:BigInteger(理解 )50 6:BigDecimal(理解 )50 7:Date/DateFormat(掌握 )50 8:Calendar(掌握 )51 第十五天 1:对象数组 (掌握 )52 2:集合 (Collection)(掌握 )52 3:集合 (List)(掌握 )55 第十六天 1:List的子类 (掌握 )57 2:泛型 (掌握
6、 )58 3:增强 for循环 (掌握 )58 4:静态导入 (了解 )58 5:可变参数 (掌握 )59 6:练习 (掌握 )59 7:要掌握的代码 59 第十七天 1:登录注册案例 (理解 )60 2:Set集合 (理解 )60 3:Collection集合总结 (掌握 )60 4:针对 Collection集合我们到底使用谁呢 ?(掌握 )61 5:在集合中常见的数据结构 (掌握 )61 第十八天 1:Map(掌握 )62 2:Collections(理解 )63 第十九天 1:异常 (理解 )64 2:File(掌握 )65 第二十天 传智播客 JAVA学习笔记 第 五 页 1:递归
7、(理解 )66 2:IO流 (掌握 )66 3:自学字符流 第二十一天 1:字符流 (掌握 )69 第二十一天 1:字符流 (掌握 )69 2:IO流小结 (掌握 )70 3:案例 (理解 练习一遍 )71 第二十二天 1:登录注册 IO 版本案例 (掌握 )72 2:数据操作流 (操作基本类型数据的流 )(理解 )72 3:内存操作流 (理解 )72 4:打印流 (掌握 )72 5:标准输入输出流 (理解 )73 6:随机访问流 (理解 )73 7:合并流 (理解 )73 8:序列化流 (理解 )73 9:Properties(理解 )74 10:NIO(了解 )74 第二十三天 1:多线
8、程 (理解 )75 第二十四天 1:多线程 (理解 )77 2:设计模式 (理解 )77 第二十五天 1:如何让 Netbeans的东西 Eclipse能访问 79 2:GUI(了解 )79 第二十六天 1:网络编程 (理解 )80 第二十七天 1:反射 (理解 )82 2:设计模式 82 3:JDK新特性 82 传智播客 JAVA学习笔记 第 2 页 JAVA学习总结 姓名:陈鑫 第一天 1:计算机概述 (了解 ) (1)计算机 (2)计算机硬件 (3)计算机软件 系统软件: window,linux,mac 应用软件: qq,yy,飞秋 (4)软件开发 (理解 ) 软件:是由数据和指令组成
9、的。 (计算器 ) 开发:就是把软件做出来。 如何实现软件开发呢 ? 就是使用开发工具和计算机语言做出东西来 (5)语言 自然语言:人与人交流沟通的 计算机语言:人与计算机交流沟通的 C,C+,C#,Java (6)人机交换 图形界面:操作方便只管 DOS命令:需要记忆一些常见的命令 2:键盘功能键的认识和快捷键 (掌握 ) (1)功能键的认识 tab shift ctrl alt windos 空格 上下左右 回车 截图 (2)快捷键 全选 Ctrl+A 复制 Ctrl+C 粘贴 Ctrl+V 剪切 Ctrl+X 撤销 Ctrl+Z 保存 Ctrl+S 传智播客 JAVA学习笔记 第 3 页
10、 3:常见的 DOS命令 (掌握 ) (1)常见的如下 盘符的切换 d:回车 目录的进入 cd javase cd javaseday01code 目录的回退 cd cd 清屏 cls 退出 exit (2)其他的几个 (了解 ) 创建目录 删除目录 创建 文件 删除文件 显示目录下的内容 删除带内容的目录 4:Java语言概述 (了解 ) (1)Java语言的发展史 Java之父 JDK1.4.2 JDK5 JDK7 (2)Java语言的特点 有很多小特点,重点有两个开源,跨平台 (3)Java语言是跨平台的,请问是如何保证的呢 ?(理解 ) 我们是通过翻译的案例讲解的。 针对不同的操作系统
11、,提高不同的 jvm来实现的。 (4)Java语言的平台 JavaSE JavaME-Android JavaEE 5:JDK,JRE,JVM的作用及关系 (掌握 ) (1)作用 JVM:保证 Java语言跨平台 JRE: Java程序的运行环境 传智播客 JAVA学习笔记 第 4 页 JDK: Java程序的开发环境 (2)关系 JDK: JRE+工具 JRE: JVM+类库 6:JDK的下载 ,安装 ,卸载 (掌握 ) (1)下载到官网。 A:也可以到百度搜索即可。 B:我给你。 (2)安装 A:绿色版 解压就可以使用 B:安装版 必须一步一步的安装,一般只要会点击下一步即可 注意: 建议
12、所有跟开发相关 的软件都不要安装在有中文或者空格的目录下。 (3)卸载 A:绿色版 直接删除文件夹 B:安装版 a:控制面板 - 添加删除程序 b:通过专业的软件卸载工具。 (比如 360的软件管家卸载 ) 7:第一个程序: HelloWorld案例 (掌握 ) class HelloWorld public static void main(String args) System.out.println(“HelloWorld“); (1)程序解释: A:Java程序的最基本单位是类,所以我们要定义一个类。 格式: class 类名 举例: class HelloWorld B:在类中写内容
13、的时候,用大括号括起来。 C:Java程序要想执行,必须有 main方法。 格式: public static void main(String args) D:要指向那些东西呢,也用大括号括起来。 E:你要做什么呢 ?今天我们仅仅做了一个简单的输出 格式: System.out.println(“HelloWorld“); 注意: “里面 的内容是可以改动的。 (2)Java程序的开发执行流程: A:编写 java源程序 (.java) B:通过 javac命令编译生成 .class文件 C:通过 java命令运行 .class文件 传智播客 JAVA学习笔记 第 5 页 8:常见的问题 (
14、掌握 ) (1)扩展名被隐藏 如何找到:工具 -文件夹选项 -查看 -去除隐藏扩展名的那个勾勾 (2)我要求文件名称和类名一致。 实际上不这样做也是可以的。 但是,注意: javac后面跟的是文件名 +扩展名 java后面跟的类名不带扩展名 (3)Java语言严 格区分大小写,请注意。 还有就是单词不要写错了。 (4)见到非法字符 : 65307肯定是中文问题。 我们写程序要求标点符号必须全部是英文状态。 (5)括号的配对问题。 一般来说,括号都是成对出现的。 (6)遇到 在类 HelloWorld 中找不到主方法 , 请将主方法定义为 肯定是主方法的格式问题。 9:path环境变量 (掌握
15、) (1)path环境变量的作用 保证 javac命令可以在任意目录下运行。 同理可以配置 qq等 (2)path配置的两种方案: A:方案 1(了解 ) B:方案 2 找到环境变量的位置,在系统变量里面 新建: 变量名: JAVA_HOME 变量值: D:developJavajdk1.7.0_60 修改: 变量名: Path 变量值: %JAVA_HOME%bin;以前的内容 10:classpath环境变量 (理解 ) (1)classpath环境变量的作用 保证 class文件可以在任意目录下运行 (2)classpath环境变量的配置 找到环境变量的位置,在系统变量里面 新建 : 变
16、量名: classpath 变量值: E:JavaSEday01codeHelloWorld案例 传智播客 JAVA学习笔记 第 6 页 第二天 1:关键字 (掌握 ) (1)被 Java语言赋予特定含义的单词 (2)特点: 全部小写。 (3)注意事项: A:goto和 const作为保留字存在。 B:类似于 Notepad+这样的高级记事本会对关键字有特殊颜色标记 2:标识符 (掌握 ) (1)就是给类,接口,方法,变量等起名字的字符序列 (2)组成规则: A:英文大小写字母 B:数字 C:$和 _ (3)注意事项: A:不能以数字开头 B:不能是 java中的关键字 C:区分大小写 (4)
17、常见的命名规则 (见名知意 ) A:包 全部小写 单级包:小写 举例: liuyi,com 多级包:小写,并用 .隔开 举例: cn.itcast,com.baidu B:类或者接口 一个单词:首字母大写 举例: Student,Demo 多个单词:每个单词首字母大写 举例: HelloWorld,StudentName C:方法或者变 量 一个单词:首字母小写 举例: name,main 多个单词:从第二个单词开始,每个单词首字母大写 举例: studentAge,showAllNames() D:常量 全部大写 一个单词:大写 举例: PI 多个单词:大写,并用 _隔开 举例: STUDE
18、NT_MAX_AGE 传智播客 JAVA学习笔记 第 7 页 3:注释 (掌握 ) (1)就是对程序进行解释说明的文字 (2)分类: A:单行注释 / B:多行注释 /*/ C:文档注释 (后面讲 ) /* */ (3)把 HelloWorld案例写了一个带注释的版本。 后面我们要写一个程序的过程。 需求: 分析: 实现: 代码体现: (4)注释的作用 A:解释说明程序,提高了代码的阅读性。 B:可以帮助我们调试程序。 后面我们会讲解一个更高端的一个调试工具 4:常量 (掌握 ) (1)在程序执行的过程中,其值不发生改变的量 (2)分类: A:字面值常量 B:自定义常量 (后面讲 ) (3)字
19、面值常量 A:字符串常量 “hello“ B:整数常量 12,23 C:小数 常量 12.345 D:字符常量 a,A,0 E:布尔常量 true,false F:空常量 null(后面讲 ) (4)在 Java中针对整数常量提供了四种表现形式 A:二进制 由 0, 1组成。以 0b开头。 B:八进制 由 0, 1, .7组成。以 0开头。 C:十进制 由 0, 1, .9组成。整数默认是十进制。 D:十六进制 由 0, 1, .9,a,b,c,d,e,f(大小写均可 )组成。以 0x开头。 5:进制转换 (了解 ) (1)其他进制到十进制 系数:就是每一个位 上的数值 基数: x进制的基数就
20、是 x 权:对每一个位上的数据,从右,并且从 0 开始编号,对应的编号就是该数据的权。 结果:系数 *基数 权次幂之和。 传智播客 JAVA学习笔记 第 8 页 (2)十进制到其他进制 除基取余,直到商为 0,余数反转。 (3)进制转换的快速转换法 A:十进制和二进制间的转换 8421码。 B:二进制到八进制,十六进制的转换 6:变量 (掌握 ) (1)在程序的执行过程中,其值在某个范围内可以发生改变的量 (2)变量的定义格式: A:数据类型 变量名 = 初始化值 ; B:数据类 型 变量名 ; 变量名 = 初始化值 ; 7:数据类型 (掌握 ) (1)Java是一种强类型语言,针对每种数据都
21、提供了对应的数据类型。 (2)分类: A:基本数据类型: 4类 8种 B:引用数据类型:类,接口,数组。 (3)基本数据类型 A:整数 占用字节数 byte 1 short 2 int 4 long 8 B:浮点数 float 4 double 8 C:字符 char 2 D:布尔 boolean 1 注意: 整数默认是 int类型,浮点数默认是 double。 长整数要加 L或者 l。 单精度的浮点数要加 F或者 f。 8:数据类型转换 (掌握 ) (1)boolean类型不参与转换 (2)默认转换 A:从小到大 B:byte,short,char - int - long - float
22、- double 传智播客 JAVA学习笔记 第 9 页 C:byte,short,char之间不相互转换,直接转成 int类型参与运算。 (3)强制转换 A:从大到小 B:可能会 有精度的损失,一般不建议这样使用。 C:格式: 目标数据类型 变量名 = (目标数据类型 ) (被转换的数据 ); (4)思考题和面试题: A:下面两种方式有区别吗 ? float f1 = 12.345f; float f2 = (float)12.345; B:下面的程序有问题吗,如果有,在哪里呢 ? byte b1 = 3; byte b2 = 4; byte b3 = b1 + b2; byte b4 =
23、3 + 4; C:下面的操作结果是什么呢 ? byte b = (byte)130; D:字符参与运算 是查找 ASCII里面的值 a 97 A 65 0 48 System.out.println(a); System.out.println(a + 1); E:字符串参与运算 这里其实是字符串的连接 System.out.println(“hello“+a+1); System.out.println(a+1+“hello“); System.out.println(“5+5=“+5+5); System.out.println(5+5+“=5+5“); 传智播客 JAVA学习笔记 第 1
24、0 页 第三天 1:运算符 (掌握 ) (1)算术运算符 A:+,-,*,/,%,+,- B:+的用法 a:加法 b:正号 c:字符串连接符 C:/和 %的区别 数据做除法操作的时候, /取得是商, %取得是余数 D:+和 -的用法 a:他们的作用是自增或者自减 b:使用 *单独使用 放在操作数据的前面和后面效果一样。 a+或者 +a效果一样。 *参与操作使用 放在操作数的前面:先自增或者自减,再参与操作 int a = 10; int b = +a; 放在操作数的后面:先参与操作,再自增或者自减 int a = 10; int b = a+; (2)赋值运算符 A:=,+=,-=,*=,/=
25、,%=等 B:=叫做赋值运算符,也是最基本的赋值运算符 int x = 10; 把 10赋 值给 int类型的变量 x。 C:扩展的赋值运算符的特点 隐含了自动强制转换。 面试题: short s = 1; s = s + 1; short s = 1; s += 1; 请问上面的代码哪个有问题 ? (3)比较运算符 A:=,!=,=, max) max = arrx; return max; 传智播客 JAVA学习笔记 第 21 页 最小值: public static int getMin(int arr) int min = arr0; for(int x=1; xarr.length;
26、 x+) if(arrx min) min = arrx; return min; C:逆序 方式 1: public static void reverse(int arr) for(int x=0; xarr.length/2; x+) int temp = arrx; arrx = arrarr.length-1-x; arrarr.length-1-x = temp; 方式 2: public static void reverse(int arr) for(int start=0,end=arr.length-1; start=end; start+,end-) int temp =
27、 arrstart; arrstart = arrend; arrend = temp; D:查表 public static String getString(String strArray,int index) return strArrayindex; E:基本查找 方式 1: public static int getIndex(int arr,int value) for(int x=0; xarr.length; x+) if(arrx = value) return x; return -1; 传智播客 JAVA学习笔记 第 22 页 方式 2: public static in
28、t getIndex(int arr,int value) int index = -1; for(int x=0; xarr.length; x+) if(arrx = value) index = x; break; return index; 传智播客 JAVA学习笔记 第 23 页 第六天 1:二维数组 (理解 ) (1)元素是一维数组的数组。 (2)格式: A:数 据类型 数组名 = new 数据类型 mn; B:数据类型 数组名 = new 数据类型 m; C:数据类型 数组名 = new 数据类型 .,.,.; D:数据类型 数组名 = .,.,.; (3)案例 (掌握 ): A
29、:二维数组的遍历 B:二维数组的求和 C:杨辉三角形 2:两个思考题 (理解 ) (1)Java中的参数传递问题 Java中只有值传递。 基本类型:形式参 数的改变不影响实际参数 引用类型:形式参数的改变直接影响实际参数 (2)数据加密问题 综合的小案例。 3:面向对象 (掌握 ) (1)面向对象 面向对象是基于面向过程的编程思想 (2)面向对象的思想特点 A:是一种更符合我们思考习惯的思想 B:把复杂的事情简单化 C:让我们从执行者变成了指挥者 举例: 买电脑 洗衣服 做饭 . 万事万物皆对象 (3)把大象装进冰箱 (理解 ) A:面向过程实现 B:面向对象实现 注意: 如何让我们的操作更符
30、合面向对象思想呢 ? A:有哪些类 B:每个类有哪些成员 C:类与类的关系 传智播客 JAVA学习笔记 第 24 页 (4)类与对象 A:现实世界的事物 属性 事物的基本描述 行为 事物的功能 B:Java语言中最基本的单位是类。所以,我们要用类来体现事物 C:类 成员变量 事物属性 成员方法 事物行为 D:类:是一组相关的属性和行为的集合。是一个抽象的概念。 对象:是该类事物的具体存在,是一个具体的实例。 (对象 ) 举例: 学生:类 班长: 对象 (5)类的定义及使用 A:类的定义 成员变量 定义格式和以前一样,就是位置不同,在类中,方法外。 成员方法 定义格式和以前一样,就是去掉了 st
31、atic。 B:使用类的内容 a:创建对象 ? 格式 类名 对象名 = new 类名 (); b:如何使用成员变量和成员方法呢 对象名 .成员变量 对象名 .成员方法 () (6)案例: A:学生类的定义和使用 B:手机类的定义和使用 (7)内存图 A:一个对象的内存图 B:二个对象的内存图 C:三个对象的内存图 (8)Java程序的开发,设计和特征 A:开发:就是不断的创建对象,通过对象调用功能 B:设计:就是管理和维护对象间的关系 C:特征 a:封装 b:继承 c:多态 传智播客 JAVA学习笔记 第 25 页 第七天 1:成员变量和局部变量的区别 (理解 ) (1)在类中的位置不同 成员
32、变量:类中方法外 局部变量:方法定义中或者方法声明上 (2)在内存中的位置不同 成员变量:在堆中 局部变量:在栈中 (3)生命周期不同 成员变量:随着对象的创建而存在,随着对象 的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 (4)初始化值不同 成员变量:有默认值 局部变量:没有默认值,必须定义,赋值,然后才能使用 2:类作为形式参数的问题 ?(理解 ) (1)如果你看到一个方法需要的参数是一个类名,就应该知道这里实际需要的是一个具体的对象。 3:匿名对象 (理解 ) (1)没有名字的对象 (2)应用场景 A:调用方法,仅仅只调用一次的时候。 b:可以作为实际参数传递。
33、 4:封装 (理解 ) (1)隐藏实现细节,提供公共的访问 方式 (2)好处: A:隐藏实现细节,提供公共的访问方式 B:提高代码的复用性 C:提高代码的安全性 (3)设计原则 把不想让外界知道的实现细节给隐藏起来,提供公共的访问方式 (4)private是封装的一种体现。 封装:类,方法, private修饰成员变量 5:private关键字 (掌握 ) (1)私有的意义,可以修饰成员变量和成员方法 (2)特点: 被 private修饰的后的成员只能在本类中被访问 (3)private的应用: 以后再写一个类的时候: 传智播客 JAVA学习笔记 第 26 页 把所有 的成员变量给 priva
34、te了 提供对应的 getXxx()/setXxx()方法 6:this关键字 (掌握 ) (1)代表当前类的引用对象 记住:哪个对象调用方法,该方法内部的 this就代表那个对象 (2)this的应用场景: A:解决了局部变量隐藏成员变量的问题 B:其实 this还有其他的应用,明天讲解。 7:构造方法 (掌握 ) (1)作用:用于对对象的数据进行初始化 (2)格式: A:方法名和类名相同 B:没有返回值类型,连 void都不能有 C:没有返回值 思考题:构造方法中可不可以有 return语句呢 ? 可以。而是我们写成这个样子就 OK了: return; 其实,在任何的 void类型的方法的
35、最后你都可以写上: return; (3)构造方法的注意事项 A:如果我们没写构造方法,系统将提供一个默认的无参构造方法 B:如果我们给出了构造方法,系统将不再提供默认构造方法 如果这个时候,我们要使用无参构造方法,就必须自己给出。 推荐:永远手动自己给出无参构造方法。 (4)给成员变量赋值的方式 A:setXxx() B:带参构造方法 (5)标准案例 class Student private String name; private int age; public Student() public Student(String name,int age) this.name = name; this.age = age; public String getName() return name;