一、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. latex的资料ftp

    ftp://ftp.tex.ac.uk/ctan/tex-archive/ ftp ftp.tex.ac.uk anonymous ls

  2. Engineer Assignment(暴力+状压dp)

    题意: n个工程,m个研究员,每个工程需要Ci个领域(X1,X2..Xci)的研究员 ,每个研究员会Di个不同的领域(X1,X2..Xdi),要完成一个工程必须使得分配给这个工程的研究员覆盖了这个工程 ...

  3. python+selenium+chromewebdriver或Firefox的环境搭建

    插件下载地址 chromewebdriver:https://chromedriver.storage.googleapis.com/index.html?path=2.26/放置在python下的S ...

  4. VS2013编译程序出现error C4996: 'std::_Fill_n': Function call with parameters that may be unsafe

    最近按照BiliBil网站Visual C++网络项目实战视频教程,使用VS2013编写一个基于MFC的对话框程序HttpSourceViewer,采用了WinHttp库.Boost xpressiv ...

  5. SCAU大二上Java综合性实验

    一.题目要求 实验内容: 1. 已经提供的原始数据:班级成绩单文件 该文件为文本文件,存储某个班的所有学生某门课程的成绩. 例如:2012级计算机科学与技术8班-面向对象程序设计.txt 文件中每行存 ...

  6. Java小游戏

    这是一个飞机躲避子弹的小游戏,其中有许多干货 这是蒟蒻我第二次做,请各位大佬多多指教 目录 1.游戏主窗口的创建 2.图形绘制_文本绘制_颜色改变_图像对象的加载 3.线程内部类实现动画 4.游戏物体 ...

  7. Docker镜像仓库的搭建--> Harbor篇

    简介 Harbor是VMware公司开源的一个企业级Docker Registry项目,项目地址:https://github.com/goharbor/harbor Harbor作为一个企业级私有R ...

  8. JQ的live学习

    $("#StartTime").live("blur keypress keyup",function(){ if($("#EndTime" ...

  9. windows10图形化连接CentOS7

    前提:CentOS已经安装图形化,安装教程可以百度 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release (Core) 安装 ...

  10. C中printf函数的用法总结

    函数语法 stdio.h文件中的定义: /* Write formatted output to stdout. */ int printf (const char *__restrict __for ...