自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(151)
  • 收藏
  • 关注

转载 log4j属性文件的配置

1、配置根Logger       其语法为:        log4j.rootLogger = [ level ] , appenderName1, appenderName2, …       level : 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR

2015-06-19 16:38:09 445

原创 Spring -- Model 和 ModelAndView

1、Springframework的Model使用:在Spring-context.jar包,package是:org.springframework.ui,一个接口,有一个实现类ExtenedModelMap。在方法的参数中添加一个Model参数,在方法体内部,可以model.addAttribute(“test”,test);这样,在页面上就可以${test}这样使用了。publi

2015-06-19 09:56:45 692

转载 Spring MVC -- @PathVariable和@RequestParam的区别

请求路径上有个id的变量值,可以通过@PathVariable来获取  @RequestMapping(value = "/page/{id}", method = RequestMethod.GET)  @RequestParam用来获得静态的URL请求入参     spring注解时action里用到。简介:handler method 参数绑定常用的注解,我们根据他们处理

2015-06-18 16:35:06 1713

转载 XML之命名空间的作用(xmlns)

命名空间的作用,下面的内容是转载的,大家可以看看:问题的出现:XML的元素名字是不固定的,当两个不同的文档使用同样的名称描述两个不同类型的元素的时候,或者一个同样的标记表示两个不同含义的内容的时候,就会发生命名冲突。问题的解决:命名空间(Namespace),对于每一套特定应用的DTD,给它一个独一无二的标志来代表,如果在XML中使用DTD中定义的元素,需将DTD的标志和元素名

2015-06-17 10:22:06 587

翻译 Spring3 MVC 注解(一)---注解基本配置及@controller和 @RequestMapping 常用解释

