
java
文章平均质量分 67
yangwm
@yangwm专注后端开发
展开
-
解决字符串插入不能大于2000.(用的数据库环境为Oracle 9i; 10g不能大于4000)
//: CharacterStreamTest.java // author: yangwm 3/1 2008import java.io.InputStreamReader;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedS原创 2008-03-01 19:18:00 · 1820 阅读 · 0 评论 -
Java并发学习笔记
并发小结:高性能并发类库:基于CAS、 读写锁分离、 拆分锁粒度、volatile、AbstractQueuedSynchronizer实现, 来尽量减少高并发时的竞争。LockFree算法,不需要加锁。通常都是三个部分组成:循环、CAS (CompareAndSet)、回退。(可以使用LockFree算法,来实现乐观锁)学习参考资料:《分布式Java应用:基础与实践》、《Java并发编程实践》、温少的《Java并发程序设计教程》、The Java™ Tutorials、原创 2010-08-12 23:39:00 · 3078 阅读 · 0 评论 -
设计模式学习笔记以及java代码实现
创建模式:1.工厂模式简单工厂模式(Simple Factory)提供工厂,把实际的工作转移到具体的子类。工厂方法模式(Factory Method)多态性工厂模式,创建一个产品的工厂接口,把实际的工作转移到具体的子类。抽象工厂模式(Abstract Factory)针对多个产品等级的情况,而工厂方法模式针对单一产品等级的情况。2.单例模式(Singleton)系统中只有一个实例,因此构造方法应该为私有饿汉式:类加载时直接创建静态实例懒汉式:第一次需要时才创建一个原创 2010-08-14 20:33:00 · 2643 阅读 · 0 评论 -
Java性能调优笔记
Java性能调优笔记调优步骤:衡量系统现状、设定调优目标、寻找性能瓶颈、性能调优、衡量是否到达目标(如果未到达目标,需重新寻找性能瓶颈)、性能调优结束。寻找性能瓶颈性能瓶颈的表象:资源消耗过多、外部处理系统的性能不足、资源消耗不多但程序的响应速度却仍达不到要求。资源消耗:CPU、文件IO、网络IO、内存。外部处理系统的性能不足:所调用的其他系统提供的功能或数据库操作的响应速度不够。资源消耗不多但程序的响应速度却仍达不到要求:程序代码运行效率不够高、未充分使用资源、程序结构不合理。原创 2010-08-22 23:47:00 · 25731 阅读 · 5 评论 -
构建可伸缩的系统笔记
垂直伸缩支撑高的访问量随着CPU增加,响应速度提升或同时可用于处理请求的线程增加(服务能力线程增长), 需要解决的三个情况:锁竞争。用于支撑的并发请求数线程数,根据CPU数来调整。单线程任务,能够启动多个线程并发地将任务分解成多个任务完成。随着内存增加,响应速度提升(服务能力线程增长), 需要解决的三个情况:cache的集合大小可根据内存计算出一个比例。JVM堆的大小进行调整。支撑大的数据量分表: 具体分表策略根据业务而定, 需要应用做一定处理。分表带来的好处是单张表的数据量减少, 因此其读写速度可以得到一原创 2010-08-30 11:38:00 · 1257 阅读 · 0 评论 -
《分布式Java应用:基础与实践》扩展阅读链接
《分布式Java应用:基础与实践》扩展阅读链接原创 2010-08-31 17:01:00 · 2213 阅读 · 0 评论 -
Jetty comet技术初探
Jetty的org.mortbay.util.ajax.Continuation 接口: suspend(long timeout) Suspend handling. // 相当于Object的wait resume() Resume the request. // 相当于Object的notify ......1.Streaming方式:D:/>curl http://127.0.0.1:8080/testcomet/streams原创 2010-09-25 20:57:00 · 4570 阅读 · 0 评论 -
Memcached初探手记
Memcached初探手记Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。官方网址:http://memcached.org/Windows下的Memcached安装:1. 下载memcache的windows版(memcached-win32-1.4.4-54-g136cb6e.zip),解压D:/work/memcached_win322.原创 2010-10-08 00:00:00 · 1193 阅读 · 0 评论 -
交集N算法
选用”sort集合一 + 遍历集合二到已排序的集合一种进行查找并计算“,做为Intersection N Algorithm的实现算法:算法测试与权衡见: http://blog.youkuaiyun.com/yang_net/archive/2010/10/21/5956428.aspx原创 2010-10-21 22:05:00 · 1535 阅读 · 0 评论 -
两集合(数组)求交集
算法一步骤(SortSortIntersectionAlgorithm):1、sort集合一2、sort集合二3、同时遍历已排序的两集合,进行计算算法二步骤(SortIntersectionAlgorithm):1、sort集合一2、遍历集合二到已排序的集合一种进行查找, 并计算结果:1、两集合都排序后再比较, 效率比较高一些2、但一集合很小、另一集合很大时候, 使用小集合排序后、大集合到小集合中进行二分查找(找到后移除小集合中该元素并原创 2010-10-21 13:46:00 · 1597 阅读 · 0 评论 -
最大N算法--最优资源实现
假如做个XX网, 当然要为金牌会员提供最优秀的资源(people)服务。优秀资源比较规则是:1. 有籍贯(籍贯莫有的, 不敢要)2. 钱多3. 籍贯为'jx'的优先, 其他...下面程序就是求最优资源实现:原创 2010-10-24 11:46:00 · 1330 阅读 · 0 评论 -
Redis初探
Redis初探 Redis is an advanced key-value store. It is similar to memcached but the dataset is not volatile, and values can be strings, exactly like in memcached, but also lists, sets, and ordere原创 2010-11-17 18:27:00 · 1169 阅读 · 0 评论 -
最大N算法(前一版本的改进)
MaxNAlgorithm比最简单的排序后取最大的n位, 效率高十陪以上(当然需排序数组也要有足够大且n与数组大小差距足够大才行; 测试结果只是个比较而已,因为vm没有先预热以及相应参数配置)。最简单的排序后取最大的n位: array size 乘于 array size 的比较。MaxNAlgorithm:n 乘于 array size 的比较。 这个算是对前一版本的改进:因原创 2010-11-01 00:15:00 · 1680 阅读 · 1 评论 -
Java并发编程--fork-join framework(a parallelizable algorithm)
数组归并排序代码实现(ForkJoin版):输出:[0, 0, 1, 2, 2, 3, 4, 6, 7, 8, 9, 10, 11, 15]学习参考资料:Stick a fork in it, Part I & Stick a fork in it, Part II : http://www.briangoetz.com/pubs.htmlA Java ForkJoin Framework: http://gee.cs.oswego.edu/dl/papers/fj.pdfJ原创 2010-08-12 21:34:00 · 1312 阅读 · 0 评论 -
并发多线程环境下触发spring3的getBean的一个bug, bean的scope为prototype
并发多线程环境下, 触发spring3的getBean的一个bug, bean的scope为prototype(在spring-framework-3.0.0.RELEASE和spring-framework- 3.0.3.RELEASE测试过)。bug见:https://jira.springsource.org/browse/SPR-7423svn源码提交号为:3603;revised constructor argument caching for highly concurrent crea原创 2010-08-05 14:11:00 · 2883 阅读 · 0 评论 -
Java集合学习笔记
集合分析:1。 ArrayList基于数组实现(Object[] elementData)、实现随机操作(RandomAccess接口)非线程安全。ensureCapacity(add方法可能要进行数组扩容)、trimToSize等使用Arrays.copyOf。Arrays.copyOf方法实现(参见源码), 如果是Object类型,则直接通过new Object[newLength]创建;否则通过Array.newInstance创建; 然后调用System.arraycopy将之前数组中的对象复制原创 2010-08-04 23:05:00 · 729 阅读 · 0 评论 -
String的split的学习。
String的split的学习。public String[ ] split(String regex); 是根据给定的正则表达式的匹配来拆分此字符串。正则表达式中的.应该用这种形式来表示:/.示例代码:public class TestSplit { public static void main(String[] args) { C原创 2007-12-23 11:26:00 · 539 阅读 · 0 评论 -
java中多态的学习。
java中多态的学习。java中的方法是通过动态绑定来实现多态的。在基类中定义两个方法,make()和doSomeThing(),且基类的make()方法调用了doSomeThing()方法。导出类覆盖基类的doSomeThing()方法。为导出类创建一个对象,将它向上转型为基类型并调用make()方法,make()方法会自动调用导出类的doSomeThing()方法。原创 2007-12-23 12:07:00 · 638 阅读 · 0 评论 -
在抽象基类构造函数调用该抽象方法
在导出类中覆盖了在抽象基类的抽象方法,并在抽象方法中访问在本类定义的属性。在抽象基类构造函数调用该抽象方法。abstract class Base { public Base() { print(); } public abstract void print();}class Derived extends Base { private int p = 5;原创 2007-12-31 14:51:00 · 1011 阅读 · 0 评论 -
学习sigar--监控操作系统信息
Sigar(System Information Gatherer And Reporter),是一个开源的工具,提供了跨平台的系统信息收集的API,由C语言实现的。项目地址:http://support.hyperic.com/display/SIGAR/Homesigar.jar包是通过本地方法来调用操作系统API来获取系统相关数据。本机是Windows操作系统下sigar.j原创 2010-03-16 17:49:00 · 2584 阅读 · 1 评论 -
使用applet遇到java.security.AccessControlException异常
<br /> <br />今天写一个使用jta(Telnet/SSH for the JAVA) applet例子, 遇到Socket: can't connect: java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:23 connect,resolve)。<br /> <br />例子jtaAppletView.html 内容为:<br /><html><br /> <原创 2010-07-16 17:23:00 · 4115 阅读 · 0 评论 -
umap项目静态代码分析
umap是分布式架构, 系统模块统一采用json做数据交互。分为基础平台工程(数据交互工具、数据总线、消息路由)与业务平台工程(umap前端系统、umap 后端系统)。umap代码工作基本完成, 做个简单静态代码分析, 使用findbugs。在eclipse中使用findbugs,查找很多有问题的代码 如下:根据findbugs建议修改代码后, eclipse中使用findbugs在查找 如下:findbugs主页与学习参考:http://findbugs.sourceforge.net/http://ww原创 2010-07-19 17:25:00 · 1398 阅读 · 0 评论 -
Java, Go web server
1. 使用java, go自带web serverjava语言版本参考http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/jre/api/net/httpserver/spec/com/sun/net/httpserver/package-summary.html 的 A minimal Http server example源码:package net;import java.io.IOException;import java.i原创 2010-07-25 18:04:00 · 2028 阅读 · 0 评论 -
JSONObject(org.json)的一点修改
修改org.json.JSONObject的stringToValue,返回能容纳整数的最小包装类型而不是Integer。(修正数据交互工具中当对象包含属性的类型为类型为byte/short时反射调用field.set(bean, obj)引发异常。)黑色粗体为增加部分,修改后代码如下: static public Object stringToValue(String s) { if (s.equals("")) { return s;原创 2010-07-26 13:42:00 · 3184 阅读 · 0 评论 -
Java并发编程--三个线程顺序打印ABC
three Thread A, B C;Thread A print "A"Thread B print "B"Thread C print "C"like this ABC...ABC(Total 10 ABC)代码实现:原创 2010-07-29 11:46:00 · 2601 阅读 · 0 评论 -
体验IntelliJ IDEA + jetty
体验IntelliJ IDEA + jetty1. 安装软件环境。 1.1 解压安装ideaIU-94.192-jdk15.zip。 1.2 Jetty_Integration_7948.zip解压到idea_home/plugins/中。 1.3 解压安装jetty-6.1.24.zip 2. 部署web工程到jetty中。 双击打开idea, 进入到主菜单。 Run-->Edit Configurations--Add New Configurations-->Jetty Se原创 2010-05-31 11:21:00 · 26858 阅读 · 0 评论 -
体验eclipse4
Eclipse4发布了, 体验一下。Eclipse SDK 4.0项目地址: http://www.eclipse.org/eclipse4/下载Eclipse SDK 4.0 Early Adopter Release, 并安装。先来看看界面, 很整洁,颜色也比较淡。1.代码模板的当前日期变量{$Date}的格式为:"2010-07-31 下午3:45:40", 用myeclipse的时候格式为:"Jul 31, 2010 3:45:40 PM"。为了保持以前时间格式习惯, 通过控制面板-->区原创 2010-07-31 15:55:00 · 1766 阅读 · 1 评论 -
数组归并排序
数组归并排序代码实现:输出:[0, 0, 1, 2, 2, 3, 4, 6, 7, 8, 9, 10, 11, 15][0, 0, 1, 2, 2, 3, 4, 6, 7, 8, 9, 10, 11, 15]学习参考资料:http://en.wikipedia.org/wiki/Merge_sorthttp://www.itl.nist.gov/div897/sqg/dads/HTML/mergesort.html原创 2010-08-01 16:05:00 · 1172 阅读 · 0 评论 -
tcp nio 服务端、客户端例子--参考《分布式Java应用:基础与实践》
原书中tcp nio例子基础主要做了以下调整:1. 信息长度由定长(ByteBuffer长度)修正为可变长(即不再收长度限制)2. 特殊错误处理:read Exception,opposite close Exception,select timeout Exception(网络超时)。/** * */package distributed.tcpnio;import java.io.IOException;import java.net.InetSocketAddress;impor原创 2010-07-29 22:27:00 · 3912 阅读 · 1 评论