自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 线程池

什么是线程池?如果让你设计一个动态大小的线程池,如何设计,应该有哪些方法? 什么是线程池 线程池顾名思义就是事先创建若干个可执行的线程放入一个池(容器)中,需要的时候从池中获取线程不用自行创建,使用完毕不需要销毁线程而是放回池中,从而减少创建和销毁线程对象的开销。设计一个动态大小的线程池,如何设计,应该有哪些方法 一个线程池包括以下四个基本组成部分: 线程管理器(ThreadPool)

2016-06-27 22:29:19 1724

转载 Java中的NIO,BIO,AIO定义

BIO 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。 BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序直观简单易理解。NIO 同步非阻塞,服务器实现模式为一个请求一个线程,即客户

2016-06-27 22:07:23 652

转载 Jsp与servlet的区别

JSP在本质上就是SERVLET,但是两者的创建方式不一样.Servlet完全是JAVA程序代码构成擅长于流程控制和事务处理而通过Servlet来生成动态网页;JSP由HTML代码和JSP标签构成,可以方便地编写动态网页因此在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页.在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层.JSP是Ser

2016-06-27 11:43:38 433

原创 Servlet学习

Servlet 生命周期 Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:Servlet 通过调用 init () 方法进行初始化。Servlet 调用 service() 方法来处理客户端的请求。Servlet 通过调用 destroy() 方法终止(结束)。最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。init() 方

2016-06-27 11:19:21 456

原创 Servlet 与 CGI 的比较

和CGI程序一样,Servlet可以响应用户的指令(提交一个FORM等等),也可以象CGI程序一样,收集用户表单的信息并给予动态反馈(简单的注册信息录入和检查错误)。 然而,Servlet的机制并不仅仅是这样简单的与用户表单进行交互。传统技术中,动态的网页建立和显示都是通过CGI来实现的,但是,有了Servlet,您可以大胆的放弃所有CGI(perl?php?甚至asp!),利用Servlet

2016-06-27 09:54:23 508

转载 网络协议系列之:TCP连接的建立与释放

TCP连接的建立(三次握手)1> 客户端发送(主动)一个SYN给服务端(相当于告诉服务端,我要打开连接了,你注意一下)。客户端的状态变化:CLOSED–> SYN_SENT,服务端状态变化:CLOSED–>LISTEN; 2> 服务端收到SYN报文,发送SYN+ACK两个报文给客户端,其中ACK报文是对客户端发来的SYN报文的确认(相当于告诉客户端,我收到你的连接请求了)。而这里的SYN报文则是

2016-06-26 15:38:28 479

转载 网络协议系列之二:HTTP(2)

这篇文章继续对HTTP协议进行说明。一个http事务包括客户向HTTP服务器发送请求以及服务器向客户端发送响应两个过程。根据事务的特点,这两个过程具有原子性,任何一个过程失败都会进行回滚(恢复事务之前的状态)。从请求与响应的角度出发,http的知识点都是围绕这两个角度展开的。每次客户的请求都会向服务器发送一个请求报文,请求报文的结构包括请求行、首部行、空行和请求体,一个http响应包括响应行、首部行

2016-06-26 15:02:13 696

转载 网络协议系列之一:HTTP(1)

HTTP协议是web开发必须掌握的协议之一,文章的内容并没有按照教科书式对协议本身进行说明。这里特意将一些web开发遇到的常见问题进行了总结。也方便以后自己开发进行迅速查阅。1、Http的报文结构 http的报文分为请求报文和响应报文,请求报文结构包括:请求行、请求头、请求体;响应报文结构包括响应行、响应头、响应体。下图简要表示了请求报文的结构: 下面是我输入www.baidu.com获

2016-06-26 14:57:01 881

转载 SpringMVC工作原理

上面的是springMVC的工作原理图:1、客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet.2、DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL、Http方法、请求报文头和请求参数Cookie等)以及

2016-06-25 22:03:49 651

原创 spring的事务管理有几种方式实现,如何实现

