关闭
当前搜索:

[置顶] 递归解决汉诺塔问题

前言:汉诺塔问题是源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在第三根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。   我们用递归算法来解决这个问题,在解决之前首先介绍一下什么是递归算法。 1、递归算法 ...
阅读(680) 评论(5)

[置顶] 数据库锁的基本原理

前言:为了保证数据的完整性和一致性,数据库系统采用锁来实现事务的隔离性。各种大型数据库采用的锁基本理论是一致的,但在具体实现上各有差别。从并发事务锁定的关系上看,可以分为共享锁定和独占锁定。从锁定的对象不同,一般可以分为表锁定和行锁定。 1、锁的分类   锁分为悲观锁和乐观锁:     ● 悲观锁:悲观的思想,认为并发问题总会出现,每次一个事务读取某一条记录后,就会把这条记录...
阅读(753) 评论(2)

[置顶] JSP 原理

1、JSP的由来   在JSP出现之前,为了实现动态网页的效果,服务器端利用 Servlet 的输出流向客户端发送HTML标签以及HTML页面中的内容,但是在多数动态网页中,绝大部分内容是静态的,只有少量内容需要动态实现。但是为了这少量的动态内容,程序猿依然要用Servlet 输出其中所有的静态内容,这就使得整个Servlet 程序代码非常臃肿,导致Servlet 的开发效率非常低下。 ...
阅读(2322) 评论(11)

[置顶] 请求转发和请求包含

1、Servlet 容器   编程中的容器我们可以理解为程序运行时需要的环境,那么Tomcat 就是Servlet 的运行环境,就是一个Servlet 容器。Servlet 容器的作用是负责处理客户请求,当Servlet 容器获取到用户请求后,调用某个Servlet,并把Servlet 的执行结果返回给用户。    Servlet 容器的工作流程:   ● 当用户请求某个资源时,Se...
阅读(1627) 评论(13)

[置顶] DOM4J 实现对XML文档的增、删、改、查

前言:首先谈一个小故事:当年Java准备做对XML的解析时,对解析器的实现方向在内部发生了争执,后来高层没有听从工程师建议,坚持开发出了JDOM,而主要的工程师选择离开Java 按照自己的方式实现,就是DOM4J 。后来结果表明,DOM4J 完胜了JDOM。下面,让我们来了解一下通过DOM4J 实现对XML文件进行增删改查的过程。 1、待解析的XML文件: <students xmln...
阅读(2136) 评论(9)

[置顶] 中国应试教育的反思与变革

前言:犹记得著名的“钱学森之问”:为什么我们的学校总是培养不出杰出人才?钱老在重病之际提出的这个问题,是中国教育乃至国人心中的痛,它振聋发聩,但是至今10年过去了,这种情况依然没有改变。如今,在习总的“大众创业,万众创新”的号召中,引起了对中国应试教育新一轮的反思。 1、什么是应试教育?   百度百科:应试教育指脱离社会发展需要,违背人类自然发展规律,以应付升学考试为目的的教育理念和教...
阅读(1417) 评论(15)

[置顶] 可变参数

