• Upcast永远是成功的,但Downcast不是,记得做instanceof判断
  • 仅抛不同异常,而返回值相同的重载是不可以的
  • static import只会import静态类
  • static method内不能使用this和super,不能用super!
  • 只有static nested class能有静态成员,其它nested不能有,且静态嵌入类可以访问外围类的私有成员但仅限于静态成员
  • 不可以在enums前使用new(因为其构造函数是私有的)
  • 枚举默认且只能为public static final,所以不能继承
  • 接口里面的变量必须被初始化,而且是final的
  • 接口里面不能有BODY,全部为public abstract
  • 接口可以有nested interface,这时的内嵌的接口可以为private/protected or public
  • is-a (实现/继承) is-like-a(接口),has-a(组合)
  • 泛型不支持协变,again, List<SuperT> lst = new List<T>() 会出错
  • <? extends T> 指必须在T的scope内,相当于c#的(?), <? super T> 指的是T必须为继承了T,比如<? super Path>
  • 没有泛型异常这回事,即没有这种东西 -> GenericExeption<T> extends Throwable
  • 泛型类型不可以为primitive
  • 使用HashSet/HashMap时要重写hashCode()和equals()
  • 关于泛型呢,因为是type erasure所以没有预先定义这回事,所以静态泛型(static T xxx) 是不存在的,
  • %o: octual 八进制  %x: hexadecimal 16进制
  • Watch service不会递归watch子目录,需要自己resursively register watch key
  • If the JDBC API is not able to locate the JDBC driver, it will throw a SQLException. If there are jars for the drivers available, they need to be included in the classpath to enable the JDBC API to locate the driver

  • ResultSet一开始游标指向的是第一条前面,所以必须运行.next()拿到第一条

  • RowSet是种特殊的支持JavaBean组件的ResultSet
        JdbcRowSet: 
        CachedRowSet: disconnected ResultSet
            WebRowSet: CachedRowset + XML (没有说这个是JSON格式喔)
                JoinRowSet: WebRowset + SQL join
                FilteredRowSet: WebRowset + filtering

  • JDBC 4.1 introduces the capability to use try-with-resources statement to close resources (Connection, ResultSet,and Statement) automatically.

  • try-catch的异常如果类似而且处理方式也类似的话,可以考虑使用multi-catch块

  • 即使在catch中return了,也还是会执行到finally的,除非执行的是system.exit(n), 因为这个是停掉所有包括其它的

  • static initialization block cannot throw any checked exceptions. now-static initialization blocks can. however, all the constructors should declare that exception in their throws clause

  • 重写的方法中throw的异常只能比父类的异常更具体,而不能更宽泛,或者不throws也是可以的

  • 如果方法在实现的多个接口中都存在且抛出的异常不同,则实现的方法应该同时抛出这些异常

  • 自定义exception最后继承于Exception或RuntimeException,而不要直接继承Throwable,这个是JVM预留的

  • bundlename_language_country_#script.properties

  • Format (抽象类)
        NumberFormat
        DateFormat - 大写W/D/F(day of week)的是in year, 小写w/d/f的是in month,大写S是毫秒,大写K是am/pm小时数,小写k是hour (1-24), H是(0-23)
            SimpleDateFormat

  • sleep(): 不会release the lock,会hold on to the lock

  • join(): wait for another thread to terminate

  • 仍然不懂的:


  • static method 不可以被override

  • 接口里的方法只能为public & abstract,否则会出编译错“Illegal modifier for the interface method say; only public & abstract are permitted”

    接口里面的field只能为public, final & static,否则会出编译错“Illegal modifier for the interface field Foo.iVisual; only public, static & final are permitted”

  • 前期绑定和后期绑定

  • static block: A constructor will be invoked when an instance of the class is created, while the static block will be invoked when the program initializes

  • 抽象类可以有静态类
  • static的目标不可以使用this,因为它不属于任何一个实例
  • 静态方法里面不可以使用super.StaticMethod(),既然它不可以被继承,也不能使用super了
  • nested class:
    如果内嵌方法是static的,则使用new A.B()
    如果外围方法是static的,则使用new A().B()
    new A().B().C();
    抽象类中的内嵌方法,因为没有实例,所以可以直接A.new B()或A.this.method();
    记住实例方法一定要有实例,否则要new()
    没有static外围类这回事内部类自动拥有对其外围类的所有成员的访问权, 如果内部类和外部类成员的名字完全相同,则在内部类方法中要访问外部类成员(即使是private的),
    内部类必须声明为protected, default, public才对外围类可见(private则会编译错显示为is not visible),
  • a. 内部类可以访问private
    b. 内部类成员可以与外围类同名
  • 内部类不可以有static变量但可以有常量即static final
  • 内部方法类的参数只能为final
  • 匿名类一定是定义在实例化后的对象内的,即 Foo f = new Foo(){ public void say(){ .. } }; 或Foo f {return new Foo(){ public void say(){};}}
  • 匿名类没有显式构造函数,也不能有构造函数
  • Enum类型的constructor只能被定义为private
  • Enum类型的enum常量的定义必须是在第一行...
  • Enums被隐式定义为public, static, final,不可被继承
  • 所有enum都会被转换为类:所以TryEnums.SomeEnum.valueOf("TEST1").getClass()
  • 所有enum类型都继承于java.lang.Enum,每个enum元素都会被转换为enum类的常量,见enum定义 TryEnums.SomeEnum et = TryEnums.SomeEnum.TEST1; 
  • 接口内部类自动都是public static的,相当于为接口定义了一种变量类型

  • TryEnums.SomeEnum et = TryEnums.SomeEnum.TEST1;

    System.out.println(et.TEST2); // et定义为一个静态类的常量后,仍然可以用et.TEST2来取到TEST2的常量

  • 因为enum是final static public的,所以不能定义在local inter class中

  • FileWriter fw = FileWriter(path, boolean isAppend)
    fw.append("test001");
    fw.close();
    如果没有第二个boolean参数,默认为覆盖写。

  • A setAutoCommit (False) method invocation starts a transaction context.

  • 看一下正则表达式
    \\s* matches 0 or more occurrences of whitespaces.

  • ScheduledExecutorService

  • The method used to obtain the Executor determines how many Threads are used to execute tasks.

  • 看集合类图,象Q144

  • Class Hashtable extends Dictionary implements Serializable, Cloneable, Map。

    Interface SortedMap extends Map

  • Change FileReader to BufferReader.

    public class BufferedReader extends Reader

    Read text from a character-input stream, buffering characters so as to provide for the efficient reading of characters, arrays, and lines.

    The buffer size may be specified, or the default size may be used. The default is large enough for most purposes.

  • ThreadLocalRandom.current().nextInt(1, 101);   