Spring+Hibernate的实质: 就是把Hibernate用到的数据源Datasource,Hibernate的SessionFactory实例,事务管理器HibernateTransactionManager,都交给Spring管理。那么再没整合之前Hibernate是如何实现事务管理的呢? 通过ServletFilter实现数据库事务的管理,这样就避免了在数据库操作中每次都要进行数据

2016-06-25 20:49:25 21701

转载 Java后台-面试问题汇总:历时20天,主流互联网公司面试经历

本人Java开发,3年经验,7月初来到帝都,开启面试经历,前后20天左右,主面互联网公司,一二线大公司或者是融资中的创业公司都面试过,拿了一些offer,最后综合决定还是去360了。 不同面试官面试风格一定不同,我这里就是总结这些天面试Java开发过程中的大多数问题,综合分类有Java基础,框架,多线程,网络通信,Linux,数据库,设计模式,算法,缓存等几个模块,由于问题太多,下面先列出问题,之

2016-06-25 09:53:36 12809 2

原创 java垃圾收集描述

java的垃圾收集机制主要针对新生代和老年代的内存进行回收,不同的垃圾收集算法针对不同的区域。所以java的垃圾收集算法使用的是分代回收。一般java的对象首先进入新生代的Eden区域,当进行GC的时候会回收新生代的区域,新生代一般采用复制收集算法,将活着的对象复制到survivor区域中,如果survivor区域装在不下,就查看老年代是否有足够的空间装下新生代中的对象,如果能装下就装下,否则老年代

2016-06-24 09:21:23 503

转载 触发Full GC执行的情况

除直接调用System.gc外,触发Full GC执行的情况有如下四种。 1. 旧生代空间不足 旧生代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象,当执行Full GC后空间仍然不足,则抛出如下错误: java.lang.OutOfMemoryError: Java heap space 为避免以上两种状况引起的Full GC,调优时应尽量做到让对象在Minor GC

2016-06-23 18:06:49 913

原创 Java 序列化Serializable详解(附详细例子)

1、什么是序列化和反序列化 Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。2、什么情况下需要序列化 a)当你想把的内存中的对象保存到一个文件中或者数据库中时候; b)当你想用套接字在网络上传送对象的时候; c)当你想通过RMI传输对象的时候;3、如何实现序列化将需要序列化的类实现Seri

2016-06-20 23:00:31 339

原创 Servlet的生命周期分为3个阶段:? 和CGI的区别

Servlet的生命周期主要由3个过程组成。(1)init()方法:服务器初始化servlet。(2)service()方法:初始化完毕,servlet对象调用该方法响应客户的请求。(3)destroy()方法:调用该方法消灭servlet对象。其中,init()方法只在servlet第一次被请求加载的时候被调用一次,当有客户再请求servlet服务时,web服务器将启动一个新的线程,在该线程中,调

2016-06-20 21:35:51 1695

原创 简述spring 的事务传播行为和 隔离级别

spring 的事务传播行为: Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播:  PROPAGATION_REQUIRED:如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。  PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务

2016-06-20 20:19:21 945

原创 java 是如何进行异常处理的

Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try

2016-06-20 20:16:37 524

原创 描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理

Session用于保存每个用户的专用信息. 每个客户端用户访问时,服务器都为每个用户分配一个唯一的会话ID(Session ID) . 她的生存期是用户持续请求时间再加上一段时间(一般是20分钟左右).Session中的信息保存在Web服务器内容中,保存的数据量可大可小.当 Session超时或被关闭时将自动释放保存的数据信息.由于用户停止使用应用程序后它仍然在内存中保持一段时间,因此使用Sessi

2016-06-20 20:08:28 13634

原创 说出ArrayList,Vector, LinkedList的存储性能和特性?

ArrayList 采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除时非常麻烦LinkedList 采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引 但是缺点就是查找非常麻烦 要丛第一个索引开始ArrayList和Vector都是用数组方式存储数据,此数组元素数要大于实际的存储空间以便进行元素增加和插入操作,他们都允许直接用序号索引元

2016-06-20 20:03:55 21333 1