一:配置web.xml      1)问题:spring项目中有多个配置文件mvc.xml   dao.xml      2)解决:在web.xml中                    contextConfigLocation             /WEB-INF/xxx/*.xml                   xxx表示xml文件路径    *.xml表

2015-06-16 15:39:14 285

原创 struts -- jar 包问题

Unable to load configuration. - bean - jar:file:/D:/apache-tomcat-7.0.55/wtpwebapps/sessionxcookie/WEB-INF/lib/struts2-core-2.3.15.2.jar!/struts-default.xml:29:72出现了上面的问题,昨天还是好的,今天引入了struts2-cor

2015-06-16 10:50:56 345

原创 MySql -- 创建表时 engine=innodb和engine=myisam的区别

创建数据库表时数据存储引擎   engine两种:engine=innodb和engine=myisam1、myisam,默认类型。是存储记录和文件的标准类型,支持全文搜索,可以被压缩,与其他引擎相比,有检查和修复表格的大部分工具,不支持事务,不支持外键。强调的是性能,执行速度比较快,可以在不同的系统中迁移。如果执行大量 的SELECT,MyISAM是更好的选择。2、innodb,支持事务

2015-06-15 09:32:22 10479

原创 JAVA -- Exception 类型

1、Java中的异常会被分为三种:Error: 这种异常被设计成不被捕获,因为这种异常产生于JVM自身。Runtime Exception: 运行时异常往往与环境有关,编译时无法检查,并且可能发生的情况太广泛,所以系统会去处理,程序不需要捕获。普通异常: 常见的异常大多属于此类。      这些java异常直接继承java.lang.Throwable的异常类:

2015-06-12 11:19:29 534

原创 Zookeeper -- leader选举

Zookeeper的核心是源自广播,实现这个机制的协议是Zab协议。Zab协议有两种模式,分别是恢复模式和广播模式。当服务器启动或者领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数Server完成了和leader的状态同步以后,恢复模式就结束了。        zookeeper次用了递增的食物id号(zxid)来标识事务。所有提议在被踢出来的时候都加上了zxid。实现中zx

2015-06-11 15:49:46 1709

原创 Spring -- framework 各版本源码下载地址

https://github.com/spring-projects/spring-framework/tags

2015-06-09 15:13:54 508

原创 Spring -- AOP 优缺点

This has two benefits. First, the logic for each concern is in one place, as opposed to being scattered all over the code base. Second, your service modules are cleaner because they only contain code

2015-06-08 17:03:18 4479

原创 Spring -- 三种依赖注入方式

依赖注入的3种实现方式分别是:注解注入(annotation injection)、Set注入(setter injection)和构造注入(constructor injection)。1)注解注入:     @Autowired       private CompactDisc cd;2)Set注入:3)构造注入:Set注入和构

2015-06-08 11:33:14 453

原创 Spring -- 三种配置方式

1、Explicit configuration in XML:显示的XML配置。     优点:     1)XML配置方式进一步降低了耦合,使得应用更加容易扩展,即使对配置文件进一步修改也不需要工程进行修改和重新编译。     2)在处理大的业务量的时候,用XML配置应该更加好一些。     缺点:     1)配置文件读取和解析需要花费一定的时间,配置文件过多的时候难以管

2015-06-08 11:18:31 3672

原创 Spring DI和IoC区别

(1)DI:依赖注入,Denpendency Injection。把对象通过setter、contruct、args等方式 注入到另一个对象中作为这个对象的一个成员变量,或方法中,完成相应的功能。、(2)IoC:Inversion of Control,控制反转。动态的提供给对象A他需要的某些对象,而不是自己主动去找,而这个过程是通过DI技术实现的。

2015-06-08 10:43:54 511

原创 JAVA -- 关键字 abstract、static、final、native、synchronized

1、abstract:用来声明抽象方法,抽象方法没有方法体,不能被直接调用,必须在子类overriding后才能使用;2、static:用来声明静态方法,静态方法可以被类及其对象调用;abstract的method 不可以是static的,因为抽象的方法是要被子类实现的,而static与子类没有关系!;4、native:表示该方法要用另外一种依赖平台的编程语言实现的,不存在着被子类实现的问

2015-06-04 17:53:33 1031

原创 JAVA -- 线程synchronized关键字

synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。     1、同步和锁定     Java中每个对象都有一个内置锁,当程序运行到非静态的synchronized同步方法上时,自动获得与正在执行代码类的当前实例(this实例)有关的锁。获得一个对象的锁也称为获取锁、锁定对象、在对象上锁定或在对象上同步。当程序运行到synchron

2015-06-01 11:40:54 310

原创 JAVA -- 线程wait()、notify()、notifyAll()

这三个方法输入java.lang.Object      1、wait():导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法。signal.wait()的意思并不是说,signal开始wait,而是说,运行这段代码的当前线程开始wait这个signal对象,即进入signal对象的待召(Waiting)队列。wait()还可以定义

2015-06-01 11:38:17 317

原创 JAVA -- 线程wait()和sleep()的区别

wait()属于Object类中,sleep()属于Thread类中。        sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。        在调用sleep()方法的过程中,线程不会释放对象锁。        而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池

2015-05-31 16:43:11 461

原创 JAVA -- 线程sleep()和yield()、join()方法区别

1、sleep()方法      在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。 让其他线程有机会继续执行,但它并不释放对象锁。也就是如果有Synchronized同步块,其他线程仍然不同访问共享数据。注意该方法要捕获异常       比如有两个线程同时执行(没有Synchronized),一个线程优先级为MAX_PRIORIT

2015-05-31 12:02:50 3010

原创 JAVA -- 线程的sleep()方法为什么是静态的

sleep()只能让当前线程睡眠,当前线程是自愿的。         如果让sleep()成为实例方法,当前线程可以直接sleep别的线程,会引入很多多线程的问题。         Thread中很多方法被弃用,destroy(), suspend(), stop(),resume()这些实例方法;剩下的只有一些static方法和只对当前线程操作方法。 为什么destroy(),

2015-05-31 11:13:57 1413 1

翻译 JAVA -- 线程run和start的区别

Java线程中run和start方法的区别Thread类中run()和start()方法的区别如下:run()方法:在本线程内调用该Runnable对象的run()方法,可以重复多次调用;start()方法:启动一个线程,调用该Runnable对象的run()方法,不能多次启动一个线程;package com.ljq.test;public class Thre

2015-05-29 16:41:03 421

原创 JAVA -- 堆栈的区别

Java 中的堆和栈       Java把内存划分成两种:一种是栈内存,一种是堆内存。        在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。      堆内存用来存放

2015-05-29 16:07:13 353

原创 9 -- 鸡尾酒排序

九、鸡尾酒排序           鸡尾酒排序又叫定向冒泡排序,来回排序,涟漪排序,搅拌排序,快乐小时排序,它是冒泡排序的一种变形。           它和冒泡排序的不同之处在于:冒泡排序是单向进行的,而鸡尾酒排序是以双向在序列中进行排序的。           原理如下:  1)先对数组进行从左到右升序的冒泡排序;  2)再对数组进行从右到左的降序的冒泡排序; 

2015-05-29 15:08:44 504

原创 8 -- 插入排序之希尔排序

八、希尔排序          希尔排序,是递减增量排序算法,是插入排序的一种高速而稳定的改进版本。基于以下两点性质改进:          1)插入排序对几乎排好序的数据操作,效率高。即可达到线性排序的效率。          2)插入排序一般来说是低效的,因为每次只能将数据移动一位。          希尔算法把比较的元素分为几个区域来提升性能。让一个元素可以一次性的朝

2015-05-29 11:37:37 389

原创 7 -- 插入排序之折半插入排序

7、折半插入排序          折半插入:考虑到插入第i个元素前面的i-1个元素是有序的,计算0~i-1的中间点,和i个元素进行比较,这样完成了折半。然后不停地用上面的步骤,快速的找出第i个元素的位置。          //折半插入排序    public static void insertHalfSort(int a[]){        int i=0,j=0;

2015-05-29 11:09:25 570

原创 6 -- 插入排序之直接插入排序

六、直接插入排序          插入排序:每次将一个待排序的记录,按其关键字大小插入到前面已经排序好的子文件的适当位置。          哨兵(监视哨)有两个作用:一是作为临变量存放R[i](当前要进行比较的关键字)的副本;二是在查找循环中用来监视下标变量j是否越界。          当文件的初始状态不同时,直接插入排序所耗费的时间是有很大差异的。最好情

2015-05-28 17:31:34 645

原创 5 -- 归并排序(合并排序)

五、 归并排序(合并排序)             它是一种基于“分治”策略的一种算法。对于规模较大的问题,可以分解成若干容易求解的简单的问题,最后把解合并构成初始问题的解。             总时间=分解时间+解决问题时间+合并时间。

2015-05-28 17:19:43 599

原创 4 -- 交换排序之快速排序

四、快速排序算法         快速排序是冒泡排序的一种改进,冒泡排序排完一趟最大值冒出来了,那么可不可以先选定一个值,然后扫描待排序序列,把小于该值得记录和大于该值得记录分成两个单独的序列,然后分别对这两个序列进行上述操作。我们把选定的值作为枢纽值,如果枢纽值为序列中的最大值,那么一趟快速排序就变成了一趟冒泡排序。           快速排序时间与划分是否对称有关。快速排序的平均时间

2015-05-28 14:48:32 504

原创 3 -- 交换排序之冒泡排序

三、冒泡排序算法              冒泡排序基于交换 。每次从第一个记录开始,一二两个记录比较,大的往后放,二三两个记录比较,依次类推,这就是一趟冒泡排序。每一趟冒泡排序后,无序序列中值最大的记录冒岛序列末尾,所以称之为冒泡排序。             相对于简单选择排序,冒泡排序交换次数明显更多。它是通过不断地交换把最大的数冒出来。冒泡排序平均时间和最坏情况下(逆序)时间为o(

2015-05-28 14:42:45 437

原创 2 -- 选择排序之堆排序

二、堆排序             简单排序的时间复杂度是O(n^2),简单选择排序只要操作是进行关键字的比较,怎样减少比较次数就是改进的关键。              堆排序:A、B、C进行比赛,B战胜了A,C战胜了B,那么显然C可以战胜A,C和A就不用比了。              堆是一种数据结构, 是一颗完全二叉树且满足性质:所有非叶子结点的值均不大于或均不小于其左,右孩子

2015-05-28 14:41:29 431

原创 1-- 选择排序之简单选择排序

(1)简单选择排序和堆排序的基本思想是什么?(2)选择排序的本质是什么一、简单选择排序          简单选择排序最佳情况下,记录移动次数为0, 最坏情况下,记录移动次数n-1。外层循环进行了n-1趟选择,第i趟选择要进行n-i次比较,忽略移动记录时间(为一常数)。所以总时间是(n-1)*(n-i)=n^2-(i+1)*n+i。时间复杂度为O(n^2)。

2015-05-28 14:13:36 647

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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