自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xxxknight

code code

  • 博客(26)
  • 收藏
  • 关注

转载 并发处理的一些手段——转自百度百科

一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原

2015-07-26 21:38:23 400 1

转载 爬虫框架汇总

开源爬虫汇总表 开发语言 软件名称 软件介绍 许可证 Java Arachnid 微型爬虫框架,含有一个小型HTML解析器 GPL crawlzilla 安装简易,拥有中文分词功能 Apache2 Ex-Crawler 由守护进程执行,使用数据库存储网页信息 GPLv3 Heritrix

2015-07-26 21:05:07 760

原创 java多线程学习笔记——相关名词介绍

阻塞线程节点队列 CHL Node queue 。 根据论文里描述, AQS 里将阻塞线程封装到一个内部类 Node 里。并维护一个 CHL Node FIFO 队列。 CHL 队列是一个非阻塞的 FIFO 队列,也就是说往里面插入或移除一个节点的时候,在并发条件下不会阻塞,而是通过自旋锁和 CAS 保证节点插入和移除的原子性。实现无锁且快速的插入。关于非阻塞算法可以参考 Java 理论与实践:

2015-07-25 23:56:56 322

原创 java多线程学习笔记——有关多线程的文章连接汇总

1、有关synchronized和Lock类的实现 http://blog.csdn.net/chen77716/article/details/6618779 http://blog.csdn.net/chen77716/article/details/6641477

2015-07-25 19:35:55 380

转载 数据库学习笔记——数据库连接池的工作原理

随着信息技术的高速发展与广泛应用,数据库技术在信息技术领域中的位置越来越重要,尤其是网络应用和电子商务的迅速发展,都需要数据库技术支持动态Web站点的运行,而传统的开发模式是:首先在主程序(如Servlet、Beans)中建立数据库连接;然后进行SQL操作,对数据库中的对象进行查询、修改和删除等操作;最后断开数据库连接。使用这种开发模式,对于一个简单的数据库应用,由于数据库的访问不是很频繁,只需要在

2015-07-25 18:59:45 664

转载 java多线程学习笔记——读写锁(ReentrantReadWriteLock)

