java笔记
java修饰符:
static 静态修饰
当一个类的成员变量被static修饰时,那么他是可以被所有的实例对象所共享的。可以通过类名调用,也可以通过对象名调用。
非静态的成员方法
·能访问静态的成员变量
·能访问非静态的成员变量
·能访问静态的成员方法
·能访问非静态的成员方法
静态的成员方法
·能访问静态的成员方法
·能访问静态的成员方法
静态成员方法只能访问静态成员
多态:同一个对象,在不同时刻表现出来的不用形态
多台的前提和体现:
·有继承/实现关系
·有方法重写
·有父类引用指向子类对象
编译看左边,运行看右边
例子:
Animal a = new Cat();
左边中的成员变量、成员方法,右边的重写。。
成员变量:编译看左边,执行看左边
成员方法:编译看左边,执行看右边
为什么成员变量和成员方法的访问不一样?
·因为成员方法有重写,而成员变量没哟
多台的好处和弊端:
好处:提高了程序的扩展性
具体体现:定义方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作
弊端:不能使用子类的特有功能
多态中的转型
向上转型
从子到父
父类引用指向子类对象
向下转型
从父到子
父类引用转为子类对象
抽象类:
·抽象类的特点,抽象类和抽象方法必须使用abstract关键字修饰
·抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
·抽象类不能实例化
抽象类的子类,要么重写抽象类中的所有抽象子类,要么是抽象类
抽象类的成员特点:
·成员变量可以使变量,也可以是常亮
·有构造方法,但不能实例化,那么,构造方法用于自诶访问父类数据的初始化。
·成员方法,可以有抽象方法,限定子类必须完成某些动作,也可以有非抽象类方法,提高代码复用性。
接口的特点:
接口关键字interface修饰
类实现接口用implements表示
接口不能实例化,通过实现类对象实例化这叫接口多态。
多态的形式,具体类多态,抽象类多态,接口类多态。
多态的前提,有几成或者实现关系,有方法重写,有父(类/接口)引用指向(字/实现)类对象。
内部类的特点:
内部类可以直接访问外部类的成员,包括私有,外部类要访问内部类的成员,必须创建对象
按照内部类在类中的定义的位置不同,可以分为如下两种形式
·在类的成员位置,成员内部类
·在类的局部位置,局部内部类
Object类的常用方法:
toString()返回对象的字符串表示形式,建议所有子类重写该方法,自动生成
equals(Object obj)比较对象是否相等,默认比较地址,重写可以比较内容
Arrays类的概述和常用方法
Arrays类包含用于操作数组的各种方法·toString(int[] a) 返回指定数组的内容的字符串表示形式·sort(int[] a) 按照数字顺序排列指定的数组工具类的设计思想:·构造方法用private修饰·成员用public static修饰
基本类型包装类
integer类的概述和使用integer:包装一个对象中的原始类型int的值Integer valueOf(int i) 返回表示指定的int值的Integer实例Integer valueOf(Strinig s) 返回一个保存指定值的integer对象String
自动装箱和拆 箱
装箱:吧基本数据类型转换为对应的包装类类型选哪个拆箱:吧包装类类型转换为对应的基本数据类型。。在使用包装类类型的时候,如果做操作,最好先判断是否为null我们推荐的是,只要是对象,在使用前就必须进行不为null的判断
异常:
throwable类是java语言中所有错误和异常的超类。error表示严重的问题,合理的应用程序不应该试图捕获。异常及其子类是throwable的形式,表示合理应用程序可能想要捕获的条件。异常类和不是runtimeexception的子类的任何子类都是检查异常异常体系throwable-->error,exceptionexception->runtime exception 、非runtimexceptionerror:严重问题,不需要处理exception:称为异常类,她表示程序本身可以处理的问题·runtimeException:在编译期是不检查的,出现问题后,需要我们回来修改代码·非RuntimeException:编译期就必须处理的,否则程序不能通过编译,就更不能正常运行了。
jvm关于异常处理的默认处理方案
如果程序出现了问题,我们没有做任何处理,最终jvm会做默认的处理·把异常的名称、异常原因及异常出现的位置等信息输出在了控制台·程序停止执行异常处理——try--catch执行流程:程序从try里面的代码开始执行,出现异常会自动生成一个异常类对象,该异常对象将被提交给java运行时系统,当java运行时系统接受到异常对象时,会到catch中去找匹配的异常类,找到后进行异常的处理,执行完毕之后,程序还可以继续往下执行。异常处理java中的异常被分为两大类,编译时异常和运行时异常,也被称为受检异常和非受检异常,所有的RuuntimeException类及其子类被称为运行时异常,其他的异常都是编译时异常。。编译时异常,必须显示处理,否则程序就会发生错误,无法通过编译运行时异常,无需显示处理,也可以和编译时异常一样处理。异常处理之throws编译时异常必须要进行处理,如果采用throws这种方案,将来谁调用她谁就来处理,运行时异常可以不处理,出现问题后,需要我们回来修改代码。
自定义异常
throws和throw的区别:
throws·用在方法声明后面,跟的是异常类名·表示抛出异常,由该方法的调用者来处理·表示出现异常的一种可能性,并不一定会发生这些异常throw·用在方法体内,跟的是异常对象名·表示抛出异常,由方法体内的语句处理·执行throw一定抛出了某种异常。
List集合特点
有序、存储和取出的元素顺序一致可重复,存储的的元素可以重复特有方法:add、remove、set、get并发修改异常
增强for循环
增强for:简化数组和collection集合的便利·实现iterable接口的类允许其对象成为增强型for语句的目标·它是JDK5之后出现的,其内部原理是一个iterator迭代器
List
数组是一种查询快,增删慢的数据结构ArrayList:底层数据结构是数组,查询快,增删慢LinkedList:底层数据结构是链表,查询慢,增删快
哈希值
哈希值:是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值Object类中有一个方法可以获取对象的hash值 public int hashCode(),返回对象的哈希码值注意:同一个对象多次调用hashCode()方法返回的哈希值时相同的。 默认情况下,不同对象的哈希值是不相同的。 通过方法重写,可以实现不同对象的哈希值时相同的。
HashSet集合概述和特点
hashset集合特点·底层数据结构是哈希表·对集合的迭代顺序不做任何保证,也就是说不保证存储和取出的元素顺序一致·没有带索引的方法,所以不能使用普通for循环遍历·由于是Set集合,所以是不包含重复元素的集合
java流机制
流的分类:·处理的数据单位不同,可分为字符流、字节流·数据流的方向不同,可分为:输入流、输出流·功能不同,可分为:节点流、处理流
节点流
节点流从一个特定的数据源读写数据。即节点流是直接操作文件,网络等的流,例如,FileINputStream和FileOutputStream,他们直接从文件中读取或往文件中写入字节流。

处理流
“连接”在已存在的流(节点流或处理流)之上通过对数据的处理为程序提供更为强大的读写功能。过滤流是使用一个已经存在的输入流或输出流连接创建的,过滤流就是对节点流进行一系列的包装,例如BuufferedInputStream和BufferedOutputStream,使用已经存在的节点流来构造,提供带缓冲的读写,提高了读写的效率,以及DataINputStream和DataOutputStream,使用已经存在的节点流来构造,提供了读写java中的基本数据类型的功能,他们都属于过滤流。

浙公网安备 33010602011771号