- 博客(30)
- 资源 (172)
- 收藏
- 关注
原创 Tomcat配置文件入门
Tomcat 基本配置 tomcat读取配置文件首先简单说一下tomcat是如何读取配置文件的。tomcat在启动时,首先找系统变量CATALINA_BASE,如果没有,则找CATALINA_HOME。然后找这个变量所指的目录下的conf文件夹,从中读取配置文件。最重要的配置文件:server.xml要配置tomcat,基本上了解server.xml,context.x
2015-04-30 14:02:03 612
原创 maven tomcat plugin实现热部署
总共分为五步:1.在tomcat中配置用户权限,即添加管理员帐号2.在maven中添加server,配置tomcat的管理员帐号密码3.在project中添加插件,以及maven中配置的server,4.设置部署命令5.进行部署附相关错误及解决办法下面进行分步骤讲解:一.在tomcat中配置用户权限,即添加管理员帐号.我们需要实现热部署,自然
2015-04-30 10:57:50 10525
原创 spring配置log4j
1.配置基本的springMVC+hibernate环境。网上有很多这种例子。2.需要使用log4j,首先就要在web.xml中配置log4j.方法有两种: 1.我们可以自己写一个servlet,服务器启动的时候自动加载,让该servlet加载log4j的配置文件(properties或者xml文件),这种方法百度百科讲log4j有详细说明。
2015-04-30 10:55:54 544
原创 maven + eclipse 问题记录
1、警告:The tag handler class for "s:form" (org.apache.struts2.views.jsp.ui.FormTag) was not found on the Java Build Path这个问题终于可以解决了, 在出问题的页面 标签前后删除空格后保存文件 警告即可消失,即为改行的起始,然后保存。 2、Eclipse下Java
2015-04-29 22:17:32 501
原创 eclipse如何修改dynamic web module version
eclipse如何修改dynamic web module version一、修改工程属性:右键eclipse的工程,选择属性,再选择Project Facets里面中选择Dynamic Web Module ,将3.0修改为2.5,可能会提示如下信息:Cannot change version of project facet Dynamic Web Module to 2.
2015-04-29 21:49:27 443
原创 JAVA深入研究——Method的Invoke方法。
在写代码的时候,发现Method可以调用子类的对象,但子类即使是改写了的Method,方法名一样,去调用父类的对象也会报错,虽然这是很符合多态的现象,也符合java的动态绑定规范,但还是想弄懂java是如何实现的,就学习了下Method的源代码。 Method的invoke方法 1.先检查 AccessibleObject的override属性是否为true。Accessibl
2015-04-15 10:46:14 692
原创 spring - ioc和aop
1.程序中为什么会用到spring的ioc和aop2.什么是IOC,AOP,以及使用它们的好处,即详细回答了第一个问题3.原理 关于1: a:我们平常使用对象的时候,一般都是直接使用关键字类new一个对象,那这样有什么坏处呢?其实很显然的,使用new那么就表示当前模块已经不知不觉的和 new的对象耦合了,而我们通常都是更高层次的抽象模块调用底
2015-04-15 09:27:00 489
原创 序列化的作用,应用场景,除了网路传输
关于更多java序列化的问题可以参见JAVA系列之对象的序列化与反序列化 Java的序列化机制只序列化对象的属性值,而不会去序列化什么所谓的方法。其实这个问题简单思考一下就可以搞清楚,方法是不带状态的,就是一些指令,指令是不需要序列化的,只要你的JVM classloader可以load到这个类,那么类方法指令自然就可以获得。序列化真正需要保存的只是对象属性的值,和对象的类型。
2015-04-14 16:47:44 2672
原创 字符常见的几种编码方式
无论在是在编辑文本文件的时候,还是在制作网页的时候,总会遇到文本编码方式的问题。如果处理不当,就会出现乱码的问题。因此,有必要对文本的编码方式做一个详尽的了解。常见的一些字符编码方式无非有:Unicode、ASCII、GBK、GB2312、UTF-8。下面先对常见的这一些字符编码方式作下说明:1.ASCII码这是美国在19世纪60年代的时候为了建立英文字符和二进制的关系时制
2015-04-14 15:54:49 2399
原创 数据库设计三大范式
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 在实际开发中最为常见的设计范式有三个:1.第一范式(确保每列保持原子性)第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值
2015-04-14 15:11:39 366
原创 Java 二叉树排序
创建节点类:package org.binary;public class Node {Node left;Node right;int data;public Node(int data) {this.data = data;}}创建二叉树操作类:package org.b
2015-04-14 11:36:35 381
原创 选择排序
一. 算法描述 选择排序:比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成。以下面5个无序的数据为例:56 12 80 91 20(文中仅细化了第一趟的选择过程)
2015-04-10 16:24:37 378
原创 java实现快速排序
快速排序的基本思想: 通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则分别对这两部分继续进行排序,直到整个序列有序。 先看一下这幅图:把整个序列看做一个数组,把第零个位置看做中轴,和最后一个比,如果比它小交换,比它大不做任何处理;交换了以后再和小的那端比,比它小不交换,比他大交换。这样循环往复
2015-04-09 14:20:04 349
原创 冒泡排序
public class SortTest { public void sort(int[] args){ for(int m : args){ System.out.print("排序前 "+args[m]+" "); } int time1 = 0,time2 = 0; for(int i = 0 ; i < args.length-1 ; i++){
2015-04-09 11:53:06 350
原创 常用的排序算法的时间复杂度和空间复杂度
常用的排序算法的时间复杂度和空间复杂度排序法最差时间分析平均时间复杂度稳定度空间复杂度冒泡排序O(n2)O(n2)稳定O(1)快速排序O(n2)O(n*log2n)不稳定O(log2n)~O(n)选择排序O(n2)O(n2)稳定O(1)二叉树排序O(n
2015-04-09 10:58:19 436
原创 使用静态工厂方法的好处和坏处
一个模块的使用者永远也不应该被模块的行为所迷惑(那样就不清晰了),模块要尽可能的小,但又不能太小【术语模块(module):是指任何可重用的软件组件,从单个方法到包含多个包的复杂系统都可以是一个模块】。代码应该被重用,而不是拷贝,模块之间的相依性应该尽可能降低到最小,错误应该尽早被检测出来,理想的情况下是在编译的时刻。NO.1 考虑用静态工厂方法代替构造函数 静态工厂方法
2015-04-08 23:34:06 585
原创 Java 继承与组合的区别
根据网络上大家对继承和组合的讨论,我简单总结以下几点:1)组合(has-a)关系可以显式地获得被包含类(继承中称为父类)的对象,而继承(is-a)则是隐式地获得父类的对象,被包含类和父类对应,而组合外部类和子类对应。2)组合关系在运行期决定,而继承关系在编译期就已经决定了。3)组合是在组合类和被包含类之间的一种松耦合关系,而继承则是父类和子类之间的一种紧耦合关系。4
2015-04-08 23:31:44 363
原创 内连接,外连接,左连接,右连接,全连接,内连接,交叉连接,自连接
(一) 内连接内连接,inner join,join 查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的 列值。内连接分三种:1.等值连接2.不等值连接3.自然连接(二) 外连接 外连接,返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左 外连接或左连接))、右表(右外连接或右连接)或两个边接表(全外连接)
2015-04-08 13:43:48 931
原创 error和exception的区别,RuntimeException和非RuntimeException的区别
1. 异常机制 异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。 传统的处理异常的办法是,函数返回一个特殊的结果来表示出现异常(通常这个特殊结果是大家约定俗称的),调用该函数的程序负责检查并分析函数返回的结果。这样做有如下的弊端:例如函数返回-1代表出现异常
2015-04-08 13:43:09 430
原创 hash算法的实现原理,hashcode的实现原理趣解
这个问题有点难度,不是很好说清楚。 我来做一个比喻吧。 我们有很多的小猪,每个的体重都不一样,假设体重分布比较平均(我们考虑到公斤级别),我们按照体重来分,划分成100个小猪圈。 然后把每个小猪,按照体重赶进各自的猪圈里,记录档案。 好了,如果我们要找某个小猪怎么办呢?我们需要每个猪圈,每个小猪的比对吗? 当然不需要了。 我们先看看要找的这个小猪的体重,然后就找
2015-04-08 11:50:36 647
原创 hash算法的实现原理,hashcode的实现原理
1. 引言 哈希表(Hash Table)的应用近两年才在NOI中出现,作为一种高效的数据结构,它正在竞赛中发挥着越来越重要的作用。哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间;而代价仅仅是消耗比较多的内存。然而在当前可利用内存越来越多的情况下,用空间换时间的做法是值得的。另外,编码比较容易也是它的特点之一。 哈希表又叫做散
2015-04-08 11:33:05 447
原创 ISP简介(ISP--Interface Segregation Principle)
一、ISP简介(ISP--Interface Segregation Principle): 使用多个专门的接口比使用单一的总接口要好。 一个类对另外一个类的依赖性应当是建立在最小的接口上的。 一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。 “不应该强迫客户依赖
2015-04-08 00:05:04 676
原创 接口与抽象类
1、首先不要想接口与抽象类的区别,而要采用逆向思维,即是什么原因导致了他们的区别。2、接口和抽象类的使用场景不同,也就是说,接口和抽象类是针对不同的使用场景而设计的。我们站在接口和抽象类的设计者的角度来看待这个问题。3、接口的使用场景是:完全抽象,仅仅声明特征(能完成某些任务),不给出任何实现。 抽象类的使用场景是:部分抽象,给出部分实现。4、接口的使用场景
2015-04-07 23:53:21 330
原创 java抽象类和接口的区别,使用场景
在Java语言中, abstract class 和interafce是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是
2015-04-07 23:52:11 774
原创 线程安全的概念,实现线程安全的几种方法
Java 编程语言为编写多线程应用程序提供强大的语言支持。但是,编写有用的、没有错误的多线程程序仍然比较困难。本文试图概述几种方法,程序员可用这几种方法来创建高效的线程安全类。并发性只有当要解决的问题需要一定程度的并发性时,程序员才会从多线程应用程序中受益。例如,如果打印队列应用程序仅支持一台打印机和一台客户机,则不应该将它编写为多线程的。一般说来,包含并发性的编码问题通常都包含一
2015-04-07 11:32:59 6373
原创 FileInputStream/FileOutputStream的应用
这是一对继承于InputStream和OutputStream的类,用于本地文件读写(二进制格式读写并且是顺序读写,读和写要分别创建出不同的文件流对象);本地文件读写编程的基本过程为:① 生成文件流对象(对文件读操作时应该为FileInputStream类,而文件写应该为FileOutputStream类);② 调用FileInputStream或FileOutputS
2015-04-03 17:17:58 367
原创 字符流和字节流的区别,使用场景,相关类
Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode 字符流之间的转换。而类 InputStreamReader 和 OutputStreamWr
2015-04-03 11:18:52 436
原创 java反射机制详解 及 Method.invoke解释 getMethod
JAVA反射机制JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对
2015-04-02 11:01:29 391
原创 一个JDK1.5的新特性:枚举学习笔记
枚举枚举就是一个特殊的类。可以有若干公有方法或抽象方法。采用抽象方法定义nextDay就将大量的if.else语句转移成了一个个独立的类。枚举的构造方法等其他信息必须放在成员类表之后,而且枚举的构造方法必须是私有的。有多个构造方法时,枚举元素后面跟上一对大括号就表示构造枚举元素指向的是哪个构造方法。有带参数的构造方法,还有不带参数的构造方法。枚举元素MON和MON(
2015-04-02 10:38:16 439
原创 JDK1.5新增的功能
JDK1.5新增的功能 "JDK1.5"的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型,for-each 循环,自动装包/拆包,枚举,可变参数, 静态导入 。使用这些特性有助于我们编写更加清晰,精悍,安全的代码。 下面我们简单介绍一下这些新特性。 1.泛型(Generic) C++通过模板技术可以指定集合的元素类型,而Java在1.5之前一直没有相对应的
2015-04-02 09:58:11 367
WebService上传下载文件
2013-09-17
JQuery树形导航
2013-09-13
Struts_2+Spring_3+Hibernate整合开发.part1
2013-09-06
json jdk1.5 jar包
2013-08-26
webservice + spring + hibernate
2013-08-22
Maven搭建SpringMVC+Hibernate4(含二级缓存)项目
2017-07-03
javascript
2014-09-16
html5 css3实现下拉刷新、上拉分页,
2014-01-13
maven3 eclipse插件
2013-10-29
POI实战 java开发excel
2013-09-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人