JAVA编程
文章平均质量分 82
乐哉悠哉
夏虫不可语冰者,语于夏花
展开
-
算法导论 - 最大和连续子数组
1. 问题描述已知一个整型数组,数组中一个元素或连续的多个元素可构成了该整型数组的子数组。将每个子数组中所有元素相加,即得到该子数组的和。求一个子数组,它的和在所有子数组中最大。本文分别给出利用分治算法和的动态规划的算法解决该问题的示例代码(C 语言实现,python 实现或 JAVA 实现),前者的时间复杂度为 O(n * log n),后者的时间复杂度为 O(n)。原创 2015-03-03 16:54:38 · 1080 阅读 · 0 评论 -
Java synchronized 关键字
一个同步代码块由两部分组成:一个提供锁的对象引用和被锁限定的代码块。每一个 java 对象都可以作为实现同步的锁,该锁是互斥锁、可重入锁。 根据代码写法和锁对象的不同,synchronized 关键字有四种用法 1. 修饰类的实例方法,此时,调用该方法的类的实例提供同步锁,被锁限定的代码块是整个方法体。例如class DoSomethingCounter{ private in...原创 2018-11-23 14:27:49 · 226 阅读 · 0 评论 -
Java 8 Lamba 表达式之方法引用 :: (双冒号)操作符
首先来看一段代码class MethodReferenceTest{ /** * 如果提供了比较器,则使用比较器对 listOfModel 进行排序 * @param listOfModel 需要被排序的 list * @param comparator 比较器,可为空 * @return listOfModel 排序后的 list ...原创 2018-08-02 17:00:49 · 5074 阅读 · 0 评论 -
Java 虚拟机
* 本文根据 Bill Venners 的著作 Inside Java Virtual Machine 第五章 The Java Virtual Machine 编写。JVM(Java Virtual Machine)可以涉及到以下三个范畴:关于 Java 字节码运行环境的抽象定义。它是一种概念和规则,指导并且限制具体实现。一个 Java 字节码运行环境的具体实现。实现者根据前一条抽象定义,具体实...原创 2018-01-18 19:51:20 · 327 阅读 · 0 评论 -
JAVA 观察者模式
观察者模式(Observer/Observable)又常常被称为发布-订阅 (Publish/Subscribe) 模式、源-监听器(Source/Listener) 模式,它旨在实现这样一个目标,当 Observable 发生某种变化时,将这种变化通知给一个或多个 Observable ,使得 Observable 可以监测到其变化,并进行相应的操作。例如在 Web 项目中,我们常常使用 Lis原创 2018-01-07 21:12:39 · 358 阅读 · 0 评论 -
Java 装饰模式在 IO 中应用
装饰模式在保持目标类自身特性的同时,根据需要动态地增加目标类的功能。下面结合 java IO 来了解装饰模式的实现方式。IO 中最基本的一种是输入流,java 类库中提供了抽象类 InputStream 作为输入流的基类。java IO 类库除了输入流之外还有字节类输出流(OutputStream),字符类输入流(Reader),字符类输出流(Writer)。原创 2017-11-11 11:14:39 · 1152 阅读 · 0 评论 -
JAVA 代理模式
代理模式的应用场景主要有四种。远程代理,虚拟代理,保护代理,缓冲代理,智能引用代理。如果被代理类实现了接口,则可以使用 JDK 自带的动态代理工具实现动态代理;如果被代理类没有实现任何接口,而又需要对其进行代理时,可以借助一个高性能的代码生成库 cglib 来实现。原创 2017-08-06 21:45:02 · 482 阅读 · 0 评论 -
Spring 核心组件工作原理简析
Spring Framework 的核心组件有三个: Spring Core,Spring Context 和 Spring Beans,它们奠定了 Spring 的基础并撑起了 Spring 的框架结构。Spring 的其它功能特性例如 Web、AOP、JDBC 等都是在其基础上发展实现的。 Spring Context 组件借助上述的控制反转和依赖注入,协助实现了 Spring 的 Ioc 容器。原创 2017-07-01 11:46:11 · 24048 阅读 · 0 评论 -
JAVA 建造者模式
建造者模式是得到类的实例的方法之一。它常常用于构建参数初始状态复杂的实例,例如有许多可选属性的类,从而可以避免提供过多的、琐碎的构造方法。例如,某个系统的用户类,它有两个必须的属性,若干个可选的属性。public class User { //required fields private final String userId; private String pass原创 2017-06-04 17:04:34 · 689 阅读 · 1 评论 -
JAVA 工厂模式
简单工厂模式,工厂方法模式,抽象工厂模式原创 2017-05-13 17:03:35 · 523 阅读 · 0 评论 -
JAVA 策略模式
Java 数组的工具类 Arrays 中的排序方法是典型的应用了策略模式的例示。其定义如下:public static T> void sort(T[] a, ComparatorT> c){ //...}sort 方法是使用策略的地方,T[] a 这个数组是策略作用的对象,Comparator原创 2017-05-22 09:20:37 · 1328 阅读 · 0 评论 -
JAVA 静态工厂方法
静态工厂方法是一个类产生一个该类实例的静态方法,用于补充或取代类的构造器。 静态工厂方法的作用主要是产生一个自身或者子类的实例,从而完善自身的功能和描述。原创 2017-05-09 12:36:29 · 849 阅读 · 2 评论 -
Java Lock 之 lock,tryLock 和 lockInterruptibly
lock,tryLock 和 lockInterruptibly 是 Java ReentrantLock 对象提供的三种获取锁的方式。某个线程调用ReentrantLock 对象的 lock 方法后,如果锁尚未被其它线程占有,则该线程将获得锁;如果锁已经被其它线程占有,则该线程将一直 block 直到它成功获得锁。block 过程中不响应中断,获得锁后才根据中断状态进行相应处理。某个线程调用...原创 2018-12-04 19:33:18 · 595 阅读 · 0 评论