自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (14)
  • 收藏
  • 关注

原创 Java设计模式之工厂模式

Java设计模式之工厂模式1. 引子在介绍这篇内容之前,先以一个小故事开头。话说有一个暴发户,他家有三辆轿车(奔驰、宝马、奥迪),还雇了司机为他开车。不过,暴发户每次坐车时总是这样:上奔驰车后跟司机说“开奔驰车!”,坐上宝马后他说“开宝马车!”,坐上奥迪后他说“开奥迪车!”。也许你会说:这人有病吧!直接说开车不就行了?!非得多此一举是要表明自己是壕了吗?这是病,得治。其实像这样的行为放到程序中来实现

2015-07-29 00:39:14 675

原创 Java设计模式之单例模式

Java设计模式之单例模式1. 概述单例模式是一种常见的设计模式,在工作生活中也经常遇到这样的实例。比如我们要听歌,使用WindowsMediaPlayer来播放,那这个播放器就是一种单例模式的。当我们双击来播放一首歌曲时,首先打开播放器,然后播放声音,如果这时我们要切换到另外一首歌曲播放,是不会重新再打开一个播放器窗口的,它将直接在已打开的窗口中切换播放后打开的歌曲。显然这样设计是合理的,试想,如

2015-07-24 21:25:26 572

原创 查找算法之二分查找算法

查找算法之二分查找算法1. 概述二分查找算法也称折半查找算法,是在有序数组中用到的较为频繁的一种查找算法。在未接触二分查找算法时,最通用的一种做法是,对数组进行遍历,跟每个元素进行比较,即顺序查找。二分查找较顺序查找更优,因为这种算法每一次比较都使查找范围缩小一半。2. 算法思想二分查找算法是建立在有序数组基础上的。算法思想为:查找过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则查找过

2015-07-23 08:08:49 9081

原创 排序算法之选择排序

排序算法之选择排序1. 介绍在冒泡排序算法一篇中,介绍了基本的冒泡排序与几种改进方法,但无论那几种方法怎么改进,都还是基于两两交换不断推进的冒泡排序。冒泡排序算法最费时的是什么?一是相邻元素两两比较,二是不满足排序规则的元素两两交换,当然交换要比比较费时多了。两两交换的目的是什么呢?是找出最值(最大值或最小值)。但是冒泡排序算法中找最值的代价是很大的,每次遍历,可能需要很多次交换才能找到最值,而这些

2015-07-22 23:55:27 683

原创 排序算法之插入排序

排序算法之插入排序1. 介绍有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然保持有序,这个时候就要用到一种新的排序方法——插入排序法。插入排序的基本操作就是将一个数据插入到已经排好序的有序数列中,从而得到一个新的、个数加一的有序数列,算法适用于少量数据的排序,时间复杂度为O(n^2),是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个

2015-07-22 21:48:04 1061

原创 排序算法之冒泡排序

冒泡排序1. 介绍冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,每次比较相邻的两个元素,如果他们的顺序不满足排序条件就把他们交换过来。遍历数列的工作是重复地进行直到不再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小(或越大)的元素会经由交换慢慢“浮”到数列的顶端。2. 算法描述先来看一张图:上图就表明了冒泡排序的算法过程,按照从小到大(升序)排

2015-07-22 16:47:57 1143

原创 Java设计模式之装饰者模式

Java设计模式之装饰者模式1. 介绍通常我们有两种方式为一个类或者对象添加行为:一是使用继承。继承是给一个类添加行为的比较有效的途径。通过使用继承,可以使得子类在拥有自身行为的同时,还可以拥有父类的行为。但是使用继承是静态的,在编译的时候就已经决定了子类的行为,我们不便于控制增加行为的方式和时机。二是使用关联,即将一个对象嵌入到另一个对象中,由另一个对象来决定是否引用嵌入对象的行为来扩展自己的行为

2015-07-22 09:27:57 664 1