读Java 804 - Quick refresher的更多相关文章

  1. 读Java面向对象编程(孙卫琴)

    2.1创建Java源文件 Java应用由一个或多个扩展名为".java"的文件构成,这些文件被称为Java源文件,从编译的角度,则被称为编译单元. 本章包含两个Java源文件:Do ...

  2. 读Java Concurrency in Practice. 第六章.

    这一章开讲任务执行.绝大多数并发程序的工作都可以分解为抽象的.互不相关的工作单元,称之为任务(Task). 使用java线程来执行任务 以web服务器的实现举例, 此时将用户的一次连接,当做一个独立的 ...

  3. 读Java并发编程实践中,向已有线程安全类添加功能--客户端加锁实现示例

    在Java并发编程实践中4.4中提到向客户端加锁的方法.此为验证示例,写的不好,但可以看出结果来. package com.blackbread.test; import java.util.Arra ...

  4. 读java并发编程笔记

    同步策略:在共享资源上面加锁 java监视器模式:class对象-与之对应的锁(内置锁)[对象锁与class锁] 执行策略: 取消策略: =============================== ...

  5. 一行一行读Java源码——LinkedBlockingQueue

    1.LinkedBlockingQueue概述 Linked:链表+Blocking:阻塞+Queue:队列 Queue:首先想到的是FIFO Linked:,Queue:其结构本质上是线性表,可以有 ...

  6. 【转】O'Reilly Java系列书籍建议阅读顺序(转自蔡学庸)

    Learning Java the O'Reilly's Way (Part I) Java 技术可以说是越来越重要了,不但可以用在计算机上,甚至连电视等家电用品,行动电话.个人数字助理(PDA)等电 ...

  7. 如何阅读Java源码 阅读java的真实体会

    刚才在论坛不经意间,看到有关源码阅读的帖子.回想自己前几年,阅读源码那种兴奋和成就感(1),不禁又有一种激动. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心.   说到技术基础,我打个比 ...

  8. 理清Java中的编码解码转换

    1.字符集及编码方式 概括:字符编码方式及大端小端 详细:彻底理解字符编码 可以通过Charset.availableCharsets()获取Java支持的字符集,以JDK8为例,得到其支持的字符集: ...

  9. java安全沙箱(四)之安全管理器及Java API

    java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是: 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管理器及J ...

