自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JAVE_LOVER

爱好编程,专注于Android移动开发

  • 博客(92)
  • 资源 (11)
  • 收藏
  • 关注

原创 Java设计模式菜鸟系列(七)命令模式建模与实现

命令模式(Command):将“请求”(命令/口令)封装成一个对象,以便使用不同的请求、队列或者日志来参数化其对象。命令模式也支持撤销操作。命令模式的目的就是达到命令的发出者和执行者之间解耦,实现请求和执行分开。从上面的示例可以看到:命令模式将“动作的请求者”从“动作的执行者”对象中解耦出来,这就是将方法的调用封装起来的好处。

2014-10-05 17:08:16 3758

原创 Java设计模式菜鸟系列(六)单例模式建模与实现

单例模式保证了一个类只有一个实例,且提供一个访问全局点的方式,更加灵活的保证了实例的创建和访问约束。系统中只有一个实例,因此构造方法应该为私有 饿汉式:类加载时直接创建静态实例;懒汉式:第一次需要时才创建一个实例,那么getInstance方法要加同步synchronized 饿汉式比懒汉式要好,尽管资源利用率要差,但是不用同步synchronized。

2014-10-05 00:44:42 3691 2

原创 Java设计模式菜鸟系列(五)抽象工厂模式建模与实现

抽象工厂模式(Abstract Factory):抽象工厂--顾名思义,就是把工厂抽象出来,不同的工厂生产不同的产品。这样做有个好处:一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。

2014-10-04 23:25:47 3485

原创 Java设计模式菜鸟系列(四)工厂方法模式建模与实现

转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39760895工厂方法模式(Factory Method)分为三种:一、普通工厂模式。就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。1、uml建模图:

2014-10-04 22:29:17 4673

原创 Java设计模式菜鸟系列(三)装饰者模式建模与实现

装饰者(Decorator)模式:动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更具有弹性的替代方案。对于装饰者模式,它其实是一种包装,所以我更愿意称它为一种包装。像咱们以前经常使用的Java里面的IO流就用到了装饰着模式。比如:BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file1)));这里file1为目标对象,而像BufferedReader、InputStreamRead

2014-10-03 22:23:03 3344

原创 Java设计模式菜鸟系列(二)观察者模式建模与实现

观察者(Observer)模式定义:在对象之间定义了一对多的依赖关系,这样一来,当一个对象改变状态时,依赖它的对象都会收到通知并自动跟新。Java已经提供了对观察者Observer模式的默认实现, Java对观察者模式的支持主要体现在Observable类和Observer接口。先看uml模型图:

2014-10-03 19:03:28 3311 4

原创 Java设计模式菜鸟系列(一)策略模式建模与实现

今天开始咱们来谈谈Java设计模式。这里会结合uml图形来讲解,有对uml建模不熟的可以参考我的另一篇博文uml建模。首先,个人觉得模式的设计就是一个将变化的东西和不变(稳定)的东西分离的过程。咱们的应用中可能有很多需要改变的地方,而模式要做的就是把它们“抽取”出来并进行“封装”和“实现”,因此更多的时候咱们是面向接口编程。下面将结合《Head First 设计模式》这一书中的某些具体案例以及本人的理解进行讲解。如果大家透过看图能说出是哪种模式并能进行具体的代码实现及加以应用,反之也能做到,那么我想关于J

2014-10-01 23:47:44 5281 3

原创 Android学习系列(二)布局管理器之线性布局的3种实现方式

转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39643669 LinearLayout是Android控件中的线性布局控件,它包含的子控件将以横向(HORIZONTAL)或竖向(VERTICAL)的方式排列,按照相对位置来排列所有的子控件及引用的布局容器。超过边界时,某些控件将缺失或消失。因此一个垂直列表的每一行只会有一个控件或者是引用的布局容器。

2014-09-28 22:44:02 8355

原创 对软件开发中uml建模的理解和图形整理(三)

