Java基础知识总结(第三篇)

Java基础知识总结(第三篇)

本篇主要总结一下几个方面:
1.常用类
2.集合框架
3.异常

1.常用类

1.1内部类:在类中定义的类。分为:成员内部类,定义在类中的类,属于类的成员,创建成员内部类的对象必须依赖外部类对象。静态内部类:定义在类中的类,class关键字前加static修饰符,创建静态内部类对象不需要创建外部类对象。局部内部类:定义在方法中的类,作用范围只在当前方法中。匿名内部类:特殊的局部内部类,没有类名,只能作为子类出现,且只能创建一个对象。
1.2 Object类:所有类的父类,即Java中所有的类都是其子类。Object类所定义的方法是所有类都具备的。由于多态的存在,Object类型的引用可以储存任意类型的对象。
1.3 Object中常用的方法: getClass方法:可以获取引用中的对象的实际类型;hashCode方法:可以返回一个对象的哈希码值,默认返回根据内存地址转换成的哈希码值。toString方法:返回当前对象的字符串,通常我们会覆盖该方法,将本类的各个属性拼接成字符串并且返回。(Object类中的方法默认返回的是该对象内存地址的相关信息。)equals方法:判断对象的内容是否相同,Object类中的equals方法仅用于判断两个对象的地址是否相同,通常会覆盖,加强原有功能。finalize方法:垃圾回收器在回收垃圾对象时,调用该方法。
1.4 包装类: 8中基本类型所对应的对象类型,可以将基本类型的变量表示为一个对象,在执行变量类型相互转换时,我们会大量使用这些包装类。作用:a.支持Null字面值,可以表示空值,b.支持缓存,提高复用效率,c.内部提供多种类型转换的方法,d.可以为Object类型引用赋值,便于使用多态。包装类基本都是将首字母大写,特殊:int —— Integer char—— Character.
1.5 包装类和基本类型的转换
基本类型转换为包装类:a.使用包装类的构造方法将基本类型转换为对象类型 b.使用valueOf方法将基本类型转换为对象类型。
包装类型转换为基本类型:c.使用xxxValue方法

byte b =12;
//举例a
Byte ob = new Byte(b);
//举例b
Byte ob2 = Byte.valueOf(b); 
//举例c
Integer i = new Integer(10);
int a = i.intValue();

1.6 字符串类型转换为包装类,同样,使用构造方法或者valueOf方法;将字符串类型转换为基本类型,使用parseXxx方法。
1.7 自动装箱/拆箱
自动装箱:将一个基本数据类型变为包装类型的过程称为自动装箱;
自动拆箱:将一个包装数据类型转换为基本数据类型称为自动拆箱。
1.8 String 类
特点:a.字符串是对字符数组的封装,可以通过toCharArray方法将其转换为char[]; b.字符串是常量,创建后不可改变;c.字符串的字面值储存在串池中,可以共享。
常用方法:1.charAt():根据下标获取字符 2.toCharArray():将字符串转换为数组 3.equals():比较字符串中的内容是否相同 3.indexOf(String str):查找str出现的下标,如果存在,返回str第一个字符出现的下标,如果不存在,返回-1 4.length():返回字符串的长度
1.9 BigDecimal类:可以精确计算、表示浮点数
常用方法:1.add():加法运算 2.subtract():减法运算 3.multiply():乘法运算 4.divide() 除法运算 5.remainder() 取余

2.集合框架

2.1集合:储存对象的容器,和数组类似,提供丰富的API,功能更加强大。Collection:集合的顶级接口,定义了两个常用的子接口:List和Sit。 此接口常用的方法:add():添加元素到集合中; remove():从集合中移除一个元素;size():获取集合中元素的个数。
2.2 List接口
特点:Collection接口的子接口,内部储存元素:有序、有下标、可以重复。
常用方法:add() 添加元素到指定位置;get() 返回指定下标位置的集合元素; remove() 移除并返回指定下标元素;set() 替换下标位置的元素,并且返回被替换的元素。size() 获取集合中元素的数量。
常用的实现类:ArrayList (数组实现,查询快,增删慢,线程不安全) LinkedList (链表实现,查询慢,增删快,线程不安全)Vector (数组实现,查询快,增删慢,线程安全)
2.3 泛型集合:类型安全的集合,使用泛型,约束集合中所能存储的元素类型。作用:a.编译器自动验证存储的元素是否和泛型一致;b.访问时不必向下强制类型转换,便于使用。

//创建泛型集合,举例
List<Student>  s1 = new ArrayList<Student>();

2.4 Set接口
特点:Collection接口的子接口,其内部存储的元素,无序,无下标且不可重复。
常用的方法:Collection接口中的方法
实现类:HashSet(根据hashCode和equals方法去重,不保留任何顺序) LinkedHashSet (根据hashCode和equals方法去重,保留元素插入的顺序) TreeSet(根据compareTo方法去除重复,对集合中元素自动排序)
2.5
2.5.1:HashSet如何验证元素是否重复:调用对象的hashCode方法进行初步判断,如果hashCode值不同则表示没有重复可以将元素添加到HashSet集合中。由于hashCode是一个整数,不同的对象有可能拥有的相同的hashCode,需要再调用equals方法判断内容是否相同,如果equals方法返回值为 true 则对象不会添加到集合中,反之则反。
2.5.2:如何让HashSet存放自定义类型元素时,能够去重:首先覆盖hashCode方法,保证相同的对象返回相同的hashCode,不同的对象尽量返回不同的hashCode.其次覆盖equals方法,保证内容相同的对象返回true,不同的对象返回 false。
2.6 Map接口
特点:内部存储的元素都是key–value 组成的键值对,无序并且没有下标;通过key访问value,key不可重复。
常用方法:put(Object key,Object value) 将一组键值对一并存入集合 ;get(Object key) 根据键获取值;size() 获取集合中键值对的个数; keySet() 返回包含所有键的Set集合 ;values() 返回包含所有值的Collection集合 ;entrySet() 返回包含所有键值对的Set集合,remove() 根据键移除整个键值对。
实现类:HashMap(允许null作为键,线程不安全) Hashtable (不允许null作为键,线程安全) Properties(主要用于保存配置文件的信息,键与值都是字符串类型) TreeMap(可以对键进行自动排序,要求作为键的对象必须实现Comparable接口)

3.异常

3.1 异常:程序在运行过程中出现的一些非正常情况。
父类 Throwable:a. Error:错误,JVM或硬件产生的问题,不能手动处理。b.Exception:异常,程序在运行和配置中产生的问题,可处理。( RuntimeException:运行时异常,可处理也可不处理。|- CheckedException:已检查异常,必须处理。)
分类:自动抛出异常:当程序在运行时遇到不符合规范的代码或结果时,会产生异常。 手动抛出异常:throw new 异常类()
3.2异常的处理方式
消极处理:throws 声明异常,修饰在方法定义首行的末端
积极处理:积极处理:捕获、处理异常。

//积极处理举例
try{
	//可能出现异常的代码
}catch(Exception e){
	//处理代码
	e.printStackTrace(); // 打印堆栈跟踪信息
	e.getMessage();  // 获取异常发生的原因
}finally{
	//关闭资源代码(无论是否产生异常,均会执行)
}

3.3方法覆盖对异常的要求:
a 子类的方法名、参数列表、返回值类型必须和父类相同
b. 子类的访问修饰和父类相同或是比父类更宽
c.子类不能抛出比父类更宽、更多的异常

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值