Java 学习笔记
Java 相关课程系列笔记之一
笔记内容说明
4 月 18 日的五天 Java 训练营(刘英谦老师主讲,占笔记内容 10%);
Java 基础和面向对象(刘苍松老师主讲,占笔记内容 40%);
Java SE 核心 I 和 Java SE 核心 II(范传奇老师主讲,占笔记内容 40%);
其他视频及书籍资料(占笔记内容 10%)
目 录
一 、 Java 技术基础 ...........................................................................................................................
1.1 编程语言 ................................................................................................................................
1.2 Java 的特点 ............................................................................................................................
1.3 Java 开发环境 ........................................................................................................................
1.4 Java 开发环境配置 ................................................................................................................
1.5 Linux 命令与相关知识..........................................................................................................
1.6 Eclipse/Myeclipse 程序结构 ..................................................................................................
二 、 Java 语言基础 ...........................................................................................................................
2.1 基础语言要素 ........................................................................................................................
2.2 八种基本数据类型 ................................................................................................................
2.3 常量和变量 ............................................................................................................................
2.4 运算符与表达式 ....................................................................................................................
2.5 编程风格 ................................................................................................................................
2.6 流程控制语句 ........................................................................................................................
2.7 数组 .........................................................................................................................................
2.8 字符串 ....................................................................................................................................
2.9 方法三要素 ............................................................................................................................
2.10 Java 系统 API 方法调用 ......................................................................................................
2.11 二进制基础 ..........................................................................................................................
2.12 Java 基础其他注意事项 ......................................................................................................
三 、 面向对象 ...................................................................................................................................
3.1 类 .............................................................................................................................................
3.2 对象 .........................................................................................................................................
3.3 包 .............................................................................................................................................
3.4 方法及其调用 ........................................................................................................................
3.5 引用 .........................................................................................................................................
3.6 访问控制(封装) ................................................................................................................
3.7 构造器 ....................................................................................................................................
super()、super.和this()、this...................................................................................
3.8 重载和重写 ............................................................................................................................
3.9 继承 .........................................................................................................................................
引用类型变量的类型转换 instanceof ..............................................................................
3.10 static......................................................................................................................................
3.11 final.......................................................................................................................................
3.12 多态 .......................................................................................................................................
3.13 抽象类..................................................................................................................................
3.14 接口 .......................................................................................................................................
3.15 内部类..................................................................................................................................
3.16 匿名类..................................................................................................................................
3.17 二维数组和对象数组..........................................................................................................
3.18 注意事项 ..............................................................................................................................
四 、 Java SE 核心 I...........................................................................................................................
1
4.1 Object 类 .................................................................................................................................
4.2 String 类..................................................................................................................................
4.3 StringUtils 类..........................................................................................................................
4.4 StringBuilder 类......................................................................................................................
4.5 正则表达式 ............................................................................................................................
4.6 Date 类....................................................................................................................................
4.7 Calendar 类.............................................................................................................................
4.8 SimpleDateFormat 类.............................................................................................................
4.9 DateFormat 类........................................................................................................................
4.10 包装类..................................................................................................................................
4.11 BigDecimal 类 ......................................................................................................................
4.12 BigInteger 类........................................................................................................................
4.13 Collection 集合框架 .............................................................................................................
4.14 List 集合的实现类 ArrayList 和 LinkedList .......................................................................
4.15 Iterator 迭代器......................................................................................................................
4.16 泛型 .......................................................................................................................................
4.17 增强型 for 循环 ....................................................................................................................
4.18 List 高级-数据结构:Queue 队列 ...................................................................................
4.19 List 高级-数据结构:Deque 栈.......................................................................................
4.20 Set 集合的实现类 HashSet ..................................................................................................
4.21 Map 集合的实现类 HashMap.............................................................................................
4.22 单例模式和模版方法模式..................................................................................................
五 、 Java SE 核心 II ..........................................................................................................................
5.1 Java 异常处理机制 ................................................................................................................
5.2 File 文件类.............................................................................................................................
5.3 RandomAccessFile 类 ............................................................................................................
5.4 基本流:FIS 和 FOS.............................................................................................................
5.5 缓冲字节高级流:BIS 和 BOS ............................................................................................
5.6 基本数据类型高级流:DIS 和 DOS....................................................................................
5.7 字符高级流:ISR 和 OSW ...................................................................................................
5.8 缓冲字符高级流:BR 和 BW ..............................................................................................
5.9 文件字符高级流:FR 和 FW ...............................................................................................
5.10 PrintWriter............................................................................................................................
5.11 对象序列化...........................................................................................................................
5.12 Thread 线程类及多线程......................................................................................................
5.13 Socket 网络编程 ..................................................................................................................
5.14 线程池..................................................................................................................................
5.15 双缓冲队列..........................................................................................................................
2
勿传网上!严禁谋利!
Java 学习笔记
常彦博
1.1 编程语言
机器语言:0
汇编语言:助记符
一、Java 技术基础
1 在硬件直接执行
(Java 运行比 C/C++慢)
高级语言:
1)面向过程的高级语言:程序设计的基本单位为函数,如:C/C++语言。
2)面向对象的高级语言:程序设计的基本单位为类,如:Java、C#。
平台无关性、简单性、面向对象、健壮性、多线程、自动内存管理。
平台无关性:指 Java 语言平台无关,而 Java 的虚拟机却不是,需要下载对应平台 JVM 虚
自动内存管理:对临时存储的数据自动进行回收,释放内存。如:引用类型的变量没有
指向时,被回收;程序执行完后,局部变量被回收。
1.2Java 的特点
1.3Java 开发环境
拟机的。
Java Developement Kit——Java 开发工具包,简称 JDK,是由 Sun 公司提供的一个免费
的 Java 开发工具,编程人员和最终用户可以利用这个工具来编译、运行 Java 程序。目前版本
有 JDK1.0、JDK1.1、JDK1.2、JDK1.3、JDK1.4、JDK1.5(J2SE5.0)、JDK1.6(J2SE6.0)、JDK1.7(J2SE7.0)。
JDK 结构:JDK
|--开发工具(Tools)命令:java、javac、jar、rmic ...
|-- JRE(Java 基本运行环境)
|--系统 API 库,系统类库
|
|-- J VM java 虚拟机
系统带来的标准程序库,标准 API
java 语言的执行环境
1
勿传网上!严禁谋利!
Java 学习笔记
常彦博
1.4Java 开发环境配置
安装完 JDK 之后,不能立刻使用,需要设置环境变量:
1)设置 PATH:D:\Java\jdk1.6.0\bin(指向 JDK 中 bin 文件夹,有各种编译命令)。
2)CLASSPATH:告诉 Java 程序去哪里查找第三方和自定义类,如果 .class 文件和类源文
件在同一文件夹内,则不需要配置 classpath,后续有包,则需要。
A.Windows:在命令行执行
set CLASSPATH=E:\workspace\1304\bin (临时环境配置)
java day02.Demo1
注意事项:
E:\ set classpath = c:\ (不加分号就不找当前路径)
= . ; c:\ ; d:\ ;(先找 classpath,若无,再找当前路径)
C、D 两盘有同名 . class 文件,classpath 设置为 D 盘,而命令行窗口当前盘符
为 C 盘,则 JVM 现找 classpath 路径,后找当前路径。
B.Linux:在控制台执行
①设置 CLASSPATH 环境变量,指向 package 所在的目录,一般是项目文件夹中的 bin 目
录。
②执行 java package.ClassName (包名必须写)。
export CLASSPATH=/home/soft01/workspace/1304/bin (临时环境配置)
java day01.HelloWorld
java
-cp /home/soft01/workspace/1304/bin day01.HelloWorld(二合一)
注意事项:
Windows 根目录是反斜线:\
Linux 根目录是斜线:/
1.5Linux 命令与相关知识
1)Linux 无盘符,只有一个根目录(root)
2)终端 == 控制台 == 命令行窗口
3)pwd:打印当前工作目录,显示当前工作目录的位置
4)ls:列表显示目录内容,默认显示当前目录内容
5)cd:改变当前工作目录;cd 后不加参数=返回 home 文件夹;cd ~:返回 home;
cd /:切换到根目录;cd .. :返回上一层目录(相对的);
6)mkdir:创建文件夹(目录) 注意:目录 == 文件夹
7)rm:删除文件;rm xx
xx:可删多个文件;
rm –rf
xx:-为减号,r 表递归,f 表强制
xx:显示文本文件内容
8)cat
9)启动 Java 开发工具:cd/opt/eclipse ./eclipse
10)绝对路径: /home (以 / 开始为绝对路径,相对于根目录)
. 表当前目录下
相对路径:home (相对于当前工作目录)
11)home(用户主目录,用户的家):/home/username 如:/home/soft01
12)主目录(home):有最大访问权限:什么都能干,增删改查、建目录等
其他地方:一般只能查看,不能增删改查、创建目录等
2
勿传网上!严禁谋利!
Java 学习笔记
常彦博
1.6Eclipse/Myeclipse 程序结构
Project 项目文件
|-- src 源文件
|
|
|-- bin
|--
|-- Package 包
.java 源文件
|-- Package 包
|-- .class 字节码程序
注意事项:
Myeclipse5.5 消耗少,Myeclipse6.5 最稳定
3
勿传网上!严禁谋利!
Java 学习笔记
常彦博
二、Java 语言基础
2.1 基础语言要素
1)标识符:给类、方法、变量起的名字
A.必须以字母或下划线或 $ 符号开始,其余字符可以是字母、数字、$ 符号和下
划线。
符。
B.只能包含两个特殊字符,即下划线 _ 和美元符号 $ 。不允许有任何其他特殊字
C.标识符不能包含空格。
D.区分大小写。
2)关键字:只有系统才能用的标识符
注意事项:
true、false、null 不是关键字!是字面量。
main 不是关键字!但是是一个特殊单词,可以被 JVM 识别,主函数是固定格式,
作为程序的入口。
3)注释:单行注释:// 多行注释:/* ……*/
注意事项:开发中类前、属性前、方法前,必须有文档注视。
文档注释:/**……*/
2.2 八种基本数据类型
1)四种整数类型(byte、short、int、long):
byte:8 位,用于表示最小数据单位,如文件中数据,-128~127
short:16 位,很少用,-32768 ~ 32767
int:32 位、最常用,-2^31-1~2^31 (21 亿)
long:64 位、次常用
注意事项:
int i=5; // 5 叫直接量(或字面量),即直接写出的常数。
整数字面量默认都为 int 类型,所以在定义的 long 型数据后面加 L 或 l。
小于 32 位数的变量,都按 int 结果计算。
强转符比数学运算符优先级高。见常量与变量中的例子。
2)两种浮点数类型(float、double):
float:32 位,后缀 F 或 f,1 位符号位,8 位指数,23 位有效尾数。
double:64 位,最常用,后缀 D 或 d,1 位符号位,11 位指数,52 位有效尾数。
注意事项:
二 进 制 浮 点 数 : 1010100010=101010001.0*2=10101000.10*2^10(2 次
方)=1010100.010*2^11(3 次方)= . 1010100010*2^1010(10 次方)
尾数: . 1010100010 指数:1010 基数:2
浮点数字面量默认都为 double 类型,所以在定义的 float 型数据后面加 F 或 f;
double 类型可不写后缀,但在小数计算中一定要写 D 或 X.X。
float 的精度没有 long 高,有效位数(尾数)短。
float 的范围大于 long 指数可以很大。
浮点数是不精确的,不能对浮点数进行精确比较。
4