随机推荐

  1. sublime Text3 插件编写教程_第一课

    今天给大家分享一下编写一个Sublime Text3 插件的流程以及使用插件解决的一个实际问题. 一.开发插件的前提条件 开发sublime插件用到的是Python语言,因此必须懂Python语言的基 ...

  2. 2014 年 20 款最好的 CSS 工具

    说到 WEB 设计,不得不介绍介绍 CSS 工具,CSS 工具在这里面扮演很重要的角色,可以简化无数开发者和设计师的工作,写出更好的 CSS 代码. 而网上有非常多的 CSS 工具,帮助设计师和开发者 ...

  3. ASP.NET MVC学习之模型绑定(2)

    3.手工调用模型绑定 很多情况下我们都是通过形参的方式接收来自http流中的数据,这看似是完美的,但是缺少了很多过程中的控制,所以我们就需要使用手工的方式进行绑定.下面我们通过一个例子来说明,首先打开 ...

  4. TypeScript:基本类型和接口

    返回TypeScript手册总目录 基本类型(Basic Types) 为了让程序可以使用,我们需要用到一些最简单的数据单元:数字,字符串,结构,布尔值,诸如此类.在TypeScript中,支持许多正 ...

  5. JavaScript获取onclick、onchange等事件的值

    今天小菜处理下拉菜单级联问题时,想获取HTML标签中某个事件的内容,也就是值,比如从<select id="city" onchange="javascript:t ...

  6. JavaScript自定义事件

    很多DOM对象都有原生的事件支持,向div就有click.mouseover等事件,事件机制可以为类的设计带来很大的灵活性,相信.net程序员深有体会.随着web技术发展,使用JavaScript自定 ...

  7. little skill---ping

    一.ping简介 Ping是Windows下的一个命令,在Unix和Linux下也有这个命令. ping也属于一个通信协议,是TCP/IP协议的一部分. 利用“ping”命令可以检查网络是否连通,可以 ...

  8. iOS -iPhone5、iPhone5s、iPhone6、iPhone6Plus 屏幕适配

    现在由于苹果公司出了6和6Plus,让写苹果程序的哥们为了做兼容很头疼.用StoryBoard固然方便,但是后期做兼容要花费太多的时间和精力.使用AutoLayout虽然会在不同尺寸的屏幕下自动布局, ...

  9. MyEclipse使用总结——MyEclipse文件查找技巧 ctrl+shift+R ctrl+H

    一.查找文件 使用快捷键[ctrl+shift+R]弹出弹出文件查找框,如下图所示: 二.查找包含某个字符串的文件 使用快捷键[ctrl+H]在弹出对话框中选File Search选项,然后在第一个文 ...

  10. 今日例子border

    border这个属性在页面上的使用率还是很高,例如我们需要理解的盒模型就需要对border有个 比较深的理解,如果你会盒模型,但对border没有深的理解,那只能说你只是知道盒模型,而 不是懂得盒模型 ...