自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sjyttkl的专栏

机器学习基本算法

  • 博客(61)
  • 资源 (20)
  • 收藏
  • 关注

原创 Mybatis3.3.x:StatementHandler(Box stop here)

1. 数据库操作invoke时序图(Made In Visual Paradigm)本文重点分析StatementHandler和ParameterHandler是如何与Executor共襄盛举的。(上图中的execute()失误画错了,应该是executeQuery())2. Executor内使用StatementHandler模板Statement stmt;S

2017-07-30 22:40:35 587

转载 MyBatis入门教程(一)

(整理)MyBatis入门教程(一)本文转载:http://www.cnblogs.com/hellokitty1/p/5216025.html#3591383本人文笔不行,根据上面博客内容引导,自己整理了一些东西首先给大家推荐几个网页:http://blog.csdn.net/isea533/article/category/2092001    没事看看

2017-07-30 22:18:10 494

原创 深入浅出MyBatis-快速入门

简介MyBatis的前身叫iBatis,本是apache的一个开源项目, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注

2017-07-30 21:09:08 324

原创 mybatis 面试题

Mybatis技术内幕系列博客,从原理和源码角度,介绍了其内部实现细节,无论是写的好与不好,我确实是用心写了,由于并不是介绍如何使用Mybatis的文章,所以,一些参数使用细节略掉了,我们的目标是介绍Mybatis的技术架构和重要组成部分,以及基本运行原理。博客写的很辛苦,但是写出来却不一定好看,所谓开始很兴奋,过程很痛苦,结束很遗憾。要求不高,只要读者能从系列博客中,学习到一点其他博客所

2017-07-30 21:01:41 571 1

原创 设计一个针对全球的、访问量极大的id生成系统。 必须保证用户每次从该系统得到的id是唯一的,而且在概率上毫无碰撞可能。

主要利用一个range,当访问极大的id生成系统:我们只要给个开始值,然后再给一个范围range。其中的具体的id生成。交给子服务器去搞定就行了,这样就即避免了主服务器的压力,也保证了id唯一性。

2017-07-29 23:14:18 834

原创 题目四:给定一个数组,值可以为正、负和0,请返回累加和小于等于k的最长子数组长度。 时间复杂度:O(n)

import java.util.HashMap;/** * * 3、给定一个数组,值可以为正、负和0,请返回累加和小于等于k的最长子数组长度。 时间复杂度:O(n) * * 这里需要分为两步,第一步是获取,以每个位置开头最小和的长度。第二步,从0到N逐一判断刚才最小长度是否可以合并在一起达到小于等于k的效果。 * * 第一步: 获取以每个位置开头的最小和

2017-07-29 23:06:34 1321

原创 题目三:给定一个数组,值可以为正、负和0,请返回累加和为给定值k的最长子数组长度。

import java.util.HashMap;/** * * 2、给定一个数组,值可以为正、负和0,请返回累加和为给定值k的最长子数组长度。 * 咱们可以反推,比如:1- 100,数组和为1000. * 要求最长和为300的子数组,我可以反着求第一次出现和700的子数组,因为是第一次那必须是最短的长度。 * 这样反过来,剩下的 300 必须是最长的子数组。 *

2017-07-29 22:03:20 1465

原创 题目二:给定一个数组,值全是正数,请返回累加和为给定值k的最长子数组长度。

import java.util.Arrays;/** * 1,给定一个数组,值全是正数,请返回累加和为给定值k的最长子数组长度。 * 思路: * 可以用两个指针记录下该区间值的和, * a,如大于k则移动左指针。 * b,如果小于K则移动右指针 * c,如果等于k则移动左指针。 左,右指针都是向右滑动的。 * * @author lenovo * */public

2017-07-29 22:01:01 927

原创 JAVA多线程学习--哲学家就餐问题

哲学家就餐问题是1965年由Dijkstra提出的一种线程同步的问题。问题描述:一圆桌前坐着5位哲学家,两个人中间有一只筷子,桌子中央有面条。哲学家思考问题,当饿了的时候拿起左右两只筷子吃饭,必须拿到两只筷子才能吃饭。上述问题会产生死锁的情况,当5个哲学家都拿起自己右手边的筷子,准备拿左手边的筷子时产生死锁现象。解决办法:  1、添加一个服务生,只有当经过服务生

2017-07-29 20:46:17 670

原创 Java多线程系列----Fork/Join框架介绍

1. 什么是Fork/Join框架Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分为若干子任务并行的执行,Join就是合并这些子任务的执行结果,最后得到这个大任务的结果。比如计算1+

2017-07-27 19:50:13 366

原创 Java多线程-----CopyOnWriteArrayList

