第一章:
j2se j2ee j2me
jvm jre jdk
装jdk
简单的dos命令: cd dir ..
第一个程序 javac java
第二章:
代码书写风格
标识符: 类名 变量名方法名 驼峰原则
命名规则: 字母 下划线 $ 开头 后可+数字 任意组合 不能保留字
变量: 值可以变化的量
局部变量 全局变量
变量的作用域 当前大括号
常量
数据类型:
一个字节占 八 位
基本数据类型 :三类八种(逻辑型(boolean),文本型(char(2)), 数值型(byte(1), short(2), int(4), long(8), float(4), double(8)))
boolean 占一位
引用类型: 占4个字节
类型转换:
自动转换:容量小的转大的 特例: byte short char
强转 (要转的类型)数据;
语句:
分支 if else if else switch
循环: for while do{}while();
break continue
String 的常用方法: charAt indexOf trim length startsWith endsWith equals split lastIndexOf substring
冒泡 穷举 递归
方法的调用:
形参 实参 返回类型 return static 修饰符
第三章:面向对象
类:具有共同特征的事物的集合
属性: 静态特征
方法: 动态行为
对象: 个体 实例
内存分析:
栈:线性排列 有序先进后出 读取数据快 装:局部变量
堆:散列排列 无序 存储数据快 装: new 出来的对象
方法区: 散列排列 数据可共享 线程可共享 装:字符串常量 static修饰的全局变量 代码
构造器:特殊的方法 修饰符 类名(形参列表){} 返回一个对象 普通方法通过 new 调用 构造器之间通过this调用(且在第一行)
面向对象的特征: 封装 继承 多态
封装: 设定器 访问器 赋予了特殊含义的普通方法 对数据的保护
this: 本类的正在创建的对象 当前对象
static: 静态共享的
静态块 加载时运行 只运行一次 了解非静态块
修饰符:private < default < protected < public
继承: A extends B A:子类扩展类 B:父类 超类 基类
子类拥有父类的全部拷贝 包括private 修饰的 数据 。不包括构造器 子类 new对象时 必须先调用父类构造器
super: 父类的 super.方法名() super(实参列表) 子类构造器中使用(且在第一行)
重写:子类和父类之间 方法名 形参必须一致
返回类型 子类小于等于父类(引用类型且继承关系)
修饰符:子类 大于 等于父类 父类private、final、static 修饰的方法 不能被重写
异常: 父类没有(默认RuntimeException) 子类也没有 子类 类型小于等于父类和RuntimeException及其子类
重载:两同 三不同
多态:继承 重写 父类引用指向子类对象
子类和父类之间的类型转换:A extends B
前提:父类引用指向子类对象 B b = new A(); { A a = new A() B b = (B)a; 报错 ClassCastException}
自动转换 强制转换
final: 修饰变量 修饰类 修饰方法
抽象类 abstract class 有抽象方法的类一定是抽象类 抽象类未必有抽象方法
装 属性 方法 构造器 构造器不能new 对象
被子类继承 单继承
接口: 纯规范 interface
装:public static final 修饰的属性 抽象方法
被实现 implements 一个类可以实现多个接口
接口可以多继承
面向接口编程的概念 高内聚低耦合
类与类之间的关系: 继承 实现 依赖 关联 聚合组合
垃圾回收机制
生成api
导出jar包
导入jar包
eclipse的简单实用
单例 简单工厂 工厂方法 静态代理
第四章:异常
Throwable Error Exception
Error 和 Exception的区别:
throws 和 throw的区别
自定义异常
try{}catch(){}finally{} catch策略: 小的放前面 (继承关系 辈分小) finally 最终都会执行一般关闭对象
执行顺序结合return
第五章:数组
特征:有序 数据类型相同
1:有序 查询快
2:数据类型相同 Object[] 可装任意数据
3:长度固定 不可变
4:数组也是对象 元素相当于类的属性
一维数组:
定义:类型[] 标识符 = new 类型[长度]; 声明和初始化
赋值:
静态: 类型[] 标识符 ={};
动态 标识符[下标] = 值;
遍历:
Arrays.toString();
for(int i = 0;i<数组.length;i++)
for(类型标识符:数组){}
常用方法:
System copy Arrays sort(自然顺序) 降序用冒泡
main(String[] args) args的传参 eclipse dos
增强for循环
方法(Object...args) 此参数只能放在形参列表中最后一个位置
传参特殊 可以直接传数组对象 也可以对应数据类型传多个数组元素
二维数组:
第六章:
基本数据类型包装类
int Integer char Character 剩下首字母大写
自动装箱: Integer i = 100; ===> Integer i = new Integer(100);
自动拆箱 int i = new Integer(100); ====> int i = new Integer(100).intValue();
Integer a = 1000; Integer b = 1000; a==b 返回的是:false
Integer a = 1; Integer b = 1; a==b 返回的是: true
String :
StringBuffer StringBuilder
日期类型:
util.Date new Date() new Date(long) before after setTime getTime
sql.Date Date.valueOf("")
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
df.parse("2012-12-12 16:18:18") 将指定字符串日期数据解析成Date数据 实参必须跟构造器格式匹配
df.format() 将日期转换为字符串 格式参照构造器格式
Calendar日历类 set(Calendar.属性,值) get((Calendar.属性) add(Calendar.属性,值);
属性: private static final int
Math: random() PI
File: new File(字符串路径) getName length isFile isDirectory mkDir mkDirs createNewFile
了解枚举
第七章:
容器: 数组的补充 数组优点查询快 缺点 不灵活 所以引用容器的概念 容器优点灵活 缺点:装任意数据类型 取数据麻烦 所以引入 泛型
Collection:
List:有序 可重复
ArrayList LinkedList Vector
Set: 无序 不可重复
HashSet
Map : 键值对
HashMap HashTable
常用方法
遍历:
Iterator 接口专门遍历Collection
list 三种: size() get()
增强for循环
Iterator
Set: 增强for循环
Iterator
Map: values() 返回 Collection 装的全是value
keySet() 返回Set 所有key 获取value map.get(key);
entrySet() 返回 Set 键值对 getKey() getValue() setValue()
泛型:
参数化类型 简化Object使用 可以不再类型转换
声明 public class A{} T就是泛型 应用与类内任何使用类型的地方
public static 返回类型 方法名(M m){} 泛型方法 静态方法使用泛型只能自己定义 非静态的可以使用类的泛型也可以自己定义
A List