自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Apache与Tomcat搭建集群

早前就解了Apache和Tomcat可以搭建集群,可以负载均衡,升级就不需要停交易,真是强大。昨晚看了google reader的收藏又再次看到这篇文章,于是今天在星巴克研究了一把,发现真的很强大,负载均衡、session复制都可以做到,以后再也不用为升级系统而烦恼了。        下面就来讲讲是搭建集群的过程,首页需要下载apahce和tomcat(当然需要安装jdk,这就不多讲了,大家应

2011-12-30 12:29:36 369

转载 基于mod_proxy+Apache 2.2.16+Tomcat 7的负载均衡与集群配置 Peter Wei

周日晚和GF的老乡们喝了五粮液,导致周一起不了床,只好请假在家睡觉。白天睡了半天,晚上自然睡不着觉。正好现在的项目中也用到了负载均衡和集群的东西,虽然有新手贴的危险,但还是手痒,决定写点东西,以备不时之需。也希望能对大家有所帮助。 第一章. 背景简介 对于大多数企业应用,都希望能做到7*24小时不间断运行。要保持如此高的可用性并非易事,比较常见的做法是将系统部署到多台机器上,每台机器都

2011-12-30 12:28:42 308

转载 MySQL导入导出命令

1.导出整个数据库   mysqldump -u 用户名 -p 数据库名 > 导出的文件名   mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql 2.导出一个表   mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名   mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc

2011-12-30 10:32:39 202

转载 Java中的IOC注入的几种方式

IOCType1 接口注入 我们常常借助接口来将调用者与实现者分离。如:      public class ClassA {          private InterfaceB clzB;          public doSomething() {          Ojbect obj =          Class.forName(Config.BImp

2011-12-29 12:08:59 752

转载 android中文乱码解决大全

最近在做个MP3播放器,出现中文乱码问题,在网上找了很多解决办法,我整理了出现乱码的点和解决方案,拿出来和大家共享一下 1.读取中文文件乱码解决方法 Java代码  package com.apj.conv;    import java.io.BufferedInputStream;  import java.io.BufferedReader

2011-12-29 11:22:55 931

转载 Linux Shell进化简史

导读:M.Tim Jones 是 developerWorks 全球网站的一位多产撰稿人,他的文章涉及的主题非常广泛而有深度。Tim 为了让大家全面了解 Linux,推出了一系列内核剖析方面的文章,深受大家的欣赏;随着 Linux 在虚拟化技术方面的日臻成熟,Tim 及时为我们带来了相关内容的介绍。在本文中,他为我们带来了Linux Shell的进化史。以下为全文计算机上的大多数日常工作任

2011-12-23 14:58:35 289

转载 Java集合框架——HashMap与Hashtable

Java集合框架——HashMap与Hashtable 先来看看两个类的重点方法,再来比较。(这是我看源代码的思路,你也先去看看吧) 集合最主要的操作:写入,读取,移除。 Java代码  /**  * Associates the specified value with the specified key in this map

2011-12-22 16:40:55 346

转载 socket实现大型文件传输 .

最近需要做网络传输的项目,需要实现较大文件的传输。在网上收集了不少资料,但是各有各的做法,尤其是关于文件自动接收这一块不太清楚。 经过图书馆查阅后还是找到了一种解决办法,虽然做的不太专业,但是思路比较精简、清晰,也希望能给大家尤其是刚学习socket套接字的人一些启示。                                  对于套接字socket我其实也不太懂,并且一般

2011-12-22 16:38:22 446

转载 javascript常用判断

js验证表单大全,用JS控制表单提交 ,javascript提交表单 目录:1:js 字符串长度限制、判断字符长度 、js限制输入、限制不能输入、textarea 长度限制 2.:js判断汉字、判断是否汉字 、只能输入汉字3:js判断是否输入英文、只能输入英文4:js只能输入数字,判断数字、验证数字、检测数字、判断是否为数字、只能输入数字5:只能输入英文字符和数字6: js

2011-12-20 17:19:34 258

转载 AOP术语

====关注点(Concern)====关注点就是我们要考察或解决的问题。如订单的处理,用户的验证、用户日志记录等都属于关注点。 关注点中的核心关注点(Core Concerns),是指系统中的核心功能,即真正的商业逻辑。如在一个电子商务系统中,订单处理、客户管理、库存及物流管理都是属于系统中的核心关注点。 还有一种关注点叫横切关注点 (Crosscutti

2011-12-20 17:17:53 346

转载 取得类中属性的泛型类型

class GGG {    private MapString, Double> field;    public MapString, Double> getField() {        return field;    }    public void setField(MapString, Double> field) {        this.fie

2011-12-20 17:14:37 234

转载 线程sleep()和wait()的区别

sleep()是让某个线程暂停运行一段时间,其控制范围是由当前线程决定,也就是说,在线程里面决定.好比如说,我要做的事情是 "点火->烧水->煮面",而当我点完火之后我不立即烧水,我要休息一段时间再烧.对于运行的主动权是由我的流程来控制.       而wait(),首先,这是由某个确定的对象来调用的,将这个对象理解成一个传话的人,当这个人在某个线程里面说"暂停!",也是 thisOBJ.

2011-12-20 17:13:07 328

转载 通过HttpURLConnection提交参数值

网上偶尔看到这个东西,看了自己写了一下。做个记录,希望以后有用。public class HttpConnectionPostTest {    public static void main(String[] args) throws Exception {    //设置代理,公司用的是代理上网    System.setProperty("proxySet", "tr

2011-12-20 17:12:28 332

转载 Java并发编程-常量对象(七)

原文:http://blog.sina.com.cn/s/blog_4b6047bc010009wz.html      在创建后状态不再发生改变的对象称作常量对象(Immutable Objects)。常量对象其可靠性使其广泛地用作开发简单可靠代码的策略。常量对象在开发并发程序中非常有用。由于创建后不能被改变状态,它们不会被线程干扰所破坏,不可能产生不一致的观察状态。    Java

2011-12-20 17:11:15 269

转载 Java并发编程-同步(六)

原文:http://blog.sina.com.cn/s/blog_4b6047bc010009dc.html    线程除要对共享数据保证互斥性访问外,往往还需保证线程的操作按照特定顺序进行。解决多线程按照特定顺序访问共享数据的技术称作同步。同步技术最常见的编程范式是同步保护块。这种编程范式在操作前先检测某种条件是否成立,如成立则继续操作;如不成立则有两种选择,一种是简单的循环检测,直至

2011-12-20 17:10:31 209

转载 Java并发编程-活性(五)

原文:http://blog.sina.com.cn/s/blog_4b6047bc010009da.html    前一节中提到不正确的使用互斥技术会导致各种活性问题。所谓程序活性是指并发应用程序能够按时完成动作的能力。常见活性问题主要有死锁(Deadlock)、饥饿(Starvation)和活锁(Livelock)。死锁    死锁是指多个线程为竞争某些共享资源而陷入无限等

2011-12-20 17:09:38 231

转载 Java并发编程-互斥(四)

原文:http://blog.sina.com.cn/s/blog_4b6047bc010009d4.html原子动作    前文讲到,不同线程的操作在访问共享数据时,会因为交织进行而导致线程干扰和内存一致性错误。大多数Java语句在编译成伪代码后都由多条虚拟机指令组成,这使它们有可能被其他线程的语句所分割交织。不能分割交织的操作乘称作原子动作,这些动作一旦发生,便不能在中途停止,要么

2011-12-20 17:09:09 193

转载 Java并发编程-问题(三)

原文:http://blog.sina.com.cn/s/blog_4b6047bc010009co.html    线程之间共享数据引起了并发执行程序中的同步问题。那些数据是可能需要同步访问的呢?很简单,线程之间能够共享的数据,也就是对多个线程可见的数据。    Java的数据有两种基本类型内存分配模式(不算虚拟机内部类型,详细内容参见虚拟机规范):运行时栈和堆两种。由于运行时栈是线

2011-12-20 17:04:36 195

转载 Java并发编程-线程(二)

原文:http://blog.sina.com.cn/s/blog_4b6047bc0100099n.html    从一开始Java就被设计成支持并发编程的语言,java语言及其核心类库都有对并发编程的支持。从5.0开始,Java平台引入了一些高层的并发接口。本系列文章将尽可能的概括这些内容。进程与线程    并发编程模式中,有两个基本执行单元:进程与线程。进程和线程是现代操作系

2011-12-20 17:03:15 250

转载 Java并发编程-概念(一)

并发编程是现代计算机软件最常见的编程模式,是操作系统到应用软件到分布式系统都要关心的问题,其核心目标是解决并行事件的资源共享和访问问题。    自从学生时代,我就一直在学习和并试图理解这些概念。尤其是在学操作系统时,曾经想得觉得自己脑壳都要爆炸了。许多东西是要随着知识和实际工作经验的增长才能领悟的。现在的我觉得现在对这些概念的理解已经超出当初的理解水平,虽然许多更深入的概念和细节我现在都还是很

2011-12-20 17:02:35 211

转载 jvm学习笔记总结

为什么要深入学习jvm?从事java开发有几年的时间了,以前对jvm了解不够深入。项目中遇到一些问题,深刻体会到不是代码层级可以解决的。很多问题难以解决之处在于你发现不了问题源头。例如服务器的tps上不去,瓶颈在哪里?程序内存溢出,什么原因造成的?如何监控程序运行的状况?为此,特意抽出时间,系统学习了jvm的相关原理,希望更深刻得了解java运行的机制。总之,学习jvm,能让你站更高处看问

2011-12-14 17:30:07 188

转载 jvm学习笔记(6)类加载机制

简述我们要运行java程序,必须保证jvm已经加载类所需的类。这个过程是怎样的呢类的生命周期包括了装载,连接(包括验证、准备和解析)和初始化加载将二进制字节码读入jvm。包括以下阶段:1.通过类的全限定名获得定义此类的二进制数据流2.将字节流转化为方法区的内部数据结构3.在jvm堆中生成java.lang.Class实例,成为java程序与内

2011-12-14 17:29:25 176

转载 jvm学习笔记(5)垃圾收集器介绍

简述:上一篇系统学习了各种垃圾算法。现在就看看jvm(HopSpot)提供了那些垃圾收集器,怎样搭配使用。先回忆了,然后思考以下问题:新生代和老年代分别用什么算法合适?Serial收集器略懂英文的同学大概明白这个词的意思,串行,连续的。没错,这个收集器很简单,当要进行gc时,就暂停所有线程。用复制算法执行完,继续所有线程。又用餐巾纸的例子来说明,清洁大妈高喊一声“stop”

2011-12-14 17:28:41 261

转载 jvm学习笔记(4)垃圾回收算法分析

简述:垃圾回收算法有很多种,每种有各自的适用场合,各有千秋,如何在不同的场合搭配使用是我们要考虑的问题引用计数这是最简单最原始的算法。原理很简单,对象生成后,有一个相关联的计数器,当有一个地方引用时,计数器加1;当引用失效时,计数器减1。jvm定期扫描对象时,发现计数器为0的对象就可以清除。这个算法的特点是实现简单,速度快。不足之处在于:每次分配和指针操作都需要额外的操作来

2011-12-14 17:27:56 249

转载 jvm学习笔记(3)内存管理

整体架构当一个java类文件被jvm装载进来,就需要创建对象,涉及到内存管理了。先来看看jvm内部的体系结构pc寄存器对汇编有一定了解的同学都明白这个概念。我们可以简单把它看做是当前线程所执行的字节码的行号。有什么用呢。当执行完一条指令的时候,需要跳转到下一条指令,就得靠它了java虚拟机栈是线程私有的,跟线程的生命周期相同。描述的是一个java方法执行

2011-12-14 17:27:12 314

转载 jvm学习笔记(2)多线程的相关原理

简介本文是尝试从虚拟机的角度来分析java线程的一些本质线程模型java的线程模型可以通过下图来说明:一个对象都有一个相关的锁,每次只能由获得它的一个线程来操作。获得它的线程可以wait,放弃锁,进入等待区域,待被唤醒notify后,它会重新查看锁的状态,参与锁的竞争虚拟机实现查看class文件的汇编代码,可以看到,进入同步区域和退出同步区域分别由两

2011-12-14 17:26:31 218

转载 jvm学习笔记(1)class文件

简述class文件是什么?稍微接触过java的同学都会说:就是java源文件编译后的.class文件。这句话虽然对,但是不够准确。其他语言,例如scala,jruby等,都可以编译出class文件。class文件是能被jvm识别和运行的一种文件格式。它是八位的二进制流文件。今天就跟大家一起学习class文件的格式整体结构用ultraedit等工具打开class文件,看到的都

2011-12-14 17:25:39 210

转载 JDK7新特性<二> 语法

JDK7对Java语法有少量更新,重点是在易用性和便捷性的改进。 1.二进制字面量 JDK7开始,终于可以用二进制来表示整数(byte,short,int和long)。使用二进制字面量的好处是,可以是代码更容易被理解。语法非常简单,只要在二进制数值前面加 0b或者0B Java代码  byte nByte = (byte)0b0001;  short n

2011-12-14 17:19:08 351

转载 JDK7新特性<一>概述

JDK7至今仍未正式发布。从官方的 milestone schedule(里程碑)可知,目前已经准备就绪,处于测试准备阶段,感兴趣 的可以从官方下载JDK7开发预览版。笔者根据官方的相关文档,整理了这个系列的文章。               准备 JDK7下载 http://download.java.net/jdk7/API文档 http://download.ja

2011-12-14 17:18:30 248

转载 JDK7新特性<八>异步io/AIO

概述JDK7引入了Asynchronous I/O。I/O编程中,常用到两种模式:Reactor 和 Proactor。Reactor就是Java的NIO。当有事件触发时,我们得到通知,进行相应的处理。Proactor就是我们今天要讲的 AIO了。AIO进行I/O操作,都是异步处理,当事件完成时,我们会得到通知。JDK7的 AIO包括网络和文件操作。两者大同小异,本文通过一个完整的客户端/

2011-12-14 17:17:42 582

转载 JDK7新特性<七> 遍历文件树

有时需要递归遍历一个文件树,比如查找一个文件夹内符合条件的文件,查找某一天创建的文件……。jdk7 nio包提供一个新的接口 FileVisitor。它提供了遍历文件树的各种操作。 preVisitDirectory - 一个路径被访问时调用 PostVisitDirectory - 一个路径的所有节点被访问后调用。如果有错误发生,exception会传递给这个方法

2011-12-14 17:17:00 319

转载 JDK7新特性<六> 监听文件系统的更改

我们用IDE(例如Eclipse)编程,外部更改了代码文件,IDE马上提升“文件有更改”。Jdk7的NIO2.0也提供了这个功能,用于监听文件系统的更改。它采用类似观察者的模式,注册相关的文件更改事件(新建,删除……),当事件发生的,通知相关的监听者。 java.nio.file.*包提供了一个文件更改通知API,叫做Watch Service API. 实现流程如

2011-12-14 17:16:11 314

转载 JDK7新特性<五> fork/join 框架

对于框架的原理,可以阅读 Doug Lea 的文章“A Java Fork/Join Framework”:了解 Fork/Join 模式的实现机制和执行性能。  原理解析:fork分解,join结合。这个框架的本质是将一个任务分解成多个子任务,每个子任务用单独的线程去处理。这里用到了递归的思想。框架的结构图可以参考 图片来源(http://www.ibm.com/deve

2011-12-14 17:14:41 240

转载 JDK7新特性<四> NIO2.0 文件系统

java.io.File 不够完美吧。Jdk7提供了一套新的文件系统,会让你满意的。先来聊聊java.io.File的七宗罪吧:)  1.很多方法失败时候都没有抛出异常,很难查找原因2.方法 rename 在不同平台中运行有问题3.不能真正支持 symbolic links4.不能读取文件的更详细属性,比如权限,所有者……5.访问 文

2011-12-14 16:19:51 284

转载 JDK7新特性<三> JDBC4.1

JDBC4.1更新了两个新特性 1.   Connection,ResultSet 和 Statement 都实现了Closeable 接口,所有在 try-with-resources 语句中调用,就可以自动关闭相关资源了 Java代码  try (Statement stmt = con.createStatement()){          …  }

2011-12-14 16:16:38 349

转载 J2EE中的13种技术规范

1.     JDBC(Java Database Connectivity): JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDCB对数据库的访问也具有平台无关性。2.     JNDI(Java Name and Directory Interface): JNDI API被用于执行名字和目录服务。它提供了一致的模型来存

2011-12-13 13:46:28 231

转载 一位工作10年的程序员给小弟弟小妹妹的一些忠告

01. 自己的户口档案、养老保险、医疗保险、住房公积金一定要保管好。由于程序员行业每年跳槽一次,我不隐瞒大家,我至少换过5个以上的单位,这期间跳来跳去,甚至是城市都换过3个。还好户口没丢掉,其他都已经是乱了,好几个城市里,都有交过三金,甚至是一个程序的2个区里交的都有,那些东西,10年后,会变得很重要。你买房子若有公积金,可以取出来,贷款利率也会比较低一些,有孩子了,还需要上学,生病了还需要医

2011-12-13 13:23:16 280

转载 python sys.argv[]用法

sys.argv变量是一个字符串的列表。特别地,sys.argv包含了命令行参数 的列表,即使用命令行传递给你的程序的参数。这里,当我们执行python using_sys.py we are arguments的时候,我们使用python命令运行using_sys.py模块,后面跟着的内容被作为参数传递给程序。Python为我们把它存储在sys.argv变量中。记住,脚本的名称总是sys.a

2011-12-06 09:58:13 335

空空如也

空空如也

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

TA关注的人

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