原创 ThreadLocal用法与实现原理

ThreadLocal用法与实现原理1. 对ThreadLocal的理解Java API中对ThreadLocal的描述是:该类提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每个线程都有自己的局部变量,它独立于变量的初始化副本。ThreadLocal 实例通常是类中的 private static 字段,它们

2015-07-20 17:18:00 3129

原创 Java多线程之生产者消费者模式

Java多线程之生产者/消费者模式1. 描述生产者/消费者问题是研究多线程程序时绕不开的经典问题之一,它主要描述的是用一个缓冲区作为仓库,生产者可以将生产的产品放入仓库,消费者则可以从仓库中取走产品。再详细一点的描述就是:在生产者和消费者之间共用一个容器,生产者生产的商品放到容器中(容器有一定的容量),消费者从容器中消费商品,当容器满了后,生产者等待,当容器为空时,消费者等待。当生产者将商品放入容器

2015-07-20 08:57:31 795

原创 Java的内存分析

Java的内存分析1. 概述垃圾回收(Garbage Collection,简称GC)是Java的一大特征,它可以自动释放不再使用的对象的资源(内存),因为不需要手动释放内存,程序员在编程中也可以减少犯错的机会。比如在C中,就没有垃圾回收的机制,程序员需要手动释放内存,就可能会出现一些指针和内存泄露相关的Bug。对于Java程序员来说,GC是交给虚拟机(JVM)的自动内存管理机制来完成的,不再需要为

2015-07-17 09:04:17 1328 1

原创 Java中HashSet的存储原理

Java中HashSet的存储原理1. 说明HashSet,从字面意思我们大致可以看出它包含了两方面的内容:Hash和Set,即散列与集合。实际确实如此,HashSet实现了Set接口,所以它符合Set集合使用的特征,集合中不允许有重复的元素,同时HashSet底层的实现是通过HashMap来实现元素保存操作的。2. 分析我们来分析一下HashSet的原码,下面这段是HashSet中存储对象的数据结

2015-07-15 23:14:08 5039 1

原创 散列表(哈希表)

散列表闲话散列表一直以来,有用到Java中的HashMap、HashTable,知道它们是以散列表的结构实现数据存放,但到底什么是散列表,存储结构到底是怎么样子的,始终没有弄清楚过。经过多方查询,最终找到一个好的例子来帮我们解释了到底散列表是什么东西,现引用一下。我们以一个小故事来说明散列表的概念。试想有这样的场景,我在学校很想学太极拳,听说学校有个叫张三丰的人打得特别好,于是就到学生处找人。学生处

2015-07-15 00:20:57 1093

原创 Java接口回调

Java接口回调1. 关于回调回调机制是一种常见的设计模型,他把工作流内的某个功能,按照约定的接口暴露给外部使用者,为外部使用者提供数据,或要求外部使用者提供数据。软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用。异步调用:一种类似消息或事件的机制,不过它的调用方向刚好相反,接

2015-07-14 16:42:04 5311

原创 HttpURLConnection与HttpClient浅析

HttpURLConnection与HttpClient浅析1. GET请求与POST请求HTTP协议是现在Internet上使用得最多、最重要的协议了,越来越多的Java应用程序需要直接通过HTTP协议来访问网络资源。在介绍HttpURLConnection前,我们还是再来说一下URL请求最常用的两种方式:GET请求与POST请求。GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中

2015-07-14 14:25:10 11023

原创 浅析HTTP协议之请求与响应

浅析HTTP协议之请求与响应1. 简介HTTP协议是基于请求响应模式的,即客户端发起请求,服务器端响应。如图:也就是说,要获取服务器端的响应,我们必须由客户端发起请求,否则服务器端无法主动将消息推送给客户端。HTTP是无状态协议,同一个端两次发起的请求是没有对应关系的。一般HTTP的工作流程有以下几个步骤:客户机与服务器需要建立连接。如我们单击页面中的一个超链接,HTTP开始工作,建立与服务器间的

