- 博客(50)
- 收藏
- 关注
原创 数据库事务概念及特性
事务的基本概念 一组要么同时执行成功,要么同时执行失败的SQL语句。是数据库操作的一个执行单元。事务开始于: 连接到数据库上,并执行一条DML语句(INSERT、UPDATE、DELETE)前一个事务结束后,又输入了一条DML语句。事务结束于: -执行Commit或Rollback语句 执行一条DDL语句,例如CREATE TABLE语句;在这种情况下,会自动执行C
2017-07-22 21:45:12
1581
原创 设计模式之备忘录模式的学习思考
每个人都有写便签的习惯,其实这也是保存信息的一种方式,和备忘录差不多,都是提醒自己过去做过的事或者将来要做的事。备忘录模式(Memento Pattern)保存了一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于设计模式里的行为型模式。主要的实现形式其实很简单,为了不破坏封装性,我们再单独创建一个类来封装备份信息,然后再创建一个容器类,用来存放信息,以便今后的获取。代码和注释如下:impo
2017-07-11 09:30:14
364
原创 设计模式之中介者模式的学习思考
中介:中介指在不同事物或同一事物内部对立两极之间起居间联系作用的环节。简单地说,对象与对象之间不是直接联系(通信),而是通过某种渠道、格式或者事务。而中介者模式(Mediator Pattern)就是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。现实中:中国加入 WTO 之前是各个国家相互贸易,
2017-07-10 08:59:38
333
原创 设计模式之迭代器模式的学习思考
迭代器模式最经典的应用应该就是Java中的迭代器了,在Java集合Collection接口就继承了Iterable。种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式属于设计模式里的行为模式。优点:它支持以不同的方式遍历一个聚合对象。迭代器简化了聚合类。在同一个聚合上可以有多个遍历。 缺点:由于迭代器模式将存储数据和遍历数据的职责分离,增加新的聚合类需要对应增加新的
2017-07-09 08:53:03
340
原创 设计模式之解释器模式的学习思考
解释器模式,就跟它的名字一样,起到解释的作用,比如对一个表达式进行解释,使其能够被人们所理解,属于设计模式里的行为型模式一种这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。优点: - 可扩展性比较好,灵活。 - 增加了新的解释表达式的方式。 - 易于实现简单文法。缺点: - 可利用场景比较少。 - 对于复杂的文法比较难维护。 -
2017-07-08 09:57:34
315
原创 File打印目录(打印指定后缀目录)
import java.io.File;/** * 输出子孙级目录|文件的名称(绝对路径) * 1.listFiles(); * 2.递归; * @author Administrator * */public class Demoo { public static void main(String[] args) { String path="E:/Demo1
2017-07-07 17:34:26
440
原创 guava之只读、函数式编程(过滤、转换)
package com.lfj.myguava;import java.util.ArrayList;import java.util.Collections;import java.util.List;import com.google.common.collect.ImmutableList;/** * 只读设置 * @author Administrator * */public
2017-07-07 10:55:35
328
原创 设计模式之命令模式的学习思考
命令模式与责任链模式有点像,但是还是不同。命令模式:将多个命令只提交给一个执行该命令的对象 而职责链模式相反:只将一个请求提交给多个能执行该命令的对象命令模式也属于行为型模式。何时使用,比如要对行为进行”记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将”行为请求者”与”行为实现者”解耦?将一组行为抽象为对象,可以实现二者之间的松耦合。代码: imp
2017-07-07 10:04:28
205
原创 设计模式之责任链的学习思考
责任链模式,顾名思义,每个对象之间形成一条链,这条链形成的基础是各级对象的责任;当一个消息请求发来时,依次传递,哪个对象符合消息处理的条件就处理。 这个模式可以让消息的发送者不清楚消息的处理者具体是谁,职责链将请求的发送者和请求的处理者解耦了。属于设计模式里的行为型模式设计:一个抽象类,属性有各级指数,后继对象,方法有抽象和非抽象:非抽象是判断谁处理,抽象是各级对象具体处理方法;各实现抽象类的
2017-07-06 11:10:12
233
原创 Hashtable与Properties
HashMap和Hashtable的区别如下:Hashtable线程安全,同步,效率相对低下。而HashMap线程不安全,非同步,效率相对较高。Hashtable的父类是Dictionary。HashMap的父类是AbstractMapnull:Hashtable键与值不能为null。HashMap键最多一个null,值可以多个nullProperties的作用是读写资源配置文件,它要求键与
2017-07-05 16:04:25
1018
原创 Enumeration子类的实现调用
活学活用,直接上代码:.import java.util.StringTokenizer;/** * Enumeration子类 * StringTokenizer:String spilt()字符串分隔连用 * 不支持正则表达式 * * StringTokenizer(String str, String delim) * @author Administrator * */p
2017-07-05 10:40:14
280
原创 工具类Collections常用方法
import java.util.ArrayList;import java.util.Collections;import java.util.List;/** * 1.使用二分搜索法搜索指定列表,以获得指定对象 * binarySearch(List<? extends Comparable<? super T>> list, T key) 容器要有序 * * 2.sort(Lis
2017-07-05 10:00:15
250
原创 设计模式之代理模式的学习思考
总觉得设计模式名字起的很好,形象地就代表它的功能。正如代理模式,它是使用一个类代表另一个类的功能,属于结构型设计模式。通过创建对象的对象,来提供访问功能的接口。应用举例:快捷方式、代售点等。设计:一个接口,两个分别实现类,一个是功能类,一个是代理类,代理类里有功能类对象的数据成员代码:interface Image{ void display();}class RealImage im
2017-07-05 08:46:05
241
原创 找出字符串中特定字符出现的次数的实现(分拣思路)
通过HashMap和Set接口实现public class Letter { private String name; private int count; public Letter(){ } public Letter(String name, int count) { super(); this.name = name;
2017-07-04 19:46:06
527
原创 泛型的抽象继承与接口实现注意点
抽象继承:/** * 父类为泛型类 * 1.属性 * 2.方法 * 要么同时擦除,要么子类大于等于父类的类型 * 不能子类擦除,父类泛型 * 继承有两种,子类为泛型或子类不为泛型 * 子类不为泛型则具体定义T,T1 * * 属性类型: * 父类中,随父类而定 * 子类中,随子类而定 * 方法重写: * 随父类而定 * @author Adm
2017-07-04 17:29:49
8989
1
原创 泛型类、泛型接口和泛型方法的使用定义
泛型类:/** * 1.泛型类:声明时使用泛型 * 2.字母: * T Type表示类型 * K V 分别代表键值中的Key Value * E 代表Element * 使用时确定类型 * 注意: * 泛型只能使用引用类型,不能基本类型 * 泛型声明时字母不能使用静态属性|静态方法上 * @auth
2017-07-04 16:26:23
2979
原创 LinkedList的简单实现(手写)
LinkedList的底层是基于链表实现的,所以查询慢,增删改快,但是线程不安全,效率较高。代码:/** * 1.LinkedList的简单实现 * 2.后续有时间会逐步添加方法 * 3.实现的方法有: * void add(Object obj) * void add(int index,Object obj) *
2017-07-04 09:25:42
3468
1
原创 设计模式之享元模式的学习思考
享元模式,顾名思义,对对象的分享。其主要用于减少创建对象的数量,以减少内存占用和性能提高。 该模式属于结构型设计模式。实现途径:通过hashmap通过工厂模式通过多态设计:通过创建 5 个对象来画出 20 个分布于不同位置的圆来演示这种模式。代码:import java.util.HashMap;interface Shape{ void draw();}class Cir
2017-07-04 08:46:00
248
原创 ArrayList的简单实现(手写)
对着源码改的,还有一些方法没有添加,后续有时间再实现直接上代码:/** * 1.ArrayList的简单实现(手写) * 2.包括以下方法: * int size(); * MyArrayList(); * MyArrayList(int initialCapacity); * boo
2017-07-03 18:15:05
3525
原创 设计模式之外观模式的学习思考
外观模式属于设计模式里的结构型模式的一种,核心思想是隐藏系统的复杂性,并向客户端 提供了可以访问的接口。个人认为外观模式是其他设计模式的基础,在许多模式里都有体现。较易掌握。思路:设计一个接口和分别实现接口的类(系统类)设计一个类(实现类),类的数据成员是系统类对象,private控制权限,封装类的的方法分别调用数据成员对象的方法最后public类main方法调用展现设计:一个接口Sha
2017-07-03 09:04:01
318
原创 default方法的探究
default方法是在接口中使用,其意义是可以在接口方法内定义方法体,通过写一个简单的Demo来学习它的用法 interface M{ void draw(); default void play(){ //default方法可以在接口中定义方法体 System.out.println("哈哈"); } }
2017-07-01 10:54:36
918
原创 设计模式之装饰器模式的学习思考
装饰器模式(Decorator Pattern)属于设计模式里的结构型模式一种。白话地说,我们可以给一个类加一些它没有的功能比如:给一个圆加上颜色;给手机增加上网的功能等等它的实现思想:一般是以抽象类的为装饰类,继承抽象类的子类具体实现装饰内容组合思想,即被装饰的类的对象作为变量放置在抽象类内部,一般,为了实现给许多具有相同的特质的类统一装饰,我们会用接口来规范被装饰类这就设计了多态小例子:
2017-07-01 10:07:09
307
原创 Java中异常的抛出原则
主要的是方法重写,即子类继承父类的方法,抛出的异常注意点:父类没有声明异常,子类也不能不可抛出原有方法异常类的父类或上层类抛出的异常类型的数目(类型)不可比原有的方法抛出的还多(不是指个数)import java.io.FileNotFoundException;import java.io.IOException;import java.text.ParseException;clas
2017-06-30 16:58:42
2076
原创 日期类的综合运用——可视化日历小程序
程序功能:输入日期可以打印出当月日历代码:import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalenda
2017-06-30 14:00:49
689
原创 设计模式之组合模式的学习思考
组合模式(Compostite Pattern)是设计模式里的结构型模式一种。它的结构类似于数据结构里的树形结构。把一组对象通过容器类来存放,通过最外部的对象来逐渐的显示里面的对象。优点:高层模块调用简单节点自由增加缺点:使用组合模式时,其叶子和树枝的声明都是实现类,而不是接口,违反了依赖倒置原则。依赖倒置原则:这个原则是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。
2017-06-30 11:33:30
202
原创 Java自动装箱拆箱注意点
public class Test01 { public static void main(String[] args) { Integer d=1234; Integer d1=1234; System.out.println(d==d1); System.out.println(d.equals(d1)); Sy
2017-06-29 21:21:50
195
原创 冒泡排序、二分法查找基于Java的简单实现
1.冒泡排序:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。一个数比完,再开始另一个数代码:import java.util.Arrays;public class Demo2 { public static void main(Stri
2017-06-29 20:16:17
457
原创 设计模式之过滤器模式的学习思考
过滤器模式属于设计模式里面的结构型模式。这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。常见的通用实现方法是通过ArrayLiat来作为容器存放对象并利用对象的多态对其进行操作。设计思路:创建一个要过滤的类,普通类即可,要有获得其私有属性的get方法创建一个接口,规定过滤方法实现接口,可以依需要来实现过滤的条件(通过重写过滤方法),参数传递的可以说Li
2017-06-29 11:15:36
1880
原创 String、StringBuilder和StringBuffer
String是不可变字符序列 StringBuilder和StringBuffer是可变字符序列,两者区别是前者线程不安全,效率高,后者线程安全效率低;两者都继承抽象类AbstractStringBuilderStingBuilder的构造建立的是长度为16+1的数组,若容量不足,扩容2倍+2,迭代扩容那么,为什么说String对象是不可变的?因为,每次对String对象进行改变操作时,其实都是等
2017-06-28 17:54:41
195
原创 String字符串常用方法总结
通过跑main方法来加深String印象//String类为不可变字符序列//String类内部实质是数组private final char value[];//字符串+数字返回仍是字符串//new String的构造对象比直接赋值对象多创建一个对象,通过内存分析可得public class TestString { public static void main(String[]
2017-06-28 16:44:07
305
原创 Interent提供的传输服务
TCP服务(Transmission Control Protocol 传输控制协议)面向连接:客户机/服务器进程间需要建立连接可靠的传输流量控制:发送方不会发送速度过快,超过接收方的处理能力拥塞控制:当网络负载过重时能够限制发送方的发送速度不提供时间/延迟保障不提供最小带宽保障UDP服务(User Datagram Protocol 用户数据报协议)无连接不可靠的传输不提供: 可
2017-06-28 10:18:52
334
原创 应用层协议的内容与基本原理
1.消息的类型: - 请求消息 - 响应消息2.消息的语法格式:消息中有哪些字段每个字段如何描述3.字段的语义:字段中信息的含义4.规则:进程何时发送\接收消息HTTP请求消息的格式: 网络应用对传输服务的需求:数据丢失/可靠性 某些网络应用能够容忍一定的数据丢失:网络电话 某些网络应用要求100%的可靠传输:时间/延迟 有些应用只有在延迟足够低时
2017-06-28 10:07:50
1152
原创 设计模式之桥接模式的学习思考
桥接模式(BridgePattern)是设计模式中结构型模式的一种,所以,它也是通过继承组合的关系来实现。桥接模式是用于把抽象化和实现化解耦,即增加双方的独立性和灵活性。具体来说:创建接口和实现接口的类,这是来实现功能的创建抽象类和继承类,这是表现功能的两者之间的连接是通过将接口放入抽象类中,作为成员变量生活中有很多这样的模式,比如开关,其表现和具体实现是分离的,我们只能通过开关,而不知道具
2017-06-28 09:18:38
294
原创 Java回调学习
Java的回调,又名Callback或者hook,前提应用的是Java的多态小例子:class Animals{ void bark(){ System.out.println("叫声"); }}class Dog extends Animals{ void bark(){ System.out.println("汪汪汪");
2017-06-27 20:11:05
311
原创 Java多态浅析
多态性是用来实现动态联编的,也就是说,程序的最终状态只有在执行过程中才被决定而非在编译期间就决定了。 有利于提供系统的灵活性和扩展性 Java实现多态方式:引用变量的两种类型: 编译时类型(一般就是一个父类)运行时类型(运行时,具体是哪个子类就是哪个子类)多态存在的3个必要条件:要有继承要有方法重写父类引用指向子类对象(向上转型) instance of 为判断是否是该类对象:
2017-06-27 19:46:34
196
原创 Java继承浅析思考
java三大特性:继承封装多态类是对对象的抽象,继承是对某一批类的抽象,从而实现对现实世界更好的建模。有利于提高代码的复用,关键词是extends,只支持单继承。 简单说:我继承了你,你的就是我的,我的还是我的如果定义了一个类,没有调用extends,则它的父类是java.lang.Object在子类中可以根据需要对基类中继承来的方法进行重写。 重写必须和被重写方法具有相同方法名称、参数
2017-06-27 18:35:40
149
原创 Java重载的分析与注意点
方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法。 调用时,会根据不同的参数表选择对应的方法两同三不同1.同一个类,同一个方法名 2.参数列表不同(类型,顺序,个数的不同)只有形参的名称不同,不构成方法的重载与普通方法一样,构造方法也可以重载方法名和参数一样,但返回类型不同也不构成重载
2017-06-27 17:07:45
249
原创 Java内存简单分析
栈:自动分配连续的空间;后进先出;一般放置局部变量;堆:不连续;放置new出的对象方法区:位于堆之内;放置:类的信息(代码)、static变量和常量池(字符串常量)等;程序执行顺序:从main方法开始,如果一开始就是对象的生成,则先找生成对象的类,在方法区找,没有则加载类的信息,存放在方法区。有:代码(属性、方法)、static变量和常量池等;生成的对象的引用存放在栈中(局部变量),比如Peop
2017-06-27 16:53:18
177
原创 递归算法简析
递归简单的说就是方法自己调用自己递归的组成:递归头递归体注意:递归头是用于结束递归调用的简单的小例子:public class Demo1 { int JieChen(int i){ if(i==1){ return 1; }else if(i>1){ return i*JieChen(i-1);
2017-06-27 15:41:00
293
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人