自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (3)
  • 收藏
  • 关注

原创 Servlet过滤器与SpringMVC拦截器

Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截。简单说,就是可以实现web容器对某资源的访问前截获进行相关的处理,还可以在某资源向web容器返回响应前进行截获进行处理。Servlet过滤器和SpringM

2017-03-30 22:09:02 5446

转载 Jsp中文编码问题(下)

摘要:  本文首先从四个方面给出了在使用JSP过程中可能出现中文乱码的情形,具体包括JSP页面中文乱码、JSP源文件中文乱码、GET 请求的请求参数为中文乱码 和 POST 请求的请求参数为中文乱码四种情形,并针对每种情形给出了相应的终极解决方案。一. JSP页面与JSP源文件乱码  在介绍JSP页面与JSP源文件的乱码问题前,首先我们必须对JSP页面中文乱码问题与JSP源文件中文乱码问题有一个清

2017-03-30 21:28:39 505

转载 Jsp中文编码问题(上)

摘要:  本文首先介绍了一个JSP的源文件执行过程,即需要经过三个阶段,两次编码,才能完成一次完整的输出。特别需要注意的是,在这个过程中,编码问题贯穿始终。我们知道在JSP/Servlet中,主要有以下四种方式可以设置编码,即 pageEncoding、contentType、request.setCharacterEncoding 和 response.setCharacterEncoding,

2017-03-30 21:13:21 663

转载 Jsp理论与实践综述

J2EE是一套规范,而Servlet/Jsp是J2EE规范的一部分,是Tomcat的主要实现部分。在最初的应用实践中,当用户向指定Servlet发送请求时,Servlet利用输出流动态生成HTML页面,这导致Servlet开发效率极为低下。JSP技术通过实现普通静态HTML和动态部分混合编码,使得逻辑内容与外观相分离,大大简化了表示层的实现,提高了开发效率。本文以JSP的本质是Servlet为主线

2017-03-29 17:02:32 1052

转载 Servlet理论与实践综述

Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础。本文首先从请求/响应架构应用的大背景谈起 Servlet 的由来,明确 Servlet 的产生动机,并揭示了 Servlet 的本质以及其在标准MVC模式中所扮演的角色。紧接着,给出了 Servlet族的继承结构,并对族内的接口和抽象类作了进一步的介绍,并给出开发一个Servlet程序

2017-03-28 22:23:12 536

原创 Web入门——HTML代码编写规范

本文总结了30条html代码编写指南,只要在编写HTML代码的过程中牢记它们,灵活运用,你一定会写出一手漂亮的代码,早日迈入专业开发者的行列。1、一定要闭合HTML标签在以往的页面源代码里,经常看到这样的语句:Some text here.Some new text here.You get the idea.也许过去我们可以容忍这样的非闭合HTML标签,但在今天的标准来看

2017-03-25 10:36:46 7760 1

转载 J2EE规范

在许多企业级应用中,例如数据库连接、邮件服务、事务处理等都是一些通用企业需求模块,这些模块如果每次在开发中都由开发人员来完成的话,将会造成开发周期长和代码可靠性差等问题。于是许多大公司开发了自己的通用模块服务。但其与用户的沟通都各有不同,从而导致用户无法将各个公司不同的中间件组装在一块为自己服务。从而产生瓶颈。于是提出标准的概念。其实J2EE就是基于Java技术的一系列标准。J2EE 是由 S

2017-03-24 15:14:51 592

原创 Java线程通信与协作的解决方案——等待/通知机制

线程与线程之间不是相互独立的个体,它们彼此之间需要相互通信和协作,最典型的例子就是生产者-消费者问题:有一个商品队列,生产者想队列中添加商品,消费者取出队列中的商品;显然,如果队列为空,消费者应该等待生产者产生商品才能消费;如果队列满了,生产者需要等待消费者消费之后才能生产商品。队列就是这个模型中的临界资源,当队列为空时,而消费者获得了该对象的锁,如果不释放,那么生产者无法获得对象锁,而消费者无法

2017-03-23 21:56:40 999

原创 Java线程同步的解决方案——synchronized与Lock

要说明线程同步问题首先要说明Java线程的两个特性,可见性和有序性。多个线程之间是不能直接传递数据交互的,它们之间的交互只能通过共享变量来实现。例如,假设在多个线程之间共享了Count类的一个对象,Count类有一个私有域num和一个公有方法count(),count()方法对num进行加1操作。这个对象是被创建在主内存(堆内存)中,每个线程都有自己的工作内存(线程栈),工作内存存储了主内存Cou

2017-03-19 12:26:15 5067 1

原创 Java泛型的介绍与使用

