强制转换格式 新变量类型 想把原来的变量转换成的类型 不做重点 a 三元运算符 如何从键盘输入不同类型变量 (scanner 类) (非要用) If-else 结构 .equals 返回 true or false Switch-case 结构 For 循环结构 While 循环 Do-while 嵌套循环 Break-continue 关键字 修饰符 数组 一维数组 1. 2. 3. 4. 5. // 联 系 方 式 二维数组 输入随机数 例子:随机两位数 Array1=Array2 只是复制了地址 数组的复制 快速排序?(代码不会) Arrays 工具类的使用(常见的) Java.util.Arrays 数组使用常见的异常 面向对象 成员变量 VS 局部变量‘ 方法的重载 可变个数形参的方法 匿名对象 方法参数的值传递机制 封装性的体现 个人理解:方法类里面的变量设置为私有,让用户 在 主 函 数 中 通 过 方 法 来 调 用 变 量 高内聚:类的内部数据操作细节自己完成,不能允许外部干涉 低耦合:仅保留少量的方法用于使用 封装性的体现需要权限修饰符来配合(private ,缺省,protected ,public) 四种权限可以用来修饰类及类的内部结构:属性方法构造器内部类 修饰类的话只能使用缺省和 public 构造器 关键字: This 关键字的使用 1. this 可以用来修饰属性,方法,构造器 2. this 修饰的属性和方法:理解为当前对象,在了的 方法中,我们可以使用“this.属性”或“this.方法“的方 式电泳当前对象的属性或方法,但是通常情况下, 选择省略 this. 3. this 修饰的构造器: package 的使用 1. 为了更好地实现项目中类的管理 2. 使用 package 声明类或接口所属的包,声明在源文件的首 行 3. 属于标识符,遵循标识符的命名规则,规范()见名知意 4. 每“.“一次,就代表一层文件目录 补充:同一个包下,不能命名同名的接口。不同的包下可以; import 的使用 import:导入 1. 在源文件中显式的使用 import 结构导入指定包下的类,接口 2. 声明在包的声明和类的声明之间 3. 可以使用“xxx”.*的方式表示可以导入 xxx 包下的所有结构 4. 如果使用的接口是 java.lang 包下定义的,则可以省略 import 结 构 5. 如果使用的类或接口是本包下定义的,则可以省略 import 结构 6. 如果在源文件中使用了不同包下的同名的类,则必须至少有一个 类以全类名的方式显示 Eclipse 中的快捷键 继承性 (私有的也可以继承) 方法的重写(重写父类的方法,进行覆盖操作) 重写的规定(只有非 static 可以被重写) ① 子类重写的方法的方法名和形参列表相同 ② 子类重写的方法的权限修饰符不小于父类被重写的方法 的权限修饰符 特殊情况:子类不能重写父类中的 private 方法 ③ 返回值类型:父类被重写的方法返回值类型是 void, 则子类重写的方法返回值类型也需要是 void 父类被重写的方法返回值类型是 A,则子类重写的方法 返回值类型需要是 A 类或 A 的子类 父类被重写的方法的返回值类型是基本数据类型,则子 类返回值类型必须是相同的基本数据类型 ④ 子类重写的方法抛出的异常类型不大于父类被重写的 的方法抛出的异常类型 Super 关键字的调用 ① Super 理解为父类的 ② Super 可以用来调用:属性,方法,构造器 ③ 调用构造器 super(形参列表),必须声明在子类构造器的首 行 ④ This(形参列表)调用子类的构造器 ⑤ 在构造器的首行,没有显示的声明 this(形参列表)或 super (形参列表),则默认调用的是父类中空参的构造器 ⑥ 在类的多个构造器中,至少有一个构造器使用了 super(形参 列表),调用父类的构造器 1.子类对象实例化的全过程 2.多态性的使用 调用的是父类中有的方法,但是实际执行的结果是子类重写的方法 如何调用子类特有的属性和方法 使用强制转换符 Man p1= (Man)p2 Instanceof 关键字 a instanceof A:判断对象 a 是否是 A 的子类实例,如果是,返回 true 否则返回 false。 Object 类的使用 equals Tostring 方法 单元测试方法 包装类(Wrapper )的使用 自动装箱与自动拆箱(jdk 5.0 新版本) Static 关键字 设计模式——单例模式 代码块 代码块执行优先级 Final 关键字 Abstract(抽象类和抽象方法) 抽象方法:去掉大括号 ,在加一个 abstract 1 月份是 0,所以判断时需要加 1 接口 *1 接口的使用interface *2 java语言中类和接口是并列的结构 *3 如何定义接口:定义接口的成员: * jdk7及以前:只能够定义全局常量和抽象方法 全局常量 * public static final (书写时可以不写,系统 默认在接口里这么写) 抽象方法 * * jdk8 public abstract 还可以定义静态方法,默认方法 * *4 接口中不能定义构造器:接口不可以实例化 * *5 java开发中,接口都通过让类实现(implements)的方式来使用 * 如果实现类重写了接口中所有的抽象方法,则此实现类就可以实例化 * 如果实现类没有覆盖接口中的所有方法,则此类仍为抽象类 * *6 java类可以实现多个接口——>弥补了Java单继承的局限性 * 格式 class AA extends BB implements CC,DD,EE; * * *7 接口与接口之间可以继承,而且可以多继承 ***************************************** * *8接口具体的使用能够体现多态性,体现多态性 * *9 接口:实际上可以看作是一种规范 代理模式 代理类 被代理类 Java8 内部类 新特性(使得接口越来越像类) 4.1 4.2 4.3 创建接口有名的实现类的对象 内部类总结:成员内部类和局部内部类,在编译后,都会生成字节码文件 格式:成员内部类:外部类$内部类名.class 局部内部类:外部类$数字 内部类名.class 注意点: 异常概述与异常体系结构(语法错误和逻辑结构不算异常) Error :严重的问题 Java 虚拟机无法解决的错误(jvm 错误) Exception:因编程错误或者偶然的外在因素导致的一般性问题,可以使用 针对性代码进行处理 例如:空指针访问 试图读取不存在的文件 网络连接中断 数组角标越界 解决方法: Try_catch 异常处理的方式二: throws + 异常类型 手动抛出异常 例: 补充 用户自定义异常类 Idea 模板 程序 进程 线程 多线程优点 线程的创建和使用 线程的优先级 比较两种方式 线程的分类 线程的同步(解决线程的安全问题) Old method 同步的方式: 解决了线程的安全问题—- 好处 操作同步代码时只能有一个线程参与,其他线程只能 等待,相当于单线程,效率低—--局限性 死锁 线程的通信 Jdk5.0 新增线程创建方式 1 实现 Callable 接口 2 使用线程池 Java 常用类 String 类(不可变性) StringBuffer 存储时初始长度为 16 存入数据时变成数据 长度+16,当再次添加长度不够时,扩容长度为原来的二倍 多二 Date 类 Java.util.Date 类 Calendar 类 Joda—Time Instant 时间格式化 其他时间 API Comparator BigInterger 类 BigDecimal 类 枚举类 注解 四个元注解 集合 List 集合方法 Map 中的常用方法 通配符 File 方法 IO 流