自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java集合类

1 前言Java实用类库中提供一套相当完整的容器类来保存数据对象,其中基本类型有List、Set、Queue和Map;这些对象类型也称为集合类; 对于每种集合类都有自身一些特性;如:Set对于每个值都只保存一个对象;Map是允许你将某些对象与其他一些对象关联起来的关联数组,Java容器类都可以自动调整自己的尺寸;2 基本概念Java容器类类库的用途是“保存对象”,并将其划分为两个

2016-09-26 10:03:10 363

原创 数据结构

1 线性表在讨论线性表之前,我们需要先了解下线性结构特点;1.1 线性结构线性结构特点,在数据元素的非空有限集合中: 存在惟一的一个被称做“第一个”的数据元素; 存在惟一的一个被称做“最后一个”的数据元素; 除第一个之外,集合中的每个元素均只有一个前驱; 除最后一个之外,集合中每个数据元素均只有一个后继; 1.2 线性表线性表是最常用且最简单的一种数据结构,其是n个数据元

2016-09-20 11:33:26 328

转载 HTTPS解析

HTTPS与HTTP  超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。然而,HTTP协议传输的数据都是未加密的,也就是明文的,使HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS

2016-09-19 22:35:19 638

原创 Java类加载机制

1 基础信息 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用Java类型,就是虚拟机的类加载机制 类从被加载到虚拟机内存中开始,到卸载出内存为止,包含:加载、验证、准备、解析、初始化、使用和卸载等7个阶段,称为类生命周期,其中验证、准备、解析3个部分统称为连接 2 Java虚拟机类加载器结构简述2.1

2016-09-06 21:41:29 289

原创 JVM内存模型

了解JVM内存模型,必先了解其内部各个部分的组成! Java虚拟机在执行java程序的过程中会把它管理的内存划分为若干个不同的数据区域;这些区域各自都本身的用途,以及创建和销毁的时间,有些区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。其具体划分如下:现在我们针对每个区域所起用途做个详细的说明: 程序技术器:线程私有,其可以看作是当前线程所执行的字节码的行

2016-09-04 15:29:44 391

转载 Linux监控命令

[01 – iostat]iostat命令显示的是你的存储系统的细节状态。你通常可以用这个命令去检测你的存储设备是否工作正常, 完全可以在用户抱怨服务器慢之前,通过这个命令发现系统IO方面的问题。 如下可以看到iostat既可以显示CPU使用情况,也可以看到每个磁盘的IO情况。 iostat 1 Linux 2.6.32-220.4.1.el6.i686 (roclinux) 2012

2016-07-10 17:58:33 538

转载 spring问题(转)

1.什么是控制反转(IOC)?什么是依赖注入? 控制反转是应用于软件工程领域中的,在运行时被装配器对象来绑定耦合对象的一种编程技巧,对象之间耦合关系在编译时通常是未知的。 在传统的编程方式中,业务逻辑的流程是由应用程序中的早已被设定好关联关系的对象来决定的。在使用控制反转的情况下,业务逻辑的流程是由对象关系图来决定的,该对象关系图由装配器负责实例化,这种实现方式还可以将对象之间的关联

2016-05-22 16:07:06 513

原创 ArrayList