概要本章是"JUC系列"的CopyOnWriteArrayList篇。接下来,会先对CopyOnWriteArrayList进行基本介绍,然后再说明它的原理,接着通过代码去分析,最后通过示例更进一步的了解CopyOnWriteArrayList。内容包括:CopyOnWriteArrayList介绍CopyOnWriteArrayList原理和数据结构CopyOnWriteAr

2017-07-27 19:39:23 456

原创 Java多线程----CopyOnWriteArraySet

概要本章是JUC系列中的CopyOnWriteArraySet篇。接下来,会先对CopyOnWriteArraySet进行基本介绍,然后再说明它的原理,接着通过代码去分析,最后通过示例更进一步的了解CopyOnWriteArraySet。内容包括:CopyOnWriteArraySet介绍CopyOnWriteArraySet原理和数据结构CopyOnWriteArraySet

2017-07-27 19:32:15 484

原创 Copy-On-Write容器

ArrayList 是 非线程安全的, CopyOnWriteArrayList 是一个线程安全,并且在读操作时无锁的ArrayList,且适合并发访问。对于集合元素数为10000,线程数量为100的情况下进行性能测试,随着元素数量和线程数量的增加,CopyOnWriteArrayList在增加元素和删除元素时的性能下降非常明显,并且性能会比ArrayList低。但在查找元素这点上随着线程数的增长

2017-07-27 19:01:26 408

原创 线程池作用及Executors方法讲解

线程池的作用:     线程池作用就是限制系统中执行线程的数量。     根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程 排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程 池中有等待的工作线程,

2017-07-27 18:59:57 457

原创 Java多线程系列-- 之 yield与join方法的区别

长期以来,多线程问题颇为受到面试官的青睐。虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用。之前,我讨论了一个wait()和sleep()方法区别的问题,这一次,我将会讨论join()和yield()方法的区别。坦白的说,实际上我并没有用过其中任何一个方法,所以,如果你感觉有不恰当的地方,请提出讨论。J

2017-07-27 16:54:51 452

原创 mysql数据库引擎常用面试总结

一次面试被问到了MySQL的相关问题,一个是对mysql了解多少,引擎有什么,主要区别是什么?第二个被问的更多,给你一个百万级别的表怎么查询优化:今天整理了一些资料回答第一个问题:总的思想:MyIASM引擎是为了查和增加,效率高。所有功能都围绕这这个Innodb引擎功能更强(事务等)效率低一些。MySQL数据库引擎详解

2017-07-27 10:55:50 13028 2

原创 Java NIO原理图文分析及代码实现

Java NIO原理图文分析及代码实现 前言: 最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。可以参考:http://baike.baidu.com/view/32726.htm )机制时,发现hadoop的RPC机制的实现主要用到了两个技术:

2017-07-26 18:52:00 291

原创 Java NIO提供了与标准IO不同的IO工作方式

Java NIO提供了与标准IO不同的IO工作方式: Channels and Buffers(通道和缓冲区):标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。Asynchronous IO(异步IO):Java NIO可以让你异步的使用IO,例如:当线程从通道读取数据

2017-07-26 17:23:11 1557

原创 java NIO原理及实例

1、reactor(反应器)模式  使用单线程模拟多线程,提高资源利用率和程序的效率,增加系统吞吐量。下面例子比较形象的说明了什么是反应器模式:  一个老板经营一个饭店,  传统模式 - 来一个客人安排一个服务员招呼,客人很满意;(相当于一个连接一个线程)  后来客人越来越多,需要的服务员越来越多,资源条件不足以再请更多的服务员了,传统模式已经不能满足需求。老板之所以为老板自然有过

2017-07-26 17:19:44 273

原创 进程和线程的区别

