一、java7以后,使用带泛型的接口,类定义变量,那么调用构造器创建对象时构造器的后面不必带上泛型。List<String> list = new ArrayList()<>;菱形语法

  java9甚至允许创建匿名内部类时使用菱形语法 A<String> a = new A<>{   }

二、当创建了带泛型声明的接口或父类后,子类或者实现类继承实现父类接口时,父类与接口不可以在包含泛型形参。 如 A extends B<T> 写T 不允许,指明实际参数

如 A extends B<String> 或 A extends B 也可以。调用方法时形参必须添加具体形参。

三、类型通配符  List<?>,Set<?>,Map<?,?> 这种写法支持任何支持泛型声明的接口和类。    但是不能向其中添加对象(除了null)。因为无法确定集合中元素的类型。

  设定类型通配符上限 List< 子类 extends 父类>   但是不能向其中添加对象。因为无法确定集合中元素的类型。Bar是Foo的子类,A<Bar> 相当于 A<? extend Foo>的子类,可已经A<Bar> 赋值给 A<? extends Foo>类型的变量,这种型变方式称为协变。

  List<? extends Foo> list= new ArrayList<>();

  List<Bar> barList= new ArrayList<>();

  list= barList; //  

  设定类型通配符下限 List< ? super 子类>  ,Foo是Bar的子类,A<Bar>  A<Object> 赋值给 A<? super Foo>,这种型变称之为逆变。能往集合中添加Foo 或者Foo子类的对象。不能添加E的任何父类对象,读取时的对象为Object 类型。。

List<? super Foo> list= new ArrayList<>();

List<Bar> barList= new ArrayList<>();

list= barList; //  逆变

