- 博客(164)
- 问答 (1)
- 收藏
- 关注
原创 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
2017-06-15 10:44:04
10844
8
原创 Redis
提到redis,首先要谈一下noSQL。1、什么是noSQL? NoSQL,泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充。传统关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如: (1)High performance - 对数据
2016-08-26 23:55:32
1279
10
原创 object references an unsaved transient instance
Hibernate报错:原因是:当更新一个脱管态/持久态对象时,该对象关联了一个临时态对象。解决方案:要更新谁,就在谁的映射文件中配置cascade属性,cascade取值:save-update,如下:实例: @Test public void test2(){ //数据准备 CstCustomer c = new CstCustomer();//临时态
2016-06-24 10:13:30
2209
13
原创 no currentsessioncontext configured!
使用Hibernate框架时候报错:no currentsessioncontext configured! 这个错误是当我们使用getCurrentSession();时候引起的,原因是currentSession配置错误,与事务有关,当我们使用currentSession的时候需要在hibernate.cfg.xml中进行如下事务配置: 1、如果是本地事务:
2016-06-24 09:58:49
8702
8
原创 动态代理解决网站字符集编码
1、首先看一个装饰模式解决字符集编码问题 我们使用装饰者对request进行增强,从而使得get和post使用request.getParameter()获得的数据没有乱码: 首先来一个Servlet,用于处理客户端请求:package 装饰者模式解决乱码;import java.io.IOException;import javax.servlet.ServletE
2016-06-05 01:04:41
1064
5
原创 动态代理
1、什么是动态代理? 动态代理就是在运行时生成一个类,这个类会实现你指定的一组接口,而这个类没有.java文件,是在运行时生成的,你也不用去关心它是什么类型的,你只需要知道它实现了哪些接口即可。 平常实现一个接口需要写一个具体的实现类,而动态代理技术能够在运行期间动态的生成实现指定接口的实现类对象,底层使用的反射原理。在框架中经常使用,例如:Struts1、Struts2、
2016-06-05 00:47:01
796
6
原创 享元模式
1、什么是享元模式? 享元模式(Flyweight Pattern):以共享的方式高效的支持大量的细粒度对象。通过复用内存中已存在的对象,降低系统创建对象实例的性能消耗。 享元的英文是Flyweight,是一个来自体育方面的专业用语,在拳击、摔跤和举重比赛中特指最轻量的级别。把这个单词移植到软件工程中,也是用来表示特别小的对象,即细粒度的对象。至于为什么把Flyweight翻译
2016-05-23 00:10:08
2570
6
原创 命令模式
1、什么是命令模式? 命令模式(Commond Pattern):将来自客户端的请求封装为一个对象,无需了解这个请求激活的动作或有关接受这个请求的处理细节。命令模式的根本目的在于将“请求者”与“实现者”之间解耦。 其实命令模式和其他许多设计模式一样,就是在请求者和实现者中间加一个中间人的角色,来达到解除耦合的目的。通过对中间人的特殊设置,从而形成不同的设计模式,命令模式也不例外
2016-05-22 21:13:46
835
4
原创 迭代器模式
1、什么是迭代器呢? 迭代器是一种取出元素的方式,也就是遍历某一元素集合内元素的方式。我们平常对于数组的遍历方式是通过下角标利用for循环等来操作数据,元素集合不止数组一种,例如还有ArrayList(底层为数组)、LinkedList(底层为链表)、HashSet(使用hash表)等,每一个集合内部的存储结构都是不同的,所以每一个集合存和取都是不一样,那么针对这些集合遍历就要分别使用对应的
2016-05-10 00:15:58
1856
2
原创 抽象工厂模式
抽象工厂模式为创建一组对象提供了一种解决方案。与工厂方法模式相比,抽象工厂模式中的具体工厂不只是创建一种产品,它负责创建一个产品族。抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,其属于对象创建型模式。 抽象工厂模式中包含四个角色:抽象工厂用于声明生成抽象产品的方法;具体工厂实现了抽象工厂声明的生成抽象产品的方法,生成一组具体产品
2016-05-09 18:47:23
1653
3
原创 线程的优先级
1、线程优先级简介 Java中线程可以有优先级的设定,高优先级的线程比低优先级的线程将会获得更高的执行几率,线程的优先级是一个整数,其取值范围是1 (Thread.MIN_PRIORITY ) - 10 (Thread.MAX_PRIORITY )。线程默认的优先级是5。 获取线程优先级:public final int getPriority(); 更改线程优先级:pu
2016-03-28 19:06:40
771
11
原创 Daemon线程和Join线程
1、Daemon线程 Daemon线程称为守护线程(非常喜欢这个名字)。线程一旦被设置为守护线程,当非守护线程结束,守护线程即使没有执行完,也必须随之全部结束。例如我们曾经玩儿过的坦克大战,一旦守护的老巢完蛋了,其它守护坦克没死也要结束。 Daemon线程的实质作用是为主线程其他线程的运行提供服务。User Thread线程和Daemon Thread守护线程本质上来说去没啥区
2016-03-28 17:36:43
1213
11
原创 计算机病毒
1、计算机病毒的分类 计算机病毒的分类方法有许多种,按照最通用的区分方式,即根据其感染的途径以及采用的技术区分,计算机病毒可分为文件型计算机病毒、引导型计算机病毒、宏病毒和目录型计算机病毒。2、病毒的感染方式 文件型计算机病毒感染可执行文件(包括exe和com文件); 引导型计算机病
2016-03-28 11:04:15
1583
14
原创 线程死锁问题
1、引言 5个哲学家的故事: 5个哲学家去吃饭,菜饭都上齐了,筷子也上了,但是一人只有一只筷子,每个人,先思考一会,把筷子借给别人,然后,别人吃完了,自己再吃。但是假如这5个人都饿了,他们就会拿起自己的筷子,而筷子只有一只,大家都在等待这个别人放下那一只筷子,然后好拿过来吃饭,而没有任何一个人愿意先放下筷子,所以,就出现了死锁。 所以,死锁就是两个线程都掌握着另一个线程下
2016-03-28 10:44:46
969
13
原创 递归解决汉诺塔问题
前言:汉诺塔问题是源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在第三根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。 我们用递归算法来解决这个问题,在解决之前首先介绍一下什么是递归算法。1、递归算法
2016-02-20 15:40:34
1444
4
原创 算法设计
(3)递推递推,即是从已知的初始条件出发,逐次推出所要求的各个中间环节和最后结果。其中初始条件或问题本身已经给定,或是通过对问题的分析与化简而确定。递推的本质也是一种归纳,递推关系式通常是归纳的结果。例如,裴波那契数列,是采用递推的方法解决问题的。(4)递归在解决一些复杂问题时,为了降低问题的复杂程序,通常是将问题逐层分解,最后归结为一些最简单的问题。这种将问题逐层分解的过程,
2016-02-20 10:07:39
928
3
原创 数据流图
1、数据流图简介 数据流图(数据流程图 Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,用于回答软件系统“做什么”的问题,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。2、数据流图基本符号
2016-02-19 10:25:24
2260
5
原创 网络防火墙技术
1、防火墙简介 防火墙有网络防火墙和计算机防火墙的提法。网络防火墙是指在外部网络和内部网络之间设置网络防火墙;计算机防火墙是指在外部网络和用户计算机之间设置防火墙。计算机防火墙也可以是用户计算机的一部分,我们这里说的都是网络防火墙。 所谓网络防火墙是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保
2016-02-18 15:48:59
3328
3
原创 数据安全与保密
1、对称加密技术 对称加密技术:是指加密系统的加密密钥和解密密钥相同,或者虽然不同,但从其中的任意一个可以很容易的推导出另一个。 在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,需要使用同一密钥及相同算法的逆算法解密,使其恢复成明文。在对称加密算法中,使用的密
2016-02-18 14:08:37
1622
3
原创 TCP/IP协议簇
1、TCP/IP协议簇简介 TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议,通过20多年的发展已日渐成熟,并被广泛应用于局域网和广域网中,目前已成为事实上的国际标准。TCP/IP协议簇是一组不同层次上的多个协议的组合,通常被认为是一个四层协议系统
2016-02-17 23:50:06
1619
1
原创 OSI七层模型
1、OSI七层简介 开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。它从低到高分别是:物理层(Physical Layer),数据链路层(Data Link Layer),网络层(N
2016-02-17 22:49:27
971
1
原创 高速缓冲存储器
1、Cache简介 Cache的出现因素:首先,是由于CPU的速度和性能以及发展速度很快但主存速度较低且价格高,第二就是程序执行的局部性特点。因此,将速度比较快而容量有限的SRAM构成Cache,目的在于尽可能发挥CPU的高速度。 在计算机的存储系统体系中,cache是访问速度最快的层次。而就是因为cache总是比主RAM 存储器速度快,所以我们使用cache存储CPU频繁访问
2016-02-17 11:35:47
1504
2
原创 关系代数基本运算
前言:关系代数名称的由来是因为其中含有操作符和操作数,操作数为表,操作符为交、并等。关系代数有分为基于集合的关系代数和基于包的关系代数;关系代数的基本操作有:并、差、除、选择、投影、笛卡尔积等。1、差 定义:差即Difference,用符号-表示,表示两个表中不一样的部分。此种计算需要使得运算的两个表具有相同的字段。例如S1-S2是在S1中而不在S2中的记录的集合
2016-02-16 15:07:14
4944
1
原创 函数依赖及数据库范式
1、函数依赖 (1)简介 定义:设U{A1,A2,…,An}是属性集合,R(U)是U上的一个关系,x、y是U的子集。若对于R(U)下的任何一个可能的关系, 均有x的一个值对应于y的唯一具体值,称y函数依赖于x,记作x→y。 其中x称为决定因素。进而若再有y→x,则称x与y相互依赖,记作x←→y。 函数依赖是从数学角度来定义的,在关系中用来刻画关系各
2016-02-16 12:21:41
3110
2
原创 超键、主键、候选键
1、定义 超键:在关系模式中,能够唯一标识元组的属性集称为超键(super key)。 候选键:在关系模式中,能唯一标识元组并且不包含多余属性的属性集称为候选键。值得注意的是,超键与候选键是有区别的,超键可能含有多余的属性,而候选键不能。 主键:在一个关系的若干个候选键中随意的指定一个作为唯一标识元组的关键字,则此关键字称为主键。三者之间的关系:
2016-02-16 10:47:01
2205
2
原创 虚存管理
1、虚存简介 虚拟存储器又称虚拟存储系统,或虚拟存储体系等,由主存储器和联机工作的外部存储器共同组成。在目前的计算机系统中,主存储器通常用动态随机存储器(DRAM)实现,它的存储容量相对比较小,速度比较快,单位容量的价格比较贵。 联机工作的外部存储器通常为磁盘存储器,它的存储容量很大,与主存储器相比,速度很低,单位容量的价格很便宜。这两个存储器在硬件和系统软件的共同管理下,对于应用程序
2016-02-15 09:53:32
1631
1
原创 有限自动机与语法推导树
1、有限自动机 有限自动机分为不确定的有限自动机和确定的有限自动机。2、确定的有限自动机 只要是有限状态自动机,则必定符合3型文法,且可用正则表达。一个确定的有限状态自动机M(记做DFA)是一个五元组:M=(∑,Q,q0,F,δ),其中: ● Q是一个有限状态合集 ● ∑是一个字母集,其中的每个元素称为一个输入符号
2016-02-13 08:48:00
2398
原创 文法和正规式
1、终结符和非终结符 终结符:不能够单独的出现在推导式左边的符号,是一个原子量,不能够再分解,是最终状态,不能够转换成其他状态,也不能够用其它的几个量进行代替,不能够再推导出其它符号。如a->b就是错的,因为终结符不能在左边。 非终结符:可以理解为一个可以拆分的元素。 一般用大写的字符代表非终结符,小写字母代表终结符。2、文法
2016-02-13 08:04:59
7529
原创 排序算法
前言:我们常用的排序算法有插入排序(直接插入排序、希尔排序)、选择排序(简单选择排序、堆排序)、交换排序(冒泡排序、快速排序)、归并排序、基数排序。1、插入排序 (1)直接插入排序 直接插入排序(InsertionSort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。
2016-02-05 23:41:44
723
1
原创 图
1、图的概念 图由点集合和边集合组成,记做G=(V,E),其中点集合不能为空且应该有穷,边集合可以为空。树是一种特殊的图。但是树可以是空树,图不能是空图。图可以没有边,也就是说n个点也能称之为图。 图分为无向图和有向图,上图中G1就是无向图,G2属于有向图。4是一个孤立顶点,也可以称之为图。 ● 有向图:边有方向,用表示,
2016-02-05 22:46:28
887
原创 平衡二叉树
1、平衡二叉树的出现原因 平衡二叉树的提出原因和排序二叉树有关。是为了提高排序二叉树的查找效率,减少查找次数而提出的。上图的左边是一棵不平衡的二叉树,右边是一棵平衡二叉树。可以得到,在平衡二叉树中的查找时间复杂度要低于非平衡二叉树的时间复杂度。2、平衡二叉树的定义 平衡二叉树(Balanced Binary Tree)
2016-02-05 21:24:02
1295
1
原创 查找二叉树
1、查找二叉树概念 查找二叉树,又称二叉排序树(Binary Sort Tree)。一棵查找二叉树或者是一棵空树,或者满足以下递归条件: (1)查找树的左右子树各是一棵查找树; (2)若查找树的左子树非空,则其左子树上的各节点值均小于根节点的值; (3)若查找树的右子树非空,则其右子树上的各节点值均大于根节点的
2016-02-05 20:59:58
1465
原创 线索二叉树
1、线索二叉树的概念 如果我们需要得到上面二叉树的排序结果时,能够直接得到,而不是每次都去重新排序二叉树的话,效率就会大大得到提高了。线索二叉树就是基于这个理念,将本二叉树的排序事先存储起来,当需要时直接获取结果即可。2、线索二叉树的实现方法 (1)新开辟空间来存储二叉树序列; (2)利用二叉树中未被利用的空间资源;
2016-02-05 20:15:49
785
原创 树和二叉树
1、树 树的遍历分为前序遍历、后序遍历和层次遍历。 ● 前序遍历:在任意子树中,遍历顺序为父节点、左孩子结点、右孩子结点。上图前序遍历顺序为:1 2 5 6 7 3 4 8 9 10 。 ● 后序遍历:在任意子树中,遍历顺序为左孩子结点、右孩子结点、父节点。上图后序遍历顺序为:5 6 7 2 3 9 10 8 4
2016-02-05 19:19:26
647
原创 线性表之--链表、栈、队列
前言:基本的数据结构分类 其中,Hash属于散列存储结构。顺序表在内存中是连续的存储空间;而链式在内存中是逻辑上连续,但空间上可以不连续的。今天来介绍一下线性表。1、线性表分类 链表分为单链表、循环链表和双链表、栈和队列等。2、单链表 单链表节点由数据域和指针域组成,数据域用于存放数据,
2016-02-05 18:31:41
1727
原创 哈希表入门
1、哈希表简介 出现原因:原先的链表、树等查找方式,都需要一个一个的去比较才能找到,查找效率并不高,哈希表的提出就是解决这一问题,哈希表根据要查找的内容进行计算,得出数据的存储地址进而直接访问,大大提高了查找效率。这个运算的过程归纳成一个函数,就是哈希函数。 在有大量的数据的时候,哈希表比普通的顺序查找要快的多。例如查找某人的身份证,普通方式需要比对很多次,直到比对成功,而哈希
2016-02-05 17:24:44
2066
1
原创 Linux 常用命令
一:关机 1:shutdown 语法:shutdown [-efFhknr][-t 秒数][时间][警告信息] 说明:shutdown指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作。使用shutdown命令时在系统将要关机前,系统管理员会通知所有登录的使用者系统将要关闭。而且login指令会被冻结,即新的用户不能再登录。这是最安全的一种关机
2016-02-02 10:21:52
918
原创 类加载器
类加载器1 什么是类加载器类加载器就是用来加载类的东西!类加载器也是一个类:ClassLoader类加载器可以被加载到内存,是通过类加载器完成的!Java提供了三种类加载器,分别是: bootstrap classloader:引导类加载器,加载rt.jar(JDK基本类库)中的类; sun.misc.Launcher$ExtClassLoader:扩展类加载器,加
2016-01-20 10:32:52
1034
15
原创 动态代理
1、实现指定接口 想实现某个接口,你需要写一个类,然后在类名字的后面给出“implements”XXX接口。这才是实现某个接口:public interface MyInterface { void fun1(); void fun2();}public class MyInterfaceImpl implements MyInterface { public
2016-01-20 10:32:22
695
5
原创 Servlet3.0新特性
1、Servlet3.0新特性概述 Servlete3.0的主要新特性如下三部分: ● 使用@WebServlet、@WebFilter、@WebListener三个注解来替代web.xml文件中的Servlet、Filter、Listener的配置; ● Servlet异步处理:当Servlet处理比较费时的问题时,这会让客户感觉到很卡。当使用异常处理时可以把已
2016-01-20 09:41:32
889
6
空空如也
java中为什么BufferedWriter 要比 FileReader高效?
2015-11-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人