自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 资源 (4)
  • 收藏
  • 关注

原创 MVC/MVP/MVVM

MVC的依赖关系MVC出了把应用程序分成View、Model层,还额外的加了一个Controller层,它的职责就是专门管理应用程序的业务逻辑。Model、View、Controller三个层次的依赖关系如下:Controller和View都依赖Model层,Controller和View可以互相依赖。在一些网上的资料Controller和View之间的依赖关系可能不一样,

2016-10-07 20:26:27 1570

原创 二叉树Morris Traversal

常见的二叉树中序遍历有递归和栈循环两种方式,其实还有另一种更为巧妙的遍历方式Morris Traversal。Morris Traversal的空间复杂度为O(1),时间复杂度为O(n)我们知道,在深度搜索遍历的过程中,之所以要用递归或者是用非递归的栈方式,都是因为其他的方式没法记录当前节点的parent,而如果在每个节点的结构里面加个parent 分量显然是不现实的,那么Mo

2016-09-18 14:50:52 979

转载 Java中CAS详解

在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不错的机制

2016-09-17 17:23:34 200245 31

转载 docker入门

Docker是个新生的事物,概念类似虚拟化。网上关于Docker入门的东西已经很多了。不过本文探讨了Docker的特点、特性、原理,还介绍了具有中国特色的安装测试过程,另外还谈到了Docker的社区生态和Dockerfile,并使用Dockerfile构建一个nginx环境。原文:Docker简介与入门缘起在几个月前听说Docker,但是一直没有时间去研究,前一段时间趁着azure

2016-09-17 16:08:58 1016

转载 mvcc机制

我们知道,mysql的innodb采用的是行锁,而且采用了多版本并发控制来提高读操作的性能。什么是多版本并发控制呢 ?其实就是在每一行记录的后面增加两个隐藏列,记录创建版本号和删除版本号,而每一个事务在启动的时候,都有一个唯一的递增的版本号。 1、在插入操作时 : 记录的创建版本号就是事务版本号。 比如我插入一条记录, 事务id 假设是1 ,那么记录如下:也就是说,

2016-09-15 09:38:14 1914

原创 动态规划的一些程序

