Java
sunnydogzhou
linux,java,c,网络,分布式,NoSql
展开
-
java 中环境变量的设置方法
好久没用java,突一写起来,发现机器上没有设置环境变量,把设置方法总结一下 1. 修改/etc/profile文件 如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。 ·用文本编辑器打开/etc/profile ·在profile文件末尾加入: JAVA_HOME=原创 2010-05-05 17:18:00 · 617 阅读 · 0 评论 -
常用设计模式总结--适配器模式
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE原创 2011-06-11 11:15:00 · 907 阅读 · 0 评论 -
Cassandra的consistency level
在将cassandra的节点配置为互备以后,某天其中一个节点突然down机了,这个时候发现通过cassandra的thrift api往另外的节点写数据也没法成功了。研究了下thrift的api以后,推测估计是跟client的consistency level有关系。 consistency level即一致性级别,用来根据配置的副本因子(ReplicationFactor)来控制ca原创 2011-06-08 17:20:00 · 4918 阅读 · 1 评论 -
常用设计模式总结--单立模式
单立模式,singleton单立模式保证一个类只有一个实例,在java程序中,用static实现起来相对容易。public class ItnpSearcherDaoFactory { ... ... public static ItnpSearcherDaoFactory INSTANCE = new ItnpSearcherDaoFactory();}原创 2011-06-09 23:06:00 · 1297 阅读 · 0 评论 -
常用设计模式总结--桥接模式
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE原创 2011-06-11 13:19:00 · 1239 阅读 · 0 评论 -
Java的多线程编程模型2--怎样才线程安全
在Java多线程编程模型1里面讲到了为什么线程不安全,那怎样才能做到线程安全了? 先来看线程工作是跟内存是怎么打交道的。在并发的线程中,分为主内存和工作内存,主内存就是程序分配的内存,工作内存就是线程所占的内存。线程可能在工作内存中存储了某些主内存对象的副本。当线程操作某个主内存的对象时,先从主内存中将变量的值拷贝到工作内存中,然后在工作内存中改变这个值,最后将这个值刷到主内存中。原创 2011-06-10 00:00:00 · 1358 阅读 · 0 评论 -
Java的多线程编程模型4--synchronized
在Java1.5之前,synchronized应该是最常用的java支持并发手段。那synchronized是怎么做到的了,从java1.0开始,java中的每个对象就一个内部锁。如果一个类的方法被synchronized关键字所修饰,那么这个对象的锁将保护整个方法。举例来说:public synchronized void method(){ method body}等原创 2011-06-18 20:54:00 · 2140 阅读 · 3 评论 -
Java的多线程编程模型5--Java中的CAS理论
CAS,compare and swap的缩写,中文翻译成比较并交换。我们都知道,在java语言之前,并发就已经广泛存在并在服务器领域得到了大量的应用。所以硬件厂商老早就在芯片中加入了大量直至并发操作的原语,从而在硬件层面提升效率。在intel的CPU中,使用cmpxchg指令。在Java发展初期,java语言是不能够利用硬件提供的这些便利来提升系统的性能的。而随着java不断的发展,Ja原创 2011-06-18 22:09:00 · 8726 阅读 · 4 评论 -
常用设计模式总结--组合模式
<!--v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}--> Normal 0 7.8 磅原创 2011-06-19 11:05:00 · 1516 阅读 · 1 评论 -
常用设计模式总结--装饰模式
常用设计模式总结—装饰模式在平时的编程过程中,我们可能会经常遇到这样一种情况,代码的输出是将输入层层包装以后来得到的。就好比我们装修的时候砌墙一样,先是刮水泥、然后是涂腻子,最近刷油漆,经过以上的步骤,我们就能够得到一面干净的墙了。在开发桌面应用程序的时候,会比较多的碰到原创 2011-08-03 20:59:28 · 1343 阅读 · 0 评论 -
常用设计模式总结--代理模式
代理模式就不废话了,这个模式在生活中很常见,打官司、租房子的都需要找个专业的人来替你处理不擅长的事。鉴于这个模式太常见,我觉得就不用废话,画图啥的统统免了吧,直接上代码父类package zl.study.designpattern.proxy;public interface Graphic { public void render(); public原创 2012-02-05 12:18:35 · 820 阅读 · 0 评论 -
常用设计模式总结--责任链模式
常用设计模式总结--责任链模式在多线程的编程模型中,责任链模式是一种常用的模式,责任链模式可以将一个任务分解成小的独立的任务单元,让整个任务一目了然。以一个爬虫爬取某个页面为例,假设url的调度不是有爬虫来管理,而是有专门的urldb模块来实现,那么一个网页的爬取可以分解为以下几个小的子任务。下载网页;解析网页;将当前页面新发现的链接写回urldb。将任务分解成小任务以后,每个小任务的输出原创 2012-02-07 00:04:15 · 1800 阅读 · 0 评论 -
升级到tomcat7.0碰到的问题
今天把tomcat从6.0.18升级到7.0.25,发现了两个问题问题1java.lang.ClassNotFoundException: org.apache.catalina.mbeans.ServerLifecycleListener发现居然找不到这个类,然后把catatina.jar下载下来反编译一看mbenas这个文件夹居然是空的解决办法6.0.18以前,conf/s原创 2012-02-17 14:05:17 · 23504 阅读 · 3 评论 -
Java的多线程编程模型3 -- 在1.5之前怎么并发
在java1.5之前,java在并发上面的建树不多,只提供了为数不多的方式来提供提高并发的效率。其中synchronized关键字是使用最多的,这个看似简单的锁方式,效率奇差,所以那会,java程序员对于c++程序员的在java并发上的诟病总是无力回击。 在1.5之前,java提供的并发容器Vector,我们来看下具体的实现java.util.Vector public cla原创 2011-06-10 00:32:00 · 1902 阅读 · 1 评论 -
常用设计模式总结--生成器模式
Builder,生成器模式。Builder模式将一个对象的创建与表示分离,从而使得相同的创建过程可以创建出不同的表示对象。仍以汽车工厂举例,一个汽车集团下面有许多工厂,每个工厂生产出不同的车型。站在集团的层面,其实集团只需要知道工厂造轮子,造引擎,而并不关心轮子的具体尺寸,引擎的具体马力,它只需要知道工厂最终返回的给它的是一辆完整的汽车,就一切ok类图在这个类图中,省略了Wheel,Engine,Vehicle。DasAuto为新引入的一个类,包含着一个对具体builder父类的引用。而VehicleBui原创 2011-05-24 23:34:00 · 1049 阅读 · 0 评论 -
Java参数传递的方式
1、基本类型作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变的2、在Java中对象作为参数传递时,是把对象在内存中的地址拷贝了一份传给了参数。原创 2010-05-05 17:28:00 · 492 阅读 · 0 评论 -
Java中读写文件大全
http://hi.baidu.com/0_net/blog/item/8566fc2bb730c293033bf63e.html 一.获得控制台用户输入的信息/** *//**获得控制台用户输入的信息 * @return * @throws IOException */ public String getInputMe转载 2010-05-05 19:42:00 · 865 阅读 · 0 评论 -
JNI中抛出异常
应用场景:利用Java的JNI机制调用C写好的类库,现在需要在C的类库中抛出异常,然后在应用层即java上面捕获异常。 具体的实现形式如下首先定义一个异常类class NumberNotFounded extends Exception { NumberNotFounded(){ super(); } NumberNo原创 2010-05-06 20:05:00 · 5225 阅读 · 0 评论 -
Java基本类型
from http://hi.baidu.com/18276393/blog/item/f6efc9d77ee7bc2806088b61.html原文基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型。它们是我们编程中使用最频繁的类型,因此面试题中也总少不了它们的身影,在这篇文章中我们将从面试中常考的几个方面来回顾一下与基本类型相关的知识。转载 2010-05-06 20:17:00 · 2389 阅读 · 0 评论 -
用GDB调试JNI程序
先说点基本的。 默认在linux中,出现segment fault时,是不会出现core dump的文件的。需要去更改一下core file size怎么看core file size了 ulimit -a core file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedfile size (原创 2010-05-07 17:30:00 · 3159 阅读 · 0 评论 -
Java的命名规范
在面向对象编程中,对于类,对象,方法,变量等方面的命名是非常有技巧的。比如,大小写的区分,使用不同字母开头等等。但究其本,追其源,在为一个资源其名称的时候,应该本着描述性以及唯一性这两大特征来命名,才能保证资源之间不冲突,并且每一个都便于记忆。原创 2010-05-07 18:13:00 · 576 阅读 · 0 评论 -
c和java中的二进制文件
最近需要写一段程序,完成以下的工作,用java将数据以二进制的形式写入文件中,然后用C读出此二进制文件。开始的时候没有考虑机器的字节序,直接搞出segment fault.想了很久,才明白原来是java和C的字节序是不一样的。java中的字节序是big endian的,它是与机器无关的。而c的字机序是机器相关的,而当前用的机器是x84_64结构,是little endian原创 2010-05-29 15:36:00 · 2388 阅读 · 0 评论 -
几个java小工具使用总结jps jmap jstat
<br />文中jstat部分转自<br />http://blog.csdn.net/kozazyh/archive/2010/02/04/5289684.aspx<br /> <br /> <br />用java语言编程的时候,sun提供了几个小工具,用着还是不错的,特意做下总结<br /> <br />1.jps<br /> <br />jps用来查看当前java的进程,其实它的功能可以基本上由ps来实现<br /> <br />几个常用的参数:<br /><br />-q 只显示pid,不显示c原创 2010-05-31 11:15:00 · 4097 阅读 · 0 评论 -
log4j详解
<br />第一步:加入log4j- 1.2.8.jar到lib下。<br /><br />第二步:在CLASSPATH下建立 log4j.properties。内容如下:<br /><br /> 1 log4j.rootCategory=INFO, stdout , R<br /><br /> 2<br /><br /> 3 log4j.appender.stdout=org.apache.log4j.ConsoleAppender<br /><br /> 4 log4转载 2010-06-02 14:59:00 · 1008 阅读 · 0 评论 -
Apache Commons Logging 是如何决定使用哪个日志实现类的
<br />Apache Commons Logging 像 SLF4J一样,是个通用日志框架,广泛应用在各个开源组件中。说其通用,是因为它本身只提供了简单的日志输出的实现(org.apache.commons.logging.impl.SimpleLog和org.apache.commons.logging.impl.NoOpLog),主要是为你统一使用其他专业日志实现(Log4j、jdk1.4Logger、aavalon-Logkit)的方式,让你在程序中看不到具体日志实现的代码,以配置转载 2010-06-02 14:56:00 · 9360 阅读 · 0 评论 -
SLF4J教程
一、介绍:简单日记门面(simple logging Facade for java)SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。 Logging API实现既可以选择直接实现SLF4J接的loging APIs如:NLOG4J、SimpleLogger。也可以通过SLF4J提供的API实现来开发相应的适配器如Log4jLoggerAdapter、JDK14LoggerAdapter。在SLF4原创 2010-06-02 14:58:00 · 1266 阅读 · 0 评论 -
在eclipse中使用log4j
<br /> <br /> <br />在java平台上写程序也有点时日,从以前的j2ee到现在的后台程序,多多少少都用到了log4j来输出日志,不过每次用的时候都是别人配好了,然后告诉我说怎么用,然后直接调用就好,一直对log4j处于一直半解的状态。今天,凭着要知其然,知其所以然的态度,细细的研究了下log4j。<br /> <br />1、在eclipse的使用log4j<br /> <br />对于程序员来讲,最快的方法就是先上手,看到直观效果在说,所以第一步就是怎么让自己的程序能够在eclipse里原创 2010-06-11 19:57:00 · 17712 阅读 · 2 评论 -
常用设计模式总结--抽象工厂
Abstract Factory,抽象工厂抽象工厂是一种创建型方法,所谓工厂,顾名思义就是一个车间,里面生产各种各样的组件,既然是抽象的,对应到代码里面,就是定义一些抽象的方法,然后在集体的工厂里面实现。用传统的制造业来举例比较恰当,比如汽车制造业,现在的汽车制造业都已经集团化了,每家汽车制造商都有好多工厂,每个工厂用来生产某几个具体型号的轿车。站在集团的角度,每个工厂都生产引擎,轮胎,然后拼装成整车。从软件的角度抽象,引擎、轮胎都有统一的父类element,而每个工厂也有着统一的父类VehicleFact原创 2011-05-22 21:43:00 · 881 阅读 · 0 评论 -
发现java程序cpu利用率100%的解决方法
最近发现一个java程序的cpu利用率总是在100%,开始没注意,以为是有负载在正常跑,后来发现不是这么一个情况,应该是程序里的某个线程在死循环中,只是程序里面n多线程,怎么知道是哪个线程把cpu占满了?1)先用top找出哪个线程占着cpushell下面用[engine@tempt145 /data/itnProduct/ds2]$ top -H -p 8969结果to原创 2012-03-22 17:58:13 · 17304 阅读 · 2 评论