![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
z_l_l_m
这个作者很懒,什么都没留下…
展开
-
Bloom Filter概念和原理 .
Bloom Filter概念和原理焦萌 2007年1月27日 Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,Bloom Filter转载 2012-12-03 18:28:10 · 571 阅读 · 0 评论 -
浅学设计模式之简单工厂模式、工厂模式、抽象工厂模式
一、简单工厂 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 其包括三个角色: 工厂(Cr转载 2012-12-05 15:05:08 · 606 阅读 · 0 评论 -
Java反射技术——字段的获取
关于获取类的字段有两种方式:getFields()和getDeclaredFields()。我们先来看看这两者的区别吧:getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。同样类似的还有getConstr转载 2012-11-23 15:44:08 · 8528 阅读 · 0 评论 -
线程知识点扩展
一、有关面试中的线程知识很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework),理解核心线程概念时,娴熟的实际经验是必需的。这篇文章收集了 Java 线程方面一些典型的问题,这些问题经常被高级工程师所问到。0.Java 中多线程同步是什么?在多线程程序下,同步能控制对共享资源的访问。如果没有同步,当一个 Java转载 2012-11-23 15:56:55 · 525 阅读 · 0 评论 -
浅学设计模式之观察者<Observer>模式及在android中的应用 .
最近在学习下设计模式,而加深学习的不错的方法就是把心得写出来吧。记录下自己的理解。现在自己看的书是《head.Frist设计模式》这本书。比较不错,想学习设计模式的朋友可以看下这本书。 观察者模式(有时又被称为发布-订阅模式、模型-视图模式、源-收听者模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通转载 2012-12-05 19:07:54 · 525 阅读 · 0 评论 -
大数据计算:如何仅用1.5KB内存为十亿对象计数 .
Big Data Counting: How To Count A Billion Distinct Objects Using Only 1.5KThis is a guest post by Matt Abrams (@abramsm), from Clearspring, discussing how they are able to accurately estimate th转载 2012-12-28 18:32:44 · 715 阅读 · 0 评论 -
解决hbase和hdfs的hadoop版本不兼容问题
假设你的hbase和hdfs的hadoop版本不同,但是我们的业务是将hbase的数据写入hdfs。该如何解决呢? 我们的方法是动态加载jar包。 1.Hbase和Hdfs分别定义借口HbaseInterface和HdfsInterface。 2.分别封装hbase和hdfs的方法生成相关jar包HbaseOperation.jar和HdfsOperation.jar。原创 2012-12-18 16:12:06 · 3064 阅读 · 0 评论 -
Java 8的重要新特性以及未来版本的发展规划
转自 http://www.csdn.net/article/2012-03-26/313499 我们一直在期待着Java 8的新功能,虽然很大一部分是对Java 7的扩展,发布时间也一推再推。但如今甲骨文终于承诺:新版本将是彻底的变革而不仅仅是Java 7的扩展。那Java 8到底是什么样的呢?甲骨文的Java总架构师马克•雷纳德在2011年JavaOne大会上为大家透露了J转载 2013-02-01 12:59:29 · 466 阅读 · 0 评论 -
Java 7 的新特性一览表
转 http://www.oschina.net/news/20119/new-features-of-java-7官方说是 7月28日 正式发布 Java 7 ,正常的话我们应该在 7月29日 看到这个版本。很快了,就两天时间。发布之前让我们先来看看 Java 7 都有什么新特性吧。Java 7 的架构图:新特性一览表:Swing新增 JLayer 类,是一个转载 2013-02-01 12:55:30 · 574 阅读 · 0 评论 -
Java 理论与实践: 应用 fork-join 框架
硬件趋势驱动编程语言语言、库和框架形成了我们编写程序的方式。Alonzo Church 早在 1934 年就曾表明,所有已知的计算性框架对于它们所能表示的程序集都是等价的,程序员实际编写的程序集是由特定语言形成的,而编程模型(由语言、库和框架驱动)可以简化这些语言的表达。另一方面,一个时代的主流硬件平台形成了我们创建语言、库和框架的方法。Java 语言从一开始就能够支持线程和并发性;该转载 2013-02-20 10:29:33 · 707 阅读 · 0 评论 -
Fork/Join模式(JSR166y)手记之TransferQueue/LinkedTransferQueue
TransferQueue是一个继承了 BlockingQueue的接口,并且增加若干新的方法。LinkedTransferQueue是实现类,其定义为一个无界的队列,一样具有先进先出(FIFO : first-in-first-out)的特性。Doug Lea 这样评价它:TransferQueue是一个聪明的队列,它是ConcurrentLinkedQueue, Synchronous转载 2013-02-20 10:26:32 · 1312 阅读 · 0 评论 -
服务器双缓冲消息队列方案
双缓冲消息队列-减少锁竞争 收藏双缓冲消息队列-减少锁竞争在网络应用服务器端, 为了性能和防止阻塞, 经常会把逻辑处理和I/O处理分离:I/O网络线程处理I/O事件: 数据包的接收和发送, 连接的建立和维护等.逻辑线程要对收到的数据包进行逻辑处理.通常网络线程和逻辑线程之间是通过数据包队列来交换信息, 简单来说就是一个生产者-消费者模式.这个队列是多个线程在转载 2013-05-31 12:49:04 · 1864 阅读 · 0 评论 -
Spring 框架的设计理念与设计模式分析
Spring 的骨骼架构Spring 总共有十几个组件,但是真正核心的组件只有几个,下面是 Spring 框架的总体架构图:图 1 .Spring 框架的总体架构图从上图中可以看出 Spring 框架中的核心组件只有三个:Core、Context 和 Beans。它们构建起了整个 Spring 的骨骼架构。没有它们就不可能有 AOP、Web 等上层的特性功能。下面也将主转载 2014-05-22 16:26:20 · 1091 阅读 · 0 评论 -
浅析Java抽象类和接口的比较
在面试的过程中,面试官往往会问我们有关抽象类与接口相关的问题,也许我们只能大概的讲出个一二。比如:抽象类只能通过单一继承,而接口可以通过多次实现等。并且,有的时候我们自己都不知道该用抽象类还是接口,下面就为你讲解一下抽象类和接口之间的区别: abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了J转载 2012-11-22 17:20:19 · 553 阅读 · 0 评论 -
Concurrent多线程控制
在Java 5.0之前启动一个任务是通过调用Thread类的start()方法来实现的,任务的提于交和执行是同时进行的,如果你想对任务的执行进行调度或是控制同时执行的线程数量就需要额外编写代码来完成。5.0里提供了一个新的任务执行架构使你可以轻松地调度和控制任务的执行,并且可以建立一个类似数据库连接池的线程池来执行任务。这个架构主要有三个接口和其相应的具体类组成。这三个接口是Executor, E转载 2012-11-22 14:58:50 · 452 阅读 · 0 评论 -
ConcurrentHashMap
ConcurrentHashMap 是 Doug Lea 的 util.concurrent 包的一部分,现已被集成到JDK5.0中,它提供比 Hashtable 或者 synchronizedMap 更高程度的并发性。而且,对于大多数成功的 get() 操作它会设法避免完全锁定,其结果就是使得并发应用程序有着非常好的吞吐量。针对吞吐量进行优化ConcurrentHashMap 使用了几个转载 2012-11-22 14:26:57 · 410 阅读 · 0 评论 -
Java并发包中的几种ExecutorService .
1.CachedThreadPool CachedThreadPool首先会按照需要创建足够多的线程来执行任务(Task)。随着程序执行的过程,有的线程执行完了任务,可以被重新循环使用时,才不再创建新的线程来执行任务。我们采用《Thinking In Java》中的例子来分析。 首先,任务定义如下(实现了Runnable接口,并且复写了run方法):转载 2012-12-03 13:36:56 · 457 阅读 · 0 评论 -
浅学设计模式之迭代器<Iterator>模式
概述 迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。在面向对象的软件设计中,我们经常会遇到一类集合对象,这类集合对象的内部结构可能有着各种各样的实现,但是归结起来,无非有两点是需要我们去关心的:一是集合内部的数据存储结构,二是遍历集合内部的数据。面向转载 2012-12-04 17:07:52 · 482 阅读 · 0 评论 -
浅学设计模式之适配器<Adapter>模式 .
适配器模式(adapter pattern)有时候也称包装样式或者包装。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类别自己的接口包裹在一个已存在的类中。有两类适配器模式:·对象适配器模式 - 在这种适配器模式中,适配器容纳一个它我包裹的类的实例。在这种情况下,适配器调用被包裹对象的物理实体。·类适配器模式 - 这种适配转载 2012-12-05 14:11:54 · 457 阅读 · 0 评论 -
浅学设计模式之桥接<bridge>模式
今天一直心绪不宁,被一些事情所困扰,希望能有个好的过程以及结果而不是自己的空想。看一下桥接模式吧,个人感觉这个模式是个比较容易理解的模式,但是在真正应用的时候还是需要一定的经验。概述在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridg转载 2012-12-04 15:53:37 · 732 阅读 · 0 评论 -
浅学设计模式之状态<state>模式
State模式定义: 不同的状态,不同的行为; 或者说,每个状态有着相应的行为.使用情况: 状态模式在工作流或游戏等各种系统中有大量使用,甚至是这些系统的核心功能设计,例如在典型的OA中,一个批文的状态有多种:未办;正在办理;正在批示;正在审核;已经完成等各种状态,使用状态机可以封装这个状态的变化规则,从而达到扩充状态时,不必涉及到状态的使用者。转载 2012-12-04 16:41:56 · 612 阅读 · 0 评论 -
浅学设计模式之命令<command>模式
概念 在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合。这就是命令模式(Command Pattern)关系图:看下命令模转载 2012-12-05 14:33:27 · 499 阅读 · 0 评论 -
浅学设计模式之单例<singleton>模式 .
关于单例模式,可能是23种模式里面最容易理解的一种模式了,这篇文章里主要是整理了一下从网上搜集的材料,文字部分大部分直接从网上拷贝而来。中间有部分自己的理解。 单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如转载 2012-12-05 14:37:26 · 483 阅读 · 0 评论 -
浅学设计模式之外观<Facade>模式
外观模式是软件工程中常用的一种软件设计模式。它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。下图是状态模式的UML图。 结构 Facade 这个外观类为子系统中Packages 1、2、3提供一个共同的对外接口 Clients 客户对象通过一个外观接口读写子系统中各接口的数据资源。转载 2012-12-04 17:21:10 · 423 阅读 · 0 评论 -
浅学设计模式之装饰者<Decorator>模式 .
定义 装饰者模式:动态的将责任附加到对象上,若要扩展功能,装饰者提供比继承更有弹性的替代方案。就增加功能来说,Decorator模式相比生成子类更为灵活。设计原则: 相信大家现在对装饰者模式都应该很清楚了吧!那么,就像我们在前面的文章里反复强调的一样,设计原则远比模式重要,学习设计模式的同时一定要注意体会设计原则的应用。这里我们再来转载 2012-12-05 19:01:12 · 606 阅读 · 0 评论 -
Java多线程总结之聊一聊Queue
上个星期总结了一下synchronized相关的知识,这次将Queue相关的知识总结一下,和朋友们分享。在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选转载 2012-11-22 15:36:50 · 678 阅读 · 0 评论 -
BlockingQueue详解
本例介绍一个特殊的队列:BlockingQueue,如果BlockingQueue是空的,从BlockingQueue取东西的操作将会被阻断进入等待状态,直到BlockingQueue进了东西才会被唤醒,同样,如果BlockingQueue是满的,任何试图往里存东西的操作也会被阻断进入等待状态,直到BlockingQueue里有空间时才会被唤醒继续操作。 本例再次实现前面介绍的篮子转载 2012-11-22 15:43:59 · 453 阅读 · 0 评论 -
变量和方法命名的最佳实践
在每个代码范围内使用足够短和足够长的名称:例如循环计算器用一个字符就可以了,如i;条件和循环变量用一个单词,方法名1-2个单词,类名2-3个单词,全局变量3-4个单词组成为变量指定一些专门名称,不要使用例如 "value", "equals", "data" 这样的变量名变量名要使用有意义的名称,通过变量名能大概反映出其具体的用途不要在变量名前加前缀,例如 o_, obj_, m_ 之类服从公司命转载 2012-11-22 17:01:49 · 544 阅读 · 0 评论 -
Jackson 框架,轻易转换JSON
Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。前面有介绍过json-lib这个框架,在线博文:http://www.cnblogs.com/hoojo/archive/2011/04/21/2023805.html相比json-lib框架,Jackson所依赖的jar包较少,简单易用并且性能也要相对高些。而且J转载 2014-07-30 22:03:01 · 606 阅读 · 0 评论