自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sunshine_silence的博客

虽然目前我是一只菜鸟,但是我有一颗成为大神的心。。。

  • 博客(130)
  • 资源 (1)
  • 收藏
  • 关注

转载 数据库访问性能优化

特别说明:1、  本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识;2、  本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也可以参考,但许多观点不适合于KV数据库或内存数据库或者是基于SSD技术的数据库;3、  本文未深入数据库优化中最核心的执行计划分析技术。 读者对像:开发人员:如果你是做数据库开发,那本文的内容非常适合,因...

2018-05-29 14:39:26 402

转载 快速理解Java中的五种单例模式

解法一:只适合单线程环境(不好)package test;/** * @author xiaoping * */public class Singleton { private static Singleton instance=null; private Singleton(){ } public static Singleton ge...

2018-05-22 10:56:25 250

转载 ConcurrentHashMap原理分析

一、出现背景     1、线程不安全的HashMap     因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。2、效率低下的HashTable容器     HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线程访问HashTabl...

2018-05-17 10:40:47 1672 1

转载 Java中如何遍历Map对象的4种方法

方法一 在for-each循环中使用entries来遍历这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。[java] view plain copyMap<Integer, Integer> map = new HashMap<Integer, Integer>();    for (Map.Entry<Integer, Integer>...

2018-05-16 13:44:35 411

转载 JDK1.8 HashMap源码分析

一、HashMap概述      在JDK1.8之前,HashMap采用数组+链表实现,即使用链表处理冲突,同一hash值的节点都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用数组+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树,这样大大减少了查找时间。      下图中代表jdk...

2018-05-16 13:42:43 208

转载 java集合框架综述

一、集合框架图简化图:说明:对于以上的框架图有如下几点说明1.所有集合类都位于java.util包下。Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。2. 集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。3. 抽象类:5个抽象类(长虚线表示),对集合接口的部分实...

2018-05-15 10:01:31 181

转载 深入理解HashMap

Hash哈希,译作散列,或哈希。就是把任意长度的输入,通过散列算法(hash算法),变换成固定长度的输出,这个输出的值就是哈希值。显然这是一个映射的过程。hashCode()再来看一看HashCode,这是一个方法,该方法返回一个特殊的值,在java中会返回一个整数,用来判断是否是两个相同的对象,和equals方法有紧密的联系:HashCode主要用于提供快捷的查找,在HashTable和Hash...

2018-05-15 09:32:07 176

转载 Java集合之HashSet

1.HashSet概述:  HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。HashSet中不允许有重复元素,这是因为HashSet是基于HashMap实现的,HashSet中的元素都存放在HashMap的key上面,而value中的值都是统一的一个private static fin...

2018-05-15 09:19:54 151

转载 HashTable和HashMap的区别详解

一、HashMap简介      HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。      HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。      HashMap 实现了Serializable接口,因此它支...

2018-05-10 10:33:22 133

转载 Java集合之HashMap

1. HashMap概述:  HashMap是基于哈希表的Map接口的非同步实现(Hashtable跟HashMap很像,唯一的区别是Hashtalbe中的方法是线程安全的,也就是同步的)。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。四个关注点在HashMap上的答案关注点结论HashMap是否允许空Key和Value都允许为...

2018-05-10 09:51:34 140

转载 LinkedHashMap

一、初识LinkedHashMap上篇文章讲了HashMap。HashMap是一种非常常见、非常有用的集合,但在多线程情况下使用不当会有线程安全问题。大多数情况下,只要不涉及线程安全问题,Map基本都可以使用HashMap,不过HashMap有一个问题,就是迭代HashMap的顺序并不是HashMap放置的顺序,也就是无序。HashMap的这一缺点往往会带来困扰,因为有些场景,我们期待一个有序的M...

2018-05-08 16:46:04 1424

转载 初识HashMap

初识HashMap之前的List,讲了ArrayList、LinkedList,最后讲到了CopyOnWriteArrayList,就前两者而言,反映的是两种思想:(1)ArrayList以数组形式实现,顺序插入、查找快,插入、删除较慢(2)LinkedList以链表形式实现,顺序插入、查找较慢,插入、删除方便那么是否有一种数据结构能够结合上面两种的优点呢?有,答案就是HashMap。HashMa...

2018-05-08 11:35:29 149

转载 LinkedList

初识LinkedList上一篇中讲解了ArrayList,本篇文章讲解一下LinkedList的实现。LinkedList是基于链表实现的,所以先讲解一下什么是链表。链表原先是C/C++的概念,是一种线性的存储结构,意思是将要存储的数据存在一个存储单元里面,这个存储单元里面除了存放有待存储的数据以外,还存储有其下一个存储单元的地址(下一个存储单元的地址是必要的,有些存储结构还存放有其前一个存储单元...

2018-05-08 11:33:59 136

转载 ArrayList

前言这个分类中,将会写写Java中的集合。集合是Java中非常重要而且基础的内容,因为任何数据必不可少的就是该数据是如何存储的,集合的作用就是以一定的方式组织、存储数据。这里写的集合,一部分是比较常见的、一部分是不常用但是我个人平时见到过的,一些比较相似的集合(比如HashMap和Hashtable)就只讲一个,突出它们之间的区别即可。最后,要指出一点,对于集合,我认为关注的点主要有四点:1、是否...

2018-05-08 11:16:14 357

转载 HashCode的作用

前言Object提供给我们了一个Native的方法“public native int hashCode();”,本文讲讲Hash是什么以及HashCode的作用Hash先用一张图看下什么是HashHash是散列的意思,就是把任意长度的输入,通过散列算法变换成固定长度的输出,该输出就是散列值。关于散列值,有以下几个关键结论:1、如果散列表中存在和散列原始输入K相等的记录,那么K必定在f(K)的存储...

2018-05-08 09:54:08 157

转载 Mybatis学习总结(九)——查询缓存

一、什么是查询缓存mybatis提供查询缓存,用于减轻数据压力,提高数据库性能。mybaits提供一级缓存和二级缓存。1、一级缓存是sqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap),用于存储缓存数据。不同的sqlSession之间的缓存区域(HashMap)是互不影响的。2、二级缓存是mapper级别的缓存,多个sqlSess...

2018-04-26 16:24:14 158

转载 Mybatis学习总结(八)——延迟加载

一、什么是延迟加载resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。需求:如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。延迟加载:先从单表查询、需要时再从关联表去关联查询,大大提高...

2018-04-26 16:23:08 275 1

转载 Mybatis学习总结(七)——调用存储过程

一、返回select结果集1、创建存储过程DELIMITER //DROP PROCEDURE IF EXISTS proc_queryUser;CREATE PROCEDURE proc_queryUser( IN user_name VARCHAR(50) CHARACTER SET utf8)BEGIN SET @exeSql = CONCAT('SELECT id,...

2018-04-26 16:04:16 168

转载 Mybatis学习总结(六)——高级映射(一对一,一对多,多对多)

一、订单商品数据模型1、数据库执行脚本创建数据库表代码:/*Table structure for table `t_user` */CREATE TABLE t_user ( id INT NOT NULL AUTO_INCREMENT, username VARCHAR(32) NOT NULL COMMENT '用户名称', birthday DATE DEFAULT NULL...

2018-04-26 16:03:23 326

转载 Mybatis学习总结(五)——动态sql

MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。名词解析:OGNL表达式OGNL,全称为Object-Graph Navigation Language,它是一个功能强大的表达式语...

2018-04-26 16:02:35 172

转载 Mybatis学习总结(四)——输入映射和输出映射

 在前面几篇文章的例子中也可以看到mybatis中输入映射和输出映射的身影,但是没有系统的总结一下,这篇博客主要对这两个东东做一个总结。我们知道mybatis中输入映射和输出映射可以是基本数据类型、hashmap或者pojo的包装类型,这里主要来总结一下pojo包装类型的使用,因为这个在开发中比较常用。1、输入映射     输入映射,是在映射文件中通过parameterType指定输入参数的类型,...

2018-04-26 16:01:51 290

转载 Mybatis学习总结(三)SqlMapConfig.xml全局配置文件解析

 经过上两篇博文的总结,对mybatis中的dao开发方法和流程基本掌握了,这一节主要来总结一下mybatis中的全局配置文件SqlMapConfig.xml在开发中的一些常用配置,首先看一下该全局配置文件中都有哪些可以配置的东西:配置内容作用<properties>用来加载属性文件<settings>用来设置全局参数<typeAliases>用来设置类型的别名...

2018-04-26 09:45:17 166

转载 Mybatis学习总结(二)Mapper代理开发

一、概要1、原始DAO开发中存在的问题:(1)DAO实现方法体中存在很多过程性代码。(2)调用SqlSession的方法(select/insert/update)需要指定Statement的id,存在硬编码,不利于代码维护。2、Mapper动态代理方法:程序员只需要写dao接口(Mapper),而不需要写dao实现类,由mybatis根据dao接口和映射文件中statement的定义生成接口实现...

2018-04-26 09:43:19 139

转载 Mybatis学习总结(一)——入门基础

一、Mybatis介绍1.MyBatis是什么?   MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。  MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 S...

2018-04-24 13:47:25 182

转载 springmvc源码分析——入门看springmvc的加载过程

本文将分析springmvc是如何在容器启动的时候将各个模块加载完成容器的创建的。我知道在web.xml文件中我们是这样配置springmvc的:可以看到,springmvc的核心控制器就是DispatcherServlet。看下DispatcherServlet的继承关系:HttpSerlvetBean继承自HttpServlet。HttpServletBean覆写了init方法,对初始化过程做...

2018-04-18 15:30:37 234

转载 SpringMVC异常处理方式

一、描述     在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常,系统的代码耦合度高,工作量大且不好统一,维护的工作量也很大。 那么,能不能将所有类型的异常处理从各处理过程解耦出来,这样既保证了相关处理过程的功能较单一,也实现了异常信息的统一处理和维护?答案是肯定的。下面...

2018-04-18 15:29:13 252

转载 SpringMVC拦截器的使用

SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判断当前时间是否是购票时间。一、springMVC拦截器的实现方式springMVC拦截器的实现一般有两种方式:第一种方式是要定义的Interceptor类要实现了Spring的HandlerIn...

2018-04-18 15:28:24 157

转载 SpringMVC工作原理

SpringMVC的工作原理图:SpringMVC流程1、  用户发送请求至前端控制器DispatcherServlet。2、  DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、  处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、  Dispa...

2018-04-18 15:26:45 108

转载 springmvc请求参数获取的几种方法

1、直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交。 /** * 1.直接把表单的参数写在Controller相应的方法的形参中 * @param username * @param password * @return */ @RequestMapping("/addUs...

2018-04-18 15:25:31 134

转载 springmvc与Ajax交互

Jsp页面:需要引入jquery-1.10.2.min.js、json2.js、jquery.json-2.3.js三个文件<%@ page contentType="text/html; charset=utf-8" language="java" errorPage=""%><%@ taglib prefix="c" uri="http://java.sun.co

2018-04-18 15:23:24 115

转载 springmvc 注解总结

1、@RequestMapping@RequestMappingRequestMapping是一个用来处理请求地址映射的注解(将请求映射到对应的控制器方法中),可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。RequestMapping请求路径映射,如果标注在某个controller的类级别上,则表明访问此类路径下的方法都要加上其配置的路径;最常用是标注在方法上,表...

2018-04-18 15:10:40 183

转载 SpringMVC+Spring+Mybatis框架集成

一、基本概念1.Spring     Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事...

2018-04-18 15:08:48 339 1

转载 依赖注入的方式

一、依赖注入方式      对于spring配置一个bean时,如果需要给该bean提供一些初始化参数,则需要通过依赖注入方式,所谓的依赖注入就是通过spring将bean所需要的一些参数传递到bean实例对象的过程,spring的依赖注入有3种方式:·使用属性的setter方法注入 ,这是最常用的方式;·使用构造器注入;·使用Filed注入(用于注解方式)。1.使用属性注入     属性注入即通...

2018-04-12 11:03:21 422

转载 对Spring IOC的理解

学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IOC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解。一、分享Iteye的开涛对Ioc的精彩讲解首先要分享的是Iteye的开涛这位技术牛人对Spring框架的...

2018-04-12 10:12:16 119

转载 Spring常用注解总结

传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop、事物,这么做有两个缺点:1、如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大;如果按需求分开.xml文件,那么.xml文件又会非常多。总之这将导致配置文件的可读性与可维护性变得很低。2、在开发中在.java文件和.xml文件之间不断切换,是一件麻烦的事,同时这种思维上的不连贯也会降低开发的效率。为了解决...

2018-04-11 16:11:44 151

转载 WebSocket心跳机制和代码

本文主要讲的是如果设计websocket心跳已经需要考虑哪些问题。前言在使用websocket的过程中,有时候会遇到客户端网络关闭的情况,而这时候在服务端并没有触发onclose事件。这样会:多余的连接服务端会继续给客户端发数据,这些数据会丢失所以就需要一种机制来检测客户端和服务端是否处于正常连接的状态。这就是websocket心跳,这个名字非常生动形象,还有心跳说明还活着(保持正常连接),没有心...

2018-03-21 16:45:44 2350

转载 两个项目之间如何通信

不同项目之间的通信方式分为,http、socket、webservice;其中socket通信的效率最高,youtube就采用的是原始的socket通信,他们信奉的原则是简单有效。一、http通信:    Http通信主要有两种方式POST方式和GET方式。前者通过Http消息实体发送数据给服务器,安全性高,数据传输大小没有限制,后者通过URL的查询字符串传递给服务器参数,以明文显

2017-12-11 11:47:22 12870

转载 Android项目文件及应用程序—目录结构详解

目录结构    今天要介绍的就是android的目录结构,在建立新项目的过程中,ADT会自动建立一些目录和文件,这些目录和文件有其固定的作用,有的允许修改,有的不能修改。一个新创建的Android项目,项目结构包含src目录、gen目录、assets目录、res目录、库文件android.jar、以及三个项目工程文件AndroidManifest.xml、default.properties、

2017-09-20 16:52:11 2703

转载 我的第一个Android应用程序HelloWorld

我的第一个Android应用程序HelloWorld   本篇主要介绍如何使用Eclipse创建一个基本的Android应用程序, 及程序中相关文件及文件夹介绍。在开始创建项目前你必须确认:你的ADT和SDK已经配置完成。   一.创建程序前的准备 模拟器的创建;模拟器是程序运行后显示的界面。

2017-09-20 16:44:41 6770

转载 五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程

引言 在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭建,文章写的尽量详细,希望对准备进入Android开发的朋友有帮助。 本教程将分为五个步骤来完成Android开发环境的部署。第一步:安装JDK。第二步:配置Windows上

2017-09-20 16:42:07 450

freemaker-2.3.22.jar

freemaker-2.3.22.jar

2016-09-30

空空如也

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

TA关注的人

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