今天接着上一节的内容,继续来了解uml剩下的几种的静态建模和动态建模。三、对象图:主要用来表现对象的特征,展示多个对象的特征及对象之间的交互。就拿咱出行旅游使用交通工具为例,如图:说明:对象图只在系统的某一段时间存在,可以被看作是类图在该时刻的实例,主要用来描述对象之间的行为。四、组件图:也称为构件图,主要用来描述软件中组件之间的关系,同时也是系统设计的一个模块化元素。组件

2014-09-26 20:14:01 3447

原创 对软件开发中uml建模的理解和图形整理(二)

今天接着昨天的内容,继续来了解uml的静态建模和动态建模,希望大家通过这两天的了解能加深对uml建模的理解并在以后的项目开发中加以应用。核心UML图分类:  ---> “独孤九剑”静态建模:[用例图]、[类图]、对象图、组件图、部署图。动态建模:[时序图](sequence diagrams)、状态图、活动图、协作图。核心UML图的定义及使用:一、 用例图:

2014-09-26 02:01:38 8838 7

原创 对软件开发中uml建模的理解和图形整理(一)

由于uml(统一建模语言)在开发中经常会用到,特别是在软件开发中的OOAD阶段,因此要理解和使用uml显得尤为重要。在uml开始之前,咱先回顾一个OOAD、OOP的主要特征。OOAD:根据面向对象的方法学来对软件系统进行分析和设计的过程。它包括OOA 分析阶段和OOD设计阶段。其中分析阶段主要解决“What to do?”的问题,而设计阶段主要解决“How to do?”的问题。具体来说就是:

2014-09-24 22:02:19 5711 5

原创 Android学习系列(一)初识安卓

Android的优势:源代码完全开放,便于开发人员更清楚的把握实现细节,有利于开发出更具差异性的应用;Android 它是基于Linux内核(内核提供系统核心服务,如进程、内存、电源管理,网络连接,驱动与安全等);它采用了对有限内存、电池和CPU 优化过的虚拟机Dalvik,而且它具有强大的Linux 社区的支持。Android是Google于2007年宣布的基于Linux平台的开源手机操

2014-03-16 20:13:03 1802

原创 Git学习系列(八)标签的管理及配置别名详解

标签管理通常咱们发布(release)一个版本时需要打标签,这样可以方便咱们以后要取某个标签版本时,直接把那个相应标本的历史版本取出来即可,它其实是一个版本快照。标签和分支有点像,都是指向某个commit的指针,但分支是可以移动的,但标签是不可以移动的,而且创建和删除标签的过程是非常快的。咱先切换到主分支master,然后再对它打标签:咱们可以通过git tag来查看所有标

2014-03-15 17:46:29 2212

原创 Git学习系列(七)Bug和Feature分支管理详解

当咱们拿到一个新的bug或者feature(功能)时,首先应该想到通过分支来完成咱们的任务。因为在软件开发中,总是会根据客户的需求不断的添加新的feature进来,同时在做移动开发过程中bug也可以说是“常客”。通过前几章的内容,相信咱们很自然会想到创建一个新的branch(分支),在此分支上来修复bug或者实现feature,完成后,然后再merge(合并)到咱们的主分支上。

2014-03-15 16:41:23 4308 1

原创 Git学习系列(六)解决分支冲突及分支管理策略

解决分支冲突        通常当Git无法自动合并分支时,就必须首先解决冲突后,再提交。下面咱们先创建一个分支并切换到b1分支:修改咱们之前的hellogit.txt内容,添加一行:Create a new named f1 branch 查看该文件的状态,并提交至本地仓库:然后切换至master分支:然后在master分支上把hellog

2014-03-10 12:47:53 2654

原创 Git学习系列(五)分支管理详解

分支管理在咱们实际工作中经常用到,因此掌握分支对于咱们从事移动开发并且使用到了Git这样的分布式版本管理工具来说是很有必要的。比如当你饿了的时候,甲帮你做饭,一帮你烧菜:当然你也可以自己做饭烧菜。但是咱们仍然可以看到,我是从一个饿的状态变成了一个饱的状态,也就是我之前空腹,后来我由甲(分支)和乙(分支)两人同时来帮我完成了完成了“做饭”和“烧菜”的功能,而我的状态也从饥饿变成了吃饱的状

