转载:http://netgodfather.blog.sohu.com/74926448.html Facebook 成功了,而且不是小成。 当初 Facebook 以校园为基础,掀起真人社交网络的时候,就引来了大量的跟风者。这个跟风还不是中国人民的专利,是全世界都在跟风。记得前段时间就有人列出了各种语言的Facebook 跟风网站。 后来,Facebook 开始开放了API,引来了大量的第三方应用在Facebook上驻扎。这甚至引起了Google这个互联网老“新秀”的警惕。开放API似乎也会开始逐步成为一种风潮。 但是,谁想做平台?谁能做平台?谁想做内容?谁能做内容? Faceb ...
一、 一个文本文件有多行,每行为一个URL。请编写代码,统计出URL中的文件名及出现次数。   a) 文件名不包括域名、路径和URL参数,例如http://www.ourday.cn/bbs/forumdisplay.php?fid=18中的文件名是forumdisplay。   b) 部分URL可能没有文件名,例如http://www.ourday.cn/,这类统计为“空文件名”。   c) 出现在不同URL中的相同文件名视为同一文件名,例如http://www.ourday.cn/index.php和ftp://ftp.ourday.cn/index.php为同一文件名   文件内 ...
写模型 读写模型是一个稍微复杂一些的模型。 一份共享资源允许多个读者同时读取。但是只要有一个写者在写这份共享资源,任何其他的读者和写者都不能访问这份共享资源。 读写模型实现起来,不仅需要信号量机制,还需要额外的读者计数和写者计数。 public static final Object signal = new Object(); public static int readers = 0; public static int writers = 0; // 读者代码 … read() { for(… ) { // 循环执行 synchronized(signal){ ...
转载:http://xiecc.blog.163.com/blog/static/14032200791635949331/ 全球第二大社交网站的facebook推出的开发平台在几个月之内迅速走红。在拒绝了 yahoo,google等的收购后,它的狼子野心也暴露无遗,它要做基于web的OS,在它的开放发台上可以搭建集成任何应用。游戏、工作、理财一切都在facebook中了,浏览器+facebook,会成为以后人们的生活方式吗? 然而不得不说facebook的官方文档既乱且差, 很多刚开发facebook应用的人可能都会丈二和尚摸不着头脑。这篇日志算是八卦+tutorial吧。 一、 ...
TCP、UDP是传输层协议。 HTTP是应用层协议,其传输都是被包装成TCP协议传输。 SOCKET是实现传输层协议的一种编程API。
TreeCache是一种结构化的、基于复制的事务缓存。TreeCache是JBoss应用服务器中集群服务—包括JNDI集群、HTTP和EJB的Sesssion集群、JMS集群—的基础框架。其可以单独使用,可以集成到JBossAS应用,也可以集成到其他的应用服务器上。TreeCache是一种树状结构,每个节点拥有一个名字和多个或者没有子节点,除跟节点没有子节点其他节点有且只有一个父母节点,可以通过路径名来访问子节点(FQN:Full Qualified Name),在一个TreeCache中可以存在多棵树,,即可以有多个根节点。当应用于分布式环境时,由于TreeCache是基于复制的,每个子节点 ...
Hibernate 中实现了良好的Cache 机制,我们可以借助Hibernate 内部的Cache迅速提高系统数据读取性能。 需要注意的是:Hibernate做为一个应用级的数据访问层封装,只能在其作用范围内保持Cache中数据的的有效性,也就是说,在我们的系统与第三方系统共享数据库的情况下,Hibernate的Cache机制可能失效。一个很简单的例子,如果你用access修改了库中的值,那么这就不会更新JVM中的缓冲池,这就导致了赃数据的产生。 Hibernate 在本地JVM 中维护了一个缓冲池,并将从数据库获得的数据保存到池中以供下次重复使用(如果在Hibernate中数据发生了变 ...
B树(二叉搜索树)定义: 1)、每个非叶子节点至多有两个子节点。 2)、每个节点都存储关键字值。 3)、其左子节点的关键字值小于该节点,且右子节点的关键字值大于或等于该节点。 简略代码实现: /** * 节点类 */ class Node{ public int key; public int data; public Node leftChild; public Node rightChild; public Node(int key, int data){ this.key = key; this.data = data; this.leftChild = ...
package com.study.doublelink; /** * 节点类 */ class Link{ public int data; public Link next; public Link previous; public Link(int data){ this.data = data; this.next = null; this.previous = null; } public void display(){ System.out.println(this.data); } } /** * 双向双端链表类 */ cla ...
哈希表分为两大类,一是开放地址法,二是链地址法。 1)、开放地址法中,通过在哈希表中再找一个空位解决冲突问题。 2)、链地址法中,某个数据项的关键字值还是像通常一样映射到哈希表的单元,而数据项本身插入到这个单元的链表中,其他同样映射到该位置的数据项只需要加入到链表中。 链地址法Java简缩代码: /** * 节点类 */ class Link{ private int data; public Link next; public Link(int data){ this.data = data; this.next = null; } public int get ...
现有个项目,运行于Linux平台下的tomcat服务中,在页面中查看传递的中文参数值,是乱码。解决方案如下, 第一种方法:在tomcat的server.xml中,对connector添加 URIEncoding="GBK"。 第二种方案:在接受参数程序中,设置语言编码。
   
对象的传递与返回 1、Java对象以引用的方式传递,但就传递来说,是引用值的传递。 2、尽量避免以参数形式返回值。 3、不能以final来限制对象值的修改,因为final修饰的是引用,只能是其不能指向其他对象。 4、方法内没有局部对象,只有局部引用。 5、引用有作用域,而对象没有。 6、希望一个类可以被克隆: 1)、实现Cloneable接口。 2)、重载clone()。 3)、在你的clone()方法中调用super.clone()。 4)、在你的clone()方法中捕获异常。 7、为什么拷贝构造函数能在C++中可行,在Java中不行: 因为在c++中,可以以对象的局部拷贝来实现, ...
很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了。 我的经验主要来自hibernate2.1版本,基本原理和3.0、3.1是一样的,请原谅我的顽固不化。 hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓存就失效了。 二级缓存是SessionFactory级别的全局缓存,它底下可以使用不同的缓存类库,比如ehcache、oscache等,需要设置hibernate.cache.provider_class ...
大家都清楚Spring的AOP方面工作是很优秀,但是其内在的基础的东西,还是有一大部分不太了解的,其AOP大量用了ThreadLocal,这一个在前面已做了介绍了,还有一个比较重要的怎样用动态代理组装成AOP. 说到动态代理,有两种情况,第一种是有接口的情况下,你可以选择为jdk自带的动态代理的方式来编写程序,但你想要为一个实在的类编写动态代理的方式的话,这时候就必须选择一些开源的lib包啦.spring和hibernate选择了同样的CGlib包,具体表现在:Hibernate主要是利用cglib生成pojo的子类并override get方法来实现lazy loading机制,Spri ...
Java中对象的串行化(Serialization)和transient关键字: 对象的串行化(Serialization) 一、串行化的概念和目的 1.什么是串行化 对象的寿命通常随着生成该对象的程序的终止而终止。有时候,可能需要将对象的状态保存下来,在需要时再将对象恢复。我们把对象的这种能记录自己的状态以便将来再生的能力。叫作对象的持续性(persistence)。对象通过写出描述自己状态的数值来记录自己 ,这个过程叫对象的串行化(Serialization) 。串行化的主要任务是写出对象实例变量的数值。如果交量是另一对象的引用,则引用的对象也要串行化。这个过程是递归的,串行化可能要 ...
在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了,在这篇blog中我们将来一探究竟,抛砖引玉,欢迎大家提供更多的实现远程通讯的技术和原理的介绍。 基本原理 要实现网络机器间的通讯,首先得来看看计算机系统网络通信的基本原理,在底层层面去看,网络通信需要做的就是将流从一台计 ...
RMI-IIOP出现以前,只有RMI和CORBA两种选择来进行分布式程序设计。RMI-IIOP综合了RMI 和CORBA的优点,克服了他们的缺点,使得程序员能更方便的编写分布式程序设计,实现分布式计算。 首先,RMI-IIOP综合了RMI的简单性和CORBA的多语言性(兼容性),其次RMI-IIOP克服了RMI只能 用于Java的缺点和CORBA的复杂性(可以不用掌握IDL). 下面给出了一个非常的简单的RMI-IIOP程序,该程序是在上一个例子(Java2 RMI入门的基础) 上修改完成的,可以对比两个程序的区别。 1. 实现远程接口,生成远程对象,存根(Stub)和框架(Skeleton ...
 消息中间件原理及JMS简介之一  作者:orangelizq摘要:       现今,越来越多的企业面临着各种各样的数据集成和系统整合,CORBA、DCOM、RMI等RPC中间件技术也应运而生,但由于采用RPC同步处理技术,在性能、健壮性、可扩展性上都存在着诸多缺点。而基于消息的异步处理模型采用非阻塞的调用特性,发送者将消息发送给消息服务器,消息服务器在合适的时候再将消息转发给接收者;发送和接收是异步的,发送者无需等待,二者的生命周期也可以不必相同,而且发送者可以将消息间接传给多个接收者,大大提高了程序的性能、可 ...
1、构架师胚胎(程序员) 学习的知识是语言基础、设计基础、通信基础等,应该在大学完成,内容包括java、c、c++、uml、RUP、XML、socket通信(通信协议)——学习搭建应用系统所必须的原材料。 2、构架师萌芽(高级程序员) 学习分布式系统、组建等内容,可以在大学或第一年工作时间接触,包括分布式系统原理、ejb、corba、com/com+、webservice(研究生可以研究网络计算机、高性能并发处理等内容) 3、构架师幼苗(设计师) 应该在掌握上述基础之上,结合实际项目经验,透彻领会应用设计模式,内容包括设计 ...
架构师核心技能养成计划 作者:江南白衣,原文出处: http://blog.csdn.net/calvinxiu/archive/2007/02/18/1511545.aspx. 引子: "这个项目的架构是什么?" 对方爽快的回答:"Spring+Struts+Hibernate。" 嗯,这位很可能不是架构师...... 一、核心竞争力 架构设计的原理、模式与技术 未经培训的架构师们从试验与挫折中获得架构设计的技能,但其中大量的原理、知识、模式和技巧,都经历了一个重复发现的过程。 其实,各路神仙在这个领域虽则没有捣鼓出大热的畅销书来,但前篇的 ...
Oracle分区技术 ORACLE的分区(Partitioning Option)是一种处理超大型表的技术。分区是一种“分而治之”的技术,通过将大表和索引分成可以管理的小块,从而避免了对每个表作为一个大的、单独的对象进行管理,为大量数据提供了可伸缩的性能。分区通过将操作分配给更小的存储单元,减少了需要进行管理操作的时间,并通过增强的并行处理提高了性能,通过屏蔽故障数据的分区,还增加了可用性。 ORACLE的分区表的划分方法包括:按字段值进行划分的范围分区;按字段的HASH函数值进行的划分HASH分区;先按范围划分,再按HASH划分的复合分区;在ORACLE9i中又增强了按字段值列表进行划分 ...
数据库大表的优化:采用蔟表(clustered tables)及蔟索引(Clustered Index)   蔟表和蔟索引是oracle所提供的一种技术,其基本思想是将几张具有相同数据项、并且经常性一起使用的表通过共享数据块(data block)的模式存放在一起。各表间的共同字段作为蔟键值(cluster key),数据库在访问数据时,首先找到蔟键值,以此同时获得若干张表的相关数据。蔟表所能带来的好处是可以减少I/O和减少存储空间,其中我更看重前者。采用表分区(partition)   表分区技术是在超大型数据库(VLDB)中将大表及其索引通过分区(patition)的形式分割为若干较小 ...
大数据量的数据库设计准则: 1、分区 (list、range、hash)。 2、根据where条件来决定分区策略。
1.是否使用联合主键?个人倾向于少采用联合主键。因为这样会降低索引的效率,联合主键一般都要用到至少一个业务字段,往往是字符串型的,而且理论上多字段的索引比单字段的索引要慢些。看上去似乎也不那么清爽。 在实际的设计中,我尽量避免使用联合主键,有些时候“不得不”使用联合主键。 2.PK采用无意义的字段(逻辑主键)还是有意义的字段(业务主键)?个人倾向于“逻辑主键”,理由是这样设计出的数据库模型结构清晰、关系脉络清楚,往往更符合“第三范式”(虽然不是故意的,呵呵)。而且更容易避开“联合主键”,而且可以使用索引效率高的字段类型,比如int、long、number。缺点是用无意义的字段建立表间的关系, ...
1、把你表中经常查询的和不常用的分开几个表,也就是横向切分 2、把不同类型的分成几个表,纵向切分 3、常用联接的建索引 4、服务器放几个硬盘,把数据、日志、索引分盘存放,这样可以提高IO吞吐率 5、用优化器,优化你的查询 6、考虑冗余,这样可以减少连接 7、可以考虑建立统计表,就是实时生成总计表,这样可以避免每次查询都统计一次 8、用极量数据测试一下 数据仓库解决的是数据挖掘,共享,和大数据量存储有什么根本关系? mrzxc 等说的好,考虑你的系统,注意负载平衡,查询优化,25 万并不大,可以建一个表, ...
wincvs的简单使用指南: 第一步:设置CVS 在菜单“管理”〉设置〉 认证方式:pserver 路径:/cvs/cvsroot(视个人情况而定) 主机地址:192.168.13.88(视个人情况而定) 用户:liwc 第二步:登陆 第三步:检出项目 在菜单“远程”〉检出项目|模块〉检出设置中: 服务器上的模块名和路径:document/工期/08版本发布计划(视个人情况而定) 检出到本地文件夹:D:\work\cvs-doc\document\工期\08版本发布计划\(视个人情况而定)。
myeclipse的使用技巧: 1、在编译工程时,经常因为html格式原因,整个工程标志为编译错误。为了忽略这种错误,可以使用,工程名上使用右键-〉properties->MyEclipse->Validation->勾选override validation preferences->HTML syntax Validator.
apache modules开发注意事项: 1、apache是以多进程、一个进程多线程的方式运行的,所以对于全局动态内存变量的修改(如:删除、释放空间、重新分配空间),需要使用互斥或写锁进行数据的同步。 2、module开发中,尽量使用apache提供的api,如strdup环境apr-strdup等。 3、modules在apache执行链的顺序默认是以httpd.conf中的load顺序执行的,但最好在注册钩子函数时,明确指明module执行顺序。 4、在读取文件更新数据时,先判定文件的修改时间,如果没有变化,则不进行修改。
liwanchun_xd
搜索本博客
博客分类
我的相册
6f290079-a54e-3eaa-924d-2da67a1b2f90-thumb
axis2-codegen-javatowsdl
共 4 张
最近加入圈子
存档
最新评论