Java

Java

  • 设计模式

    设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代

    查看全文
  • Java 动态代理详解

    Java 动态代理详解

    动态代理在 Java 中有着广泛的应用,比如 Spring AOP、Hibernate 数据查询、测试框架的后端 mock、RPC 远程调用、Java 注解对象获取、日志、用户鉴权、全局性异常处理、性能监控,甚至事务处理等。 本文主要介绍 Java 中两种常见的动态代理方式:JDK 原生动态代理和 CGLIB 动态代理。 由于 Java 动态代理与 Java 反射机制关系紧密,请读者确保已经了解了 Java 反射机制,可参考上一篇文章《Java反射机制详解》

    查看全文
  • Java 反射机制详解

    Java 反射机制详解

    对于一般的开发者,很少需要直接使用 Java 反射机制来完成功能开发,但是反射是很多框架譬如 Spring, Mybatis 实现的核心,反射虽小,能量却很大。 本文主要介绍反射相关的概念以及 API 的使用。

    查看全文
  • Java 队列详解

    Java 队列详解

    Queue:基本上,一个队列就是一个先入先出(FIFO)的数据结构。 Queue 接口与 List、Set 同一级别,都是继承了 Collection 接口。LinkedList 实现了 Deque接口。 在并发队列上 JDK 提供了两套实现,一个是以 ConcurrentLinkedQueue 为代表的高性能队列非阻塞,一个是以 BlockingQueue 接口为代表的阻塞队列,无论哪种都继承自 Queue 接口。

    查看全文
  • Java 多线程详解

    Java 多线程详解

    线程对象是可以产生线程的对象。比如在 Java 平台中 Thread 对象 、Runnable 对象。线程,是指正在执行的一个指点令序列。在 Java 平台上是指从一个线程对象的 start() 方法开始,运行 run() 方法体中的那一段相对独立的过程。相比于多进程,多线程的优势有: 1. 进程之间不能共享数据,线程可以; 2. 系统创建进程需要为该进程重新分配系统资源,故创建线程代价比较小; 3. Java 语言内置了多线程功能支持,简化了 Java 多线程编程。

    查看全文
  • HashMap 的实现原理

    HashMap 的实现原理

    1. hashCode 的存在主要是用于查找的快捷性,如 Hashtable,HashMap 等,hashCode 是用来在散列存储结构中确定对象的存储地址的。 2. 如果两个对象相同,就是适用于 equals(java.lang.Object) 方法,那么这两个对象的 hashCode 一定要相同。 3. 如果对象的 equals 方法被重写,那么对象的 hashCode 也尽量重写,并且产生 hashCode 使用的对象,一定要和 equals 方法中使用的一致,否则就会违反上面提到的第 2 点。 4. 两个对象的 hashCode 相同,并不一定表示两个对象就相同,也就是不一定适用于 equals(java.lang.Object) 方法,只能够说明这两个对象在散列存储结构中,如 Hashtable,他们“存放在同一个篮子里“。

    查看全文