2014-03-09 18:39:44 2412

原创 Git学习系列(四)远程仓库及其与本地仓库交互

创建GitHub账号及获取SSH秘钥对创建远程仓库通常有两种方式:1、把一台电脑充当服务器,让它每天开机,其他人都从这台“服务器”仓库clone一份到自己的电脑上,并把各自的修改(包括添加了新的feature、解决了新的bug等)提交到“服务器”仓库中,当然你也可以从“服务器”仓库中拉取别人的提交。实际开发中一般就是这么做的。2、因为咱毕竟还是处于学习当中,为了学Git去整个"服务器"

2014-03-09 16:16:53 5618

原创 《JavaSE基础教程》电子版书正式发布,欢迎大家下载

本电子书涵盖了java基础大部分内容。在编写的过程中,难免会出现一些错误,希望大家能多多提些意见。 由于本书都是从笔者CSDN博客中摘抄过来的,基本没有经过什么正规的校验,所以难免会出现一些不对的地方。欢迎各位大牛对本书提出批评。 作者博客:http://blog.csdn.net/lhy_ycu作者邮箱:lhy_ycu@163.com 附本

2014-03-09 11:59:57 3648 5

原创 Git学习系列(三)版本回退和管理文件的修改及删除操作

版本回退前面我们成功的提交了一次mygit.txt,下面咱对它进行修改,内容如下:Hello GitGit is so easy.然后用git status来跟踪该文件的状态:可以看到hellogit.txt已经被修改过了,到底这次修改的内容与上次的内容有什么不同的,咱们可以使用git diff查看:当然你也可以查看上次提交的信息,使用git log:

2014-03-07 00:08:09 4303

原创 Git学习系列(二)创建本地仓库及文件操作

仓库(repository ),我们也成它为版本库。这个库里面的所有文件(包括对文件的添加、删除、修改等操作)都被Git管理起来,而且我们随时可以跟踪版本以便更好的对库里的每个文件进行更新和还原。咱还是像昨天一样,先进官方网站瞧瞧:点击init,你将看到这样一句话:git  init—创建一个空的Git存储库或初始化现有的一个版本库。不难发现,咱们要初始化一个本地版本库,用

2014-03-06 22:22:36 4161 2

原创 Git学习系列(一)初识Git

Git作为一个版本控制工具,在工作中我们常常会用到它,尤其是在移动开发中,Git可谓是版本管理神器。下面让我们来认识一下Git:Git是一个分布式版本控制软件,它是由Linux的作者Linus用C写的一个分布式版本控制系统。如果大家对Git的历史比较感兴趣,可以点击链接进入官网了解:A Short History of GitGit主要特点有如下:1、速度:Git在本地上保存着所有当前

2014-03-06 00:41:07 4597 6

原创 Java学习系列(十九)Java面向对象之数据库编程

JDBC(Java Data Base Connectivity:java数据库连接):它定义了一组标准的操作数据库的接口,既然是接口,那它就是一种规范,是Java操作数据库的技术规范。Java数据库编程有两步常用操作:1.加载(或注册)JDBC驱动程序Class.forName(“com.mysql.jdbc.Driver”); 推荐这种方式,不会对具体的驱动类产生依赖。Driv

2013-11-26 15:46:35 3036 3

原创 Java学习系列(十八)Java面向对象之基于UDP协议的网络通信

UDP协议:无需建立虚拟链路,协议是不可靠的。A节点以DatagramSocket发送数据包,数据报携带数据,数据报上还有目的目地地址,大部分情况下,数据报可以抵达;但有些情况下,数据报可能会丢失 --丢失了也不管。先了解2个类:DatagramSocket:相当于“码头”,此类表示用来发送和接收数据报的套接字。 DatagramPacket:代表数据报。举例说明1:

