随笔分类 - JavaSE
Java的基础知识:
数据类型、运算符、流程控制、数组、面向对象特征、
Java的基础类库、集合、泛型、异常处理、JDBC、Annotation(注解)、I/O流、多线程、网络编程、类加载和反射等与Java相关的基础知识
摘要:1-JDBC的典型用法 1.常用接口和类简介 (1)DriverManeger: 用于管理JDBC驱动的服务类,程序中使用该类获取Connection对象; (2)Connection: 代表数据库连接对象,每个Connceion代表一个物理连接会话。想要访问数据库必须先获得数据库连接。 (3)St
阅读全文
摘要:6-异常处理规则 1.成功的异常处理应该实现下面四个目标: (1)使程序代码混乱最小; (2)捕获并保留诊断信息; (3)通知合适人员; (4)采用合适的方式结束异常活动。 2.异常处理规则 (1)不过度使用异常; (2)不使用过于庞大的try块; (3)避免使用Catch All语句,在同一个ca
阅读全文
摘要:5-异常跟踪栈 (1)异常对象的printStackTrace()方法用于打印异常的跟踪栈信息,根据printStackTrace()方法的输出结果,可以找到异常的源头; (2)只要异常没有被完全捕获(包括异常没有被捕获,或异常被处理后重新抛出了新异常),异常从发生异常的方法逐渐向外传播,首先传给该
阅读全文
摘要:3-Checked异常和Runtime异常 1.概述 (1)所有的RuntimeException类及其子类的实例都被称为Runtime异常;不是RuntimeException类及其子类的异常实例则被称为Checked异常; (2)Java程序必须显式处理Checked异常,若没有处理Checke
阅读全文
摘要:4-使用throw抛出异常 1.抛出异常 (1)如果需要在程序中自行抛出异常,则应该使用throw语句,throw语句可以单独使用,throw语句抛出的不是异常类,而是一个异常实例,而且每次只能抛出一个异常实例; (2)throw语句如果抛出的异常是Checked异常,则该throw语句要么处于tr
阅读全文
摘要:2-异常处理机制 1.使用try...catch捕获异常 (1)当Java运行时环境收到异常对象时,会寻找能处理该异常对象的catch块,如果找到合适的catch块,则把异常对象交给该catch块处理,这个过程被称为捕获(catch)异常; (2)如果java运行时环境找不到捕获异常的catch块,
阅读全文
摘要:1-异常概述 (1)与异常处理相关的关键字: 1)try: 该关键字后紧跟一个被花括号括起来的代码块,该代码块中放置可能引发异常的代码; 2)catch: 对应一个异常类型和一个代码块,用于表明该catch用于处理这种类型的代码块; 3)finally: 多个catch块后可以跟一个finally块
阅读全文
摘要:5-擦除和转换 (1)在严格的泛型代码中,带泛型声明的类总应该带着类型参数。但也也允许在使用带泛型声明的类时不指定实际的类型参数。如果没有为这个泛型类型指定实际的类型参数,则该类型参数被称作原始类型(raw type),默认是声明该类型参数时指定的第一个上限类型; (2)当把一个具有泛型信息的对象赋
阅读全文
摘要:3-类型通配符 (1)如果Foo是Bar的子类型(或者子接口),G是具有泛型声明的类或者接口,G<Foo>并不是G<Bar>的子类型; (2)假设有Foo是Bar的子类型,则Foo[]依然是Bar[]的子类型。 1.类型通配符的使用 为了表示各种泛型的List的父类,可以使用类型通配符,类型通配符是
阅读全文
摘要:4-泛型方法 1.定义泛型方法 (1)泛型方法的方法签名比普通方法的方法签名多了泛型声明,其格式如下: 修饰符 <T,s> 返回值类型 方法名(形参列表){ //...方法体 } (2)泛型方法的简单使用: (3)在泛型方法中定义的泛型参数只在方法中有效,在类、接口中声明的泛型参数则可以在整个接口、
阅读全文
摘要:2-深入泛型 泛型,就是允许在定义类、接口、方法时使用类型形参,这个形参将在声明变量、创建对象、调用方法时动态指定。 1.定义泛型接口、类 (1)包含泛型声明的类型可以在定义变量、创建对象时传入一个类型实参,从而可以在使用时动态的生成无数个逻辑上的子类,但这种子类在物理上不存在; (2)可以在任何的
阅读全文
摘要:1-泛型入门 1.编译时不检查类型的异常 情形如下: 2.泛型的使用 (1)为了确保在编译时检查类型,而使用泛型; (2)简单例子: 3.菱形语法 即在构造器后不需要携带完整的泛型信息,只需要“<>”即可:
阅读全文
摘要:8-Collections 1.概述 Collections是个工具类,该工具类提供了对集合操作的许多方法,如对集合进行排序、修改、查询等操作,还提供了将集合对象设置为不可变、对集合对象实现同步控制等方法。 2.排序操作 Collections中提供了许多方法用于对List集合中元素进行排序: 3.
阅读全文
摘要:6-Map集合 1.概述 (1)Map集合用于保存具有映射关系的数据,所以,Map集合中保存有两组值,一组值用于保存Map里的key,另一组值用于保存Map中的value。key和value可以是任何引用类型的数据,但Map中的key不允许重复。 (2)Map中的key和value具有单向的一对一关
阅读全文
摘要:7-HashSet和HashMap的性能选项
阅读全文
摘要:5-Queue集合 1.概述 Queue用于模拟队列这种数据结构,队列通常是指先进先出的容器。队列的头部保存着在容器中存在时间最长的元素,在尾部保存在容器中存放时间最短的元素;新元素插入到队列的尾部,访问元素操作会返回队列头部的元素。通常情况下,队列不允许随机访问队列中的元素。 Queue接口中定义
阅读全文
摘要:4-List集合 List集合代表一个元素有序,可重复的集合,集合中的每个元素都有与其对应的索引(类似于数组)。 1.List接口和ListIterator接口 list接口: (1)List接口继承了Collection接口,所以可以使用Collection接口中的所有方法,同时,由于List是有
阅读全文
摘要:3-Set集合 Set集合与Collection集合基本相同,没有提供额外的方法。 Set集合中不许包含相同的元素,如果试图把两个相同的元素添加到同一个Set中,添加操作会失败add()方法将返回false,新元素也不会被添加。(适用于HashSet、LinkedHashSet、TreeSet) 1
阅读全文
摘要:2-Collection接口和Iterator接口 1.概述 (1)Collection接口是Set、Queue和List接口的父接口; (2)Collection中定义了如下常用方法操作Collection集合中的元素 2.使用Lambda表达式遍历集合 (1)Iterable接口是Collect
阅读全文
摘要:1-集合概述 1.集合使用的情景 保存数量不确定的数据,或者具有映射关系的数据时使用集合。 2.集合与数组的区别 (1)数组:元素可以是基本类型的值,也可以是对象(引用变量),长度固定; (2)集合:只可以保存对象(引用变量),长度可以改变。 3.各种集合所保存数据的特征 (1)Set集合:无序集合
阅读全文