四、泛型方法 语法      修饰符 <T,S  多个逗号隔开> 返回值类型 方法名(形参列表){   //方法体}

五、java7 捕获多种类型的异常是,多种异常类型之间要用  |   隔开。 异常变量有隐式final修饰不能 对 变量二次赋值

try{

}catch( A  |  B | C 变量){
// ABC 代表不同的异常类
  变量 = new Exception("exception"); 错误 变量是隐式final修饰。
}

六、异常对象的几个重要方法

  getMessage()  : 返回该异常的详细描述字符串

  printStackTrace() : 该异常的跟踪栈信息输出到标准错误输出。

  printStackTrace(PrintStream s)  将该异常的跟踪栈信息输出到指定输出流

  getStackTrace() 返回该异常的跟踪栈信息。

七、垃圾回收不会回收任何物理资源,如数据库连接,网络连接,磁盘文件等。这些物理资源必须进行显式回收。

八、java9 会在try语句块中自动关闭资源。相当于包含了隐式的finanlly块(这个finally块用于关闭资源),因此这个try语句可以没有catch或者finally

创建对象 A ,B
try( A,B){ } 或者 try(创建对象 A ;B ){ }

九、check异常   要么显式声明抛出,要么显式捕获并处理。 uncheck异常 runtimeException ,error.

十、使用throws 声明抛出异常。 在方法上使用 ,void method () throws exception 1,exception2(){}

十一、throw new Exception("exception");

十二、声明自定义异常都应该继承Exception基类,如果希望定义Runtime异常,要继承RuntimeException基类。定义自定义异常时通常要提供两个构造器

   一个是无参构造器;另一个是带一个字符串参数的构造器(也就是异常对象的getMessag()方法的返回值)。  

十三、避免把java的异常跟踪栈打印出来。要编写代码处理。

java 重新学习 (六)的更多相关文章

  1. java web 学习六(servlet开发2)

    一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...

  2. Java基础学习(六)—List

    一.List 1.List集合特有功能 /* * List集合的特有功能: * A:添加功能 * void add(int index,Object element):在指定位置添加元素 * B:获取 ...

  3. JAVA多线程学习六-守护线程

    java中的守护程序线程是一个服务提供程序线程,它为用户线程提供服务. 它的生命依赖于用户线程,即当所有用户线程都死掉时,JVM会自动终止该线程. 有许多java守护程序线程自动运行,例如 gc,fi ...

  4. Java开发学习(六)----DI依赖注入之setter及构造器注入解析

    一.DI依赖注入 首先来介绍下Spring中有哪些注入方式? 我们先来思考 向一个类中传递数据的方式有几种? 普通方法(set方法) 构造方法 依赖注入描述了在容器中建立bean与bean之间的依赖关 ...

  5. 20145213《Java程序设计学习笔记》第六周学习总结

    20145213<Java程序设计学习笔记>第六周学习总结 说在前面的话 上篇博客中娄老师指出我因为数据结构基础薄弱,才导致对第九章内容浅尝遏止地认知.在这里我还要自我批评一下,其实我事后 ...

  6. Hbase深入学习(六) Java操作HBase

    Hbase深入学习(六) ―― Java操作HBase 本文讲述如何用hbase shell命令和hbase java api对hbase服务器进行操作. 先看以下读取一行记录hbase是如何进行工作 ...

  7. Java NIO 学习笔记(六)----异步文件通道 AsynchronousFileChannel

    目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...

  8. 201871010106-丁宣元 《面向对象程序设计(java)》第六—七周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第六—七周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu- ...

  9. 201871010132-张潇潇-《面向对象程序设计(java)》第六-七周学习总结

    201871010132-张潇潇-<面向对象程序设计(java)>第六-七周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh ...

  10. Java IO学习笔记六:NIO到多路复用

    作者:Grey 原文地址:Java IO学习笔记六:NIO到多路复用 虽然NIO性能上比BIO要好,参考:Java IO学习笔记五:BIO到NIO 但是NIO也有问题,NIO服务端的示例代码中往往会包 ...

随机推荐

  1. oo_project_2java数据类型范围及测试

    数据类型范围测试 一.数字常数的编译问题 java中的常量数字默认以int型编译 如: long a = 1234567890; //十位 long b = 12345678900; //默认数据为i ...

  2. 搭建邮件服务器 使用Postfix与Dovecot

    首先需要从yum中下载安装三个服务:bind-chroot    postfix     dovecot 配置文件依次: /etc/named.conf 下载安装完后要开启的服务:named     ...

  3. 热修复设计之AOT/JIT&dexopt 与 dex2oat (一)

    阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680本篇文章将先从AOT/JIT&dexopt 与 dex2o ...

  4. java并发编程之美-阅读记录2

    2.1什么是多线程并发编程 并发:是指在同一时间段内,多个任务同时在执行,并且执行没有结束(同一时间段又包括多个单位时间,也就是说一个cpu执行多个任务) 并行:是指在单位时间内多个任务在同时执行(也 ...

  5. 37.Sort Colors(颜色排序)

    Level:   Medium 题目描述: Given an array with n objects colored red, white or blue, sort them in-place s ...

  6. 安卓SDK的配置流程以及安装build-tools等插件

    这两天做了一个移动端混合开发的项目,需要配置安卓的SDK,不过在这之前,需要先配置好Java环境(这个在这里就不写了).下面开始配置步骤: 1.下载SDK,然后解压到某个目录下面.推荐两个下载网址: ...

  7. The Preliminary Contest for ICPC Asia Xuzhou 2019 I J

    I. query 题意:给出n的一个排列,有m个询问[l,r],询问[l,r]直接有倍数关系的pair个数. 解法:比赛完之后听说是原题,但是我没做过呀,做题太少了qwq.首先因为数字是1-n的,所以 ...

  8. Struts2关于命名空间的例子

    佐证了这样一个原则,package存在,但action没找到,就自动去默认空间去找.如果package不存在,则自动向上一级目录找,一级级倒到根目录.  根目录再没找到,再去默认目录找 网上对于命名空 ...

  9. Yum与RPM

    Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动下载 ...

  10. 第07章 JdbcTemplate

    第07章JdbcTemplate 1. 概述 为了使JDBC更加易于使用,Spring在JDBC API上定义了一个抽象层,以此建立一个JDBC存取框架. 作为Spring JDBC框架的核心,JDB ...