- 博客(11)
- 收藏
- 关注
原创 Servlet/JSP、Struts1、Struts2以及SpringMVC的线程安全性
Servlet/JSP、Struts1、Struts2以及SpringMVC的线程安全性 一、Servlet/JSP Servlet/JSP一直都是MVC界的老大哥,我们来回顾一下Servlet的生命周期。 当客户端第一次请求Servlet时,Web容器会根据web.xml中的配置文件创建一个Servlet实例,而后调用init()方法,仅一次(注意);之后每一次请求都会执行Se...
2018-05-29 19:44:06 641
原创 C++中的指针,引用和Java中的对象
C++中的指针,引用和Java中的对象引用 一、C++中指针和引用的区别 相同点:在c++中,指针和引用都可以让人间接地操作一个对象。 不同点:首先说两者在定义上的区别,指针是存放对象的地址的一块内存,而引用是对象的别名。再看看以下的几行代码:int a,b,*p,&r=a;//正确r=3;//正确:等价于a=3int &rr;//出错:引用必须初始化...
2018-05-26 22:17:14 1065
原创 算法:冒泡算法及优化
算法:冒泡算法及优化 代码如下:public class MaoPao { public static int a[] ={1,2,3,4,5,6,7,8,9}; public static void main(String args[]) { sort(); for (int k: a) { ...
2018-05-08 11:40:17 116
原创 TCP连接的三次握手和连接关闭的四次挥手
TCP连接的三次握手和连接关闭的四次挥手 一、文章大纲图 二、建立TCP连接三次握手过程第一次握手,由客户端发送syn报文给服务器端。第二次握手,服务器端返回ack(确认)+syn报文给客户端。第三次握手,客户端发送ack(确认)报文确认。 三、TCP连接关闭四次挥手过程第一次挥手,由客户端发送FIN报文(Finish)给服务器端。第二次挥手,由服务器端发送ack确认,表示收到报...
2018-05-07 16:50:12 147
原创 BIO、NIO、AIO的区别
BIO、NIO、AIO的区别 一、BIO(同步阻塞IO) 网络编程的模型其实就是C/S模型,即两个进程间的通信。BIO编程则提供最传统的一种IO网络编程方式,优点是API使用简单,易于理解。 BIO的模型是让服务器端提供一个端口号,新建一个ServerSocket套接字对象,客户端可以通过URL和端口号与服务器建立TCP连接,服务器端和客户端通过套接字来通信,在该模型中需要服务器...
2018-05-06 19:45:35 145
原创 ThreadLocal深入浅出
ThreadLocal深入浅出 一、分析ThreadLocal源码 ThreadLocal的核心方法一共就几个,get(),set()等等,我们由get()开始,一边分析其源码,一边揭开ThreadLocal的面纱。 先看看JDK7中的get()源码: public T get() { Thread t = Thread.currentThread(); ...
2018-05-03 18:31:18 135
原创 Java的Lock锁和synchronized关键字的区别及其使用
Java的Lock锁和synchronized关键字的区别及其使用 一、synchronized关键字和Lock的区别以及优缺点 我们可以回顾一下synchronized的使用,synchronized释放锁的时机有以下几种:当执行完代码块中的代码,释放锁;当代码抛出异常,释放锁;当调用锁的wait方法,释放锁; 以上三种情况便可以完全的帮我们解决线程同步的问题,为什么还要引入L...
2018-05-02 18:21:50 1708
原创 并发包下一些并发类
并发包下一些并发类 引言:JDK1.5的并发包不仅仅提供了前文所说的线程池框架,还提供了一系列并发类,来便于我们编写高并发代码,本文我们来一一介绍。 一、CountDownLatch类 代码如下:package com.example.first;import java.util.concurrent.CountDownLatch;import java.util.conc...
2018-05-01 18:24:15 1144
原创 详解线程池
详解线程池 引言:在最早的时候有写过关于线程池的文章,针对四种不同的线程池,讲解了他们的特性,本文将更加深入,从源码来解释四种不同的线程池框架。 一、线程池的作用以及好处 在JDK1.5以前,线程池的使用是十分简陋的,直到JDK1.5,在并发包下,才出现了现如今的线程池。 线程池的作用是控制线程的数量,因为每一个线程都会占用系统的内存,以及在运行时,会争夺CPU的使...
2018-05-01 15:51:48 142
原创 多线程并发编程的三种设计模式:Future模式,MasterAndWorker模式,生产者消费者模式
Future模式,核心概念就是将任务异步执行,然后继续做自己主任务,最后需要结果的时候,将异步执行的结果取出。常见的实现就有ajax异步传输,使用异步线程提交数据,不影响主线程,当返回结果的时候再回调给主线程。java中常常会有一些任务十分冗长,可能需要长时间的计算,但是此计算的结果可能并不会被接下来的步骤所依赖,只需要在需要计算结果的时候返回给主线程就行了,这个时候,多线程就起到了作用,...
2018-05-01 12:54:44 279
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人