- 博客(60)
- 资源 (5)
- 收藏
- 关注
原创 Java实现Base64算法
Base64是一种基于64个字符的编码算法,经过Base64编码的数据会比原始数据略长,为原来长度的4/3倍。Base64算法中,等号用来补位。URLBase64算法主要是将"+"和"/"替换成了"-"和"_"符号,对于补符"=",一种建议是使用"."符号,另一种是建议使用"~"。Base64算法并不能叫做加密算法,充当密钥的字符映射表公开,直接违反了柯克霍夫原则,且Base64算法的加密
2015-07-10 14:16:09 4162
原创 spring+springMVC事务不回滚
本次项目中,使用的框架是spring+springMVC,数据库使用的是springJDBC操作,数据源使用的是dynamicDataSource。项目中,事务的配置是基于tx命名空间配置,配置信息如下: <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransacti
2015-06-12 15:29:56 3344 2
原创 spring问题:Error creating bean with name 'articleController': Injection of autowired dependencies fail
最近在使用spring的注解@Autowired时,出现了以下错误:ERROR | ContextLoader-initWebApplicationContext [2015-06-12 15:03:46] - Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error
2015-06-12 15:06:38 27727 1
原创 使用dom及dom4j进行xml解析
使用dom进行xml解析:dom解析相关类是jdk自带的类,使用dom解析时无需引入其他jar包,直接使用即可:以下是一个dom解析xml的实例,xml内容如下: 张三 www@qq.com 李四 lisi@sina.com java解析程序如下:package com.fcy.xml.dom;import javax.xml.parsers.
2015-04-29 22:47:09 1424
转载 spring execution表达式
execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throws-pattern?)除了返回类型模式(上面代码片断中的ret-type-pattern),名字模式和参数模式以外,所有的部分都是可选的。 返回类型模式决定了方法的返回类型必须依次匹配一个连接
2015-04-03 11:13:16 877
原创 ArrayList的iterator()方法剖析
在java中,要对List中的元素遍历并进行删除时,通常使用以下代码:代码一://list是一个List对象Iterator it = list.iterator();while(it.hasNext()){ String str = it.next(); if("codefunjava".equals(str)){ it.remove(); }}而不是使用这样的代
2015-03-20 11:36:56 7325 2
转载 Spring注解@Component、@Repository、@Service、@Controller
Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是: @Repository、 @Service 和 @Controller。在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。虽然目前这 3 个注释和 @Compon
2014-11-13 14:59:59 679
转载 Oracle SQL语句执行步骤
Oracle中SQL语句执行过程中,Oracle内部解析原理如下:1、当一用户第一次提交一个SQL表达式时,Oracle会将这SQL进行Hard parse,这过程有点像程序编译,检查语法、表名、字段名等相关信息(如下图),这过程会花比较长的时间,因为它要分析语句的语法与语义。然后获得最优化后的执行计划(sql plan),并在内存中分配一定的空间保存该语句与对应的执行计划等信息。
2014-10-17 09:50:49 913
原创 java利用反射访问类的私有(private)属性及方法
java语言中,在一个类中,为了不让外界访问到有的属性和方法,通常将其设置为private,用正常的方式(对象名.属性名,对象名.方法名)将无法访问此属性与方法,但有没有其他方法可以访问呢?答案是有的,这就是java反射带来的便利。利用反射访问类的属性及方法如下1.
2014-10-01 17:10:39 64312 4
转载 TCP协议的TIME_WAIT状态详解
我发现有个公司面试的时候问了对TCP协议比较细节的地方,那就写一下帮助自己加深理解和记忆。在开始说TIME_WAIT状态之前,要知道TCP协议是如何关闭连接的。很多人对TCP协议的三次握手都很熟悉(不知道的可以参考我以前的帖子),因为学校的垃圾考试都爱考三次握手,但是很多知道三次握手的人都对TCP协议是如何关闭连接不了解。不说废话了,TCP关闭连接过程如下图,寡人用photoshop画的,凑合
2014-09-20 23:26:41 765
转载 HTTP协议请求方式: 中GET、POST和HEAD的介绍
HTTP是Web协议集中的重要协议,它是从客户机/服务器模型发展起来的。客户机/服务器是运行一对相互通信的程序,客户与服务器连接时,首先,向服务 器提出请求,服务器根据客户的请求,完成处理并给出响应。浏览器就是与Web服务器产生连接的客户端程序,它的端口为TCP的80端口。浏览器与Web 服务器之间所遵循的协议就是HTTP。 请求方法是请求一定的Web页面的程序或用于特定的URL。可选用下列
2014-09-20 22:00:33 5555
原创 哈夫曼树(java实现)
package com.fcy.dataStruct;import java.util.ArrayDeque;import java.util.ArrayList;import java.util.List;import java.util.Queue;public class HuffmanTree { //节点类 public static class Node{ E da
2014-09-07 21:33:26 1126
原创 二叉树的三叉链表存储(java实现)
package com.fcy.dataStruct;/** * 与二叉树的二叉链表存储相比,三叉链表存储 * 多了一个指针域来记录当前节点的父节点 */class ThreeLinkBinTree{ public static class TreeNode{ Object data; TreeNode left; //左子节点 TreeNode rig
2014-09-07 21:21:10 2690
原创 二叉树的二叉链表存储(java实现)
package com.fcy.dataStruct;/** * 二叉树的二叉链表存储的是数据域、左子节点和右子节点 */class TwoLinkBinTree{ public static class TreeNode{ //数据域 Object data; //左子节点 TreeNode left; //右子节点 TreeNode right; pub
2014-09-07 21:09:39 3617
原创 二叉树顺序存储(java实现)
package com.fcy.dataStruct;/** * 顺序存储是指利用用长度为(2^i-1)数组存储深度为i的二叉树, * 这种存储方法会造成一定的空间浪费。 */class ArrayBinTree{ //使用数组来记录该树的所有子节点 private Object[] datas; private int DEFAULT_DEEP=8; //保存该树的深度 p
2014-09-07 20:56:54 1049
原创 树-子节点表示法(java实现)
package com.fcy.dataStruct;import java.util.ArrayList;import java.util.List;/** * 子节点链表表示法的特点是,每个节点都可以快速找到它 * 的所有子节点,但如果要找某个节点的父节点则比较麻烦, * 程序要遍历整个节点数组 */class TreeChild{ private static class
2014-09-07 20:44:25 2333
原创 树-父节点表示法(java实现)
package com.fcy.dataStruct;import java.util.ArrayList;import java.util.List;class TreeParent{ public static class Node{ T data; //记录其父节点的位置 int parent; public Node(){} public Node(T dat
2014-09-07 20:28:41 1045
原创 链队列(java实现)
package com.fcy.dataStruct;class LinkQueue{ //定义一个内部类Node,Node实例代表链队列的结点 private class Node{ //保存结点的数据 private T data; //指向下一个结点的引用 private Node next; public Node(T data,Node next){ t
2014-09-07 19:58:42 1132
原创 循环队列(java实现)
package com.fcy.dataStruct;import java.util.Arrays;class LoopQueue{ private int DEFAULT_SIZE=10; //保存数组的长度 private int capacity; //定义一个数组用于保存循环队列的元素 private Object[] elementData; //保存循环队列中元素的
2014-09-07 19:41:17 3492
原创 链栈(java实现)
package com.fcy.dataStruct;public class LinkStack { private class Node{ //保存结点数据 private T data; //指向下一个结点的引用 private Node next; public Node(T data,Node next){ this.data=data; this
2014-09-07 19:05:44 1115
原创 直接插入排序(java实现)
定义一个数据包装类:package sorted;public class DataWrap implements Comparable{ int data; String flag; public DataWrap(int data,String flag){ this.data=data; this.flag=flag; } public String toStrin
2014-09-06 23:15:36 833
原创 基数排序(java实现)
package sorted;import java.util.Arrays;public class MultiKeyRadixSort { /** * @param data 待排序数组 * @param radix 指定关键字拆分的进制,如radix=10,表明按十进制拆分 * @param d 指定将关键字拆分成几个子关键字 */ public static v
2014-09-06 21:43:44 675
原创 归并排序(java实现)
数据封装类:package sorted;public class DataWrap implements Comparable{ int data; String flag; public DataWrap(int data,String flag){ this.data=data; this.flag=flag; } public String toString(){
2014-09-06 17:22:44 669
原创 Shell(希尔)排序(java实现)
数据包装类:package sorted;public class DataWrap implements Comparable{ int data; String flag; public DataWrap(int data,String flag){ this.data=data; this.flag=flag; } public String toString(){
2014-09-06 17:11:46 590
原创 桥接模式
桥接模式是一种结构型模式,它主要应对的是:由于实际的需要,某个类具有两个或以上的维度变化,如果只是使用继承将无法实现这种需要,或者使得设计变得相当臃肿。package com.fcy.model;interface Peppery{ String style();}class PepperyStyle implements Peppery{ public String sty
2014-08-12 10:08:29 755
原创 策略模式
用于封装系列的算法,客户端可以自由选择其中一种算法,考虑以下情形:现需要开发一个网上书店,该书店为了更好地促销,经常需要对图书进行打折促销,程序需要考虑各种打折促销的计算方法:
2014-08-12 10:07:42 829
原创 门面模式
随着系统的不断改进和开发,它们会变得越来越复杂,系统会生成大量的类,这使得程序流程更难被理解。门面模式可以为这些类提供一个简化的接口,从而简化访问这些类的复杂性,有时这种简化可能降低访问这些底层类的灵活性,但除了要求特别苛刻的客户端外,它通常都可以提供所需的全部功能。package com.fcy.model;//准备三个接口interface Payment{ public Strin
2014-08-12 10:07:19 626
原创 Tomcat服务器使用
1.Tomcat配置服务器端口默认端口是8080,在tomcat安装目录下,打开server.xml文件,第70行如下: connectionTimeout="20000" redirectPort="8443" />其中,port=”8080”即为tomcat端口号。可以将端口号改成任意值,但以防与其他端口号冲突,建议使
2014-08-07 16:51:28 615
转载 Java 7之基础 - 强引用、弱引用、软引用、虚引用
1、强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下:[java] view plaincopyprint?Object o=new Object(); // 强引用 当内存空间不足,Java虚拟机宁愿抛出OutOfM
2014-05-17 21:38:39 723
原创 java观察者模式
观察者模式主java.util下的public interface Observer一个可在观察者要得到 observable 对象更改通知时可实现Observer接口的类。方法摘要 voidupdate(Observable o, Object arg) 只要改变了 observable 对象就调用此方法。
2014-05-17 20:08:47 545
转载 java垃圾回收机制
详细介绍Java垃圾回收机制垃圾收集GC(Garbage Collection)是Java语言的核心技术之一,之前我们曾专门探讨过Java 7新增的垃圾回收器G1的新特性,但在JVM的内部运行机制上看,Java的垃圾回收原理与机制并未改变。垃圾收集的目的在于清除不再使用的对象。GC通过确定对象是否被活动对象引用来确定是否收集该对象。GC首先要判断该对象是否是时候可以收集。两种常用的方法是引
2014-05-17 16:08:38 616
转载 整理下java中stringBuilder和stringBuffer两个类的区别
StringBuilder和StringBuffer这两个类在动态拼接字符串时常用,肯定比String的效率和开销小,这是因为String的对象不会回收哦。其实我一直用StringBuilder这个类,因为可以简写为sb的变量在程序里很爽,可是后来师兄说web程序特别是高并发的程序中不要用stringbuilder,因为简单说,stringBuilder不是线程安全的,而StirngBuf
2014-05-17 15:52:32 1211
转载 HibernateTemplate与Session的区别
使用方法没有多大的区别我们使用HibernateTemplate,有一个很重要的原因就在于我们不想直接控制事务,不想直接去获取,打开Session,开始一个事务,处理异常,提交一个事务,最后关闭一个SessionHibernateTemplate 是Hibernate操作进行封装,我们只要简单的条用HibernateTemplate 对象,传入hql和参数,就获得查询接口,至于事务的开启,
2014-05-17 13:25:06 3236
RedisPlus-3.2.0.dmg
2020-09-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人