`
androidssh
  • 浏览: 114864 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
文章列表
1.     概述 随着企业要处理的数据量越来越大,MapReduce思想越来越受到重视。Hadoop是MapReduce的一个开源实现,由于其良好的扩展性和容错性,已得到越来越广泛的应用。Hadoop作为一个基础数据处理平台,虽然其应用价值已得到大家认可,但仍存在很多问题,以下是主要几个: (1)     Namenode/jobtracker单点故障。 Hadoop采用的是master/slaves架构,该架构管理起来比较简单,但存在致命的单点故障和空间容量不足等缺点,这已经严重影响了Hadoop的可扩展性。 (2)     HDFS小文件问题。在HDFS中,任何block,文件或 ...
    HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的 第一种: Map map = new HashMap();  Iterator iter = map.entrySet().iterator();  while (iter.hasNext()) {  Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey();  Object val = entry.getValue();  }  效率高,以后一定要使用此种方式! 第二种: ...
    JDK是Java学习的开始,那么JDK是什么呢?JDK是由什么组成的呢?JDK常用的包有哪些呢?那么本文将向你介绍这些。 AD: JDK概述 JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广 ...
25.为搜索字段建索引 索引并不一定就是给主键或是唯一的字段。如果在你的表中,有某个字段你总要会经常用来做搜索,那么,请为其建立索引吧。 你可以看到那个搜索字串 “last_name LIKE ‘a%’”,一个是建了索引,一个是没有索引,性能差了4倍左右。 另外,你应该也需要知道什么样的搜索是不能使用正常的索引的。例如,当你需要在一篇大的文章中搜索一个词时,如: “WHERE post_content LIKE ‘%apple%’”,索引可能是没有意义的。你可能需要使用MySQL全文索引或是自己做一个索引(比如说:搜索关键词或是Tag什么的)
1、LinkedHashSet具有可预知迭代顺序的Set接口的哈希表和链接列表实现。此实现与HashSet的不同之外在于,后者维护着一个运行于所有条目的双重链接列表。 2、LinkedHashSet源码一部分     public class LinkedHashSet<E>extends HashSet<E>implements Set<E>, Cloneable,      Serializable 3、当父类实现了某一接口,子类还需不需显式地写出也实现这一接口     LinkedHashSet已继承了HashSet,即是HashSet的子类,而Hash ...
linux上安装多个tomcat并想同时用,大家都知道要修改端口,但往往花了很大力气还是运行不起来。这里提醒大家注意server.xml里的三个地方不能和其他地方相同。 修改server.xml的配置文件: <Server port="9005" shutdown="SHUTDOWN">  端口:8005->9005 <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->     <Connector port="9080" maxHtt ...
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。 1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中 ...
80年代末90年代初,是通信行业的天下,中国电信市场呈喷发之势,本土力量应运而生。巨大中华这个词一时成为人们茶前饭后讨论的焦点,而这个词语的每个字就代表了一家通信制造厂商巨头:巨龙通信、大唐电信 、中兴通讯 ...
strategy模式   定义: 运行时刻选择算法   表面上看起来,state模式和strategy模式是非常相似的,但既然他们分成两种不同的模式,就有一定的区别,用一句话来概括就是: 策略用来处理算法方式变化,而状态则是处理状态变化。 具体可以参考:http://blog.csdn.net/lwzcjd/archive/2009/05/19/4201828.aspx   下面举个strategy的例子:   view plain
定义: GOF《设计模式》中给状态模式下的定义为:允许一个对象在其内部状态改变时改变它的行为。   先看一个例子:   view plain package com.state;  
一、工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。  工厂模式在《Java与模式》中分为三类:1)简单工厂模式(Simple Factory):不利于产生系列产品;2)工厂方 ...
最后是ThreadPool,负责管理所有的服务器线程,还可以动态增加和减少线程数:    package com.crackj2ee.thread;  import java.util.*;  public class ThreadPool extends ThreadGroup {  private List threads = new LinkedList();  private TaskQueue queue;  public ThreadPool(TaskQueue queue) {  super("Thread-Pool");  this.queue = queue ...
ReadWriteLock 多线程读写同一个对象的数据是很普遍的,通常,要避免读写冲突,必须保证任何时候仅有一个线程在写入,有线程正在读取的时候,写入操作就必须等待。简单说,就是要避免“写-写”冲突和“读-写”冲突。但是同时读是允许的,因为“读-读”不冲突,而且很安全。 要实现以上的ReadWriteLock,简单的使用synchronized就不行,我们必须自己设计一个ReadWriteLock类,在读之前,必须先获得“读锁”,写之前,必须先获得“写锁”。举例说明: DataHandler对象保存了一个可读写的char[]数组: package com.crackj2ee.t ...
前面谈了多线程应用程序能极大地改善用户相应。例如对于一个Web应用程序,每当一个用户请求服务器连接时,服务器就可以启动一个新线程为用户服务。    然而,创建和销毁线程本身就有一定的开销,如果频繁创建和销毁线程,CPU和内存开销就不可忽略,垃圾收集器还必须负担更多的工作。因此,线程池就是为了避免频繁创建和销毁线程。    每当服务器接受了一个新的请求后,服务器就从线程池中挑选一个等待的线程并执行请求处理。处理完毕后,线程并不结束,而是转为阻塞状态再次被放入线程池中。这样就避免了频繁创建和销毁线程。    Worker Pattern实现了类似线程池的功能。首先定义Task接口:    packa ...
 wait()/notify()  通常,多线程之间需要协调工作。例如,浏览器的一个显示图片的线程displayThread想要执行显示图片的任务,必须等待下载线程downloadThread将该图片下载完毕。如果图片还没有下载完,displayThread可以暂停,当downloadThread完成了任务后,再通知displayThread“图片准备完毕,可以显示了”,这时,displayThread继续执行。  以上逻辑简单的说就是:如果条件不满足,则等待。当条件满足时,等待该条件的线程将被唤醒。在Java中,这个机制的实现依赖于wait/notify。等待机制与锁机制是密切关联的。例如:  ...
Global site tag (gtag.js) - Google Analytics