• 等级
  • 122753 访问
  • 119 原创
  • 19 转发
  • 24384 排名
  • 18 评论
  • 4 获赞

LeetCode 39. Combination Sum 题解

这题有几个主要的点,首先,题目要求输出所有的组合数,而不是数据所有组合总的个数,如果是求个数用动态规划更好解决。但是要输出所有的组合数的话使用回溯法更容易处理。其次,题目要求不能包含有重复的组合,这是解决这个题目的一个难点。最后,保存解决方案的时候要注意Java里List的浅拷贝和深拷贝,不然浅拷贝最后得到空值。解法:其实回溯的方法还是比较简单的,为了后面处理的适合容易去重...

2019-01-03 11:24:13

Java new 背着我们干了什么

new 是Java最常用的关键字之一,我们使用 new 创建对象。我们经常像下面代码一样创建一个对象:Dog dog = new Dog();  只需一行代码,我们就能创建出一只狗,是不是很简单!为什么这么简单?答:不简单就没人用。Java作为面向对象语言,提倡封装,如果自己的语法设计都做不到,那还怎么要求程序员们做到。创建对象这么

2017-04-27 12:14:09

【单例深思】枚举实现单例原理

单例的枚举实现在《EffectiveJava》中有提到,因为其功能完整、使用简洁、无偿地提供了序列化机制、在面对复杂的序列化或者反射攻击时仍然可以绝对防止多次实例化等优点,单元素的枚举类型被作者认为是实现Singleton的最佳方法。其实现非常简单,如下:public enum Singleton {    INSTANCE;    private Singl

2017-04-26 20:49:58

【单例深思】单例与序列化

在前面的文章中提到,序列化会破坏单例模式,下面用静态内部类的实现方式,说明序列化对单例的影响:public class Singleton implements Serializable{    private static class SingletonHolder {        private static final Singleton INSTANCE = ne

2017-04-25 17:21:09

【单例深思】静态内部类实现详解

静态内部类实现是我个人比较推荐的,其实现如下:public class Singleton {    private static class SingletonHolder {        private static final Singleton INSTANCE = new Singleton();    }    private Singleton()

2017-04-12 17:28:26

【单例深思】双重检测锁与Java内存模型

双重检测锁 使用粒度较小的锁(缩小锁的范围)解决了 懒汉式改进版 中存在的性能问题,以提高并发量。双重检测锁实现如下:public class Singleton {                        // 1    private static Singleton singleton;         // 2    private S

2017-04-12 16:11:06

【单例深思】懒汉式改进版与内置锁

我们知道懒汉式的实现是延迟加载(LazyLoading),但是不是线程安全的,下面我们深入研究下为什么。懒汉式的实现如下:public class Singleton {    private static Singleton singleton;    private Singleton(){}    public s

2017-04-08 16:46:29

【单例深思】饿汉式与类加载

我们知道饿汉式的实现是线程安全的,没有延迟加载(LazyLoading),下面我们深入研究下为什么。饿汉式的实现如下:public class Singleton {   private static Singleton singleton = new Singleton();   private Singleton() {}   public st

2017-04-08 15:10:55

【单例深思】Java 单例模式全解

什么是单例模式?单例模式 是一种对象创建模式,它用于产生一个对象的具体实例,它可以确保系统中一个类只产生一个实例,并提供一个访问它的全局访问点。单例模式的用途?用于创建只需要一个实例的场景。怎么实现单例模式?单例模式的实现中有几个共同特点:使用 private 声明类构造函数,这样就不能通过new 声明这个

2017-04-07 17:05:19

如何使用Spring FactoryBean?

1.概述 Springbean容器中有两种bean:普通bean和工厂bean。Spring直接使用前者,而后者自身可以生成由框架管理的对象。简单地说,我们可以通过实现org.springframework.beans.factory.FactoryBean接口来构建一个工厂bean。 2.工厂Bean基础 2.1实现一个FactoryBean首先看

2017-04-06 16:10:39

FactoryBean 是什么

本文翻译自:https://spring.io/blog/2011/08/09/what-s-a-factorybean在这篇文章中,我将介绍Spring的  org.springframework.beans.factory.FactoryBean 接口。该接口的定义是:publicinterfaceFactoryBeanT>{TgetObject()throws

2017-04-06 15:22:16

Spring AOP 演化过程(二):基于代理的经典Spring AOP

Spring的经典AOP编程模型在现在看来已经过时,如果有人在写代码的时候还使用这种方式实现AOP,那真是跟自己过不去。但是如果我们想要读SpringAOP部分的源码时,如果仅仅了解声明式AOP和基于注解的AOP,那经典的AOP模型所使用的类会给我们带来疑惑,所以,还是简单了解一下SpringAOP的历史,重温一下经典。Spring经典的AOP因为直接使用 Proxy

2017-04-05 21:55:47

Java事务之八——分布式事务(Spring+JTA+Atomikos+Hibernate+JMS)

Java事务之八——分布式事务(Spring+JTA+Atomikos+Hibernate+JMS)本文转载自:http://www.cnblogs.com/davenkin/archive/2013/03/19/java-tranaction-8.html,侵删。  在本系列先前的文章中,我们主要讲解了JDBC对本地事务的处理,本篇文章将讲到一个分布式事务的例

2017-04-02 21:03:00

Java事务之七——使用Transactional注解

Java事务之七——使用Transactional注解本文转载自:http://www.cnblogs.com/davenkin/archive/2013/02/24/java-tranaction-7.html,侵删。  在本系列的上一篇文章中,我们讲到了使用动态代理的方式完成事务处理,这种方式将service层的所有public方法都加入到事务中,这显然不是我们

2017-04-02 21:01:32

Java事务之六——使用动态代理(Dynamic Proxy)

Java事务之六——使用动态代理(DynamicProxy)本文转载自:http://www.cnblogs.com/davenkin/archive/2013/02/24/java-tranaction-6.html,侵删。  在本系列的上一篇文章中,我们讲到了使用Template模式进行事务管理,这固然是一种很好的方法,但是不那么完美的地方在于我们依然需要在s

2017-04-02 21:00:34

Java事务之五——Template模式

Java事务之五——Template模式          本文转载自:http://www.cnblogs.com/davenkin/archive/2013/02/23/java-transaction-5.html,侵删。  在本系列的上一篇文章中,我们讲到了使用TransactionManger和ConnectionHolder完成线程安全的事

2017-04-02 20:59:36

Java事务之四——成功的案例

Java事务之四——成功的案例本文转载自:http://www.cnblogs.com/davenkin/archive/2013/02/23/java-tranaction-4.html,侵删。  在本系列的上一篇文章中我们讲到,要实现在同一个事务中使用相同的Connection对象,我们可以通过传递Connection对象的方式达到共享的目的,但是这种做法是丑陋

2017-04-02 20:58:27

Java事务之三——丑陋的案例

Java事务之三——丑陋的案例       本文转载自:http://www.cnblogs.com/davenkin/archive/2013/02/16/java-tranaction-1.html,侵删。  在本系列的上一篇文章中,我们看到了一个典型的事务处理失败的案例,其主要原因在于,service层和各个DAO所使用的Connection是不

2017-04-02 20:57:23

Java事务之二——失败的案例

Java事务之二——失败的案例本文转载自:http://www.cnblogs.com/davenkin/archive/2013/02/17/java-transaction-2.html,侵删。  在本系列的上一篇文章中,我们讲到了Java事务处理的基本问题,并且讲到了Service层和DAO层,在本篇文章中,我们将以BankService为例学习一个事务处理失败的

2017-04-02 20:55:55

Java事务之一——Java事务的基本问题

Java事务之一——Java事务的基本问题 本文转载自:http://www.cnblogs.com/davenkin/archive/2013/02/16/java-tranaction-1.html,侵删。  Java中的事务处理有多简单?在使用EJB时,事务在我们几乎察觉不到的情况下发挥着作用;而在使用Spring时,也只需要配置一个TransactionMana

2017-04-02 20:50:15

InkWestSource

Good developers who are familiar with the entire stack know how to make life easier for those around them.
关注
  • 互联网·电子商务/Full Stack developer
  • 中国 北京 朝阳区
奖章
  • 专栏达人
  • 持之以恒