由上文可知,List集合类中有4种具体实现,其中ArrayList是最为猿所知的!1 初始化private transient Object[] elementData;public ArrayList() { this(10);}public ArrayList(int initialCapacity) { super(); if (initialCapacity < 0

2016-09-26 22:29:15 401

原创 单态模式(SingletonPattern)

单态模式: 确保一个类只有一个实例,并提供一个全局访问点毫无疑问,单态模式是java编程过程中最常见也是最常用的模式;其核心就是一个类整个生命周期中就只有一个实例,无论是单线程还是多线程都是只有一个; 在实现方式上有两种:饥汉和饱汉(其实就是初始化的先后顺序): 饥汉式:public class SingletonOther { private static SingletonOt

2016-08-29 22:10:47 494

转载 Java开发岗位面试题归类(转)

一、Java基础String类为什么是final的。HashMap的源码,实现原理,底层结构。说说你知道的几个Java集合类:list、set、queue、map实现类咯。描述一下ArrayList和LinkedList各自实现和区别Java中的队列都有哪些,有什么区别。反射中,Class.forName和classloader的区别Java7、Java8的新特性Java数组和链表两

2016-08-29 21:36:55 542

原创 装饰者模式(DecoratorPattern)

装饰者模式 动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案; 从类图描述我们可以看到装饰者模式的特点: 装饰者和被装饰对象都有相同的超类型 可以用一个或多个装饰者包装一个对象 既然装饰者和被装饰对象有相同的超类型,所以在任何需要原始对象(被包装的)的场合,可以用装饰过的对象代替它 装饰者可以在所委托被装饰者的行为之前或之后

2016-08-16 21:46:42 270

原创 观察者模式(ObserverPattern)

观察者模式 定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新;从上述描述中,我们可知观察者模式主旨是一对多的关系,多个隔离性的对象依赖与一个独特对象,需要获取该对象实时状态;这个情景如同订阅报纸行为: 报社的业务就是出版报纸;(独特功能对象) 向报社订阅报纸,有新报纸出版,就会向你送来报纸,只要你是他们的订户; 当取消订阅时,它

2016-08-16 20:49:12 1037

原创 策略模式(StrategyPattern)

策略模式 定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立与使用算法的客户;说起设计模式之前,我们在OOP时最多使用到的特性无外乎是抽象、组合、继承、多态,这些特性可以帮助我们在编程时减少大量重复工作,对于我们许多编码进行重用;例如我们设计一套模拟鸭子游戏:SimUDuck。在游戏中会出现各种鸭子,会游泳、会叫喊、有各自表现面貌; 这个时候我们通过会设计一个抽象类D

2016-08-02 15:56:21 389

原创 Java内存详解

最近被人问倒了,对于JVM内部内存分类有点模糊了! 主要是对堆内存、栈内存、静态变量区域如何区分、什么时程序变量或者对象是存放在那个区域的呢?在学习JVM虚拟机过程,有一句很重要,JVM虚拟机内存可以分为两种堆区域、非堆区域! 堆区域,就是Java代码可及的内存,是留给开发人员使用的; 非堆区域,JVM留给自己用的,所有方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存

2016-07-11 20:35:40 448

转载 HTTP返回码总结

HTTP协议状态码表示的意思主要分为五类 ,大体是 : 1××   保留 2××   表示请求成功地接收 3××   为完成请求客户需进一步细化请求 4××   客户错误 5××   服务器错误 保留100 Continue 指示客户端应该继续请求。回送用于通知客户端此次请求已经收到,并且没有被服务器拒绝。 客户端应该继续发

2016-07-10 22:45:01 900

原创 hashMap

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

2016-07-10 17:01:09 375

转载 Hibernate缓存机制

N+1问题list()获得对象:/** * 只会与数据库交互一次,查询出来全部信息 */List<XXX> ls = (List<XXX>)session.createQuery("from XXX").setFirstResult(0).setMaxResults(30).list();Iterator<XXX> xxx = ls.iterator();for(;xxx.hasNext(

2016-07-10 16:20:42 224

转载 Hibernate懒加载

在Hibernate框架中,当我们要访问的数据量过大时,明显用缓存不太合适, 因为内存容量有限 ,为了减少并发量,减少系统资源的消耗,这时Hibernate用懒加载机制来弥补这种缺陷,当然性能上不一定提供有可能反而消耗更大。 懒加载也被称为延迟加载,它在查询的时候不会立刻访问数据库,而是返回代理对象,当真正去使用对象的时候才会访问数据库。实现懒加载的前提: 1 实体类不能是final的

2016-07-10 16:04:01 298

原创 Hibernate 查询方式

Hibernate共有三种查询方式:HQL、QBC和SQLHQL 写起来灵活直观,而且与所熟悉的SQL的语法类似。 条件查询、分页查询、连接查询、嵌套查询,包括一些查询函数(count(),sum()等)、查询条件的设定等写起来与SQL语法一致,主要区别就是把表名换成了类或者对象。 注意:在hql中关键字不区分大小写,但是属性和类名区分大小写static void query(St

2016-07-10 15:44:19 290

原创 Interview

1.有一万亿个数字的自然数列,请问你会如何尽量精确地评估它的排序时间?2.请给出一个算法描述,比较两颗二叉树是否相等。(相等的定义:它们的值和结构相同)?3.对一个一维数组使用二分查找法,请问该数组需要满足什么前提条件?4.请用一系列的类来设计一个扑克游戏,并给出类名和描述?5.如果大楼里只有一部电梯,你会如何改变这个设计?如果有两部电梯呢?请陈述你的依据?6.目前存在多个系统,在这些系统上都存在下

2016-06-26 22:30:24 825

转载 秒杀系统架构优化思路(转)

上周参加Qcon,有个兄弟分享秒杀系统的优化,其观点有些赞同,大部分观点却并不同意,结合自己的经验,谈谈自己的一些看法。一、为什么难 秒杀系统难做的原因:库存只有一份,所有人会在集中的时间读和写这些数据。 例如小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万。 又例如12306抢票,亦与秒杀类似,瞬时流量更甚。二、常见架构流量到了亿级别,常见站点架构如上

2016-06-26 21:46:37 375

原创 struts1.x、struts2.x、Spring MVC原理总结

Struts1原理 初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象。(面向对象思想) 发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web

2016-06-06 17:23:17 1118

原创 Spring mvc注解

@Controller Controller控制器是通过服务接口定义的提供访问应用程序的一种行为,它解释用户的输入,将其转换成一个模型然后将试图呈献给用户。Spring MVC 使用 @Controller 定义控制器,它还允许自动检测定义在类路径下的组件并自动注册。<context:component-scan base-package="org.springframework.sample

2016-06-05 22:21:50 370

原创 Spring问题2

Spring AOP和Aspectj的区别 Spring AOP采用动态代理的方式,在运行期生成代理类来实现AOP,不修改原类的实现; Aspectj使用编译期字节码织入(weave)的方式,在编译的时候,直接修改类的字节码,把所定义的切面代码逻辑插入到目标类中 Spring aop可以对其它模块正常编译出的代码起作用,Aspectj需要对其他模块使用acj重新编译 Sprin

2016-06-05 21:31:46 333

转载 Hibernate与Mybatis对比(转)

概述 Hibernate:Hibernate是当前最流行的ORM框架之一,对JDBC提供了较为完整的封装。Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL的自动生成和执行。 Mybatis:Mybatis同样也是非常流行的ORM框架,主要着力点在于 POJO 与 SQL 之间的映射关系。然后通过映射配置文件,将SQL所需的参数,以及返回的结果字

2016-06-05 20:35:40 745

转载 JVM内存组成及分配 (转)

java内存组成介绍:堆(Heap)和非堆(Non-heap)内存按照官方的说法: “Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。” “在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。 可以看出JVM主要管理两种类型的内存:堆和非堆。 简单来说堆就是Java代码可及的内存,是留

2016-05-22 14:55:47 284

转载 Spring实现AOP的4种方式(转)

Spring实现AOP的4种方式AOP的相关术语: 通知(Advice): 通知定义了切面是什么以及何时使用。描述了切面要完成的工作和何时需要执行这个工作。 连接点(Joinpoint): 程序能够应用通知的一个“时机”,这些“时机”就是连接点,例如方法被调用时、异常被抛出时等等。 切入点(Pointcut) 通知定义了切面要发生的“故事”和时间,那么切入点就定义

2016-05-22 14:34:43 2419

转载 Spring、Spring MVC、Struts2、Strut1(转加整理)

SpringSpring是一个轻量级的DI和AOP容器框架。轻量级 轻量级重量级某种程度上是以启动程序需要的资源来决定。比如,EJB启动的时候,需要消耗大量的资源,内存,CPU等,所以是重量级。而Spring则不,所以是轻量级框架。专业点说就是量级主要是看对容器的依赖性所决定的,依赖性越小,越轻量. (本人认为轻量级判断标准,是其初始化时所需的资源多寡、运行或者开发过程中程序依赖框架程度、

2016-05-22 13:47:43 1027

原创 数据库语言

DML(Data Manipulation Language,数据操作语言):用于检索或者修改数据。 SELECT:用于检索数据; INSERT:用于增加数据到数据库; UPDATE:用于从数据库中修改现存的数据 DELETE:用于从数据库中删除数据。 DDL(Data Definition Language,数据定义语言): 用于定义数据的结构,比如 创建、修改或者删

2016-05-19 22:56:09 505

原创 事务

事务四大特性:原子性、一致性、持续性、隔离性 原子性,事务操作具有原子性,要么全部完成,要么全部回退; 一致性,事务操作对象状态是一致,不受事务操作影响; 持续性,事务操作结果在没有外力影响下,其是持久不变的; 隔离性,多个事务之间操作是不相干扰的; 事务隔离级别:一个事务对数据库的修改与并行的另一个事务的隔离程度;两个并发事务同时访问数据库表相同行时,可能存在以下三个问

2016-05-19 22:48:23 328

原创 web基础

jsp内置对象:JSP共以下9种基本内置对象 request对象,客户端请求,此请求会包含来自GET/POST请求的参数通过它才能了解到客户的需求,然后做出响应。 response对象 ,响应客户请求的关信息. session对象,它指的是客户端与服务器的一次会话,从客户端连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。 out对象,它是J

2016-05-19 22:45:07 282

原创 XMLHTTPRequest

异步JavaScript与XML(AJAX)是一个专用术语,用于实现在客户端脚本与服务器之间的数据交互过程。这一技术的优点在于,它向开发者提供了一种从Web服务器检索数据而不必把用户当前正在观察的页面回馈给服务器。对象的属性和方法: 属性 说明 readyState 表示XMLHttpRequest对象的状态:0:未初始化。对象已创建,未调用open;1:open方法成功调用,但Sen

2016-05-19 22:43:35 242

原创 servlet

Servlet生命周期分为三个阶段: 初始化阶段 ,调用init()方法 响应客户请求阶段,调用service()方法 终止阶段,调用destroy()方法 Servlet初始化阶段 在下列时刻Servlet容器装载Servlet: 1. Servlet容器启动时自动装载某些Servlet,实现它只需要在web.XML文件中的<Servlet></Servlet>之

2016-05-18 23:36:34 253

原创 进程、线程、锁

进程、线程、线程池、线程安全进程 一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包含打开的文件、子进程和信号处理;进程主要包含的表示进程的java.lang.Process类和创建进程的java.lang.ProcessBuilder类;线程 表示程序的执行流程,是CPU调度执行的基本单

2016-05-18 23:23:48 3253

原创 TCP/IP协议簇

TCP/IP协议集包括应用层,传输层,网络层,网络访问层。1.应用层包括: 超文本传输协议(HTTP):万维网的基本协议. 文件传输(TFTP简单文件传输协议): 远程登录(Telnet),提供远程访问其它主机功能,它允许用户登录 internet主机,并在这台主机上执行命令. 网络管理(SNMP简单网络管理协议),该协议提供了监控网络设备的方法,

2016-05-18 23:04:41 357

原创 过滤器和拦截器

过滤器和拦截器的区别:   ①拦截器是基于java的反射机制的,而过滤器是基于函数回调。   ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。   ③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。   ④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。   ⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容

2016-05-18 22:55:37 245

原创 Session与Cookie

cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案;cookie机制 正统的cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器照指示生成相应的cookie。然而纯粹的客户端脚本如JavaScript或者VBScript也可以生成cookie。而cookie的使用是由浏览器照一定的原则在后台

2016-05-18 22:51:52 242

原创 JVM学习

jvm管理的内存叫堆,初始分配和最大分配的内存由-Xms-Xmx指定;GC基本收集算法 1.复制:将堆内分成两个相同空间,从根(ThreadLocal的对象,静态对象)开始访问每一个关联的活跃对象,将空间A的活跃对象全部复制到空间B,然后一次性回收整个空间A; 因为只访问活跃对象,将所有活动对象复制走之后就清空整个空间,不用去访问死对象,所以遍历空间的成本较小,但需要巨大的复制成本和较

2016-05-18 22:47:15 247

原创 Java基础要点总结

java 基础

2016-05-16 23:06:28 493

空空如也

空空如也

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

TA关注的人

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