2013-11-26 10:08:34 2210

原创 Java学习系列(十七)Java面向对象之开发聊天工具

TCP通信:Socket --相当于“虚拟链路两端的插座”。Socket负责完成通信。ServerSocket --它只负责“接收”连接。它用于产生Socket。服务器端编程:1) 创建ServerSocket 对象,该对象负责“接收”连接。2) 如果客户端有连接,ServerSocket 对象调用accept()方法返回一个Socket。3)  通过IO流读取对方的信

2013-11-25 21:00:52 2581 2

原创 Java学习系列(十六)Java面向对象之基于TCP协议的网络通信

TCP/IP的网络分层模型:应用层(HTTP/FTP/SMTP/POPS...),传输层(TCP协议),网络层(IP协议,负责为网络上节点分配唯一标识),物理层+数据链路层)。IP地址用于标识网络中的一个通信实体,通常这个实体可以是一台主机,也可以是一台打印机,或者是路由器的某一个端口。而基于IP协议网络中传输的数据包,都必须使用IP地址来进行标识。IP地址与端口:IP地址就是为网络上的每

2013-11-25 18:02:28 2537 1

原创 Java学习系列(十五)Java面向对象之细谈线程、线程通信(下)

竞争资源(共享资源):如果有多条线程需要并发访问、并修改某个对象,该对象就是“竞争资源”。为了避免多个线程"自由竞争”修改共享资源所导致的不安全问题。线程同步(像Vector、Hashtable等都是线程安全的):解决线程异步有两种方式:1)同步代码块(需要显式的指定同步监视锁);2).同步方法(相当于使用方法的调用者,如果方法是实例方法,相当于this为同步监视锁;如果方法是类方

2013-11-24 20:12:14 2143 5

原创 Java学习系列(十四)Java面向对象之细谈线程、线程通信(上)

线程与进程的关系:进程 --运行中的程序。进程有如下特征:1).独立性。拥有自己的资源,拥有自己独立的内存区。   通常来说,一个进程的内存空间,是不允许其他进程访问的。   但像Windows,如A进程可以通过某种方式修改其他进程的内存值。2).动态性。程序是静止的,运行起来才叫进程。3).并发性。一个操作系统可以同时“并发(concurrent)”运行多个进程。 线

2013-11-24 14:33:56 2179

原创 Java学习系列(十三)Java面向对象之界面编程

Java的界面编程Java在客户端上表现并不突出,客户端往往都是局限在windows平台。AWT(JDK1.0发布,Sun希望在所有平台上都能运行),它并未为界面提供实现,直接调用的是操作系统上相应的界面组件,AWT只能使用各操作系统上界面组件的交集。Swing为绝大部分的界面组件提供了实现,这些组件都是直接回执在空白区域上,Swing自己实现了这些界面组件,因此Swing无需使用各操作系

2013-11-11 22:27:51 2550

原创 Java学习系列(十二)Java面向对象之序列化机制及版本

序列化:内存中的Java对象二进制流目的:a)有时候需要把对象存储到外部存储器中持久化保存,b)还有时候,需要把对象通过网络传输。可序列化的对象,Java要求可序列化的类实现下面两个接口之一。——Serializable:接口只是一个标记性的接口,实现该接口无需实现任何方法;——Externalizable实现该接口需要实现方法。序列化的IO流:ObjectIn

2013-11-11 20:33:16 1807

原创 Java学习系列(十一)Java面向对象之I/O流(下)

