![](https://img-blog.csdnimg.cn/20190920090943884.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
java基础
AnEra
厚积薄发, 天道酬勤
展开
-
匿名内部类引用的局部变量为什么需要final修饰, 而引用外部类的成员变量就不需要final修饰?
为什么匿名内部类引用的局部变量需要final修饰?在JDK1.8之前, 编写以下代码public class Test { public static void main(String[] args) { String str = "Hello World"; new Thread(){ @Override public void run() { System.out.print原创 2020-08-20 20:43:02 · 541 阅读 · 3 评论 -
从字节码角度分析Java异常实现原理
目录一、异常在字节码层面的实现二、throw捕获异常解析三、Java异常处理中的return和throw命令解析一、异常在字节码层面的实现示例:public class ExceptionParse { public static void main(String[] args) { int a,b,c,d; try { ...原创 2020-01-29 12:36:30 · 568 阅读 · 0 评论 -
Java中的元注解
元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:@Target @Retention @Documented @Inherited一、 @Target(1) 定义package java.lang.annotation;@D...原创 2019-10-31 16:01:00 · 254 阅读 · 0 评论 -
Java中什么是bridge method(桥接方法)
什么是桥接方法桥接方法是 JDK 1.5 引入泛型后,为了使Java的泛型方法生成的字节码和 1.5 版本前的字节码相兼容,由编译器自动生成的方法。我们可以通过Method.isBridge()方法来判断一个方法是否是桥接方法,在字节码中桥接方法会被标记为ACC_BRIDGE和ACC_SYNTHETIC,其中ACC_BRIDGE用于说明这个方法是由编译生成的桥接方法,ACC_SYNTHET...原创 2019-10-29 09:44:28 · 278 阅读 · 0 评论 -
CGLIB动态代理实现原理
一、CGLIB介绍CGLIB(Code Generation Library)是一个开源项目!是一个强大的,高性能,高质量的Code生成类库,它可以在运行期扩展Java类与实现Java接口。Hibernate用它来实现PO(Persistent Object 持久化对象)字节码的动态生成。CGLIB是一个强大的高性能的代码生成包。它广泛的被许多AOP的框架使用,例如Spring AOP为他...原创 2019-09-24 11:03:32 · 506 阅读 · 0 评论 -
Java基础_再解Java中的String
原文出自:http://cmsblogs.com/?p=863今天朋友问我String的内容是真的不可变吗?我肯定告诉他是的?因为在我的主观意识里String就是一个不可变的对象。于是他给我发了这段程序:public class StringTest { public static void main(String[] args) throws Exception { ...转载 2019-07-30 13:31:20 · 90 阅读 · 0 评论 -
Java基础_模拟LinkedList集合
package com.lic.linkedList;public class MyLinkedList<E> { private class Node { Object data; // 该节点存放的数据 Node prev; // 该节点的上一个节点地址 Node next; // 该节点的下一个节点地址 } // 该集合中存储节点的数量 private ...原创 2019-06-17 22:10:22 · 160 阅读 · 0 评论 -
Java基础_模拟ArrayList集合
1. ArrayList的实现原理在ArrayList类内部维护了一个数组(固定长度)来存储数据 // 默认初始化容量 private static final int DEFAULT_CAPACITY = 10; // 空数组,用来实例化不带容量大小的构造函数 private static final Object[] EMPTY_ELEMENTDATA = {}; // 保存A...原创 2019-06-17 15:55:05 · 373 阅读 · 0 评论 -
Java基础_模拟HashMap集合(基于数组和链表)
创建Map接口package com.lic.hashMap;public interface MyMap<K,V> { void put(K key,V value); Object get(K key); void remove(K key); int size();}创建Entry接口package com.lic.hashMap;pub...原创 2019-06-19 19:34:41 · 627 阅读 · 0 评论 -
Java基础_引用数据类型的强制类型转换
在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换。因为子类拥有比父类更多的属性、更强的功能,所以父类转换为子类需要强制。那么,是不是只要是父类转换为子类就会成功呢?其实不然,他们之间的强制类型转换是有条件的。当我们用一个类型的构造器构造出一个对象时,这个对象的类型就已经确定的,也就说它的本质是不会再发生变化了。在Java中我们可以通过继承、向上转型的...原创 2019-05-23 20:01:07 · 5933 阅读 · 8 评论