Java
文章平均质量分 93
王英豪
学习。
展开
-
Java-并发编程知识点总结
目录:线程基础线程池各种各样的锁并发容器原子类Java 内存模型线程协作AQS 框架一、线程基础1. 为什么继承 runnable 接口比继承 Thread 类的线程实现方式好?可以把不同的执行内容解耦,全责分明某些情况可以减少开销,提高性能(比如可用线程池中已有的线程去执行 runnable,而不用重新创建线程)继承 Thread 类的单继承特性会限制代码的扩展性2. 线程是如何在 6 种状态之间转化的?线程的 6 种状态:New(新创建)、Runnable(可运原创 2020-10-26 12:44:32 · 480 阅读 · 0 评论 -
单例的线程安全及序列化问题
单例模式可以说是最简单的设计模式了,但在使用时也有一些问题需要注意,比如线程安全性和序列化破坏。本文以几个问题为出发点,分析延迟加载、线程安全以及序列化三个方面,深入了解一下单例模式的各种姿势,以便在今后使用时追求极致性能 ⊙﹏⊙‖∣°饿汉方式单例到底有多“饿”?静态内部类为什么是延迟加载的?枚举方式单例是延迟加载的吗?饿汉、静态内部类、枚举方式单例为什么是线程安全的?序列化为什么...原创 2020-04-06 17:03:32 · 378 阅读 · 0 评论 -
Java设计模式之创建型模式
单例模式应用场合:在一个JVM中,该对象只需有一个实例存在特点:对于创建频繁的大型对象可以降低系统开销减轻GC压力(Garbage collection)安全(核心交易引擎)实现方式:加载类时直接创建类的实例(性能提前消耗 浪费)public class Singleton { private Singleton(){}; private原创 2016-05-12 16:11:07 · 3632 阅读 · 0 评论 -
模拟JDK动态代理实现
JDK动态代理在JDK1.3以后提供了动态代理的技术,允许开发者在运行期创建接口的代理实例。在Sun刚推出动态代理时,还很难想象它有多大的实际用途,现在动态代理是实现AOP的绝好底层技术。JDK的动态代理主要涉及java.lang.reflect包中的两个类:Proxy和InvocationHandler。其中InvocationHandler是一个接口,可以通过实现该接口定义横切逻辑,并原创 2016-06-01 19:46:37 · 8425 阅读 · 0 评论 -
与接口相关的设计模式(2):代理模式、标识类型模式及常量接口模式
在上文 与接口相关的设计模式(1) 中,详细介绍了定制服务模式和适配器模式,下面我们来看第三种与接口相关的模式:代理模式。代理模式定义:为对象提供一种代理,以控制对这个对象的访问。分类:远程代理(Remote Proxy)—为不同地理的对象提供局域网代表对象。(类似于客户端和服务器端)虚拟代理(Virtual Proxy)—根据需要将资源消耗很大的对象进行延迟,真正需要的时候才进行创建。(网页中原创 2016-05-23 22:01:24 · 7615 阅读 · 0 评论 -
与接口相关的设计模式(1):定制服务模式和适配器模式详解
在Java中我们通常把接口作为系统与外界交互的窗口,接下来我们来考虑以下问题:如何设计接口?当两个系统之间接口不匹配时,如何处理?但系统A无法便捷的引用系统B的接口的实现类实例时,如何处理?……为了解决以上问题,需要引入与接口相关的设计模式,接下来介绍定制服务模式、适配器模式、默认适配器模式、代理模式、标识类型模式和常量接口模式。- 定制服务模式原创 2016-05-20 20:16:19 · 3090 阅读 · 0 评论 -
全面掌握 Java 内部类
一直以来以为自己对 java 基础甚是清楚,然而面试时却连内部类和静态内部类的区别都无法回答圆满,so~重新学习一遍,彻底掌握内部类。内部类是一种非常有用的特性,它可以把一些逻辑相关的类组织在一起,并控制位于内部的类的可视性,下文中内部类均指非静态内部类。内部类的学习分为以下10个知识点:1.创建内部类与连接外部类 2.内部类与向上转型 3.局部内部类 4.匿名内部类原创 2017-05-24 16:20:16 · 3432 阅读 · 0 评论 -
整数类型变量赋值与码制
如果一个整数值在某种整数类型的取值范围内,就可以把它直接赋给这种类型的变量,否则必须进行强制类型的转换。例如整数66在byte类型的取值范围(-128~127)内,因此可以把它直接赋给byte类型变量。byte b = 66;但是如果不在byte类型的取值范围(-128~127)内,则必须进行强制类型的转换,比如129。byte b = (byte)129; // 那么问题来了 b = ?在研究这原创 2016-05-13 21:22:45 · 3676 阅读 · 0 评论 -
Java中的反射机制
在我的上篇文章模拟JDK动态代理实现中涉及到了反射机制,学无止境,在此系统的学习一下Java中的反射机制。首先给出Java反射机制的定义: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。从以上的描述中可以看出Java中的动态特性,那么原创 2016-06-03 12:50:49 · 8674 阅读 · 1 评论 -
Java中的多线程与同步
一、进程与线程 进程是可并发执行的程序在一个数据集上的一次执行过程,它是系统进行资源分配的基本单位。 线程为进程所有,作为调度执行的基本单位,一个进程可以有一个或多个线程,他们共享所属进程所拥有的资源。二、为什么要引入进程与线程 要探索这个问题答案之前,需要先了解并发执行。并发执行是为了增强计算机系统的处理能力和提高资源利用率,原创 2016-04-24 11:38:06 · 4326 阅读 · 0 评论