今天接着昨天的IO流讲,内容可能会比较多。DataInputStream与DataOutputStream它们是建立在已有的IO的基础上的两个特殊的过滤流。规律:它们只是增加了一些特定的方法读取特定的数据。举例说明1:public class Test { public static void main(String[] args) { DataOutputStream

2013-11-08 22:29:29 1839

原创 Java学习系列(十)Java面向对象之I/O流(上)

IO流我们知道应用程序运行时数据是保存在内存中的,但由于内存中的数据不可持久保存(如断电或程序退出时数据会丢失),因此需要一种手段将数据写入硬盘或读入内存。面向IO流编程就是一种很好的选择。IO:Input/Output 完成输入输出,所谓输入:是指将外部存储器把数据读入内存,而输出:是指将内存中的数据写入外部存储器(如硬盘、磁盘、U盘)中。File:代表磁盘上的文件或目录。它的特征是只能

2013-11-07 22:44:11 2333 2

原创 Java学习系列(九)Java面向对象之异常机制详解

异常处理机制用来保障我们的程序更加健壮,无论用户怎么操作,都能保证我们的程序都能正常应对的一种处理机制。一般格式如下:try{ // 尝试让它执行业务处理,如果可以执行完成,就代表一切正常。   // 业务处理 }catch(异常1 e1){   // 进行异常1处理 }catch(异常2 e2){   // 进行异常2处理 }举例说明1:publi

2013-11-06 14:52:07 2014

原创 Java学习系列(八)Java面向对象之集合框架详解(下)

今天接着上次的来讲,主要谈谈Map。下面先看一张图:Map里面存的东西是:每个数据项都是key-value对组成。假如我们把value当成是key的“附属物”,Map存储key-value对时,只要考虑key的存储即可,key存储之后,value跟着key即可。再进一步:如果只管Map里面的key,并把所有的key收集起来 -----  就变成了Set。所以Map与Set是一一对应的。

2013-11-05 16:27:49 1894

原创 Java学习系列(七)Java面向对象之集合框架详解(上)

Java集合  有时也将集合称为容器类,它的作用就是用来“装对象”的。这里要注意的是集合也可以是对象。下面先看一张图:HashSet:底层用一个数组存元素 --而且这个数组的长度永远是2的N次方。HashSet底层就是HashMap实现的。HashSet的构造器:HashSet(int initialCapacity, float loadFactor) --initi

2013-09-29 18:57:53 2793 1

原创 Java学习系列(六)Java面向对象之Jar命令、正则表达式、国际化详解

首先向大家道个歉,前面3天由于在忙着写项目说明文档,所以耽误了一下。今天借着中午这段时间把前面的补回来。话不多说,下面步入正题吧!Jar命令:jar可以把多个文件打包成一个压缩包,得到的压缩包通常有3种:1)*.jar -它里面包含N个class文件。2)*.war(Web) -它是一个Web应用打包生成的包。3)*.ear(Enterprise) -它是一个企业应用打包生成的包。这里我们学习

2013-09-28 14:19:53 2800

原创 Java学习系列(五)Java面向对象之抽象类、接口、内部类、枚举类详解