原创 TCP三次握手与DDOS攻击原理

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+

2016-06-20 19:37:29 4262

原创 int 和 Integer 的区别与作用

int是JAVA八大基本数据类型(byte,shor,int,long,char,boolean,float,double)之一。 JAVA语言为八大基本数据提供了包装类,Integer对应是int类型的包装类,就是把int类型包装成Object对象。 Java有2种不同的类型:引用类型和原始类型。Int是java的原始数据类型,Integer是java的为int提供的封装类。Java为每个原

2016-06-20 19:17:53 1062

原创 JVM内存

大多数 JVM 将内存区域划分为 Method Area(Non-Heap)(方法区) ,Heap(堆) , Program Counter Register(程序计数器) , VM Stack(虚拟机栈,也有翻译成JAVA 方法栈的),Native Method Stack ( 本地方法栈 ),其中Method Area 和 Heap 是线程共享的 ,VM Stack,Native Me

2016-06-20 16:29:00 233

原创 String StringBuffer和StringBuilder异同

都是final类,不允许被修改被继承;String长度是不可变的,StringBuffer StringBuilder长度是可变的;StringBuffer是线程安全,StringBuilder不是线程安全,但它俩所有方法都是相同的,StringBuffer 是在StringBuilder的方法添加了synchronized修饰,保证线程安全;StringBuilder比StringBuffe

2016-06-20 15:22:08 344

原创 java一些概念

Switch能否用string做参数?在 Java 7 之前, switch 只能支持byte,short,char,int 或者其对应的封装类以及 Enum 类型。在JAVA 7中,String 支持被加上了。 equals与==的区别:==是判断两个变量或实例是不是指向同一个内存空间 equals是判断两个变量或实例所指向的内存空间的值是不是相同 Object有哪些公用方法?方法equ

2016-06-19 22:07:11 217

转载 Java关键字final、static使用总结

一、final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。 final类不能被继承,没有子类,final类中的方法默认是final的。 final方法不能被子类的方法覆盖,但可以被继承。 final

2016-06-18 21:53:24 375 1

转载 Java中print、printf、println的区别

printf主要是继承了C语言的printf的一些特性,可以进行格式化输出;print就是一般的标准输出,但是不换行;println和print基本没什么差别,就是最后会换行;System.out.printf(“the number is: d”,t); 参照JAVA API的定义如下: ‘d’ 整数 结果被格式化为十进制整数 ‘o’ 整数 结果被格式化为八进制整数 ‘x’, ‘X’ 整数

2016-06-18 17:18:13 421

转载 C++类型转换总结

C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a。 C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换成char。 dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多态类型转换

2016-06-17 19:46:21 212

转载 虚函数与纯虚函数区别

总结: 1、纯虚函数声明如下: virtual void funtion1()=0; 纯虚函数一定没有定义,纯虚函数用来规范派生类的行为,即接口。包含纯虚函数的类是抽象类,抽象类不能定义实例,但可以声明指向实现该抽象类的具体类的指针或引用。 2、虚函数声明如下:virtual ReturnType FunctionName(Parameter);虚函数必须实现,如果不实现,编译器将报错,错误提示

2016-06-17 15:18:13 1347

原创 数据结构与算法部分

给最外层的rootview,把这个根视图下的全部button背景设置成红色,手写代码,不许用递归给一串字符串比如abbbcccd,输出a1b3c3d1,手写代码(注意有个别字符可能会出现十次以上的情况)一个序列,它的形式是12349678,9是最高峰,经历了一个上升又下降的过程,找出里面的最大值的位置,要求效率尽可能高二叉查找树的删除操作,手写代码反转链表,手写代码二分查找,手写代码有海

2016-06-17 11:18:38 1091

原创 什么是事务?

数据库事务是指作为单个逻辑工作单元执行的一系列操作。数据库事务的ACID属性事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性:· 原子性事务必须是原子工作单元;对于其数据修改,要

2016-06-17 11:15:28 589

原创 Linux的GCC基本用法

