Java
渐忘的歌
这个作者很懒,什么都没留下…
展开
-
Java反射
1.编译时 vs 运行时编译时:将Java代码编译成.class文件的过程(不牵扯内存)运行时:就是Java虚拟机执行.class文件的过程(牵扯内存) 编译时类型:编译时类型由声明该变量时使用的类型决定运行时类型:运行时类型由实际赋给该变量的对象决定Animal animal=new Dog(); 2.动态绑定-调用引用实例的方法1. 在编译时,是调用声明类型的成员方法(多态的实现原理),也就是...原创 2018-04-16 17:53:27 · 125 阅读 · 0 评论 -
异常
异常体系1. error/Exception2. 运行时异常和非运行异常异常使用1. 运用Java异常处理机制(1)try...catch语句(2)finally语句:任何情况下都必须执行的代码(3)throws子句:声明可能会出现的异常(4)throw语句:抛出异常2. 异常处理的原则(1)Java虚拟机用方法调用栈(method invocation stack)来跟踪每个线程中一系列的方法调...原创 2018-04-17 17:05:32 · 147 阅读 · 0 评论 -
try catch finally,try里有return,finally还执行么?
执行,并且finally的执行早于try里面的return结论:1、不管有木有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在fi...原创 2018-05-18 10:09:27 · 307 阅读 · 0 评论 -
泛型常用特点
(1)Java泛型开发人员在使用泛型的时候,很容易根据自己的直觉而犯一些错误。比如一个方法如果接收List<Object>作为形式参数,那么如果尝试将一个List<String>的对象作为实际参数传进去,却发现无法通过编译。虽然从直觉上来说,Object是String的父类,这种类型转换应该是合理的。但是实际上这会产生隐含的类型转换问题,因此编译器直接就禁止这样的行为。(2...原创 2018-05-18 10:10:56 · 2083 阅读 · 0 评论 -
Java1.7与1.8新特性
(1)1.8一、接口的默认方法与静态方法。也就是接口中可以有实现方法;并且接口也可以有静态方法,工具类也可以使用接口来实现; 二、Lambda 表达式。简化了代码,实际上是函数式接口的简化函数式接口(functional interface 也叫功能性接口,其实是同一个东西)。简单来说,函数式接口是只包含一个方法的接口。比如Java标准库中的java.lang.Runnable和 java.uti...原创 2018-05-14 16:37:32 · 1878 阅读 · 1 评论 -
GC收集器有哪些?CMS收集器与G1收集器的特点。
(1)Serial收集器Serial收集器是最基本的收集器,这是一个单线程收集器,它“单线程”的意义不仅仅是说明它只用一个线程去完成垃圾收集工作,更重要的是在它进行垃圾收集工作时,必须暂停其他工作线程,直到它收集完成。Sun将这件事称之为”Stop the world“。没有一个收集器能完全不停顿,只是停顿的时间长短。虽然Serial收集器的缺点很明显,但是它仍然是JVM在Client模式下的默认...原创 2018-05-14 18:07:24 · 3764 阅读 · 0 评论