一、基本概念“泛型编程”这个概念最早就是来源于C++当初设计STL时所引入的模板(Template),而为什么要引入模板呢,因为STL要完成这样一个目标:设计一套通用的,不依赖类型的,高效的的算法(例如std::sort)和数据结构(例如std::list)。关于通用性,运行时多态可以做到(例如很多高级语言的继承(机制,接口机制),但是C++作为一门相对底层的语言,对运行效率的要求是很

2017-03-16 15:29:48 756

原创 AOP的实现原理—反射与动态代理

其实AOP的意思就是面向切面编程。OO注重的是我们解决问题的方法(封装成Method),而AOP注重的是许多解决解决问题的方法中的共同点,是对OO思想的一种补充!还是拿人家经常举的一个例子讲解一下吧:比如说,我们现在要开发的一个应用里面有很多的业务方法,但是,我们现在要对这个方法的执行做全面监控,或部分监控。也许我们就会在要一些方法前去加上一条日志记录,我们写个例子看看我们最简单的解决方案。p

2017-03-12 11:01:39 13788 3

原创 IOC的实现原理—反射与工厂模式

反射机制概念我们考虑一个场景,如果我们在程序运行时,一个对象想要检视自己所拥有的成员属性,该如何操作?再考虑另一个场景,如果我们想要在运行期获得某个类的Class信息如它的属性、构造方法、一般方法后再考虑是否创建它的对象,这种情况该怎么办呢?这就需要用到反射!我们.Java文件在编译后会变成.class文件,这就像是个镜面,本身是.java,在镜中是.class,他们其实是一样的;那么

2017-03-12 10:37:17 46336 18

转载 ArrayList和LinkedList的区别

1、ArrayList是实现了基于动态数组的数据结构,LinkedList基于双向链表的数据结构。  2、对于随机访问get和set,ArrayList优于LinkedList,因为ArrayList可以随机定位,而LinkedList要移动指针一步一步的移动到节点处(参考数组与链表的区别来思考)。  3、对于新增和删除操作add和remove,LinedList比较占优势,只需要对指针进行修改

2017-03-08 18:56:41 537

原创 从Java内存模型理解synchronized、volatile和final关键字

你是否真正理解并会用volatile, synchronized, final进行线程间通信呢,如果你不能回答下面的几个问题,那就说明你并没有真正的理解:1、对volatile变量的操作一定具有原子性吗?(原子操作是不需要synchronized。所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何线程切换)2、synchronized所谓的加锁

2017-03-05 10:16:40 4487

原创 SpringMVC入门及HelloWorld工程实例

MVC是什么模型—视图—控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式。它主要通过分离模型、视图及控制器在应用程序中的角色将业务逻辑从界面中解耦。通常,模型负责封装应用程序数据在视图层展示。视图仅仅只是展示这些数据,不包含任何业务逻辑。控制器负责接收来自用户的请求,并调用后台服务(manager或者dao)来处理业务逻辑。处理后,后台业务层可能会返回了一些数据在视图层展示。

2017-03-04 20:29:14 946

转载 线程安全与可重入函数

线程安全函数与可重入函数线程安全函数 • 概念:        线程安全的概念比较直观。一般说来,一个函数被称为线程安全的,当且仅当被多个并发线程反复调用时,它会一直产生正确的结果。 • 确保线程安全:        要确保函数线程安全,主要需要考虑的是线程之间的共享变量。属于同一进程的不同线程会共享进程内存空间中的全局区和堆,而私有的线程空间则主要包括栈和寄 存器。因此,对于同一进程的不同

2017-03-04 19:59:30 311

原创 如何提高Java并发编程中锁的性能

在这篇文章中我将分享几种常用的提高Java并发编程中锁的性能的技术,包括分离锁、并行数据结构、保护数据而非代码、缩小锁的作用范围,这几种技术可以使我们不使用任何工具来检测死锁。锁不是问题的根源,锁之间的竞争才是通常在多线程的代码中遇到性能方面的问题时,一般都会抱怨是锁的问题。毕竟锁会降低程序的运行速度和其较低的扩展性是众所周知的。因此,如果带着这种“常识”开始优化代码,其结果很有可能是

2017-03-04 19:15:59 453

原创 Java final变量与final类的内存模型

对于 final 域,编译器和处理器要遵守两个重排序规则:在构造函数内对一个 final 域的写,与随后把这个构造对象的引用赋值给一个变量,这两个操作之间不能重排序初次读一个包含 final 域的对象的引用,与随后初次读这个 final 域,这两个操作之间不能重排序举个例子:public class FinalExample { int i;// 普通变量

2017-03-02 10:13:14 892

转载 Java存储模型与共享对象

很多程序员对一个共享变量初始化要注意可见性和安全发布(安全地构建一个对象,并其他线程能正确访问)等问题不是很理解,认为Java是一个屏蔽内存细节的平台,连对象回收都不需要关心,因此谈到可见性和安全发布大多不知所云。其实关键在于对Java存储模型,可见性和安全发布的问题是起源于Java的存储结构。Java存储模型原理有很多书和文章都讲解过Java存储模型,其中一个图很清晰地说明了其存储结构:由上图可知

2017-03-02 09:44:11 780

原创 C++成员函数在内存中的存储方式

用类去定义对象时,系统会为每一个对象分配存储空间。如果一个类包括了数据和函数,要分别为数据和函数的代码分配存储空间。按理说,如果用同一个类定义了10个对象,那么就需要分别为10个对象的数据和函数代码分配存储单元,如下图所示。能否只用一段空间来存放这个共同的函数代码段,在调用各对象的函数时,都去调用这个公用的函数代码。如下图所示。显然,这样做会大大节约存储

2017-03-01 17:12:58 39981 24

原创 什么样的对象才能作为STL容器的元素

这是在使用STL容器前必须搞清楚的一个很重要的问题!STL容器采用拷贝方式来接收待插入的元素对象——在插入的时候容器自动新建等量的元素对象,并用待插入对象依次初始化它们(调用拷贝构造函数);在删除元素时,容器负责释放其内存资源(对于采用随机存储策略的容器,如list和关联容器)或者仅仅调用元素的析构函数(对于采用连续存储策略的容器,如vector)。容器只负责其元素对象本身一级的存储分配与

2017-03-01 17:06:36 1336 1

原创 使用synchronized和volatile实现Java多线程同步

上篇通过一个简单的例子说明了线程安全与不安全,在例子中不安全的情况下输出的结果恰好是逐个递增的(其实是巧合,多运行几次,会产生不同的输出结果),为什么会产生这样的结果呢,因为建立的Count对象是线程共享的,一个线程改变了其成员变量num值,下一个线程正巧读到了修改后的num,所以会递增输出。 本文讲述传统的使用synchronized和volatile实现线程同步的方式

2017-03-01 16:59:19 877 1

原创 对Java线程安全与不安全的理解

当我们查看JDK API的时候,总会发现一些类说明写着,线程安全或者线程不安全,比如说StringBuilder中,有这么一句,“将StringBuilder 的实例用于多个线程是不安全的。如果需要这样的同步,则建议使用StringBuffer。 ”,提到StringBuffer时,说到“StringBuffer是线程安全的可变字符序列,一个类似于String的字符串缓冲区,虽然在任意时间点上它都包

2017-03-01 16:44:37 27280 7

转载 图解JVM类加载机制与类加载过程

0、前言读完本文,你将了解到:一、为什么说Jabalpur语言是跨平台的二、Java虚拟机启动、加载类过程分析三、类加载器有哪些?其组织结构是怎样的?四、双亲加载模型的逻辑和底层代码实现是怎样的?五、类加载器与Class<T>  实例的关系六、线程上下文加载器一、为什么说Java语言是跨平台的?Java语言之所以说它是跨平台的、可以在当前绝大部分的操作系统平台下运行,是因为Java语言的运行

2017-03-01 15:51:25 4088 3

转载 Java线程实现的三种方式

Java多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。1、继承Thread类实现多线程继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的一个实例,它代表一个线

2017-03-01 15:44:09 485

转载 Java的锁机制解析

一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在Java里边就是拿到某个同步对象的锁(一个对象只有一把锁); 如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(线程阻塞在锁池等待队列中)。 取到锁后,他就开始执行同步代码(被synchronized修饰的代码);线程执行完同步代码后马上就把锁还给同步对象,其他在锁池中等待的某个线程就可以拿到锁执

2017-03-01 15:41:43 389

《从零开始学架构》精华读书笔记

《从零开始学架构》精华笔记 《从零开始学架构》这本书的内容主要包含以下几部分:1) 架构设计基础,包括架构设计相关概念、历史、原则、基本方法,让架构设计不再神秘;2) 架构设计流程,通过一个虚拟的案例,描述了一个通用的架构设计流程,让架构设计不再依赖天才的创作,而是有章可循;3)架构设计专题:包括高性能架构设计、高可用架构设计、可扩展架构设计,这些模式可以直接参考和应用;4) 架构设计实战,包括重构、开源方案引入、架构发展路径、互联网架构模板等

2023-05-09

信息系统项目管理师学习笔记.zip

信息系统项目管理师学习笔记.zip

2021-05-07

2005-2020信息系统项目管理师历年真题(含上午题、案例分析、论文)试题和答案.zip

15年真题

2021-05-07

阿里巴巴Java开发手册

2017年开春之际,诚意献上重磅大礼:阿里巴巴Java开发手册,首次公开阿里官方Java代码规范标准。这套Java统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率、大大降低代码维护成本。

2017-03-01

空空如也

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

TA关注的人

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