一、ReentrantReadWriteLock类如果很多线程从一个数据结构读取数据而很少线程修改其中数据的话。允许对读者线程共享访问是合适的。写者线程依然必须是互斥访问的。 下面是使用读写锁的必要步骤: 1)构造一个ReentrantReadWriteLock对象:private ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(

2015-07-25 18:10:56 632

转载 java多线程学习笔记——锁测试与超时

线程在调用lock方法来获得另一个线程所持有的锁的时候,很可能发生阻塞。应该更加谨慎地申请锁。tryLock方法试图申请一个锁,在成功获得锁后返回true,否则,立即返回false,而且线程可以立即离开去做其他事。可以调用tryLock时,使用超时参数。 lock方法不能被中断。如果一个线程在等待获得一个锁时被中断,中断线程在获得锁之前一直处于阻塞状态。如果出现死锁,那么,lock方法就无法终止。

2015-07-25 16:14:54 1588

转载 java多线程学习笔记——yield()、wait()、sleep()等方法

1、sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。 例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY,如果没有Sleep()方法,只有高优先级的线程执行完

2015-07-25 15:23:43 615

转载 java多线程学习笔记——volatile关键字

volatile关键字为实例域的同步访问提供了一种免锁机制。如果声明一个域为volatile,那么编译器和虚拟机就知道该域是可能被另一个线程并发更新的。例如,假定一个对象有一个布尔标记done,它的值被一个线程设置却被另一个线程查询。你可以使用synchronized关键字:public synchronized boolean isDone(){return done;}public synch

2015-07-25 15:13:58 463

原创 java多线程学习笔记——synchronized关键字

一、synchronized关键字概述 JAVA中每一个对象都有一个内部锁,如果一个方法用synchronized关键字声明,那么对象的锁将保护整个方法。也就说,要调用该方法,线程必须获得内部的对象锁。下面两段代码等价:public synchronzied void method(){ method body}等价于:public void method(){ this.int

2015-07-25 00:49:44 669

原创 java多线程学习笔记——concurrent包的一些类(Lock 和Condition)

1、ReentrantLock类API介绍 一个可重入的互斥锁 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大。 ReentrantLock 将由最近成功获得锁,并且还没有释放该锁的线程所拥有。当锁没有被另一个线程所拥有时,调用 lock 的线程将成功获取该锁并返回。如果当前线程已经拥有该锁,此方法将立即返回。可以使用 isH

2015-07-25 00:01:26 430

原创 java多线程学习笔记(2)——中断线程

当对一个线程调用线程终止方法时,线程的中断状态将被置位。这是每一个线程都具有的boolean标志。每个线程都应该时不时地检查这个标志,以判断线程是否被中断。 要想弄清中断状态是否被置位,首先调用静态的Thread.currentThread方法获得当前线程,然后调用isInterrupted method方法: while(!Thread.currentThread().isInterrupte

2015-07-24 22:11:06 332

原创 java多线程学习笔记(1)——基本概念介绍

一、进程与线程的区别 每个进程拥有自己的一整套变量,而线程则共享数据。进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,比如在Windows系统中,一个运行的exe就是一个进程。线程是指进程中的一个执行流程,线程总是属于某个进程,进程中的多个线程共享进程的内存。一个进程可以有一个或多个线程。二、java中的多线程使用java.lang.Thread类或者java.lang.Ru

2015-07-24 20:58:54 414

原创 Hibernate3学习笔记(12)——Hibernate的性能优化

hibernate是对JDBC的轻量级封装,因此在很多情况下hibernate的性能比直接使用JDBC存取数据库要低。然而,通过正确的方法和策略,在使用hibernate的时候还是可以非常接近直接使用JDBC时的效率的,并且,在有些情况下还有可能高于使用JDBC的执行效率。在进行hibernate性能优化时,需要从以下几个方面进行考虑:数据库设计调整HQL优化API的正常使用(如根据不同的业务

2015-07-22 17:26:04 711

原创 Hibernate3学习笔记(11)——Hibernate事务处理

一、事务 1.1、事务的基本概念 事务是并发控制的基本单位。 事务的4个基本特征: 原子性,一致性,隔离性,持久性。 1.2、事务可能出现的几种不确定情况: (1)、更新丢失(lost update):两个事务都同时更新一行数据,但是第二个事务却中途失败退出;导致对数据的两个修改都失效了。这是因为系统没有执行任何的锁操作,因此并发事务并没有被隔离开来; (2)、脏读取(dirty re

2015-07-22 15:09:37 762

转载 Hibernate3学习笔记(10)——ID 标识选择器

在 Hibernate 中,每个对象需要一个标识 ID,通过这个标识 ID 建立对象与数据库中记录的对应关系。Nhibernate 提供了多种方式来建立这个 POID。基于不同的生成策略,可以选择更佳的方式。首先是赋值方式:assigned,这种方式需要应用程序赋予对象一个标识 ID, 这种情况典型地用在自然主键的时候。第二种方式是非插入方式的生成器,对于新的应用程序来说,这是最佳的方式,NHibe

2015-07-14 09:10:12 349

原创 设计模式(java)2——简单工厂模式

简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式的UML图: 简单工厂模式中包含的角色及其相应的职责如下: 工厂角色(Creator):这是简单工厂模式的核心,由它负责创建所有的类的内部逻辑。当然工厂类必须能够被外界调用,创建所需要的产品对象。

2015-07-11 19:36:31 294

转载 设计模式(java)1——单例模式

如果要保证系统里一个类最多只能存在一个实例时,我们就需要单例模式。例如:缓存池,数据库连接池,线程池,一些应用服务实例等。1、懒汉模式——实现懒加载但线程不安全package singleton;//懒汉模式(线程不安全)public class Singleton1 { private static Singleton1 instance; private Singleton1()

2015-07-11 16:24:40 306

转载 spring学习笔记(7)——spring常用注解

1、 引入context命名空间(在Spring的配置文件中),配置文件如下: Xml代码 收藏代码xmlns:context="http://www.springframework.org/schema/context" http://www.springframework.org/schema/context http://www.springframework.org/sche

2015-07-10 23:10:30 303

转载 SpringMVC学习笔记——Spring MVC与Struts2的区别2

目前企业中使用SpringMvc的比例已经远远超过Struts2,那么两者到底有什么区别,是很多初学者比较关注的问题,下面我们就来对SpringMvc和Struts2进行各方面的比较:1、核 心控制器(前端控制器、预处理控制器):对于使用过mvc框架的人来说这个词应该不会陌生,核心控制器的主要用途是处理所有的请求,然后对那些特殊的请求 (控制器)统一的进行处理(字符编码、文件上传、参数接受、异常处理

2015-07-10 22:56:17 962

转载 SpringMVC学习笔记——Spring MVC与Struts2的区别1

http://blog.csdn.net/gstormspire/article/details/8239182spring3mvc与struts2比较 项目刚刚换了web层框架,放弃了struts2改用spring3mvc 当初还框架的时候目的比较单纯—springmvc支持rest,小生对restful url由衷的喜欢 不用不知道 一用就发现开发效率确实比struts2高 我们用str

2015-07-10 22:54:45 839

原创 leetcode解题报告234——Palindrome Linked List

题目: Given a singly linked list, determine if it is a palindrome.解法:package linkedlist;import java.util.Stack;//Given a singly linked list, determine if it is a palindrome.public class PalindromeLinked

2015-07-10 09:33:38 797

转载 Hibernate3学习笔记(9)—— HQL实现查询对象部分属性

用HQL获取部分的实体对象属性 在使用HQL查询中,有时并不需要获取完整的一个实体对象,例如一个实体对象User有三个属性:account, password和email,如果我们只需要获取account和email属性,那么有两种方法可以选择。 1. 用普通的”select user.account, user.email from User as user”,程序片断如

2015-07-09 19:09:00 3088

原创 leetcode解题报告233——Power of Two

Given an integer, write a function to determine if it is a power of two.题目属于easy。前两种解法是一个意思,很容易想到;第三种解法最好(没想到)。代码:package bitmanipulation;//Given an integer, write a function to determine if it is a po

2015-07-08 10:06:47 450

原创 leetcode解题报告232——Implement Queue using Stacks

题目:Implement the following operations of a queue using stacks.push(x) – Push element x to the back of queue. pop() – Removes the element from in front of queue. peek() – Get the front element. empty

2015-07-08 09:25:46 333

转载 JVM学习笔记(1)——类加载器ClassLoader

1、 Java虚拟机与程序的生命周期在如下几种情况下,Java虚拟机将结束生命周期执行了System.exit()方法程序正常执行结束程序在执行过程中遇到了异常或错误而异常终止由于操作系统出现错误而导致Java虚拟机进程终止2、类的加载、连接、初始化(不涉及对象生成) (1)加载:查找并加载类的二进制数据 (2)连接 – 验证:确保被加载的类的正确性 – 准备:为类

2015-07-01 00:28:12 311

空空如也

空空如也

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

TA关注的人

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