自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 深入浅出数据库索引原理1

前段时间,公司一个新上线的网站出现页面响应速度缓慢的问题, 一位负责这个项目的但并不是搞技术的妹子找到我,让我想办法提升网站的访问速度 ,因为已经有很多用户来投诉了。我第一反应觉的是数据库上的问题,假装思索了一下,摆着一副深沉炫酷的模样说:“是不是数据库查询上出问题了, 给表加上索引吧”,然后妹子来了一句:“现在我们网站访问量太大,加索引有可能导致写入数据时性能下降,影响用户使用的”。当时我就楞了

2017-09-22 10:18:33 267

转载 ConcurrentHashMap详解以及get方法保持同步的解释

ConcurrentHashMap是Java5中新增加的一个线程安全的Map集合,可以用来替代HashTable。对于ConcurrentHashMap是如何提高其效率的,可能大多人只是知道它使用了多个锁代替HashTable中的单个锁,也就是锁分离技术(Lock Stripping)。实际上,ConcurrentHashMap对提高并发方面的优化,还有一些其它的技巧在里面(比如你是否知道在get

2017-09-18 16:03:53 1418 1

转载 HashMap HashTable ConcurrentHashMap key和value是否可以null的问题 源码分析

我们都知道结论是:HashMap可以允许插入null key和null valueHashTable和ConcurrentHashMap都不可以插入null key和null value具体原因可以看下面的源码:首先是HashMap的put源码: [java] view plain copypublic V p

2017-09-18 15:27:12 1510

转载 MySQL索引建立

数据库建立索引常用的规则如下:1、表的主键、外键必须有索引; 2、数据量超过300的表应该有索引; 3、经常与其他表进行连接的表,在连接字段上应该建立索引; 4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 5、索引应该建在选择性高的字段上; 6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引; 7、复合索引的建立需要进行仔细分

2017-09-17 20:21:52 220

转载 java网络编程

网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。java.net 包中 J2SE 的 API 包含有类和接口,它们提供低层次的通信细节。你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节。java.net 包中提供了两种常见的网络协议的支持:TCP:TCP 是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信。通常用于互

2017-09-12 17:26:56 276

转载 Java正则表达式

Java 正则表达式正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。正则表达式实例一个字符串其实就是一个简单的正则表达式,例如 Hello World 正则表达式匹配 "Hello World" 字符串。.(点号)也是一个正则表达式,它匹配任何一个字符如:"a" 或

2017-09-12 09:38:45 213

转载 ConcurrentHashMap实现原理

集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益非浅

2017-09-10 20:55:15 145

转载 HashTable的实现原理

1.概述和 HashMap 一样,Hashtable 也是一个散列表,它存储的内容是键值对。Hashtable 在 Java 中的定义为:public class Hashtable extends Dictionary implements Map, Cloneable, java.io.Serializable{}从源码中,我们可以看出,Hashtabl

2017-09-09 22:02:05 150

转载 HashMap的实现

1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。

2017-09-09 21:36:00 148

转载 mysql外键(Foreign Key)介绍和创建外键的方法

在MySQL中,InnoDB引擎类型的表支持了外键约束。外键的使用条件:1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持);2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立;3.外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和

2017-08-09 20:33:33 510

转载 mysql 注释符号

没有办法,在网上找了找,才发现注释符"--"错了,需要一个空格,应该是"-- ". mysql注释符有三种:1、#...2、"--  ..."3、/*...*/

2017-08-09 20:10:11 562

转载 mysql数据库的三范式的设计与理解