1、最长公共子串public class sf_dp_LongestCommenSubString { public static void main(String[] args) { // TODO Auto-generated method stub String str1="abcdepoiopswegsdjgnegh"; String str2="bcde

2016-09-10 12:47:41 1019 1

转载 满二叉树、完全二叉树、平衡二叉树、哈夫曼树

满二叉树:除了叶节点外每一个结点都有左右子女且叶节点都处在最底层的二叉树。这个满二叉树应该很好想象,就是一颗非常完美的树,除了叶节点其他节点都有两个孩子。完全二叉树:只有最下面的两层结点度小于2,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树。也就是说,在满叉树的基础上,我在最底层从右往左删去若干节点,得到的都是完全二叉树。所以说,满二叉树一定

2016-09-04 21:15:53 8732

转载 DDos攻击

1 引言巴西世界杯期间,巴西世界杯官网遭黑客DDoS攻击,导致网站服务器宕机数小时。据悉,一个名为“Anonymous”的黑客组织实施了这次攻击。360网站安全专家表示,“现在DDoS攻击很简单,任何一个不懂技术的人都可以发起,已经成为网站最大的安全威胁”。这种攻击方式不但是黑客牟利和商业竞争的一种方式,甚至成为网络对抗的重要手段。到底什么是DDoS攻击?DDoS攻击又该如何防御呢

2016-09-04 11:28:51 844

转载 session和cookie区别

二者的定义:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie里的内容来判断使用者,送出特定的网页内容给你。 Cookie 的使用很普遍,许多有提供个人化服务的网站,都是利用

2016-09-04 11:26:02 537

原创 HTTP和HTTPS区别

一、HTTP和HTTPS的基本概念HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

2016-09-04 11:21:15 1280

原创 Java内存各部分OOM出现原因及解决办法

一,jvm内存区域1,         程序计数器一块很小的内存空间,作用是当前线程所执行的字节码的行号指示器。2,         java栈与程序计数器一样,java栈(虚拟机栈)也是线程私有的,其生命周期与线程相同。通常存放基本数据类型,对象引用(一个指向对象起始地址的引用指针或一个代表对象的句柄),reeturnAddress类型(指向一条字节码指令的地址)栈区

2016-09-02 09:58:37 4737

转载 Java线程池

Java多线程系列--“JUC线程池”01之 线程池架构Java多线程系列--“JUC线程池”02之 线程池原理(一)Java多线程系列--“JUC线程池”03之 线程池原理(二)Java多线程系列--“JUC线程池”04之 线程池原理(三)Java多线程系列--“JUC线程池”05之 线程池原理(四)

2016-09-01 11:12:03 1264

原创 Lock与synchronized 的区别

1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候     线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定,     如果使用 synchronized ,如果A不释放,B将一直等下去,不能被中断     如果 使用ReentrantLock,如果A不释放,可以使B在

2016-09-01 10:05:26 2127 1

转载 checkedexception和uncheckedexception区别

Throwable类是所有异常的始祖,它有两个直接子类Error / Exception: Error仅在Java虚拟机中发生动态连接失败或其它的定位失败的时候抛出一个Error对象。一般程序不用捕捉或抛出Error对象。 Unchecked Exception: a. 指的是程序的瑕疵或逻辑错误,并且在运行时无法恢复。 b. 包括Error与RuntimeException及

2016-08-31 21:23:46 830

转载 JAVA面试问题及答案(上)

1. 面向对象和面向过程的区别面向过程 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 缺点:没有面向对象易维护、易复用、易扩展 面向对象 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易

2016-08-30 16:25:46 6300 4

原创 JAVA中Object类中的方法以及finalize函数作用

Object是所有类的父类,任何类都默认继承Object。一、Object类中的方法1.clone方法保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递,我们有时候不希望在方法里讲参数改变,这是就

2016-08-23 22:09:45 4959 1

转载 Android中view绘制过程

转自:http://blog.csdn.net/yanbober/article/details/46128379/1 背景还记得前面《Android应用setContentView与LayoutInflater加载解析机制源码分析》这篇文章吗?我们有分析到Activity中界面加载显示的基本流程原理,记不记得最终分析结果就是下面的关系:看见没有,如上图中id为co

2016-08-23 21:22:24 579

转载 网络传输的加密与解密

由于互联网早期并没有考虑到数据报文安全的问题,早期的理念都是基于进行通信的。现在随着网络兴起,互联网上慢慢有很多“犯罪团体”,用较低的犯罪成本通常是基于一个网络通信协议的一个小的漏洞来完成窃取、篡改、重播其他人的数据报文。    而往往计算机网络安全维护者和那些恶意攻击者玩的就是一个类似猫鼠游戏,网络安全维护者处处考虑对计算机的安全负责,而恶意攻击者处处找安全的漏洞。而对于那些恶意攻击方式

2016-08-23 19:07:20 5016

转载 Android中使用Handler造成内存泄露的分析和解决

Android中使用Handler造成内存泄露的分析和解决摘要内存泄露,听起来很屌的样子?看了这篇文章,你会发现其实这个概念很简单。Android程序经常出现的一个现象是:内存占用越来越大,到最后用户不得不强行关闭程序来释放内存。导致内存越来越大的原因很多,其中最主要的原因之一,就是Handler使用不当导致的内存泄露。什么是内存泄露?Java使用有向图机制

2016-08-23 10:46:19 358

转载 哪些情况下索引会失效

索引并不是时时都会生效的,比如以下几种情况,将导致索引失效:如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)    注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引  2.对于多列索引,不是使用的第一部分,则不会使用索引  3.like查询是以%开头(以%结尾是可以的)  4.如果列类型是字

2016-08-22 16:42:20 6889

转载 浅析Http框架 - Android-Async-http

现在主流的网络框架越来越多, Volley, okHttp, Android-Async-http. Android-Async-http是出现比较久的网络框架,用的人相当多. 后来Google结合HttpClient和HttpUrlConnection的优点又推出同样优秀的框架Volley.这些都是优秀的框架,值得我们去阅读源码学习. Android-Async-http我用过很长事件,但都没去

2016-08-22 16:32:43 2065

转载 自己实现ORM框架

http://www.cnblogs.com/hegezhou_hot/archive/2010/09/17/1829510.html

2016-08-22 16:06:12 2945

转载 Struts2和springmvc区别

1、Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2的架构实现起来要费劲,因为Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式

2016-08-22 09:48:49 610

原创 MySQL两种引擎的区别

Innodb引擎Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别,关于数据库事务与其隔离级别的内容请见数据库事务与其隔离级别这篇文章。该引擎还提供了行级锁和外键约束,它的设计目标是处理大容量数据库系统,它本身其实就是基于MySQL后台的完整数据库系统,MySQL运行时Innodb会在内存中建立缓冲池,用于缓冲数据和索引。但是该引擎不支持FULLTEXT类

2016-08-19 10:15:32 20534 1

转载 大数相乘、大数相加、大数相减Java版本

题目:两个非常大的数字相乘(相加,相减)       该题目在java中可以使用BigInteger类中的方法来实现。否则的话可以使用如下方式来实现。       大数相乘:假设有A和B两个大数,位数分别为a和b。根据我们平常手动计算乘法的方式可以看出,最终的结果的位数c一定小于等于a+b,我们可以举一个简单的例子来说明,99*999=98901,最终结果是五位(a+b)。下面我们

2016-08-19 09:07:49 874

原创 背包问题(01背包和完全背包)java求解

背包问题主要是指一个给定容量的背包、若干具有一定价值和重量的物品,如何选择物品放入背包使物品的价值最大。其中又分01背包和无限背包,这里主要讨论01背包,即每个物品最多放一个。而无限背包可以转化为01背包。先说一下算法的主要思想,利用动态规划来解决。每次遍历到的第i个物品,根据w[i]和v[i]来确定是否需要将该物品放入背包中。即对于给定的n个物品,设v[i]、w[i]分别为第i个物品的价

2016-08-17 09:37:40 22330 9

转载 提升tomcat服务器性能的七条经验

1. 服务器资源    服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响。    (1) 对于高并发情况下会有大量的运算,那么CPU的速度会直接影响到处理速度。    (2) 内存在大量数据处理的情况下,将会有较大的内存容量需求,可以用-Xmx -Xms -XX:MaxPermSize等参数对内存不同功能块进行划分。我们之前就遇到过内存分配不足,导致虚拟机一直处于ful

2016-08-14 15:11:25 7339

转载 定位服务器瓶颈

瓶颈产生在以下几方面:  1、网络瓶颈,如带宽,流量等形成的网络环境  2、应用服务瓶颈,如中间件的基本配置,CACHE等  3、系统瓶颈,这个比较常用:应用服务器,数据库服务器以及客户机的CPU,内存,硬盘等配置  4、数据库瓶颈,以ORACLE为例,SYS中默认的一些参数设置  5、应用程序本身瓶颈,这个是测试过程中最需要去关注的,需要测试人员和

2016-08-14 14:58:08 2821 1

转载 JAVA反射机制

1.    什么是Java的反射?       要让Java程序能够运行,就得让Java类被Java虚拟机加载。Java类如果不被Java虚拟机加载就不能正常运行。正常情况下,我们运行的所有的程序在编译期时候就已经把那个类被加载了。Java的反射机制是在编译时并不确定是哪个类被加载了,而是在程序运行的时候才加载、探知、自审。使用的是在编译期并不知道的类。这样的编译特点就是java反

2016-08-13 16:41:12 339

原创 Spring中ApplicationContext和beanfactory区别

BeanFacotry是spring中比较原始的Factory。如XMLBeanFactory就是一种典型的BeanFactory。原始的BeanFactory无法支持spring的许多插件,如AOP功能、Web应用等。   ApplicationContext接口,它由BeanFactory接口派生而来,因而提供BeanFactory所有的功能。ApplicationContext以一种更向

2016-08-12 11:13:35 628

转载 Bean的作用域及生命周期

一、Spring Framework支持五种作用域(其中有三种只能用在基于web的Spring ApplicationContext)。 内置支持的作用域分列如下:作用域 描述singleton在每个Spring IoC容器中一个bean定义对应一个对象实例。prototype一个bean定义对应多个对

2016-08-12 10:26:58 480

原创 Hibernate中的缓存机制与可能遇到的问题

一、一级缓存(session级别)概念我们来看看hibernate提供的一级缓存:       /** * 此时会发出一条sql,将所有学生全部查询出来,并放到session的一级缓存当中 * 当再次查询学生信息时,会首先去缓存中看是否存在,如果不存在,再去数据库中查询 * 这就是hibernat

2016-08-11 15:52:08 6739

原创 TCP/UDP区别以及UDP如何实现可靠传输

TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。UDP(User Datagram Protocol)        UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务。并且它是将应用程序发来的数据在收到的那一刻,立刻按照原样发送到网络上的一种机制。        即使是出现网络拥堵的情况下

2016-08-07 11:00:17 13706

转载 滑动窗口机制

(1).窗口机制    滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内的序列号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。下面举一个例子(假设

2016-08-07 10:45:32 496

转载 onSaveInstanceState和onRestoreInstanceState触发的时机

先看Application Fundamentals上的一段话:  Android calls onSaveInstanceState() before the activity becomes vulnerable to being destroyed by the system, but does not bother calling it when the instance is a

2016-08-06 21:13:43 245

原创 二叉树的性质以及二叉查找树的基本操作

1、基本概念树(Tree)是n(n≥0)个结点的有限集。在任意一棵非空树中:(1)有且仅有一个特定的被称为根(Root)的结点;(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,…,Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。度:结点拥有的子树数称为结点的度(Degree)。度为0的结点称为叶子(Leaf)或终端结点。度不为0的结点称

2016-08-06 11:18:28 1629

转载 Memcache总结

Memcached概念:    Memcached是一个免费开源的,高性能的,具有分布式对象的缓存系统,它可以用来保存一些经常存取的对象或数据,保存的数据像一张巨大的HASH表,该表以Key-value对的方式存在内存中。官网下载地址: http://www.memcached.org/运行环境: linux,BSD,windows都可跑协议理论:http://code.sixap

2016-08-05 21:15:29 285

转载 Spring事务配置

Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。    DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为SessionFactory,T

2016-08-05 21:00:13 253

转载 Java RMI

Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。 Java RMI不是什么新技术(在Java1.1的时代都有了),但却是是非常重要的底层技术。大名鼎鼎的EJB都是建立在rmi基础之上的,现

2016-08-05 17:32:20 454

转载 数据库中的乐观锁与悲观锁

在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是关系型数据库系统中有乐观锁和悲观锁的概念,像memcache、hibe

2016-08-05 16:50:55 440

简单ssh2框架程序

简单的ssh整合框架的一个web工程、包含登录、注册、登出3个功能

2016-03-01

jstl标签jar包(jstl-api-1.2和jstl-impl-1.2)

java web开发中必须的jstl标签jar包

2016-02-26

安卓串口开发资源包

开发安卓串口必须的jar包和so文件,直接导入libs目录下可用

2015-11-20

基于B/S的多人聊天java程序

参考了疯狂java写的基于B/S架构的多人聊天软甲 亲测可以用 没有bug !

2015-10-09

空空如也

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

TA关注的人

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