GCC命令提供了非常多的命令选项,但并不是所有都要熟悉,初学时掌握几个常用的就可以了,到后面再慢慢学习其它选项,免得因选项太多而打击了学习的信心。一. 常用编译命令选项假设源程序文件名为test.c。无选项编译链接 用法:#gcc test.c 作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。选项 -o 用法:#gcc test.c -

2016-06-17 10:29:07 341

原创 ISO网络参考模型分层及每一层功能描述

物理层:通过媒介传输比特,确定机械及电气规范(位bit)中继器,集线器,双绞线 数据链路层:将比特组装成帧和点到点的传递(帧Frame)差错控制 网桥,以太网交换机,网卡(一半物理层,一半数据链路层) 网络层:负责数据包从源到宿的传递和网际互连(包PackeT)路由器,三层交换机 网络互连、路由选择、拥塞控制,通过寻址建立节点间连接 传输层:提供端到端的可靠报文传递和错误

2016-06-16 21:11:36 6006

原创 B+Tree/Hash_Map/STL Map三种数据结构性能

Hash操作能根据散列值直接定位数据的存储地址,设计良好的hash表能在常数级时间下找到需要的数据,但是更适合于内存中的查找。B+树是一种是一种树状的数据结构,适合做索引,对磁盘数据来说,索引查找是比较高效的STL_Map的内部实现是一颗红黑树,但是只是一颗在内存中建立二叉树树,不能用于磁盘操作,而其内存查找性能也比不上Hash查找。因此对于内存中数据,查找性能较好的数据结构是Hash_Map

2016-06-16 20:39:06 1949

转载 C++ explicit的作用

explicit作用:在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。explicit使用注意事项:* explicit 关键字只能用于类内部的构造函数声明上。* explicit 关键字作用于单个参数的构造函数。* 在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的

2016-06-16 09:54:36 383

转载 什么是死锁?如何避免死锁?

所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。虽然进程在运行过程中,可能发生死锁,但死锁的发生也必须具备一

2016-06-15 17:17:39 399

转载 使用C/C++编写函数,实现字符串反转,要求不使用任何系统函数,且时间复杂度最小

//使用C/C++编写函数,实现字符串反转,要求不使用任何系统函数,且时间复杂度最小,函数原型:char* reverse_str(char* str)。/*实现字符串翻转*/char *reverse_str(char *str) { if(NULL == str) { //字符串为空直接返回 return str; } char *begin;

2016-06-14 10:43:49 3237

原创 GET和POST的区别

GET:一般用于信息获取,使用URL传递参数,对所发送信息的数量也有限制,一般在2000个字符 POST:一般用于修改服务器上的资源,对所发送的信息没有限制GET方式需要使用 Request.QueryString 来取得变量的值 POST方式通过 Request.Form 来获取变量的值 也就是说 Get 是通过地址栏来传值,而 Post 是通过提交表单来传值。在以下情况中,请使用 POST

2016-06-13 21:33:43 344

原创 交换机、路由器、网关的概念,并知道各自的用途

1)交换机 在计算机网络系统中,交换机是针对共享工作模式的弱点而推出的。交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背 部总线上,当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部 交换矩阵迅速将数据包传送到目的端口。目的MAC若不存在,交换机才广播到所有的端口,接收端口回应后交换机

2016-06-13 19:29:26 10791 1

原创 在浏览器中输入www.baidu.com后执行的全部过程

1、客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。 2、在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务

2016-06-13 19:26:02 2121 1

转载 Longest Palindromic Substring-----LeetCode

两种解法,动态规划和KMP变种动态规划,类似于lcs的解法,数组flag[i][j]记录s从i到j是不是回文首先初始化,i>=j时,flag[i][j]=true,这是因为s[i][i]是单字符的回文,当i>j时,为true,是因为有可能出现flag[2][1]这种情况,比如bcaa,当计算s从2到3的时候,s[2]==s[3],这时就要计算s[2+1] ?= s[3-1],总的来说,当i>j时置为

2016-06-13 16:04:07 209

空空如也

空空如也

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

TA关注的人

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