一般的数据库设计都需要满足三范式,这是最基本的要求的,最高达到6NF,但是一般情况下3NF达到了就可以一:1NF一范式的理解:1NF是关系型数据库中的最基本要求,就是要求记录的属性是原子性,不可分,就是属性不能分,这是关系型数据库的基本要求,不满足这个就不能叫关系型数据库了小结:1NF要求属性不可分。例如:讲师 性别 班级 教室 代课时间 代课时间(开始,结

2017-08-07 19:37:04 244

转载 转MySQL索引背后的数据结构及算法原理

本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第一部分主

2017-08-07 18:58:43 373

转载 MySQL引索原理

为什么需要索引(Why is it needed)?当数据保存在磁盘类存储介质上时,它是作为数据块存放。这些数据块是被当作一个整体来访问的,这样可以保证操作的原子性。硬盘数据块存储结构类似于链表,都包含数据部分,以及一个指向下一个节点(或数据块)的指针,不需要连续存储。记录集只能在某个关键字段上进行排序,所以如果需要在一个无序字段上进行搜索,就要执行一个线性搜索(Linear Se

2017-08-07 11:20:10 368

转载 Java的23种设计模式

一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式

2017-08-05 21:56:10 410

转载 转 剑指offer的java实现

Problem2:实现Singleton模式题目描述:设计一个类,我们只能生成该类的一个实例 1 package Problem2; 2 3 public class SingletonClass { 4 5 /* 6 * 题目描述:设计一个类,我们只能生成该类的一个实例 7 */ 8 //volatile:防止指令重排序

2017-07-19 19:08:29 334

转载 转MySQL索引背后的数据结构及算法原理

摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分

2017-07-15 20:58:15 369

转载 转HTTP协议

关于HTTP协议,一篇就够了HTTP简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP是一个属于应用层的面向对象的协议,

2017-07-07 19:15:21 199

转载 Hashtable与ConcurrentHashMap区别

ConcurrentHashMap融合了hashtable和hashmap二者的优势。hashtable是做了同步的,hashmap未考虑同步。所以hashmap在单线程情况下效率较高。hashtable在的多线程情况下,同步操作能保证程序执行的正确性。但是hashtable每次同步执行的时候都要锁住整个结构。看下图:图左侧清晰的标注出来,lock每次都要锁住整个结

2017-07-07 16:39:17 155

转载 转图解TCP/IP 读书笔记

《图解TCP/IP》读书笔记一、国际惯例:书托  这是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TCP/IP的基本知识、掌握TCP/IP的基本技能。   书中讲解了网络基础知识、TCP/IP基础知识、数据链路、IP协议、IP协议相关技术、TCP与UDP、路由协议、应用协议、网络安全等内容,引导读者了解和掌握TCP/IP,营造一个安全的、使用放心的网络环境

2017-07-07 15:08:15 361

转载 TCP长连接保持连接状态(TCP keepalive设置)

转载:http://blog.csdn.net/embedded_sky/article/details/42077321对于TCP长连接保活是十分必要的,原因如下:      1、系统多在OA网和外网间有防火墙隔离,很多防火墙对一段时间内没有报文活动的socket会自动关闭。      2、对于非正常断开的连接系统并不能侦测到,比如防火墙关闭端口、网线被拔掉、电脑突然奔掉

2017-07-07 15:03:03 3272

转载 TCP连接 保持 保活

TCP连接当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的TCP保活的必要性:TCP的长连接理论上只要连接建立后,就会一直保持着。但有时有一些防火墙

2017-07-07 11:29:03 699

转载 平衡二叉树(AVL)的插入操作

平衡二叉树(Balanced binary tree)是由阿德尔森-维尔斯和兰迪斯(Adelson-Velskii and Landis)于1962年首先提出的,所以又称为AVL树。定义:平衡二叉树或为空树,或为如下性质的二叉排序树:  (1)左右子树深度之差的绝对值不超过1;  (2)左右子树仍然为平衡二叉树.      平衡因子BF=左子树深度-右子树深度.

2017-07-07 10:45:13 1066

转载 红黑树

首先,什么是红黑树呢? 红黑树是一种“平衡的”二叉查找树,它是一种经典高效的算法,能够保证在最坏的情况下动态集合操作的时间为O(lgn)。红黑树每个节点包含5个域,分别为color,key,left,right和p。 color是在每个节点上增加的一个存储位表示节点的颜色,可以是RED或者BLACK。key为结点中的value值,left,right为该结点的左右孩子指针,没有的话为NIL,p是一

2017-07-07 10:41:56 205

转载 http响应状态码大全

http状态返回代码 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。http状态返回代码 代码   说明100   (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101   (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。http状态返回代码 2xx (成功)表示成功处理了请求

2017-07-07 09:37:22 266

转载 Array与Arrays的区别

1.数组类Array   Java中最基本的一个存储结构。     提供了动态创建和访问 Java 数组的方法。其中的元素的类型必须相同。     效率高,但容量固定且无法动态改变。     它无法判断其中实际存有多少元素,length只是告诉我们array的容量。2、静态类Arrays    此静态类专门用来操作array ,提供搜索、排序、复制等静态方法。     

2017-07-05 15:41:41 764

原创 HashSet保证元素唯一性

HashSet保证唯一性步骤:Step1:在调用add()方法时,首先调用hashCode()方法计算哈希值,如哈希表中不存在则直接存储;Step2:否则调用equals()方法,若返回false存储,否则不存。注:1.hashSet中的元素或对象所在的类必须重写hashCode()、equals()方法;2.包装类、String、File、Date类都重写了hashCode()、

2017-07-04 17:42:15 248

原创 TreeSet保证元素唯一性

TreeSet 保存数据步骤:Step1:调用add()方法:时,首先(默认情况下属于自然排序)调用compareTo(Object obj)方法,比较比较;Step2:根据返回值得不同存数据;详细情况如下图所示:注:1.TreeSet所添加的元素或对象所在类必须实现comparable接口并重写compareTo(Object obj)方法(自然排序:升序排列)     或实

2017-07-04 17:03:37 595

原创 HashSet与TreeSet的区别

1、HashSet与TreeSet接口的一点不同,HashSet  保存的数据是无序的,TreeSet保存的数据是有序的,所以如果要想保存的数据有序应该使用TreeSet子类。2、利用TreeSet保存自定义类对象的时候,自定义所在的类一定要实现Comparable接口,如果没有实现这个接口那么就无法区分大小关系,而且在TreeSet中如果要进行排序,那么就要将所有的字段都进行比较,就是说

2017-07-04 16:53:21 14040 2

转载 Apache与Tomcat有什么关系和区别

经常在用apache和tomcat等这些服务器,可是总感觉还是不清楚他们之间有什么关系,在用tomcat的时候总出现apache,总感到迷惑,到底谁是主谁是次,因此特意在网上查询了一些这方面的资料,总结了一下:   一 apache支持静态页,tomcat支持动态的,比如servlet等,  一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由tom

2017-07-04 09:43:17 175

转载 Struts2 获取表单数据到实体的三种方法

转自:http://blog.csdn.net/u012804035/article/details/71690365

2017-06-28 22:45:26 157

转载 struts2 在action中获取地址栏的参数

实例:现在jsp页面传递一个名为username的参数到action中链接:http://blog.csdn.net/qq445422083/article/details/8045614

2017-06-28 22:19:34 326

转载 JDK动态proxy原理解析

转之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白。比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的,直到前几个星期才把这些问题全部搞明白了。链接:http://www.cnblogs.com/luoluoshidafu/p/5534910.html

2017-06-27 15:16:19 162

转载 转换异常处理

java.lang.ClassCastException: com.sun.proxy.$Proxy12 cannot be cast to com.sanqing.dao.impl.CommodityClassDAOImplat com.sanqing.test.SanqingTest.(SanqingTest.java:24)at sun.reflect.NativeConstruct

2017-06-27 15:02:35 508

空空如也

空空如也

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

TA关注的人

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