2015-07-14 11:20:24 825

原创 XML使用SAX解析与PULL解析的区别

XML使用SAX解析与PULL解析的区别在最近的应用中,经常会用到对XML的解析,但是一直有一个疑问就是SAX解析与PULL解析的区别到底是什么。搜索了相关的问题,整理如下,以便大家查询。我们知道,SAX解析是事件驱动的,它不会将整个文档读入内存再解析,而是在读取文档的过程中就解析它,所以,文档读入的过程也就是SAX解析的过程。虽然,SAX方式解析XML不会将整个文档放入内存,但它还是会遍历完毕文档

2015-07-10 15:18:57 3790 5

原创 浅析PULL解析

浅析PULL解析1. 基本介绍PULL方式解析XML是在Android中极力推荐使用的一种解析XML的方式,但PULL解析除了在Android中可以使用外,在JavaSE中仍然可以使用。在JavaSE中,我们要使用PULL解析XML,首先得获取XmlPull所需要的类库及依赖类库:类库Jar包下载地址:http://www.findjar.com/jar/xmlpull/xmlpull/1.1.3.

2015-07-10 13:54:00 5108

原创 浅析使用SAX解析XML

浅析使用SAX解析XML1. 概述Java解析XML通常有两种方式,DOM和SAX。DOM虽然是W3C的标准,提供了标准的解析方式,但它的解析效率一直不尽如人意,因为使用DOM解析XML时,解析器读入整个文档并构建一个驻留内存的树结构(节点树),然后您的代码才可以使用DOM的标准接口来操作这个树结构。但大部分情况下我们只对文档的部分内容感兴趣,根本就不用先解析整个文档,并且从节点树的根节点来索引一些

2015-07-09 23:44:41 2028

HTML5+CSS2_CSS3参考手册

HTML5参考手册,CSS3参考手册,方便web开发时查询,离线CHM格式

2016-02-25

Genymotion连接Eclipse插件库

Genymotion连接Eclipse所需要使用到的插件,包含两个文件:com.genymobile.genymotion.ide.eclipse.plugin_1.0.3.201403261147.jar 与 com.genymobile.genymotion.lib_1.0.3.201403261147.jar

2015-10-17

俄罗斯方块_带双缓冲绘图

带双缓冲绘图,有效解决游戏过程中的图像闪烁问题

2015-05-17

俄罗斯方块

使用Java完成俄罗斯方块小游戏的开发,使用的比较简单的算法实现方块旋转。

2015-05-15

Java宠物管理系统

使用DAO模式完成宠物系统的开发,数据库配置与接口实现类的配置均使用xml文件

2015-05-08

JDBC数据库辅助类

JDBC数据库辅助类,使用properties为配置文件,也可以使用xml作为配置文件

2015-05-05

JDBC操作数据库辅助类

JDBC操作数据库辅助类,资源类,会话类,工厂类

2015-05-04

简易局域网聊天QQ

JAVA实现的简易局域网通信QQ,仅实现了简单的TCP套接字编程,未做严格测试,如果有问题,可以相互交流

2015-05-03

Java和C语言实现各种经典算法_含代码图例

“常见程式演算”主要收集一些常见的程式练习题目,您可以藉这些题目培养一些程式设计逻辑的感觉,对题目的分类只是个大概,方便索引而已,实作的部份是使用 C 及 Java。

2011-11-23

21天学会C++ 英文版

21天学会C++ 英文版 送给C++初学者及C++爱好者 愿你们在学习C++的旅途中 一帆风顺

2010-02-12

一个简单的在线销售系统ASP

在线销售系统 ASP

2008-04-23

凡人网络购物系统 2008 免费版

凡人网络购物系统 2008 免费版

2008-04-23

抓包测试程序

抓包测试程序<br>抓包测试程序

2007-12-30

空空如也

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

TA关注的人

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