- 博客(33)
- 资源 (1)
- 收藏
- 关注
原创 利用自定义标签实现分块技术
1. 何为分块? 一个网页通常由几个块组成,现在已经不推荐使用fragment这样的标签。这时利用jsp的自定义标签技术,定义一个自己的标签去执行不同的块,可以有效的实现不同块的逻辑分离,及高效的代码复用。2.分块的实现步骤。 1. 写一个block的抽象类 BlockAbstract,包含一个path字段,一个展示分块页面的方法,及一个由子块执行的回调函数。
2015-08-24 17:57:02 2981
转载 Actvity的启动模式相关(转)
这是面试过我的一位大神写的,讲的非常到位。前言: Activity的启动模式是一个既基础又容易忽视的问题,但是这个问题有个深刻的认识,对程序员写一个稳定高效的Android程序帮助很大,今天,在B哥引导下,我们对Activity启动模式、Intent Flags做了一番很好的探究,可以这么说,如果你不熟悉或了解Activity的启动模式或者Flag
2015-08-03 18:15:19 2281
原创 java设计模式(9) - 适配器模式
概述:适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。1. 类的适配器模式 定义一个适配类,去实现这个接口,并继承这个需要适配的类。重写方法实现适配。2.对象的适配器模式 和类的适配类似,只不过使用装饰模式的方式去
2015-08-06 21:16:17 2255
原创 java设计模式(8) - 享元模式
享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用。 原理: 共享池创建和管理享元单元,当一个客户端请求时,工厂需要检查当前对象池中是否有符合条件的对象,如果有,就返回已经存在的对象,如果没有,则创建一个新对象。下边根据享元模式的思想,写一个jdbc的连接池。/** * 享元模式实
2015-08-06 21:15:13 2303
原创 java设计模式(7) - 代理模式
代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。所谓代理,就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。组成:抽象角色:通过接口或抽象类声明真实角色实现的业务方法。代理角色:实现抽象角色,是真实角色的代理
2015-08-06 20:58:40 2082
原创 java设计模式(6) - 装饰设计模式
概述:在不改动类的原代码的情况下,对类的功能进行加强。使用场景:当一个类的功能不够用时,可以写个子类去继承这个类, 然后能过构造方法把父类传进来。重写父类方法。如下边的CharacterEncodingFilter 。例1./** * 鸭子类 * @author jiangwei * */public class YaZi { public
2015-08-06 20:56:49 1969
原创 java设计模式(5) - 策略者模式
概念:定义一系列算法,把它们一个个封装起来,并且使它们可互相替换。该模式使得算法可独立于使用它的客 户而变化。场景:Joe上班的公司做了一套相当成功的模拟鸭子游戏,游戏中会出现各种鸭子,一边游泳戏水,一边呱呱叫,系统的内部设计使用了标准的OO技术,设计了一个鸭子超类,并让各种鸭子继承此超类。后来需求改变又需要加飞的功能。传统上当鸭子接到不现指令后,根据指令做出不再的动作。 用s
2015-08-06 20:55:13 2256
原创 java设计模式(4) - 模板方法
定义: 定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。 模板去定义动作,子类或使用的类去执行特定的操作。模板方法的两种实现方式: 1. 在父类中定义方法,子类根据自己的需要去实现具体的方法。(参照:httpServlet) 2. 定义一个模板类,去执行各种动作,暴露回调函数让调用
2015-08-06 20:52:39 2235
原创 java设计模式(3) - 观察者模式(Observer)
观察者模式所涉及的角色有: ● 抽象主题(Subject)角色:抽象主题角色把所有对观察者对象的引用保存在一个聚集(比如ArrayList对象)里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象,抽象主题角色又叫做抽象被观察者(Observable)角色。 ● 具体主题(ConcreteSubject)角色:将有关状态存入具体观察者对象;在具体主题
2015-08-06 20:51:11 2171
原创 java设计模式(2) - 工厂模式
1. 传统的工厂模式有 :工厂方法, 抽象工厂(一个抽象工厂,多个工厂实现)工厂方法模式分为三种:普通工厂模式, 多个工厂方法模式, 静态工厂方法模式普通工厂:就是在一个通过一个类的方法中去创建不同类的实例工厂方法:就是,在一个类一个方法去创建一种类的实例,不同类的实例用多种方法去创建。静态工厂就是方法做成静态的这里主要结合泛型方法,结合登记式单例可实现实现
2015-08-06 20:48:09 2267
原创 java设计模式(1) - 单例模式
最长用设计模式-单例模式,常用的有三种实现方式: 饿汉式,懒汉式, 登记式1. 饿汉式:在变量声明时实例化对象。(线程安全)2.懒汉式: 在变量用的时候实例化对象,线程不安全,需要加锁。3.登记式:在对象内部维护一个map集合,对象实例时初始化map,并把对象实例放到map中,第次从map中取对象。===================
2015-08-06 20:47:08 2474
转载 1.设计模式概述
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式
2015-08-06 20:45:38 1871
原创 由浅入深学习自定义控件(4)-滑动开关slidemenu
自定义控件:用户根据自己需求,自己定制的控件。方式: 继承已有控件、继承view、 继承viewGroup1.继承view,定制单一控件2.继承ViewGroup,定制控件组例: 自定义滑动开关 1. 继续View , 在构造方法中初始化图片资源,图片资源放在drawable目录下 2. 实现onMeasure方法,用来测量控件的宽和高 3. 实现on
2015-08-06 20:36:32 1938
原创 Android复习笔记(14)-自定义控件(1)-滑动开关
自定义控件:用户根据自己需求,自己定制的控件。方式: 继承已有控件、继承view、 继承viewGroup1.继承view,定制单一控件2.继承ViewGroup,定制控件组例: 自定义滑动开关 1. 继续View , 在构造方法中初始化图片资源 2. 实现onMeasure方法,用来测量控件的宽和高 3. 实现onDrawy方法, 把控件画出业。
2015-08-06 20:36:02 1961
原创 Android复习笔记(13)-Fragment的使用(1)
fragment: 碎片,可以把屏幕划分成多个部分,单独显示一个界面。fragment的使用(动态引用) 1.定义activity_main布局文件,添加一个fragment的container 2.定义fragment的布局文件,和变量activity文件一样。 3.初始化Fragment组件,使用onCreateView初始化视图。 4.Ma
2015-08-06 18:25:18 2136
原创 Android复习笔记(12)- listView的使用
ListView: 视图列表1.使用ArrayAdapter, 只能为设置单个的textview//1.查找listview lv = (ListView) findViewById(R.id.lv); tv = (TextView) findViewById(R.id.tv); //设置ArrayAdapter String[] arr = new
2015-08-05 23:43:42 2058
原创 Android复习笔记(12) -handler的使用
handler主要实现现在之间的通信。在子线程中执行耗时操作,通过handler传递数据给主线程进行UI的更新。用法: 1.在主线程中创建Handler子类对象, 重写handleMessage()方法 2. 在子线程中调用handler.sendMessage(msg)向主线程发消息 3. 在handler的handleMessage接收到消息,进行ui
2015-08-05 00:22:37 2130
原创 Android复习笔记(11) -网络编程相关
使用HttpUrlConnection1.通过URL对象封装地址,打开一个HttpURLConnection2.设置头信息之后获取响应码,如果成功返回200即可从HttpURLConnection中获取输入流读取数据必须设置权限uses-permission android:name="android.permission.INTERNET" />例1:
2015-08-05 00:21:36 2078
原创 Android复习笔记(10) -对话框的使用
使用Alertdialog,话不多说,直接上代码String[] items = new String[] {"xx", "yyy", "zzz"}; int selected = 0; boolean[] selections = new boolean[] { false, false, false }; //普通对话框 public void dialog1
2015-08-04 20:12:59 1907
原创 andoid中的通知
1.Toast通知 创建通知Toast.makeText(Context context, CharSequence text, int duration)Toast.makeText(Context context, int resId, int duration)发送通知show()2. 状态栏通知直接代码说明,这里先介绍一下Notific
2015-08-04 19:43:57 2177
原创 Android复习笔记(9) - 调用远程服务
远程服务操作步骤远程绑定服务时无法通过同一个接口来调用方法,这时就需要使用AIDL技术将接口扩展名改为“.aidl”去掉权限修饰符gen文件夹下会生成同名接口将服务中自定义的IBinder类改为继承接口中的Stub用Stub.asInterface()方法把ServiceConnection中返回的IBinder转为接口类型将服务中自定义的IBinder类改为继承接口中的Stu
2015-08-03 18:21:34 2495
原创 Android复习笔记(8) - 服务(Service)
基本概念:Service是一种在后台运行,没有界面的组件,由其他组件调用开始。程序退出后仍然可以在后台运行创建Service,定义类继承Service,AndroidManifest.xml中定义开启Service,在其他组件中调用startService方法停止Service,调用stopService方法 绑定服务 使用bindServic
2015-08-03 18:20:42 2321
原创 Android复习笔记(7) -发送广播
安卓中的广播分为无序广播与有序广播。无序广播使用sendBroadcast方法发送被所有广播接收者接收,无序,不可中断广播时可设置接收者权限,仅当接收者含有权限才能接收接收者的也可设置发送方权限,只接收含有权限应用的广播有序广播使用sendOrderedBroadcast方法发送接收者可以在中定义android:priority定义优先级,数字越大优先级越高被各个广
2015-08-03 18:19:06 1875
原创 Android复习笔记(6) -BrodCastReceiver (广播接收者
1.定义广播接收者定义类继承BroadcastReceiver,重写onReceive方法 getResultData(); 获取Date setResultDate();清单文件中声明,需要在其中配置指定接收广播的动作当接收到匹配广播之后就会执行onReceive方法BroadcastReceiver除了在清单文件中
2015-08-03 18:17:45 2421
原创 android控件的事件传播机制
这个问题可能很多人都搞不清楚,在网上看了很多博文,简单的总结下 事件相关的三个事件方法 dispatcherEvent 负责分发事件的, 函数主要作用是来决定当前的事件是交由自己消费处理,还是交由子控件处理。返回true,表示时间不再向下分发,事件在这次分发中消费掉。返回false表示该组件不参与时间分发,时间交由上层组件的onTouchEvent处理。单位值为
2015-08-03 18:14:19 2211
原创 Android复习笔记(5)-数据库操作 sqllite
sqlite简介:Android平台中嵌入了一个关系型数据库SQLite,和其他数据库不同的是SQLite存储数据时不区分类型除非是主键被定义为Integer,这时只能存储64位整数1.创建数据库定义类继承SQLiteOpenHelper声明构造函数,4个参数重写onCreate()方法重写onUpgrade()方法
2015-08-03 18:11:03 2247
原创 Android复习笔记(4) - 文件读取相关
需要在清单文件中注册权限uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />1.使用普通普通文件存储, 1.存在sd卡, 调用javaio, 与java存储文件方式完全一致。 Environment.getExternalStorageDirecto
2015-08-03 18:09:14 2027
原创 Android复习笔记(3)-android下的junit
1. 创建测试工作,指定测试目录。2. 在同一个工程下测试 a. android:name="android.test.InstrumentationTestRunner" android:targetPackage="wei.jiang.test" /> b. 在application节点下uses-library android
2015-08-03 18:07:19 1938
原创 Android复习笔记(2) - Intent介绍
Intent: 意图,是andriod四大组件通讯的桥梁,即四大组间之间的相互调用及数据传递都是通过intent实现。分类: 显示意图与隐式意图。区别:显示意图:通过直接指定Class(类的字节码式类名)进行组件之间调用,主要用于调用当前程序的Activity,效率更高。 隐式意图:通过setAction(String actionName)与setDate(Ur
2015-08-03 18:04:46 2361
原创 android复习笔记(1) - Activity相关
1.acvitivy的生命周期 onCreate(), activity创建 onStart() activity展示到前台 onResume() activity获取焦点 onRestart() activity从后台回到前台,也就是从任务栈中被push到栈顶 onPause() activity失去焦点
2015-08-03 18:03:17 1634
原创 order 根据不同条件排序
项目中有一个这样需要按不同条件进行分类排序的需求,百度了半天,最后想了一种写法(白色部分正序,灰色部分倒序)这是用到union AllSELECT * FROM (SELECT * FROM (SELECT openflag, opennumber,
2015-08-03 12:27:02 2094
原创 oracle over函数, wm_concat()字符串连接函数使用
OVER ( [ ] [ ] [ ] ) 在应用关联的开窗函数前确定行集的分区和排序。 也就是说,OVER 子句定义查询结果集内的窗口或用户指定的行集。 然后,开窗函数将计算窗口中每一行的值。 您可以将 OVER 子句与函数一起使用,以便计算各种聚合值,例如移动平均值、累积聚合、运行总计或每组结果的
2015-08-03 11:34:46 4142
原创 数据库设计中,多对多关系使用使用逗号分割关联讨论
进公司一个月,发现公司很多人喜欢用逗号分割,去存储其它表的主键,做多对多关联,但存在很多乱用现象。这里对这种方式做了下总结。 在传统数据库设计中,多对多关系存储通常都是用一张中间表来简历两张表的关系。例如用户和角色,一个用户有多个角色,而一个角色下又会有多个用户。这样,理所当然的我们会想着用张中间表去存储两者的关系。这样角色就能很容易的查出自己对应的多个用户。
2015-08-03 11:22:01 4116
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人