反射原理及动态代理模式

Java 

反射原理及动态代理模式静态代理例子:public interface Subject { abstract String saleTt();}public class RealSubject implements Subject { @Override public String

Java中的泛型

Java 

为什么我们需要泛型?通过两段代码我们就可以知道为何我们需要泛型

注解

Java 

注解的定义Java注解用于为Java代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。Java注解是从Java5开始添加到Java的。注解即标签如果把代码想象成一个具有生命的个体,注解就是给这些代码的某些个体打标签如何自定义注解注解通过@interf

什么是匿名内部类,它有什么特征

Java 

匿名内部类使用注意事项匿名内部类也就是没有名字的内部类正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口匿名内部类中是不能定义构造函数的使用的形参为什么要final我们给匿名内部类传递参数的时候,若该形参在内部类中需要被使用

单例模式

Java 

单例模式是什么?确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。单例模式好处通常使用单例对象都是重量级,里面有很多对象,例如线程池、缓存系统、网络请求等等,很耗资源。使用单例不用重复创建这种对象,其它地方也可以重复使用这个对象,提高性能。单例模式特征构造方法不对外开发的,一般是pr

深克隆和浅克隆有什么区别?它的实现方式有哪些?

Java 

使用克隆可以为我们快速地构建出一个已有对象的副本,它属于 Java 基础的一部分,也是面试中常被问到的知识点之一。我们本课时的面试题是,什么是浅克隆和深克隆?如何实现克隆?典型回答浅克隆(Shadow Clone)是把原型对象中成员变量为值类型的属性都复制给克隆对象,把原型对象中成员变量为引用类型的

谈谈你对锁的理解?如何手动模拟一个死锁?

Java 

在并发编程中有两个重要的概念:线程和锁,多线程是一把双刃剑,它在提高程序性能的同时,也带来了编码的复杂性,对开发者的要求也提高了一个档次。而锁的出现就是为了保障多线程在同时操作一组资源时的数据一致性,当我们给资源加上锁之后,只有拥有此锁的线程才能操作此资源,而其他线程只能排队等待使用此锁。当然,在所

synchronized 和 ReentrantLock 的实现原理是什么?它们有什么区别?

Java 

在 JDK 1.5 之前共享对象的协调机制只有 synchronized 和 volatile,在 JDK 1.5 中增加了新的机制 ReentrantLock,该机制的诞生并不是为了替代 synchronized,而是在 synchronized 不适用的情况下,提供一种可以选择的高级功能。我们本

详解 ThreadPoolExecutor 的参数含义及源码执行流程?

Java 

线程池是为了避免线程频繁的创建和销毁带来的性能消耗而建立的一种池化技术,他是把已经创建的线程放入 “池” 中,当有任务来时就可以重用已有的线程,无需等待创建的过程,这样就可以有效提高程序的响应速度。但如果要说线程的活一定离不开ThreadPoolExecutor,在阿里巴巴《Java开发手册》中这样

线程的状态有哪些?它是如何工作的?

Java 

线程(Thread)是并发编程的基础,也是程序执行的最小单元,它依托进程而存在。一个进程中可以包含多个线程,多线程可以共享一块内存空间和一组系统资源,因此线程之间的切换更加节省资源、更加轻量化,也因此被称为轻量级的进程。当然,线程也是面试中常被问到的一个知识点,是程序员必备的基础技能,使用它可以有效