- 博客(38)
- 收藏
- 关注
原创 MyBatis源码分析:SqlSessionFactory
MyBatis学习笔记3:SqlSessionFactory1.SqlSessionFactory1.1 DefaultSqlSessionFactory1.2 SqlSessionManager1.SqlSessionFactory功能:生产SqlSession对象的工厂,是一个接口;源码:/** * Copyright 2009-2019 the original author...
2019-06-25 23:14:07 941
原创 MyBatis学习笔记:Mybatis简介
MyBatis学习笔记1:Mybatis简介传统的JDBC编程流程缺点ExampleORM模型Mybatis起源ORM模型Example传统的JDBC编程流程1.加载数据库驱动2.通过DriverManager获取数据库连接Connection3.操作Connection打开Statement/PreparedStatement4.通过Statement执行SQL5.使用Result...
2019-06-09 21:21:37 260
原创 Spring学习笔记3:深入学习IOC
Spring学习笔记3:深入学习IOC本文将在Spring学习笔记2:Spring概述及IOC的基础上,继续对Spring进行学习。1.引用其他的bean在实际应用中,一个bean中包含其他bean的情况是经常会发生的,下面通过例子来对这种情况进行学习。//步骤1:在com.atguigu.ioc.bean包中添加,BookShop类package com.atguigu...
2018-02-15 12:02:24 266
原创 Spring学习笔记2:Spring概述及IOC
Spring概述及IOC本文将首先对Spring进行了简要的介绍,然后重点学习了SpringIOC,包括IOC基本概念、环境搭建、使用IOC容器创建对象,着重对获取bean的两种方式(id、Class)以及为属性赋值的三种方式(property属性、constructor-arg属性、p名称空间)进行了学习,同时也学习了对象的创建时机以及null值的使用。1.为什么要学习Spring因...
2018-02-11 23:10:15 384
原创 Spring学习笔记1:Spring插件的安装
Spring插件的安装步骤一:插件下载下载地址:http://spring.io/tools/sts/all,其中插件的eclipse版本(e4.7.2)需要和本地eclipse版本一致。 图1步骤二:插件安装启动eclipse->点击“Help”菜单下的“Install New Software…”。 图2 在弹出的“Install”页面中点击“Add...
2018-02-10 01:34:47 409
转载 【转载】Java并发编程17:线程间协作的两种方式:wait、notify、notifyAll和Condition
Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队列中的
2018-01-30 18:37:24 217
转载 【转载】Java多线程和并发基础面试问答
JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-answers/ 多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(
2018-01-30 11:31:52 242
转载 【转载】Java线程面试题 Top 50
Java线程面试题 Top 50 原文链接:http://www.importnew.com/12773.html 本文由 ImportNew - 李 广 翻译自 javarevisited。欢迎加入Java小组。转载请参见文章末尾的要求。 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Jav
2018-01-30 10:40:41 400
转载 【转载】Java并发编程16:Timer和TimerTask
Java并发编程:Timer和TimerTask(转载) 下面内容转载自: http://blog.csdn.net/xieyuooo/article/details/8607220 其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了run方法的一个类,而具体的TimerTask需要由你自己来实现,例如这样:Timer timer = new Ti
2018-01-30 10:04:15 290
转载 【转载】Java并发编程15:Callable、Future和FutureTask
Java并发编程:Callable、Future和FutureTask 在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。 而自从Java 1.5开始,就提供了
2018-01-29 16:36:40 181
转载 【转载】Java并发编程14:CountDownLatch、CyclicBarrier和Semaphore
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。 以下是本文目录大纲: 一.CountDownLatch用法 二.CyclicBarrier用
2018-01-29 16:12:34 170
转载 【转载】Java并发编程13:线程池的使用
Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Jav
2018-01-29 14:36:02 224
转载 【转载】Java并发编程12:阻塞队列
Java并发编程:阻塞队列 在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。 在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedL
2018-01-29 10:18:31 172
转载 【转载】Java并发编程11:并发容器之CopyOnWriteArrayList
Java并发编程:并发容器之CopyOnWriteArrayList 原文链接: http://ifeve.com/java-copy-on-write/ Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1
2018-01-28 15:38:09 233
转载 【转载】Java并发编程10:并发容器之ConcurrentHashMap
Java并发编程:并发容器之ConcurrentHashMap 下面这部分内容转载自: http://www.haogongju.net/art/2350374 JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的访问都串行化了,这样保证了线程的安全性,所以这种方法的代价就是严重降低了并发性,当多个线程竞争容
2018-01-28 14:46:37 235
转载 【转载】Java并发编程9:Java ConcurrentModificationException异常原因和解决方法
Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。
2018-01-28 13:00:28 295
转载 【转载】Java并发编程8:同步容器
Java并发编程:同步容器 为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列、Synchronizer(比如CountDownLatch)。今天我们就来讨论下同步容器。
2018-01-28 11:55:23 193
转载 【转载】Java并发编程7:深入剖析ThreadLocal
想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。 以下是本文目录大纲: 一.对ThreadLocal的理解 二.深入解析ThreadLocal类 三.Thread
2018-01-28 10:47:37 220
转载 【转载】Java并发编程6:volatile关键字解析
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。
2018-01-26 11:27:42 203
转载 【转载】Java并发编程5:Lock
Java并发编程:Lock 在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述。
2018-01-26 09:58:02 185
转载 【转载】Java并发编程4:synchronized
Java并发编程:synchronized 虽然多线程编程极大地提高了效率,但是也会带来一定的隐患。比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据。今天我们就来一起讨论下线程安全问题,以及Java中提供了什么机制来解决线程安全问题。
2018-01-20 17:03:15 198
转载 【转载】Java并发编程2.2:wait/notify
本文主要学习JAVA多线程中的 wait()方法 与 notify()/notifyAll()方法的用法。
2018-01-20 16:13:05 224
转载 【转载】Java并发编程1:进程和线程之由来
Java多线程基础:进程和线程之由来 在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编程。当然,Java并发编程涉及到很多方面的内容,不是一朝一夕就能够融会贯通使用的,需要在实践中不断积累。由于并发肯定涉及到多线程,因此在进入并发编程主题之前,我们先来了解一下进程和线程的由来,这对后面对并发编程的理解将会有很大的帮助。
2018-01-08 23:30:35 208
转载 【转载】Java并发编程2:如何创建线程与进程
Java并发编程:如何创建线程? 在前面一篇文章中已经讲述了在进程和线程的由来,今天就来讲一下在Java中如何创建线程,让线程去执行一个子任务。下面先讲述一下Java中的应用程序和进程相关的概念知识,然后再阐述如何创建线程以及如何创建进程。下面是本文的目录大纲: 一.Java中关于应用程序和进程相关的概念 二.Java中如何创建线程 三.Java中如何创建进程
2018-01-08 23:24:40 201
转载 Google Guava官方教程转载
原文链接 译文链接 译者: 沈义扬,罗立树,何一昕,*武祖 * 校对:方腾飞引言Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串
2018-01-02 13:30:22 392
转载 Java 设计模式之中介者模式
Java 设计模式之中介者模式标签: 设计模式java设计模式java2015-04-23 08:33 17324人阅读 评论(14)收藏举报分类: 设计模式(19) 作者同类文章X本文继续23种设计模式系列之中介者模式。定义用一个中介者对象封装一系列的对象交互,中介者使
2017-10-06 10:49:25 176
转载 Java设计模式之观察者模式
本文继续介绍23种设计模式系列之观察者模式。观察者模式中,一个被观察者管理所有相依于它的观察者物件,并且在本身的状态改变时主动发出通知。这通常通过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。角色抽象被观察者角色:把所有对观察者对象的引用保存在一个集合中,每个被观察者角色都可以有任意数量的观察者。被观察者提供一个接口,可以增加和删除观察者角色。
2017-08-15 20:52:25 320
转载 JAVA设计模式初探之装饰者模式
这个模式花费了挺长时间,开始有点难理解,其实就是定义:动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用Decorator模式相比用生成子类方式达到功能的扩充显得更为灵活。设计初衷:通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很繁多,那么势必生成很多子类,增加系统的复杂性,同时,使用继承实现功能拓展,我们必须可预见这些拓展功能,这些功能是编译时就确定了,是静态的。
2017-08-15 20:51:25 266
转载 Java设计模式之策略模式
Java设计模式之策略模式标签: 设计模式java设计模式2015-04-13 07:20 22058人阅读 评论(11)收藏举报分类: 设计模式(19) 作者同类文章X本文继续介绍23种设计模式系列之策略模式。背景在软件开发中常常遇到这种情况,实现某一个功能有多种算法或
2017-08-15 20:50:27 283
转载 Java设计模式之模板方法模式(Template Method)
Java设计模式之模板方法模式(Template Method)标签: java设计模式设计模式2015-04-15 08:37 20824人阅读 评论(5)收藏举报分类: 设计模式(19) 作者同类文章X本文继续介绍23种设计模式系列之模板方法模式。概述模板方法模式是类的行为模
2017-08-15 20:49:39 313
转载 JAVA设计模式之单例模式
JAVA设计模式之单例模式标签: java设计模式设计模式2014-04-16 06:51 481743人阅读 评论(87)收藏举报本文继续介绍23种设计模式系列之单例模式。概念: Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。 单例模式有以下特点:
2017-08-15 20:48:41 240
转载 JAVA设计模式之抽象工厂模式
本文继续介绍23种设计模式系列之抽象工厂模式。前面已经介绍过简单工厂模式和工厂方法模式,这里继续介绍第三种工厂模式-抽象工厂模式,还是以汽车的制造为例。例子背景:随着客户的要求越来越高,宝马车需要不同配置的空调和发动机等配件。于是这个工厂开始生产空调和发动机,用来组装汽车。这时候工厂有两个系列的产品:空调和发动机。宝马320系列配置A型号空调和A型号发动机,宝马230系列配置B
2017-08-15 20:47:00 262
转载 JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)标签: 设计模式工厂模式java设计模式java2014-04-07 17:36 148195人阅读 评论(26)收藏举报分类: 设计模式(20) 作者同类文章X 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,ne
2017-08-13 20:11:15 215
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人