java学习总结
文章平均质量分 71
zz198808
这个作者很懒,什么都没留下…
展开
-
静态方法只能被继承,而不能被重写
静态方法只能被继承,而不能被重写原创 2012-02-25 21:27:53 · 1229 阅读 · 0 评论 -
Memcached在项目中的应用
Memcached是一个开源的快速分布式缓存框架,它和ehcached等缓存框架相比,具有下面的一些优势:1、 跨jvm的缓存架。我们知道,在一个jvm进程中,一般情况下的有效内存利用最多为2G,如果你再把数据缓存在项目的jvm进程中,势必造成内存空间的紧缺,严重的时候会出现堆栈溢出面导致项目终止运行。2、 集群环境下的缓存框架。Memcached启动后,有自己的独立IP地址及原创 2012-09-29 17:12:05 · 841 阅读 · 0 评论 -
Java NIO和操作系统I/O模型
NIO,New IO,相对Java1.4之前老的IO(OIO)。 操作系统就说Linux吧。 Linux上的I/O模型大致分为五种: 阻塞式,非阻塞式,I/O复用,信号驱动式I/O,(这些都是同步IO)异步I/O(AIO)。 (菜鸟我本来以为I/O复用已经算很高级的了,还经常用这个来考别人,如果对方答不上来还要沾沾自喜一番。羞愧地无地自容了,掩面。) 言归正传,原创 2012-10-06 16:10:03 · 1736 阅读 · 0 评论 -
MySQL创建索引,查看以及删除
1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。 例如,有3个未索引的表t1、t2、t3,分别只包含列c1、c2、c3,每个表分别含有1000行数据组成,指为1~1000的数值,查找对应值相等行的查询如下所示。SELECT原创 2012-10-07 16:56:09 · 734 阅读 · 0 评论 -
Corba项目中使用的ActiveMQ消息组件介绍
下载ActiveMQ http://activemq.apache.org/download.html解压缩到本地 启动mq:/bin/activemq.bat 管理界面: http://localhost:8161/admin,默认不用验证。发送消息测试:package com.google.homework; import javax.jms.Connect原创 2012-09-17 22:39:56 · 889 阅读 · 0 评论 -
Java 序列化的高级认识
简介: 如果你只知道实现 Serializable 接口的对象,可以序列化为本地文件。那你最好再阅读该篇文章,文章对序列化进行了更深一步的讨论,用实际的例子代码讲述了序列化的高级认识,包括父类序列化的问题、静态变量问题、transient 关键字的影响、序列化 ID 问题。在笔者实际开发过程中,就多次遇到序列化的问题,在该文章中也会与读者分享。序列化 ID 问题情境:两个客户端 A 和 B原创 2012-10-11 12:41:26 · 653 阅读 · 0 评论 -
Java笔试题总结(一) .
package com.lee;import java.util.HashMap;import java.util.Random;public class tips { public static void main(String[] args) { // 在if()内的判断语句少写一个"="时,仍然能被执行。括号内执行赋值语句。原创 2012-10-12 10:14:58 · 1112 阅读 · 0 评论 -
比较String地址相等
package com;public class A{ /** * @param args */ public static void main(String[] args) { String a = "hello"; String b = "he"; String c = a.substring(0, 2); System.ou原创 2012-10-12 09:44:18 · 867 阅读 · 0 评论 -
工场模式实现代码
1.// 产品接口 2.public interface Product { 3. 4. public void getName(); 5. 6.} 7. 8.// 具体产品A 9.public class ProductA implements Product { 10. 11.原创 2012-09-24 09:43:42 · 643 阅读 · 0 评论 -
activeMQ在处理大量并发消息出现的问题
我在系统中使用activemq处理客户发入的手机短信,运行一段时间后发现了问题,在发送到queue的消息并发较多时,消费端只能接收一部分,比如100条消息在较短的时间内发入,总有10来条接收不到,存放在服务器上,而且这些消息一直不能主动发送出来,后面继续进入的消息都能正常处理,最终只有重新启动服务消费端才能接收到那部分剩下的消息。 1、考虑到是否是同步异步接收的关系,调整了连接参数,发现原创 2012-09-24 11:10:47 · 6193 阅读 · 0 评论 -
Java中String问题
问题:String s = new String("XYZ"); 到底生成了几个对象?要理解这个,就要知道string类的工作原理。 你知道在java中除了8中基本类型外,其他的都是类对象以及其引用。所以 "xyz "在java中它是一个String对象.对于string类对象来说他的对象值是不能修改的,也就是具有不变性。看: String s= "Hello "; s=原创 2012-09-24 11:25:18 · 776 阅读 · 0 评论 -
自己做的一个缓存系统Cache
代码:package com.sougou;import java.io.ObjectInputStream.GetField;import java.util.HashMap;import java.util.Map;public class CacheDemo { public static Map cache = new HashMap(); /**原创 2012-09-24 00:00:04 · 849 阅读 · 0 评论 -
java是编译型的还是解释型的
有人说Java是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就无法执行。 也有人说Java是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释型的。对于C和C++,它们经过一次编译之后,可以由操作系统直接执行,所以它们是编译型语言。而Java不一样,它首先由编译器编译成.class(字节码)文件,然后在通过JVM从.class文件中读原创 2012-09-24 21:28:21 · 757 阅读 · 0 评论 -
常见的中间件技术有哪些呢?
有OMG组织的Corba,微软的COM,IBM的SOM。原创 2012-09-24 21:48:46 · 4797 阅读 · 0 评论 -
同步IO与异步IO的区别
首先要明确一点:不同IO模型之间的差别本质上是CPU的参与方式这里重点说一下各自的应用场景 如何选择同步还是异步呢? 主要有这么几个指标供参考 1. 并发数量 2. 接收字节数 3. 处理请求所需CPU时间 我们一个一个来考察 并发数 并发低的时候同步IO与异步IO差别不大 并发高时差别会比较明显,这要表现在 1. 开启线程数:如并发1000时,原创 2012-09-24 21:38:42 · 3043 阅读 · 0 评论 -
缓存在项目中的应用
一个项目开发完成后,我们都会进行压力测试以验证非功能性需求是否满足,如果性能无法达到要求,我们一般会从代码、数据库、集群、缓存等一些方面对系统进行优化。其中的缓存,绝对是对项目性能进行优化的一个重点。所谓缓存,就是在系统内存区中开辟出一块单独的内存区域,把要使用的对象预先加载到这块内存区域中(或将使用过的对象放回到这块内存区域中)。如果应用需要对象时,系统先在缓存中查找要找的东西是否存在,如果原创 2012-09-29 17:13:21 · 719 阅读 · 0 评论 -
MemCached的java客户端实例
package com.danga.MemCached.test;import com.danga.MemCached.*;public class TestMemcached { public static void main(String[] args) { /*初始化SockIOPool,管理memcached的连接池*/ String[] servers = {原创 2012-09-29 16:59:37 · 1572 阅读 · 0 评论 -
谈谈在java中各种类型变量所占的字节数(一)
(一)整形在java中整形有byte-->short-->int-->long(按照所占字节排序)其中(一个字节占8bit,也就是一个自己占8位,1 bit=11111111)byte:1字节short:2字节int: 4字节long:8字节那么整形中的各种类型他们的最大最小值分别是多少呢?拿byte说他占1个字节也就是8为,但是二进制中最高位代表符号位(0:表示正原创 2012-03-11 16:15:32 · 2800 阅读 · 0 评论 -
计算程序算法运行时间
System.currentTimeMillis()原创 2012-03-17 20:43:26 · 470 阅读 · 0 评论 -
变量Map的两种方法
方法一:先得到key的set集合,然后遍历set集合得到value public static void test2(){ /* * 方法一:先得到key的set集合,然后遍历set集合得到value */ Map map=new HashMap(); map.put("key1","value1"); map.put("key2","value2");原创 2012-03-18 10:28:08 · 2469 阅读 · 0 评论 -
JDom解析xml(一)
(一)利用JDOM生成xml文件 package com.huawei;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import org.jdom.Attribute;import org.jdom.Comment;原创 2012-03-18 19:49:56 · 502 阅读 · 0 评论 -
也谈equals和==的区别
==运用在基本数据类型的时候,通过比较它们的实际值来判定是否相同;但是用于比较引用类型的时候。则是比较两个引用的地址是否相同原创 2012-03-21 21:50:29 · 623 阅读 · 0 评论 -
JAVA的动态代理详解
代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为两种。 静态代理:由原创 2012-02-28 20:30:50 · 801 阅读 · 0 评论 -
关于java异常
java程序抛出的异常,如果一直往上抛的话,那么最终会抛给虚拟机,虚拟机解决异常的办法就是打印出堆栈。并且函数内部抛异常是throw,函数后面写的是throws原创 2012-04-04 18:18:51 · 354 阅读 · 0 评论 -
当用java程序去频繁读取大文件的时候将读取到的内容放在内存中
1.师兄之前常说为了提高系统效率要讲频繁读取的东西放在内存中,但是一直不明白这是什么意思,今天自己动手实现了将文件内容放在内存中,我这个文件为680M,一次性读取文件的话我的jvm内存太小,这个时候就要去修改JVM内存大小,可以直接在Eclipse里面进行修改,我修改为1G(嘿嘿当然这个时候电脑有点卡),其实读在内存中就是将内容放在静态变量中。在Eclipse里修改JVM的步骤如下:原创 2012-06-08 21:52:41 · 5719 阅读 · 3 评论 -
StringUtil 用法
最近项目中经常用到org.apache.commons.lang.StringUtil 下面就总结下,这个帮助函数对字符串处理很好用1.空字符串检查使用函数: StringUtils.isBlank(testString)函数介绍: 当testString为空,长度为零或者仅由空白字符(whitespace)组成时,返回True;否则返回False例程: String t原创 2012-07-24 22:30:27 · 1520 阅读 · 0 评论 -
java陷阱-------try中的return
public class Test { public static void main(String[] args) { System.out.println(decision()); } public static boolean decision(){ try{ return true; }finally{ return false;原创 2012-08-12 12:27:42 · 623 阅读 · 0 评论 -
Java垃圾回收机制
综合了若干人的blog~1. 垃圾回收的意义 在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其它对象;而在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾。JVM的一个系统级线程会自动释放该内存块。垃圾回收意味着程序不再需要的对象是"无用信息",这些信息将被丢弃。当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的原创 2012-07-31 18:48:24 · 1555 阅读 · 1 评论 -
AtomicInteger的用法
J2SE 5.0提供了一组atomic class来帮助我们简化同步处理。基本工作原理是使用了同步synchronized的方法实现了对一个long, integer, 对象的增、减、赋值(更新)操作.比如对于++运算符AtomicInteger可以将它持有的integer 能够atomic 地递增。在需要访问两个或两个以上 atomic变量的程序代码(或者是对单一的atomic变量执行两个或原创 2012-09-28 17:21:55 · 14474 阅读 · 0 评论 -
使用位图法判断整形数组是否存在重复
腾讯面试题:使用位图法判断整形数组是否存在重复腾讯面试题:给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中网友提供思路:位图法使用位图法判断整形数组是否存在重复判断集合中存在重复是常见编程任务之一,当集合中数据量比较大时我们通常希望少进行几次扫描,这时双重循环法就不可取了。位图法比较适合于这种情况原创 2012-09-28 21:44:41 · 2013 阅读 · 4 评论 -
Memcached介绍
下面就来介绍一下Memcached。1、什么是MemcachedMemcached是一个开源的高性能,分布式的内存对象缓存系统,通过键值队的形式来对数据进行存取,Memcached是简单而强大,它的简单设计促进快速部署,易于开发,解决了大数据缓存面临的许多问题。官方网址是:http://memcached.org/,目前已经有很多知名的互联网应用使用到了Memcached,比如Wi原创 2012-09-29 15:50:58 · 1456 阅读 · 1 评论 -
基于CORBA规范的中间件——CORBA基本原理
我们知道目前的中间件(集成中间件)主要分为四类:基于CORBA规范的中间件,基于J2EE规范的中间件,基于WebService规范的中间件和基于COM+规范的中间件。今天讲解的就是基于CORBA规范的中间件。 正题 要想了解基于CORBA的中间件,就得先了解CORBA是个什么东东,所以本篇先介绍CORBA的一些相关概念。 OMG——制定CORBA规范的组织 要想知道原创 2012-09-24 21:46:33 · 1049 阅读 · 0 评论