线程是指进程内的一个执行单元,也是进程内的可调度实体。与进程的区别:(1)地址空间:进程内的一个执行单元,进程至少一个线程,他们共享进程的地址空间,而进程有自己独立的地址空间(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程资源(3)线程是处理器调度的基本单位,但进程不是(4)二者皆可并发执行进程和线程都是操作系统的程序运行的基本单元,系统利用该基本单元

2017-07-26 15:38:21 236

原创 左神课堂开始

这些都是左神(左程云)课堂里讲的例子,写下自己的理解。1、已知一个字符串都是由左括号(和右括号)组成,判断该字符串是否是有效的括号组合。例子:有效的括号组合:()()(())(()())无效的括号组合:(())(()()(()这题比较简单, 1,可以先定义一个状态 int status ==0 ,当遇到“)”这个状态就改变:--statu

2017-07-24 18:34:22 2078

原创 Struts2 struts2基本流程与配置

struts2框架什么是框架,框架有什么用?框架 是 实现部分功能的代码 (半成品),使用框架简化企业级软件开发 ,提高开发效率。学习框架 ,清楚的知道框架能做什么? 还有哪些工作需要自己编码实现 ?什么是struts2框架,它有什么用?Struts 2是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。

2017-07-21 23:10:38 573

原创 Struts2之Action基础与配置

Action基础Action是什么  在Struts2中,一个Action类代表一次请求或调用,每个请求的动作都对应于一个相应的Action类,一个Action类是一个独立的工作单元。也就是,用户的每次请求,都会转到一个相应的Action类里面,由这个Action类来进行处理,因此一个Action类代表了用户的一次请求或调用。简单来说,Action就是用来处理一次用户请求的对象。

2017-07-21 22:56:06 318

原创 Struts2与MVC基础入门

1、MVC模式基础1.1、MVC模式简介  MVC是一种架构型模式,它本身并不引入新的功能,只是用来指导我们改善应用程序的架构,使得应用的模型和视图相分离,从而达到更好的开发和维护效率。在MVC模式中,应用程序被划分成模型(Model)、视图(View)和控制器(Controller)三个部分。其中,模型部分包含了应用程序的业务逻辑和业务数据;视图部分封装了应用程序的输出形式(页面

2017-07-21 22:53:40 513

原创 Hibernate 延迟加载剖析与代理模式应用

Hibernae 的延迟加载是一个非常常用的技术,实体的集合属性默认会被延迟加载,实体所关联的实体默认也会被延迟加载。Hibernate 通过这种延迟加载来降低系统的内存开销,从而保证 Hibernate 的运行性能。下面先来剖析 Hibernate 延迟加载的“秘密”。集合属性的延迟加载当 Hibernate 从数据库中初始化某个持久化实体时,该实体的集合属性是否随持久化

2017-07-21 16:47:28 301

原创 CAP理论

CAP理论在互联网界有着广泛的知名度,知识稍微宽泛一点的工程师都会把其作为衡量系统设计的准则。大家都非常清楚地理解了CAP:任何分布式系统在可用性、一致性、分区容错性方面,不能兼得,最多只能得其二,因此,任何分布式系统的设计只是在三者中的不同取舍而已。事实上,让人吃惊的是,CAP在国外的响力完全不如所想,相反还伴随着诸多的争论。下面我们系统地阐述一下CAP的来龙去脉。1.CAP的历史

2017-07-21 10:30:05 347

原创 Java四种线程池的使用

Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。

2017-07-20 20:12:04 244

原创 线程池和连接池的区别

一、 线程池的原理:     线程池,究竟是怎么一回事?其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程,让它来处理客户端的这个请求,当处理完这个请求后,线程又处于睡眠状态。可能你也许会问:为什么要搞得这么麻烦,如果每当客户端有新的请求时,我就创建

2017-07-20 20:10:45 13946 3

原创 跳表(SkipList)及ConcurrentSkipListMap源码解析

二分查找和AVL树查找二分查找要求元素可以随机访问,所以决定了需要把元素存储在连续内存。这样查找确实很快,但是插入和删除元素的时候,为了保证元素的有序性,就需要大量的移动元素了。如果需要的是一个能够进行二分查找,又能快速添加和删除元素的数据结构,首先就是二叉查找树,二叉查找树在最坏情况下可能变成一个链表。于是,就出现了平衡二叉树,根据平衡算法的不同有AVL树,B-Tree,B+Tree

2017-07-19 19:37:44 222

原创 深入剖析ConcurrentHashMap(2)

经过之前的铺垫,现在可以进入正题了。我们关注的操作有:get,put,remove 这3个操作。对于哈希表,Java中采用链表的方式来解决hash冲突的。一个HashMap的数据结构看起来类似下图:实现了同步的HashTable也是这样的结构,它的同步使用锁来保证的,并且所有同步操作使用的是同一个锁对象。这样若有n个线程同时在get时,这n个线程要串行的等待来获取锁。

2017-07-19 19:15:10 205

转载 深入剖析ConcurrentHashMap(1)

原文是09年时写的,在公司的邮件列表发过,同事一粟 和清英 创建的并发编程网 对这方面概念和实战有更好的文章,贴出来仅供参考。pdf格式在:http://www.slideshare.net/hongjiang/concurrent-hashmap 可以获取ConcurrentHashMap是Java5中新增加的一个线程安全的Map集合,可以用来替代HashTable。对于Concurre

2017-07-19 18:56:03 256

原创 ConcurrentLinkedQueue原理

1.    引言在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现,本文让我们一起来研究下Doug Lea是如何使用非阻塞的方式来实现线程安全队列Concurr

2017-07-19 17:53:54 449

原创 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法

并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要

2017-07-19 17:33:54 192

原创 ArrayBlockingQueue

在《生产者消费者模型你知道多少》中简单的模拟了一个生产者消费者模型。有些网友对我的实现提出了很多质疑。我在文章的结尾也对抛出了一个问题:在添加的过程中可能出现数据丢失的情况,应该怎么处理?在代码中也充斥了大量的锁,有些锁是不需要的,而且有重复制造轮子的嫌疑。在今天我将引入ArrayBlockingQueue重写这个模型,这在实际开发中可能更有意义,另外对于Java.util.concurrent这

2017-07-19 16:48:24 307

转载 Java多线程系列--Callable和Future

概要本章介绍线程池中的Callable和Future。Callable 和 Future 简介示例和源码分析(基于JDK1.7.0_40)转载请注明出处:http://www.cnblogs.com/skywang12345/p/3544116.html Callable 和 Future 简介  Callable 和 Future 是比较有趣的一对

2017-07-19 09:17:46 294

原创 Java多线程系列--Condition条件

概要前面对JUC包中的锁的原理进行了介绍,本章会JUC中对与锁经常配合使用的Condition进行介绍,内容包括:Condition介绍Condition函数列表Condition示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3496716.html Condition介绍Condition的作用是对

2017-07-19 09:17:28 232

原创 Java多线程系列--“JUC集合”01之 框架

概要之前,在"Java 集合系列目录(Category)"中,讲解了Java集合包中的各个类。接下来,将展开对JUC包中的集合进行学习。在学习之前,先温习一下"Java集合包"。本章内容包括:Java集合包JUC中的集合类转载请注明出处:http://www.cnblogs.com/skywang12345/p/3498454.html Java集合

2017-07-19 09:17:15 335

原创 ava多线程系列-- 之 线程优先级和守护线程

概要本章,会对守护线程和线程优先级进行介绍。涉及到的内容包括:1. 线程优先级的介绍2. 线程优先级的示例3. 守护线程的示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479982.html 1. 线程优先级的介绍java 中的线程优先级的范围是1~10,默认的优先级是5。“高优先级线程”会优先

2017-07-17 21:03:15 330

原创 Java多线程系列-- 之 join()

概要本章,会对Thread中join()方法进行介绍。涉及到的内容包括:1. join()介绍2. join()源码分析(基于JDK1.7.0_40)3. join()示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479275.html 1. join()介绍join() 定义在Thread.j

2017-07-17 21:00:42 182

原创 Java并发包中Lock的实现原理

1. Lock 的简介及使用         Lock是java 1.5中引入的线程同步工具,它主要用于多线程下共享资源的控制。本质上Lock仅仅是一个接口(位于源码包中的java\util\concurrent\locks中),它包含以下方法//尝试获取锁,获取成功则返回,否则阻塞当前线程void lock(); //尝试获取锁,线程在成功获取锁之前被中断,则放弃获取锁

2017-07-17 20:52:15 400

面向社会计算的网络表示学习_论文.zip

清华大学、刘知远教授的博士生的博士涂存超 的 论文和答辩PPT。面向社会计算的网络表示学习,学习如何表示用户信息与item信息,以便更好地匹配。

2020-04-03

代码地址.txt

传智播客旗下,c++课程提高班源代码。全部手打。并且还附有基础版,加强班的代码和文档。欢迎给星。谢谢

2019-10-08

mybatis-3.1.1

mybatis驱动

2017-07-30

win7-64bit-python2.7安装numpy+scipy+sklearn.rar

2017-04-28

机器学习基础教程,代码

机器学习基础教程,代码有matlab写成,适合学习。。赶紧下载吧!

2016-07-29

pygame_x64_veryhuo.com

pygame_x64,很棒哦!

2016-05-25

ampy-1.2.3.win32

ampy-1.2.3.win32,很棒哦~!

2016-05-25

PyGraphics-2.1.win32

PyGraphics-2.1.win32,很棒哦!

2016-05-25

mysql5.5驱动

mysql5.5驱动,是你开发的不二选择!

2013-09-26

jartl.jar

jstl.jar

2013-07-28

standard.jar 保存 下载

standard.jar

2013-07-28

HTML5 参考手册

HTML5 参考手册是最新发布的文档,你值得拥有!!

2013-03-25

HTML5 Canvas 作图函数库 2.0版本.pdf

HTML5的函数工具,是开发者必备学习工具,你值得拥有

2013-03-25

DTD教程实例

DTD教程 chm格式,还有实例典范,是web开发必备工具,xml开发者必备工具

2013-03-10

DHTML参考手册

DHTML参考手册,是网页开发人员必备工具,还是中文版的!!值得拥有!!

2013-03-02

css2.0中文版

网页开发必备文档,css2.0可用的文档,是专业人士必备武器!!!

2013-03-02

程序员历年试题

软考程序员必备 程序员历年试题 从 2004年到现在的历年上下午试题 仅供分享

2012-11-17

java API汉化版!!

java API汉化版!!方便 易查,易用!!

2012-05-03

C语言API手册

使用的C语言API手册,要查看各头文件,在函数使用里程里单击鼠标右键,选择“查看原”,即可找到,很方便!

2012-04-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除