自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

转载 【设计模式】 抽象工厂模式(Abstract Factory)

3.1. 模式动机在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方法。但是有时候我们需要一个工厂可以提供多个产品对象,而不是单一的产品对象。为了更清晰地理解工厂方法模式,需要先引入两个概念:产品等级结构 :产品等级结构即产品的继承结构,如一个抽象类是电视机

2017-03-30 18:56:52 280

转载 【设计模式】工厂模式

2.1. 模式动机现在对该系统进行修改,不再设计一个按钮工厂类来统一负责所有产品的创建,而是将具体按钮的创建过程交给专门的工厂子类去完成,我们先定义一个抽象的按钮工厂类,再定义具体的工厂类来生成圆形按钮、矩形按钮、菱形按钮等,它们实现在抽象按钮工厂类中定义的方法。这种抽象化的结果使这种结构可以在不修改具体工厂类的情况下引进新的产品,如果出现新的按钮类型,只需要为这种新类型的按钮创建一个具体的工

2017-03-30 18:43:39 315

转载 【设计模式】六大原则

设计模式六大原则(1):单一职责原则定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,

2017-03-30 16:56:18 415

转载 【设计模式】静态工厂、工厂方法和抽象工厂的联系与区别

解析:开闭原则:对扩展开放,对修改封闭。静态工厂增加需要是修改源代码,对修改不封闭,不符合开闭原则。Simple Factory 简单工厂模式(静态工厂)1)Simple Factory模式属于创建型模式,2)简单工厂模式是由一个工厂(注意是一个!)对象决定创建出哪一种产品类的实例(例如你到肯德基说你要鸡腿,要薯条,要饮料还是其他的,这时肯德基是一个工厂,客户端

2017-03-30 16:45:55 470

转载 【设计模式】简单工厂模式

1.1. 模式动机考虑一个简单的软件应用场景,一个软件系统可以提供多个外观不同的按钮(如圆形按钮、矩形按钮、菱形按钮等), 这些按钮都源自同一个基类,不过在继承基类后不同的子类修改了部分属性从而使得它们可以呈现不同的外观,如果我们希望在使用这些按钮时,不需要知道这些具体按钮类的名字,只需要知道表示该按钮类的一个参数,并提供一个调用方便的方法,把该参数传入方法即可返回一个相应的按钮对象,此时,就

2017-03-30 16:15:16 219

转载 【数据库】【JDBC】使用JDBC处理Oracle大数据

JavaWeb学习总结(三十五)——使用JDBC处理Oracle大数据一、Oracle中大数据处理  在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了。因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据 量非常大的业务领域(如图象、档案等)。  LOB类型分为BLOB和CLOB两

2017-03-30 12:03:26 343

转载 【数据库】【JDBC】使用JDBC进行批处理

在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率。  JDBC实现批处理有两种方式:statement和preparedstatement一、使用Statement完成批处理  1、使用Statement对象添加要批量执行SQL语句,如下:1 Statement.addBatc

2017-03-30 12:01:28 287

转载 【数据库】【JDBC】获得MySQL数据库自动生成的主键

create table test1( id int primary key auto_increment, name varchar(20));package jdbc;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;public cl

2017-03-30 11:04:26 331

转载 【数据库】【JDBC】使用JDBC处理MySQL大数据

javaweb学习总结(三十四)——使用JDBC处理MySQL大数据一、基本概念  大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像、声音、二进制文等。  在实际开发中,有时是需要用程序把大文本或二进制数据直接保存到数据库中进行储存的。  对MySQL而言只有blob,而没有c

2017-03-30 10:54:36 305

转载 【数据库】【JDBC】使用JDBC对数据库进行CRUD

一、statement对象介绍    Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可。  Statement对象的executeUpdate方法,用于向数据库发送增、删、改的sql语句,executeUpdate执行完后,将会返回一个整数(即增删改语句导致了数据库几行数据发生了变化)。  Sta

2017-03-30 10:14:16 285

转载 【数据库】【JDBC】一、JDBC相关概念介绍

1.1、数据库驱动  这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡,同样道理,我们安装好数据库之后,我们的应用程序也是不能直接使用数据库的,必须要通过相应的数据库驱动程序,通过驱动程序去和数据库打交道,如下所示:  1.2、JDBC介绍  SUN公司为了简化

2017-03-29 23:28:05 312

转载 【数据库】【oracle】行迁移和行链接(row chaining or row migration)

row chain:When a row is too large to fit into any block, row chaining occurs. In this case, the Oracle devide the row into smaller chunks. each chunk is stored in a block along with the necessary poit

2017-03-29 23:05:35 957

转载 【java】生产者/消费者问题

生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以从仓库中取走产品。解决生产者/消费者问题的方法可分为两类:(1)采用某种机制保护生产者和消费者之间的同步;(2)在生产者和消费者之间建立一个管道。第一种方式有较高的效率,并且易于实现,代码的可控制性较好,属于常用的模式。第二种管道缓冲区不易控制,被传输数据

2017-03-28 20:09:26 225 1

转载 【c/c++】银行家算法

1 需求分析 1.1 银行家算法的实现思想     允许进程动态地申请资源,系统在每次实施资源分配之前,先计算资源分配的安全性,若此次资源分配安全(即资源分配后,系统能按某种顺序来为每个进程分配其所需的资源,直至最大需求,使每个进程都可以顺利地完成),便将资源分配给进程,否则不分配资源,让进程等待。1.2 死锁的概念  死锁是指两个或两个以上的进程在执行

2017-03-28 18:15:26 8641 1

原创 【java】死锁

package Synchronize;class ShareObject1{}class ShareObject2{}class Thread1 extends Thread{ public void run(){ synchronized (ShareObject1.class){ System.out.println("线程1获取到S

2017-03-28 13:59:50 334

原创 【java】线程池

在java语言中,可以通过new Thread的方法来创建一个新的线程执行任务,但是线程的创建是非常耗时间的,而且创建出来的新的线程都是各自运行,缺乏统一的管理,这样做的后果是可能导致创建过多的线程从而过度消耗系统的资源,最终导致性能急剧下降,线程池的引入就是为了解决这些问题的当使用线程池控制线程数量的时候,其他线程排队等候,当一个任务执行完毕后,再从队列中取出最前面的任务开始执行。如果队

2017-03-28 13:27:09 289

原创 【java】AtomicInteger

package Synchronize;/*** * 在java中i=i++ 不是线程安全的 * 具体执行过程: * 栈temp=i; * i++; * i=temp; * 由上可以知道不是一个原子操作,线程不安全 * * 解决方法: * synchronized关键字 * AtomicInterger是一个提供原子操作的Interger类,它提供了线程安全且高效的原子操作,

2017-03-28 11:15:25 293

原创 【java】Lock

package Synchronize;/** JDK5新增加了Lock接口以及它的一个实现类ReentrantLock(重入锁),Lock也可以用来实现多线程的同步。 1.lock() 以阻塞的方式获取锁,也就说,如果获取到了锁就立刻返回,如果其他线程持有锁,当前线程等待,知道获取锁以后返回 2.tryLock() 以非阻塞的方式获取锁。只是尝试性地去获取一下锁,如果获取到了锁,则

2017-03-28 10:43:19 228

原创 【java】Synchronize关键字

package Synchronize;/** * 当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。 * 另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块 * */public class Test01 implements Runnable { public void run()

2017-03-27 22:21:47 297

转载 【java】hashCode

在前面三篇博文中LZ讲解了(HashMap、HashSet、HashTable),在其中LZ不断地讲解他们的put和get方法,在这两个方法中计算key的hashCode应该是最重要也是最精华的部分,所以下面LZ揭开hashCode的“神秘”面纱。      hashCode的作用      要想了解一个方法的内在原理,我们首先需要明白它是干什么的,也就是这个方法的作用。在讲解数组

2017-03-26 16:28:30 214

转载 【java】HashTable

有两个类都提供了一个多种用途的hashTable机制,他们都可以将可以key和value结合起来构成键值对通过put(key,value)方法保存起来,然后通过get(key)方法获取相对应的value值。一个是前面提到的HashMap,还有一个就是马上要讲解的HashTable。对于HashTable而言,它在很大程度上和HashMap的实现差不多,如果我们对HashMap比较了解的话,对Has

2017-03-26 16:05:40 250 1

转载 【java】HashMap

HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存、取value。下面就来分析HashMap的存取。       一、定义       HashMap实现

2017-03-26 15:44:32 208

原创 【java】【java Collection】Collection

在编写Java程序中,我们最常用的除了八种基本数据类型,String对象外还有一个集合类,在我们的的程序中到处充斥着集合类的身影!java中集合大家族的成员实在是太丰富了,有常用的ArrayList、HashMap、HashSet,也有不常用的Stack、Queue,有线程安全的Vector、HashTable,也有线程不安全的LinkedList、TreeMap等等!

2017-03-26 14:46:21 285

转载 【java】【java Colletion】fail-fast

转载地址:http://blog.csdn.net/chenssy/article/details/38151189“快速失败”也就是fail-fast,它是Java集合的一种错误检测机制。当多个线程对集合进行结构上的改变的操作时,有可能会产生fail-fast机制。记住是有可能,而不是一定。例如:假设存在两个线程(线程1、线程2),线程1通过Iterator在遍历集合A中的元素,在某

2017-03-26 14:30:07 280

原创 【java】【java collection】ArrayList

1. ArrayList概述:   ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。   每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向ArrayList中不断添加元素,其容量

2017-03-26 14:09:01 406

原创 【java】BigDecimal、BigInteger、大数相乘、数值的整数次方、快速乘法

package Test;import java.math.BigDecimal;public class Test { public static void main(String[] args){ double d1=2.15; double d2=1.10; System.out.println("double运行的结果:"

2017-03-23 22:29:44 4385

原创 【Java】构造函数

package Test; class Base{ int num=1; public Base(){ this.print(); num=2; } public Base(int num){ this.num=num; this.print(); } publi

2017-03-23 13:49:59 263

转载 【数据结构与算法】哈夫曼树

1.基本概念Huffman Tree,中文名是哈夫曼树或霍夫曼树,它是最优二叉树。定义:给定n个权值作为n个叶子结点,构造一棵二叉树,若树的带权路径长度达到最小,则这棵树被称为哈夫曼树。 这个定义里面涉及到了几个陌生的概念,下面就是一颗哈夫曼树,我们来看图解答。路径和路径长度定义:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数

2017-03-21 12:16:15 1706

转载 【java】泛型中<? extends E>和<? super E>的区别

是 Upper Bound(上限) 的通配符,用来限制元素的类型的上限,比如[java] view plain copy  Listextends Fruit> fruits;  表示集合中的元素类型上限为Fruit类型,即只能是Fruit或者Fruit的子类,因此对于下面的赋值是合理的[java]

2017-03-17 19:19:07 307

转载 【java】Comparable和Comparator区别小结

参考资料:http://www.cnblogs.com/xujian2014/p/5215082.html阅读目录一、Comparable简介二、Comparator简介三、Comparable和Comparator区别比较一、Comparable简介  Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持

2017-03-17 19:09:16 234

转载 【linux】fork() && fork() || fork()

[cpp] view plain copy#include   #include      int main()  {          fork();/*****/             fork() && fork() || fork();/*****/             fork();/*****/     

2017-03-15 13:56:56 610

转载 【linux】fork()详解

一、fork入门知识     一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。    一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来

2017-03-15 13:55:34 187

简单工厂模式

简单工厂模式

2017-03-30

基于K-means算法的遥感图像分类的matlab实现

基于K-means算法的遥感图像分类的matlab实现

2014-06-03

空空如也

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

TA关注的人

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