- 博客(19)
- 资源 (26)
- 收藏
- 关注
原创 java设计模式学习汇总
1.什么是设计模式设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该
2017-03-07 10:33:50 2763
原创 java多线程学习之死锁的模拟和避免
1.死锁死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。Java 死锁产生的四个必要条件: 1、互斥使用,即当资源被一个线程使用(占有)时,别的线程不能使用 2、不可抢占,资源请求者不能强制从资源占有者手中夺取资源,资源只能由资源占有者主动释放。 3、请求和保持,即当资
2017-03-03 16:45:01 899 1
转载 Lock和synchronized之间的那点事
一.synchronized的缺陷 synchronized是java中的一个关键字,也就是说是Java语言内置的特性。那么为什么会出现Lock呢? 在上面一篇文章中,我们了解到如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而这里获取锁的线程释放锁只会有两种情况: 1)获取锁
2017-03-03 14:29:33 553
原创 java多线程学习之线程池
1.介绍多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间,当T1 + T3 远大于 T2,则可以采用线程池,可以提高服务器性能。 在Java 5之后,并发编程引入了一堆新的启动、调度和管理线程的API。Executor框架便
2017-03-24 15:03:12 586
原创 Java面试宝典系列之基础排序算法
1.介绍排序是一个在编程中间是非常基础的和重要的,网上也有很多有关排序算法的文章,再次我也是总结学习别人的知识,将别人的知识转为自己的知识,因此做此笔记,以便更好地掌握java常见排序算法。2.插入算法2.1 基本思想 每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置(从后向前找到合适位置后),直到全部插入排序完为止。 2.2 实例 2.3 算法实现public
2017-03-20 17:44:38 746
原创 elasticsearch rest API初体验
1.介绍elasticsearch使用 JSON (或称作JavaScript Object Notation ) 作为文档序列化的格式。JSON 已经被大多数语言支持,也成为 NoSQL 领域的一个标准格式。它简单、简洁、易于阅读。 为了能让你感受一下 Elasticsearch 能做什么以及它是有多么的易用,我们会先为你简单展示一下,其中包括了基本的 创建索引,搜索 以及 聚合。2.rest
2017-03-15 17:45:48 1535
原创 mac安装elasticsearch详细步骤
1.下载官网下载地址 这里写链接内容 最新的版本已经是5.2.2,害怕最新的有兼容问题,因此选择下载的版本是2.4.3。 (区别一下不同系统版本问题,一般window下载zip,unix下载tar.dz,不过我mac下载的zip版本,测试是可以用的,可能是mac系统zip和tar都支持吧)2.运行下载以后解压,进入elasticsearch-2.4.3文件夹, cd /Users/jikuka
2017-03-15 11:28:21 23604
转载 UML简单入门
在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。1.泛化(Generalization)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种.【箭头指向】:带三角箭头的实线
2017-03-13 18:03:03 466
原创 java设计模式学习之观察者模式
1.介绍 观察者模式(Observer Pattern)是定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。属于类和类之间的关系,不涉及到继承,学习设计模式的时候应该记得归纳比较。 在实际生活中,比如我们乘坐卧铺,上车之后负责该车间的乘务人员会将你的卧铺票兑换成对应床铺的卡片,在快下车的时候,乘务人员会根据自己小本本上的卧铺车票过来通知你要下
2017-03-10 11:02:28 516
原创 java设计模式学习之策略模式
1.介绍 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。比如我们在计算两个数字的时候,会有数字相加,数字相减,数字相乘,数字相除几种方法,一般做法,我们会用一个 if…else 来判断,但是这样有一个不好的地方就是代码复杂化,不利于维护,这时候可以使用策略模式。 2.代码实例 未使用策略模式的代码写法:public i
2017-03-09 17:37:35 536
原创 java设计模式学习之适配器模式
1.介绍适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。实际生活中,比如有一个二孔插座,我现在需要用洗衣机去洗衣服,但是洗衣机插头需要一个三孔插座,二孔插座肯定不适合,这个时候我又不想把原来墙上的二孔插座砸了,换成三孔插座,怎么办了这时候我们去超市买一个插孔转换器就行了,这个插
2017-03-09 16:41:02 585
原创 java设计模式学习之代理模式
1.介绍代理模式(Proxy Pattern)是指一个类代表另一个类的功能,这种类型的设计模式属于结构型模式。核心作用就是通过代理,控制对对象的访问。比如现实生活中,我们买卖房子,那么我们会找中介,我要卖房子,但是我们没有时间去卖,我主动交给中介,中介会帮我发布,会帮我找买家,带买家看房,最后我只要收到钱就行了。 在程序中也是如此,通过代理,可以详细控制访问某个或者某类对象的方法,在调用这个方法前
2017-03-09 14:14:19 446
原创 java设计模式学习之装饰者模式
1.介绍装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 假如当我们想给一个类扩展新的方法的时候,常用的做法是新建一个子类,在子类中使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。当我们在不想增加很多子类的情况下使用装饰器模式扩展类,相比生成子类更为
2017-03-08 17:14:14 572
原创 java设计模式学习之单例模式
1.介绍单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处: 1)、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。 2)、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。 3)、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比如一
2017-03-08 15:08:55 509
原创 java设计模式学习之工厂模式和抽象工厂模式
1.工厂模式 1.1 介绍 1.1.1 概念 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 1.1.2 生活化 比如我们去超市买东西,作为顾客,我们不需要关注商品从何而来,只要是超市上架
2017-03-08 11:33:50 947
原创 java多线程之火车售票系统模拟
1.前言为了学习多线程共享与通信,我们模拟一个火车售票系统,假设有10张火车票,三个窗口(也就是三个线程)同时进项售票。2.非同步代码package com.tl.skyLine.thread;/** * Created by tl on 17/3/6. */public class SellTicket { public static void main(Stri
2017-03-06 14:58:11 18150 4
原创 java并发学习之BlockingQueue实现生产者消费者
1.介绍 阻塞队列 (BlockingQueue)是Java util.concurrent包下重要的数据结构,BlockingQueue提供了线程安全的队列访问方式:当阻塞队列进行插入数据时,如果队列已满,线程将会阻塞等待直到队列非满;从阻塞队列取数据时,如果队列已空,线程将会阻塞等待直到队列非空。并发包下很多高级同步类的实现都是基于BlockingQueue实现的。JDK7提供
2017-03-03 11:05:57 8350 1
原创 java多线程面试汇总
1.线程是什么线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。Java中,每个线程都有一个调用栈,即使不在程序中创建任何新的线程,线程也在后台运行着。一个Java应用总是从main()方法开始运行,mian()方法运行在一个线程内,它被称为主线程。一旦创建一个新的线程,就产生一个新的调用栈。线程总体分两类:用户线程和守候线程。当所有用户线程
2017-03-02 17:57:16 619
原创 java模拟多线程socket通信
1.socket和serverSocket通信socket和serverSocket通信简单介绍如下,注意客户端与服务器端是怎么交换数据的:2.服务器端代码package com.tl.skyLine.socket;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.
2017-03-01 16:28:03 4296 2
bootstrap时间控件
2015-11-18
ajaxfileupload.js
2015-11-16
MyBatis3.2.3帮助文档(中文版)CHM 下载
2015-11-05
Xftp安装exe
2015-10-20
拉钩网前台代码
2015-09-07
LICEcap_ha,专业制作gif工具
2015-09-07
eclispe反编译插件和工具
2015-09-07
JForum_SSO_-_JForum单点登陆原理与配置
2015-07-28
Spring+Mybatis+MySql+Maven项目源码
2015-06-29
MyEclipse2014 破解工具
2015-06-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人