前言:提到可变参数可以用函数重载来做一个引子,首先来看一个类 public class ArgsDemo { public static void main(String[] args) { int a = 10; int b = 20; int result = sum(a, b); System.out.println(result); int c = 30; ...
阅读(850) 评论(7)

[置顶] 递归解决斐波那契数列

1、什么是递归?   递归:递归是方法定义调用方法本身的现象。递归举例如下: public class DiGuiDemo { //递归方法举例 public void show() { show(); } } 2、递归的注意事项? (1)递归一定要有出口。否则就会死递归。   上面举例用的递归就是一个死递归,方法永远都在进行自身调用,最终一定会陷入内存崩溃。所...
阅读(1475) 评论(7)

[置顶] 泛型--前世今生

1、什么是泛型?   泛型:任意的类型。是一种把明确数据类型的工作放在了创建对象或者调用方法时候进行的特殊的类型,一般只应用在集合里。   泛型的格式:,举例如下: ArrayList array = new ArrayList();2、为什么有泛型?泛型有什么好处?   为什么有泛型:我们知道,数组只能存储一种数据类型;集合可以存储任意类型的对象,但是我只想让我的存储一种类型,不想让...
阅读(945) 评论(11)

[置顶] 设计模式之--依赖倒置原则

依赖倒置原则 所谓依赖倒置原则,就是不论工厂还是产品都应该依赖于抽象,而不是具体实现类。听起来更像是“针对接口编程,而不是针对实现编程”,但是这里依赖倒置原则更强调“抽象”的概念,不要让高层组件依赖低层组件,更不能依赖具体实现类,都要依赖于抽象。依赖倒置原则的核心在于“面向接口编程”,目的在于”解耦“。 这里的倒置是什么意思呢?依赖倒置原则中的倒置是指我们的思想要和一般的“自顶向下”结构化设计...
阅读(1145) 评论(4)

Turnserver服务器搭建

1. 安装> sudo apt-get install coturn2. 配置turnserver.conf路径: > /etc/turnserver.conf内容: > listening-port=3478 tls-listening-port=5349 > listening-ip=your ip relay-ip=your...
阅读(1533) 评论(6)

Redis

提到redis,首先要谈一下noSQL。 1、什么是noSQL?   NoSQL,泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充。传统关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如:   (1)High performance - 对数据...
阅读(559) 评论(11)

object references an unsaved transient instance

Hibernate报错: 原因是:当更新一个脱管态/持久态对象时,该对象关联了一个临时态对象。 解决方案:要更新谁,就在谁的映射文件中配置cascade属性,cascade取值:save-update,如下: 实例: @Test public void test2(){ //数据准备 CstCustomer c = new CstCustomer();//临时态...
阅读(402) 评论(12)

no currentsessioncontext configured!

使用Hibernate框架时候报错:no currentsessioncontext configured!   这个错误是当我们使用getCurrentSession();时候引起的,原因是currentSession配置错误,与事务有关,当我们使用currentSession的时候需要在hibernate.cfg.xml中进行如下事务配置:   1、如果是本地事务:...
阅读(4276) 评论(10)

动态代理解决网站字符集编码

1、首先看一个装饰模式解决字符集编码问题   我们使用装饰者对request进行增强,从而使得get和post使用request.getParameter()获得的数据没有乱码:   首先来一个Servlet,用于处理客户端请求: package 装饰者模式解决乱码; import java.io.IOException; import javax.servlet.ServletE...
阅读(540) 评论(4)

动态代理

1、什么是动态代理?   动态代理就是在运行时生成一个类,这个类会实现你指定的一组接口,而这个类没有.java文件,是在运行时生成的,你也不用去关心它是什么类型的,你只需要知道它实现了哪些接口即可。   平常实现一个接口需要写一个具体的实现类,而动态代理技术能够在运行期间动态的生成实现指定接口的实现类对象,底层使用的反射原理。在框架中经常使用,例如:Struts1、Struts2、...
阅读(387) 评论(5)

享元模式

1、什么是享元模式?   享元模式(Flyweight Pattern):以共享的方式高效的支持大量的细粒度对象。通过复用内存中已存在的对象,降低系统创建对象实例的性能消耗。   享元的英文是Flyweight,是一个来自体育方面的专业用语,在拳击、摔跤和举重比赛中特指最轻量的级别。把这个单词移植到软件工程中,也是用来表示特别小的对象,即细粒度的对象。至于为什么把Flyweight翻译...
阅读(2003) 评论(5)

命令模式

1、什么是命令模式?   命令模式(Commond Pattern):将来自客户端的请求封装为一个对象,无需了解这个请求激活的动作或有关接受这个请求的处理细节。命令模式的根本目的在于将“请求者”与“实现者”之间解耦。   其实命令模式和其他许多设计模式一样,就是在请求者和实现者中间加一个中间人的角色,来达到解除耦合的目的。通过对中间人的特殊设置,从而形成不同的设计模式,命令模式也不例外...
阅读(432) 评论(4)

迭代器模式

1、什么是迭代器呢?   迭代器是一种取出元素的方式,也就是遍历某一元素集合内元素的方式。我们平常对于数组的遍历方式是通过下角标利用for循环等来操作数据,元素集合不止数组一种,例如还有ArrayList(底层为数组)、LinkedList(底层为链表)、HashSet(使用hash表)等,每一个集合内部的存储结构都是不同的,所以每一个集合存和取都是不一样,那么针对这些集合遍历就要分别使用对应的...
阅读(1469) 评论(2)

抽象工厂模式

抽象工厂模式为创建一组对象提供了一种解决方案。与工厂方法模式相比,抽象工厂模式中的具体工厂不只是创建一种产品,它负责创建一个产品族。抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,其属于对象创建型模式。   抽象工厂模式中包含四个角色:抽象工厂用于声明生成抽象产品的方法;具体工厂实现了抽象工厂声明的生成抽象产品的方法,生成一组具体产品...
阅读(1286) 评论(4)

线程的优先级

1、线程优先级简介   Java中线程可以有优先级的设定,高优先级的线程比低优先级的线程将会获得更高的执行几率,线程的优先级是一个整数,其取值范围是1 (Thread.MIN_PRIORITY ) - 10 (Thread.MAX_PRIORITY )。线程默认的优先级是5。   获取线程优先级:public final int getPriority();   更改线程优先级:pu...
阅读(407) 评论(11)

Daemon线程和Join线程

1、Daemon线程   Daemon线程称为守护线程(非常喜欢这个名字)。线程一旦被设置为守护线程,当非守护线程结束,守护线程即使没有执行完,也必须随之全部结束。例如我们曾经玩儿过的坦克大战,一旦守护的老巢完蛋了,其它守护坦克没死也要结束。   Daemon线程的实质作用是为主线程其他线程的运行提供服务。User Thread线程和Daemon Thread守护线程本质上来说去没啥区...
阅读(550) 评论(11)

计算机病毒

1、计算机病毒的分类            计算机病毒的分类方法有许多种,按照最通用的区分方式,即根据其感染的途径以及采用的技术区分,计算机病毒可分为文件型计算机病毒、引导型计算机病毒、宏病毒和目录型计算机病毒。 2、病毒的感染方式               文件型计算机病毒感染可执行文件(包括exe和com文件);   引导型计算机病...
阅读(805) 评论(14)

线程死锁问题

1、引言   5个哲学家的故事:   5个哲学家去吃饭,菜饭都上齐了,筷子也上了,但是一人只有一只筷子,每个人,先思考一会,把筷子借给别人,然后,别人吃完了,自己再吃。但是假如这5个人都饿了,他们就会拿起自己的筷子,而筷子只有一只,大家都在等待这个别人放下那一只筷子,然后好拿过来吃饭,而没有任何一个人愿意先放下筷子,所以,就出现了死锁。   所以,死锁就是两个线程都掌握着另一个线程下...
阅读(662) 评论(13)
167条 共12页1 2 3 4 5 ... 下一页 尾页
    QQ联系我吧!
    点击这里给我发消息
    个人资料
    • 访问:218239次
    • 积分:7198
    • 等级:
    • 排名:第3520名
    • 原创:166篇
    • 转载:1篇
    • 译文:0篇
    • 评论:1142条
    博客专栏
    JavaWeb

    文章:13篇

    阅读:53901
    设计模式

    文章:7篇

    阅读:6605
    Java

    文章:32篇

    阅读:38020
    C#

    文章:6篇

    阅读:7992
    UML

    文章:5篇

    阅读:10081
    软件工程

    文章:9篇

    阅读:14057
    数据库

    文章:12篇

    阅读:15640