04 2022 档案
摘要:buffer 处理字节: (1)bufferInputStream (2)bufferOutputStream 使用它们,可以完成二进制文件拷贝,也可以操作文本文件 package com.io.outputstream_; import java.io.*; /** * 演示BufferedOut
阅读全文
摘要:package com.io.writer; import java.io.*; /** * BufferedReader与 BufferedWriter完成copy操作 */ public class BufferedCopy_ { public static void main(String[]
阅读全文
摘要:package com.io.writer; import java.io.BufferedWriter; import java.io.FileWriter; /** * 演示BufferedWriter的使用,也是关闭外层流即可 */ public class BufferedWriter_ {
阅读全文
摘要:package com.io.reader; import java.io.BufferedReader; import java.io.FileReader; /** * 演示BufferedReader的使用,关闭时只需关闭外层流,节点流会自动关闭 */ public class Buffere
阅读全文
摘要:IO流之处理流与节点流 节点流 节点流可以从一个特定的数据源读写数据 处理流 处理流也叫包装流,是“连接”在已存在的流之上,且不是单指一个具体的数据源,为程序提供更为强大的读写功能。 ackage com.io.writer; public class Test_ { public static v
阅读全文
摘要:IO流之文件写入 对于FileWriter,一定要关闭流,或者flush才能真正的把数据写入到文件中,否则文件是空白的 package com.io.writer; import java.io.FileWriter; import java.io.IOException; /** *FileWri
阅读全文
摘要:IO流之文件读取 法一:单个字节读取 package com.io.reader; import java.io.FileReader; import java.io.IOException; public class FileReader_ { public static void main(St
阅读全文
摘要:IO流之copy package com.io.outputstream_; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j
阅读全文
摘要:FileOutputStream文件输出流 package com.io.outputstream_; /** * 演示使用FileOutputStream将数据写到文件中 * 如果该文件不存在,则创建该文件 */ import org.junit.jupiter.api.Test; import
阅读全文
摘要:FileInputStream:文件输入流: 单个字节的读取,read() package com.io.inputstream_; import org.junit.jupiter.api.Test; import java.io.FileInputStream; import java.io.I
阅读全文
摘要:IO流之文件 常用的文件操作: new File(String pathname) //根据路径构建一个File对象 new File(File parent,String child) //根据父目录文件+子路径构建 new File(String parent,String child) //根
阅读全文
摘要:集合框架之Collections工具类 概念:集合工具类,定义了除了存取以外的集合常用方法 package com.oop.demo11; import java.util.*; /** * Collection工具类的使用 */ public class Demo15 { public stati
阅读全文
摘要:Map接口 特点:存储一对数据,无序、无下标,键不可重复,值可重复 package com.oop.demo11; import java.util.HashMap; import java.util.Map; import java.util.Set; /** * Map接口使用 * 特点:存储键
阅读全文
摘要:Set(无序无下标元素不可重复):HashSet(重点)、TreeSet 方法:全部继承自Collection中的方法 package com.oop.demo11; import java.util.HashSet; import java.util.Iterator; import java.u
阅读全文
摘要:集合框架之泛型 泛型<>约束,避免类型转换之间的问题 本质:是参数化类型,把类型作为参数传递 常见形式:泛型类、泛型接口、泛型方法 好处:1.提高代码的重用性;2.防止类型转换异常,提高代码的安全性 package com.oop.demo11; public class TestGeneric {
阅读全文
摘要:集合框架 Collection父接口 List(有序有下标可重复): ArrayList(重点):数组结构实现,必须开辟连续空间,查询快、增删慢;默认容量是10;add、remove、contains、size LinkedList :链表结构实现,无需开辟连续空间,增删快、查询慢;getFirst
阅读全文
摘要:常用类 Object类 hashcode() 结构:public int hashCode(){} 返回该对象的哈希码值 哈希值根据对象的地址或字符串或数字使用hash算法计算出来的int类型的数值 一般情况下相同对象返回相同哈希码 toString() 结构:public String toStr
阅读全文
摘要:异常处理机制 抛出异常 捕获异常 异常处理五个关键字:try、catch、finally、throw、throws 实际应用中的经验总结 处理运行时异常时,采用逻辑去合理规避同时辅助try-catch处理 在多重catch块后面,可以添加一个catch(Exception)来处理可能会被遗漏的异常
阅读全文
摘要:内部类 内部类就是一个在类的内部再定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就成为内部类,而A类为B类的外部类 内部类编译之后,可以生成独立的字节码文件(class文件) 内部类可以直接访问外部类的私有成员,而不破坏封装 当内部类、外部类存在重名属性时,会优先访问内部类属性 成员内部
阅读全文
摘要:重点:接口 声明接口的关键字是interface 可以实现多继承,即类可以实现多个接口 接口都需要有用来实现方法的类,用关键字implement来实现接口,且该类必须重写接口的方法 只有抽象方法,自己无法写方法 接口中的所有定义都是抽象的,且都是public 接口就是规范,定义的是一组规则,体现了现
阅读全文
摘要:抽象类 用关键字abstract来修饰 抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明 抽象类不能使用new关键字类创建对象,它是用来让子类继承的 抽象方法只有方法的声明,没有方法实现,它是用来子类实现的 子类继承抽象类,那么就必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类
阅读全文
摘要:static关键字详解 静态变量可通过类名调用,但是非静态变量只能通过对象调用 非静态方法里可以去调用静态方法,静态方法里可以去调用静态方法,但不能调用非静态方法静态代码块。 程序会先执行静态代码块,而且只执行一次 静态导入包 被final修饰的类不能被继承 package com.oop.demo
阅读全文
摘要:instanceof和类型转换 把子类转换为父类,要向上转型,可以直接转换 把父类转换为子类,要向下转型,需要强制转换,可能会丢失方法 方便方法调用,减少重复代码 package com.oop; import java.util.Scanner; import com.oop.demo04.Stu
阅读全文
摘要:多态 同一方法可以根据发送对象的不同而采用多种不同的行为方式 一个对象的实际类型是确定的,但却可以指向对象的引用的类型有很多 多态存在的条件: 有继承关系 之类重写父类方法 父类引用指向子类对象 eg: Person person=new Student() 多态是方法的多态,属性没有多态性 注意事
阅读全文
摘要:方法重写:子类的方法和父类的方法必须要一致,但方法体不同! 需要有继承关系,子类重写父类的方法 方法名必须相同 参数列表必须相同 修饰符:范围可以扩大,即子类重写父类的方法时修饰符只能是被扩大而不能缩小。public>protected>default>private 抛出异常:范围可以被缩小,但不
阅读全文
摘要:super 注意点: super调用父类的构造方法,必须在子类构造方法的第一行; super必须只能出现在子类的方法或者构造方法中; super和this不能同时调用构造方法; 调用方法时先调用构造方法,顺序是先执行父类的构造方法,再执行子类的构造方法。 对比this的区别: 代表的对象不同:thi
阅读全文
摘要:重点:继承 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模 extends的意思是“扩展”。之类是对父类的继承 Java类中只有单继承,没有多继承。即一个儿子只有一个爸爸,但一个爸爸可以有多个儿子 继承是类与类之间的关系。除此之外,类和类之间的关系还有依赖、组合、聚合等 继承是关系的两个
阅读全文
摘要:封装 该露的露,该藏的藏 我们程序设计追求“高内聚,低耦合”。高内聚:就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用 封装(数据的隐藏) 通常应禁止直接访问一个对象中数据的实际要求,而应通过操作接口来访问,这称为信息隐藏 记住这就话就够了:属性私有,get/se
阅读全文
摘要:重点:类中的构造器 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点: 必须和类的名字相同 必须没有返回类型,也不能写void package com.oop.demo01; public class Application { public static v
阅读全文
摘要:面向对象 面向过程思想 步骤清晰简单,第一步做什么,第二步做什么........ 面向过程适合处理一些较为简单的问题 面向对象思想 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。 面向对象适合处理较为复杂的问题
阅读全文
摘要:稀疏数组 当一个数组中大部分元素为0,或者为同一值的数组时,可以用稀疏数组来保存该数组。 稀疏数组的处理方式: 记录数组一共几行几列,有多少个不同值 把具有不同值的元素和行列值记录在一个小规模的数组中,从而缩小小程序的规模 public class ArrayDemo08 { public stat
阅读全文
摘要:重点:冒泡排序 冒泡两层循环:外层冒泡轮数,里层依次比较 时间复杂度为O(n^2) public class ArrayDemo07 { public static void main(String[] args) { int[] a={1,4,8,5,24,11}; int[] sort=sort
阅读全文
摘要:Arrays类 数组的工具类java.util.Arrays API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作 Arrays类中的方法都是Static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而“不用”使用对象来调用(注意:是“不用”而不是“不能”)
阅读全文
摘要:多维数组 多维数组可以看成是数组的数组,其每一个元素都是一个一维数组 public class ArrayDemo05 { public static void main(String[] args) { int [][]array={{1,2},{2,3},{3,4},{4,5}}; //打印数组
阅读全文
摘要:数组的四个基本特点 数组中的元素可以是任何数据类型,包括基本类型和引用类型 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量 数组本身就是对象,Java中对象是在堆中,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中。 数组使用 For-Each循环 数
阅读全文
摘要:数组的声明、创建以及数组元素初始化 声明数组的方法:数组类型[ ] 数组名 创建数组的方法:法一:数组名=new 数组类型[数组容量] 法二:数组类型[ ] 数组名=new 数组类型[数组容量] 数组元素初始化:静态初始化、动态初始化 public class ArrayDemo01 { publi
阅读全文
摘要:重点:递归 递归:就是自己调用自己 递归结构包含两个部分: 1. 递归头:来表示什么时候不调用自身方法。如果没有头,将陷入死循环2. 递归体:来表示什么时候需要调用自身方法 public class Demo04 { public static void main(String[] args) {
阅读全文
摘要:通过命令行传递参数 有时候你希望运行一个程序时候再传递给它消息。这要靠传递命令行参数给main()函数实现 package com.chen.method; public class Demo02 { public static void main(String[] args) { for (int
阅读全文
摘要:方法重载 重载:就是在一个类中,有相同的函数名称,但形参不同的函数 方法重载的规则: 方法名称必须相同 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等) 方法的返回类型可以相同也可以不同 仅仅返回类型不同不足以成为方法的重载 public class Demo02 { public st
阅读全文
摘要:java方法 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 一个方法只完成一个功能 结构: 修饰符 返回值类型 方法名(参数类型 参数名){ 方法体 return 返回值; } 修饰符:修饰符是可选的,告诉编译器如何调用该方法 返回值类型:定义返回值
阅读全文
摘要:FOR循环练习 public class TestDemo { public static void main(String[] args) { //打印三角形 5行 for (int i = 1; i <= 5; i++) { for (int j=5;j>=i;j--){ System.out.
阅读全文
摘要:Java控制流程:break、continue break用于强行退出循环,不执行循环中剩余的语句 continue语句用于终止某次循环,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与
阅读全文
摘要:Java流程控制:循环结构 while循环 结构: while(布尔表达式){ //循环语句内容 } public class WhileDemo01 { public static void main(String[] args) { //输出1-100 int i=0; while (i<100
阅读全文
摘要:JAVA流程控制03:顺序结构 从上到下依次进行 顺序机构是最简单的算法结构 它是任何一个算法都离不开的一种基本算法结构 public class ShunXuDemo { public static void main(String[] args) { System.out.println("he
阅读全文
摘要:Java流程控制02:Scanner进阶使用 public class Demo03 { public static void main(String[] args) { //从键盘接收数据 Scanner scanner = new Scanner(System.in); int i = 0; f
阅读全文
摘要:Java流程控制01:Scanner基础 public class Demo01 { public static void main(String[] args) { //创建一个扫描器对象,用于接收键盘数据 Scanner scanner=new Scanner(System.in); Syste
阅读全文
摘要:package com.chen.base; //文档注释 /** * @author cyy * @version 1.0 * @since 1.8 */ public class Doc { String name; /** * @author cyy * @param name * @retu
阅读全文