自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

重心开始,重新开始

小小的我,大大的世界

原创 Java 设计模式之桥接模式的详解(结构模式)

桥接模式就是把事物和其具体实现分开,使它们可以各自独立的变化。桥接的用意是:将抽象化与实现解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。桥接模式的示意性结构类图

2016-07-31 21:08:13 222

原创 java 设计模式之外观模式的详解(结构模式)

外观模式是为了解决类与类之间的依赖关系的,像Spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放到一个Facade类中,降低了类与类之间的耦合度,该模式中没有涉及到接口,看下类图:(我们以一个计算机的启动过程为例)我们先看下实现类:public class Cpu { public void startup(){ System.out.pr

2016-07-31 20:07:58 226

原创 Java 设计模式之享元模式的详解(结构模式)

享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用享元模式的角色有:抽象享元(Flyweight)角色:是给实现享元提供的接口。具体享元(ConcreteFlyweight)角色:实现抽象角色,此对象必须是共享的,所含的状态必须是内部状态。不共享享元(UnSharedConcreteFlyweight)角色:此对象不可共

2016-07-31 18:26:07 265

原创 Java 变量定义的时候注意事项

一、常量定义的基本注意事项。在Java语言中,主要是利用final关键字(在Java类中灵活使用Static关键字)来定义常量。当常量被设定后,一般情况下就不允许再进行更改。如可以利用如下的形式来定义一个常量:final double PI=3.1315。在定义这个常量时,需要注意如下内容:  一是常量在定义的时候,就需要对常量进行初始化。也就是说,必须要在常量声明时对其进行初

2016-07-31 16:33:38 3358

原创 Java 设计模式之代理模式的详解(结构模式)

其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替源对象进行一些操作,比如我们在租房子的时候会去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望一个更熟悉的人去帮你做,此处的代理就是这个意思。再如我们有的时候打官司,我们需要请律师,因为律师在法律方面有专长,可以替我们进行操作,表达我们的想法。代理(proxy)模式:指目标对象给定代理对象,并由代理对象代替真实

2016-07-31 15:42:44 308

原创 Java 设计模式之装饰模式的详解(结构模式)

装饰(Decorator)模式属于设计模式里的结构模式,通过装饰类动态的给一个对象添加一些额外的职责。装饰模式也叫包装(wrapper)模式。装饰模式有如下的角色:抽象构件(component)角色:这个角色用来规范被装饰的对象,一般用接口方式给出。具体构件(concrete component)角色:被装饰的类。装饰(decorator)角色:持有一个构件对象的实例。并定义一个跟抽象

2016-07-31 14:50:59 272

原创 Java 设计模式之适配器模式的详解(结构模式)

适配器(adapter)模式,把一个类的接口变成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式有三种形式,类的适配器模式,对象的适配器模式和接口的适配器模式。1.类的适配器模式类的适配器模式有以下角色:目标(Target)角色:是期待得到的接口类型。这里谈类的适配器模式所以这个不能是类,原因是java单继承。源(adaptee

2016-07-31 13:39:22 345

原创 Java 设计模式之组合模式的详解(结构模式)

组合模式(Composite)就是把部分和整体的关系用树形的结构来表示,从而使客户端能够把部分对象和组合起来的对象采用同样的方式来看待。树图结构一般包含一个根节点,若干个树枝和叶子节点。如下图:可以用一个类图描述树结构的静态结构,把根节点当做树枝节点来描述,同时和叶子节点具有共同的父类:树结构的类图,其实就是组合模式的简略类图,最上面为抽象节点,左下方为叶子节点,右

2016-07-31 13:17:01 349

原创 Java 设计模式之原型模式的详解(创建模式)

原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字可以看出,该模式的思想就是将一个对象作为原型,对其进行复制,克隆,产生一个和原对象类似的新对象。我们先来看一下原型模式的模型:原型模型涉及到三个角色:客户角色(client):客户端提出创建对象的请求;抽象原型(prototype):这个往往由接口或者抽象类来担任,给出具体原型类的接口;具体原型(Conc

2016-07-31 12:53:14 271

原创 Java IO流详解

File对象可以表示存在的文件或文件夹,也可以表示不存在的。我们想要得到文件的内容怎么办,File只是操作文件,文件的内容如何处理就需要使用io流技术了。例如在C盘下有一个名称为a.txt的文本文件.想要通过Java程序读出来文件中的内容,需要使用IO流技术.同样想要将程序中的数据,保存到硬盘的文件中,也需要IO流技术.读和写文件文件示例:public class IoTest {

2016-07-30 20:25:55 7214

原创 Java File类的详解

File类说明存储在变量,数组和对象中的数据是暂时的,当程序终止时他们就会丢失.为了能够永久的保存程序中创建的数据,需要将他们存储到硬盘或光盘的文件中.这些文件可以移动,传送,亦可以被其他程序使用.由于数据存储在文件中,所以我们需要学习一个和文件有密切关系的类,叫做File类,将要掌握获取文件的属性以及删除和重命名文件.最终如何向文件中写入数据和从文件中读取数据.那么File类关心的是

2016-07-30 20:00:26 2137

原创 Java 设计模式之建造者模式的详解(创建模式)

建造模式(Builder)是对象的创建模式,建造模式可以将一个产品的内部表象与产品的生产过程分割开来,从而可以是建造过程生成具有不同内部表象的产品对象。一个产品常有不同的组成成分作为产品的零件,这些零件有可能是对象,也有可能不是对象,通常我们称作内部表象,不同的产品可以有不同的内部表象,也就是不同的零件。使用建造模式可以使客户端不需要知道所生成的产品有那些零件,每个产品对应的零件彼此有何不同,是怎

2016-07-30 18:16:56 279

原创 Java 设计模式之单例模式的详解(创建模式)

单例模式(Singleton)是指确保一个类有且仅有一个实例,而且自行实例化并向整个系统提供这个实例。这个类我们也称它为单例类。单例模式的使用在现实世界里很多,比如我们常见的打印机打印的作业队列,一个没打印完,那么只有在队列等待;windows回收站,windows视窗里回收站有且只有一个实例。单例模式的目的就是有且只提供一个实例,所以它有一下几个特点:1、单例类只能有一个实例;2

2016-07-30 17:38:29 351

原创 Java 设计模式之抽象工厂模式的详解(创建模式)

抽象工厂模式(Abstract Factory)是工厂方法里面最为抽象和最具一般性的形态,是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式概念:可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。抽象工厂模式和工厂方法模式的最大区别在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则需要面对多个产品族,从而使得产品具有二维性质。

2016-07-30 16:30:31 305

原创 Java 设计模式之工厂方法模式的详解(创建模式)

工厂方法模式(Factory Method)又称虚拟构造子模式,可以说是简单工厂的抽象,也可以理解为简单工厂是退化了的工厂方法模式,其表现在简单工厂丧失了工厂方法的多态性。我们前一节中提到当产品结构变的复杂的时候,简单工厂就变的难以应付,如果增加一种产品,核心工厂类必须改动,使得整个工厂的可扩展性变得很差,对开闭原则支持不够。工厂方法模式克服了这些缺点,它定义一个创建产品对象的工厂接口,将实际创建

2016-07-30 15:48:32 198

原创 Java 设计模式之简单工厂模式的详解(创建模式)

简单工厂模式就是由一个工厂类根据传入的参量决定创建出哪一种产品类型的实例。工厂模式的一般性结构如下图:下面我们拿实例来介绍简单工厂模式。建立了一个工厂类,对实现了同一接口的一些类进行实例的创建~首先看下关系图:举例如下:我们举一个发送短信和邮件的例子首先,创建二者的共同接口-Sender:public interface Sender { pub

2016-07-30 15:18:54 312

原创 Java 堆内存和桟内存的详解

Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。

2016-07-29 22:52:34 548

原创 Java 设计模式的浅谈

软件设计的核心是提高软件的可复用性和可维护性。通常一个软件之所以可复用性和可扩展性差的原因在于设计过于僵硬,过于脆弱,复用率低,粘度过高等原因导致的,这时候需要想办法提高可扩展性,灵活性和可插入性,从而提高软件的可复用性和可维护性。一般可维护性和可复用性不能同时能达到目的,只有遵循一定的设计原则,设计出来的系统才能同时满足可复用性和可维护性。面向对象设计原则主要有如下几条:1、“开闭”原则(O

2016-07-29 22:41:27 374

原创 Java 正则表达式的详解

正则表达式:其实一种规则,有自己特殊的应用,其作用就是针对于字符串进行操作。正则:就是用于操作字符串的规则,其中这些规则使用了一些字符表示。1.正则表达式的符号:预定义字符类 3.2正则表达式的符号预定义字符类 . 任何字符(与行结束符可能匹配也可能不匹配) \d 数字:[0-9] \D 非数字: [^0-9] \s 空白字符:[ \t\n\x0B\f\r]

2016-07-28 22:15:19 854

原创 Java 泛型的详解

泛型当集合中存储的对象类型不同时,那么会导致程序在运行的时候的转型异常public class Demo5 { public static void main(String[] args) { ArrayList arr = new ArrayList(); arr.add(new Tiger("华南虎")); arr.add(new Tiger("东北虎")); arr

2016-07-28 21:43:59 650

原创 Hibernate 对象的几种状态

1)瞬时态Transient  由new操作符创建,且尚未与Hibernate Session关联的对象。处于瞬时态的java对象成为临时对象。特点:不处于Session的缓存中,即不被任何一个Session实例关联。  在数据库中没有对应的记录。  2)持久态Persistent  已经被持久化,加入到Session的缓存中,处于持久化状态的java对象被称为持久化对象。

2016-07-27 22:42:37 384

原创 Java Collections与Arrays的浅解

Collections与Arrays都是集合框架中的工具类特点:该工具类中的方法都是静态的。Collections:Collections:常见方法:1,对list进行二分查找:前提该集合一定要有序。int binarySearch(list,key);//必须根据元素自然顺序对列表进行升级排序//要求list 集合中的元素都是Comparable 的子类。int bi

2016-07-27 22:35:07 1185

原创 Hibernate 缓存管理的介绍

缓存管理  Hibernate 中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载。 Hibernate还为查询结果提供了一个查询缓存,它依赖于

2016-07-27 22:15:34 495

原创 Java Map集合的详解

一,Map先说一下Map吧~如果程序中存储了几百万个学生,而且经常需要使用学号来搜索某个学生,那么这个需求有效的数据结构就是Map。Map是一种依照键(key)存储元素的容器,键(key)很像下标,在List中下标是整数。在Map中键(key)可以使任意类型的对象。Map中不能有重复的键(Key),每个键(key)都有一个对应的值(value)。一个键(key)和它对应的值构成ma

2016-07-27 21:43:33 47433 5

原创 Java Set集合的详解

一,SetSet:注重独一无二的性质,该体系集合可以知道某物是否已近存在于集合中,不会存储重复的元素用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复。对象的相等性   引用到堆上同一个对象的两个引用是相等的。如果对两个引用调用hashCode方法,会得到相同的结果,如果对象所属的类没有覆盖Object的hashCode方法的话,hashCode会返回每个对象特有的序号(j

2016-07-26 22:39:17 151021 18

原创 Java 迭代器Iterator的详解

为了方便的处理集合中的元素,Java中出现了一个对象,该对象提供了一些方法专门处理集合中的元素.例如删除和获取集合中的元素.该对象就叫做迭代器(Iterator).对 Collection 进行迭代的类,称其为迭代器。还是面向对象的思想,专业对象做专业的事情,迭代器就是专门取出集合元素的对象。但是该对象比较特殊,不能直接创建对象(通过new),该对象是以内部类的形式存在于每个集合类的内部。

2016-07-26 21:13:30 30879 8

原创 Android之PULL解析XMl文件-新浪微博效果

在这篇:Android之Pull解析XML文件我就简介了一下,这里就不多说~我实现了一个从服务器上解析XML文件的效果~步骤如下:1.把要解析的xml文件和要显示的图放在图片所示的位置上2.编写布局文件activity_main:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/a

2016-07-25 22:46:44 264

原创 Android之手势交互的详解

手势:是指用户手指或者触摸笔在触摸屏上连续触碰的一种行为使用手势检测需要俩个步骤:1.创建一个GestureDetector对象,识别各种手势2.为应用程序的activity的TouchEvent事件绑定事件监听器,在事件处理中指定把activity上的touchEvent的事件交给GestureDetector处理代码如下: //1.创建一个GestureDetector

2016-07-24 21:31:43 628

原创 Android之控制手机屏幕熄灭(距离传感器)

在现实生活中,打电话的时候手机挨着自己的头,屏幕会熄灭,是吧这是为了不让自己的头按到什么手机键~这个功能可以使用距离传感器来实现代码如下:public class MainActivity extends Activity implements SensorEventListener{ public static final String TAG = "SensorTest";

2016-07-24 21:13:16 7963 4

原创 Android之调节手机屏幕亮度

现实生活中,在每个APP中,总会有调节屏幕亮度的需求~这里是使用SeekBar来调节手机屏幕亮度的,学过手势之后,就可以手势控制亮度了~后面有机会在说~核心代码如下:public class MainActivity extends Activity { private SeekBar seekBar; @Override protected void onCreate(Bun

2016-07-24 21:00:01 921

原创 Android 之摇一摇录音(加速度传感器)

现在就要实现摇一摇能录音的一个效果~这是使用加速度传感器实现的还附加了震动的效果录音完成之后,还能播放录音~不过要使用真机测试~代码如下:布局:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.c

2016-07-24 20:43:37 601

原创 Android之获取当前位置的经纬度

上一篇说了一下获取网络位置的经纬度直接获取的是聚合数据上面的数据~这一篇和上一篇差不多~直接贴代码:public class MainActivity extends Activity { private TextView tv; private LocationManager mLocationManager; @Override protected void on

2016-07-24 19:00:03 444

原创 Android之获取网络位置的经纬度

上一篇已经说了一下基于位置的服务~这一篇想说一下基于网络的位置提供者获取到经纬度直接贴代码吧,我是获取了聚合数据的位置,然后在获取到经纬度的,其实也可以获取到自己位置的经纬度,那就是基于GPS的位置提供者了~public class MainActivity extends Activity { private TextView address,business,tv; pr

2016-07-24 18:41:57 665

原创 Android之基于位置的服务

由于移动设备相比于电脑可以随身携带,我们通过地理定位的技术就可以随时得知自己所在的位置,从而围绕这一点开发出很多有意思的应用。       基于位置的服务简称LBS,这个技术随着移动互联网的兴起,在最近的几年里十分火爆。 其实它本身并不是什么时髦的技术,主要的工作原理就是利用无线电通讯网络或GPS 等定位方式来确定出移动设备所在的位置,而这种定位技术早在很多年前就已经出现了。

2016-07-24 18:25:20 684

原创 Android之传感器的分析

下面简单介绍一下传感器里面的几种重要的传感器~一,动作传感器1.概述:Android平台支持一些用于监视设备动作的传感器(这样的传感器共有5个)。其中两个(加速传感器和陀螺仪传感器)是纯的硬件传感器。另外三个(重力传感器、线性加速传感器和旋转向量传感器)可能是硬件传感器,也可能是软件传感器。例如,在一些Android设备中,这些基于软件的传感器会从加速和磁力传感器中获取数据,但在另一些

2016-07-24 16:44:58 688

原创 Android之如何获取手机中所有的传感器

传感器是第二代智能手机的重要标志之一。可以毫不客气地说,现在市面上的Android手机和平板电脑(TV除外)都内置了传感器。否则很多游戏和应用就无法使用了。Android SDK支持的传感器并不是每一部Android设备都支持所有的传感器。大多数Android设备只支持一部分传感器。例如,方向传感器(电子罗盘)、重力传感器(屏幕翻转、赛车游戏等)。动作(Motion)传感器环境(E

2016-07-24 16:25:33 5016

原创 Android之多线程下载及断点续传

今天我们来接触一下多线程下载,当然也包括断点续传,我们可以看到 很多下载器,当开通会员的时候下载东西的速度就变得快了许多,这是为什么呢?这就是跟今天讲的多线程有关系了,其实就是多开了几个线程一起下载罢了。当然真正的多线程下载要比这个复杂,要考虑很多问题。这里下载的是本地服务器上的文件,也可以下载网络上的一些文件。先来看看多线程下载的原理吧:通常服务器同时与多个用

2016-07-24 13:54:14 1472

原创 Hibernate中get和load方法的区别详解

1. 对于Hibernate的get方法,Hibernate会确认一下该id对应的数据是否存在,首先在session缓存中查找,然后在二级缓存中查找,还没有就查询数据库,数据库中没有就返回null。这个相对比较简单,也没有太大的争议。2. Hibernate的load方法加载实体对象的时候,根据映射文件上类级别的lazy属性的配置(默认为true),分情况讨论:(1)若为true,则首先在

2016-07-23 23:44:07 2814

原创 Hibernate中的Session详解

Session缓存session缓存是由一系列的Java集合构成的。当一个对象被加入到Session缓存中,这个对象的引用就加入到了java的集合中,以后即使应用程序中的引用变量不再引用该对象,只要Session缓存不被清空,这个对象一直处于生命周期中。  Session缓存的作用:  1)减少访问数据库的频率。  2)保证缓存中的对象与数据库中的相关记录保持同步。  Se

2016-07-23 23:33:43 6629

原创 Anroid之HttpClient异步请求数据

现在来结合使用一下HttpClient与Asynctask~代码编写如下:服务器代码我就不写出来了,就是一个用户名和密码~1.写一个类HttpClientUtil,来实现HttpClient对象的创建并且返回HttpResponse对象public class HttpClientUtil { private static HttpClient httpClient

2016-07-23 20:13:00 372

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