抽象类、接口常常与设计模式紧密相连。掌握抽象类、接口等其实很简单。下面以说明+实例的方式来讲,这样更容易理解。抽象类先看一个关键字“abstract”,我们知道它是抽象的意思。所谓抽象,说的直白一点就是同一件事情,有不同的实现。比如呼吸这个动作,人需要肺呼吸,而鱼需要鳃呼吸。代码实现如下:abstract class CommonMode{ abstract void breat

2013-09-24 16:00:51 2913

原创 Java学习系列及数据结构博客全目录

Java学习系列(每日更新)Java学习系列(一)Java的运行机制、JDK的安装配置及常用命令详解Java学习系列(二)Java注释、标识符、基本数据类型及其转换易错点详解Java学习系列(三)Java运算符、控制语句、方法栈、数组及其在内存中的运行分析详解Java学习系列(四)Java面向对象之修饰符、封装、继承、多态、接口、抽象类、

2013-09-23 16:13:00 3066 2

原创 Java学习系列(四)Java面向对象之修饰符、封装、继承、多态详解

今天内容比较多,直接步入正题吧。类和对象的定义类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。而对象是具有类类型的变量,存在于堆内存中。类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。定义一个类语法格式[修饰符] class 类名{    //可以有属性、方法、构造方法、初始化块、枚举类

2013-09-23 15:40:12 3194

原创 Java学习系列(三)Java运算符、控制语句、数组及其在内存中的运行分析

梭罗说:“从圆到圆心有多少条半径,人们的生活方式也应该有这么多。”   同样学习也是如此,学习的渠道有很多种,但能找适合比较适合自己的却不是一件简单的事。比如说有的人喜欢看书,从书中学到一些自己感兴趣的东西。当然有时也迫于无赖,必须得学一些比较枯燥的理论,这就造成了有些人喜欢读书,有些人对读书比较厌倦,大学里的这种现象比较常见。记得中国达人秀的舞台有一个叫卓君的街舞达人,他是通过上网看视频自学的街

2013-09-22 22:16:09 2782

原创 Java学习系列(二)Java注释、标识符、基本数据类型及其转换易错点详解

今天看到一则小笑话,分享给大家。一对情侣甜蜜的在公园中依偎着,男的看到女的的头发如此柔顺,便忍不住偷摸了一下,女的娇滴滴的说:“唉呀!讨厌啦!”男的听了心更痒,于是又偷摸了一下,女的又说:“嗯,不要啦!”男的一听,心都要飞起来了,又再摸了一下,突然那女的站起来,粗暴的说道:“不要摸了!我的假发都快掉了!!!Java注释前面我们讲了下Java的运行机制及JDK的安装配置等相关操作,今天我

2013-09-21 22:02:06 3291 4

Git学习系列基础教程

Git学习系列基础教程,博客地址:http://blog.csdn.net/lhy_ycu/article/details/20574453

2015-05-19

Java设计模式菜鸟系列教程

博客原地址:http://blog.csdn.net/lhy_ycu/article/details/40031567

2015-05-19

sqlite3可执行工具、驱动、分析器、客户端工具

sqlite3可执行工具、驱动、分析器、客户端工具

2015-05-18

Java基础教程完整版

截止目前,该系列教程已更新完毕。内容覆盖了:JavaSE基本知识点、UML建模、单元测试等。希望对想学习Java语言的朋友能够提供帮助。

2015-05-08

安卓framework源码

安卓framework源码,Android framework层源码~

2014-10-15

观察者模式相关

观察者 Observer 模式定义:在对象之间定义了一对多的依赖关系 这样一来 当一个对象改变状态时 依赖它的对象都会收到通知并自动跟新 Java已经提供了对观察者Observer模式的默认实现 Java对观察者模式的支持主要体现在Observable类和Observer接口 ">观察者 Observer 模式定义:在对象之间定义了一对多的依赖关系 这样一来 当一个对象改变状态时 依赖它的对象都会收到通知并自动跟新 Java已经提供了对观察者Observer模式的默认实现 Java对观察者模式的支持主要体现在Obs [更多]

2014-10-03

策略模式相关

策略模式让用户可以选择执行一个动作的方法,也就是说,用户可以选择不同的策略来进行操作。个人觉得策略模式可以用这个公式:不同的XXX 拥有不同的XXX供用户选择。比如说:不同的象棋棋子拥有不同的走法供用户选择。

2014-10-01

LinearLayout的3种实现方式

LinearLayout的3种实现方式:xml配置布局、代码动态实现,自定义实现。

2014-09-28

JavaSE基础教程

本电子书涵盖了java基础大部分内容。在编写的过程中,难免会出现一些错误,希望大家能多多提些意见。由于本书都是从笔者CSDN博客中摘抄过来的,基本没有经过什么正规的校验,所以难免会出现一些不对的地方。欢迎各位大牛对本书提出批评。

2014-03-09

计算机网络实验大全

非常齐全的计算机网络实验,值得你拥有~亲,还在等什么呢

2013-12-01

链式二叉树三种遍历

【先序遍历】:先访问根节点,然后先序遍历左子树,再先序遍历右子树! 【中序遍历】:中序遍历左子树,然后访问根节点,再中序遍历右子树! 【后序遍历】:后序遍历左子树,然后后序遍历右子树,再访问根节点!

2013-08-08

空空如也

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

TA关注的人

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