自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (1)
  • 收藏
  • 关注

原创 SOA思想

Gartner Group 于1996年最早提出了面向服务构架(Service Oriented Architecture ,SOA),而该公司预计2008年至2010年,采用SOA体系构架的企业将分别达到70%和80%。那SOA究竟是什么呢?可以说他是一种信息系统集成思想。理解SOA关键是理解这个“S”,即Service。服务可以说是一种即超越具体技术,又包容具体技术的一种业务功能(SO

2013-10-30 10:54:59 4542 2

原创 hadoop整合openstack一些常用方法的总结

大数据技术和私有云环境都很有用;不过,如果将两者结合在一起,企业会获得巨大的利润。尽管结合两者会让环境变得更复杂,企业仍然可以看到将 OpenStack 私有云和 Apache Hadoop 环境结合在一起产生的显著的协同效应。如何来做会更好?方案1. Swift+Apache Hadoop MapReduce在私有云环境中,常见的大数据部署模型之一是:将 OpenStack 的 Swif

2013-10-29 20:59:32 1258

转载 让Hadoop运行在OpenStack之上

摘要:Hadoop基本上已成为MapReduce实现的产业标准,并为众多机构采用;Savanna则是让用户可以在OpenStack上运行和管理Hadoop集群,而用户做的仅是给Savanna提供一些相关的配置参数。Apache Hadoop基本上已经成为MapReduce实现的产业标准,并且被各个机构广泛采用,而Savanna项目旨在让用户可以在OpenStack上运行和管理Hadoop集

2013-10-29 20:55:28 2346

翻译 HadoopDB安装使用

由於它是在 Hadoop-0.19.x 開發的,因此我還是用 Hadoop-0.19.2 來架設,至於架設部分可以參考這篇:[Linux] 安裝 Hadoop 0.20.1 Multi-Node Cluster @ Ubuntu 9.10,其中 0.19.2 與 0.20.1 安裝上只有些微的差別,在上述文章中的 hadoop-0.20.1/conf/core-site.xml 與 hadoo

2013-10-25 19:24:38 890

原创 java中静态块,静态属性,方法的加载顺序

这两天遇到几个类似的问题,就是一个程序到底是怎么运行的,而且这些问题很具有迷惑性,这里两个例子做分析( 实际上一切都在黑马的免费视频中有体现 ) !问题一:如下代码的执行顺序是什么样的!一定理解:是执行的顺序(后面会给大家说一个误区)!class Test{ int a = 5; static int num = 4;

2013-10-25 16:08:48 3368

翻译 mina中文教程

现在已经是World Wide Web的时代,无数的web应用框架被创造出来从而大大的提高了web开发的速度。抛开WWW的这个优势,我们知道还有很多协议是HTTP协议所无法替代的。有时,我们仍然需要构造c/s应用来实现适当的协议。=== MINA是什么? ===你有没有曾经使用java或者其他语言实现过某个协议栈?就像你所经历过的那样,编写网络应用即使对于有经验的开发者也不是容易的事情

2013-10-25 15:10:46 1175

原创 三步学会java Socket编程(三)

第三步 实现信息共享:在Socket上的实时交流    网络的伟大之一也是信息共享,Server可以主动向所有Client广播消息,同时Client也可以向其它Client发布消息。下面看看如何开发一个可以实时传递消息的程序。设计原理:    服务器端接受客户端的连接请求,同时启动一个线程处理这个连接,线程不停的读取客户端输入,然后把输入加入队列中,等候处理。在线程启动的同时将

2013-10-25 08:48:59 663

原创 三步学会java Socket编程(二)

第二步 多个客户同时连接    在实际的网络环境里,同一时间只对一个用户服务是不可行的。一个优秀的网络服务程序除了能处理用户的输入信息,还必须能够同时响应多个客户端的连接请求。在java中,实现以上功能特点是非常容易的。   设计原理:    主程序监听一端口,等待客户接入;同时构造一个线程类,准备接管会话。当一个Socket会话产生后,将这个会话交给线程处理,然后主程

2013-10-25 08:47:49 642

原创 Java基础:三步学会Java Socket编程(一)

第一步 充分理解Socket    1.什么是socket    所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。    以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使

2013-10-25 08:44:16 617

转载 java socket编程

Just have a little faith.java socket编程一,网络编程中两个主要的问题一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠(tcp)的或非可靠(U

2013-10-24 20:45:46 580

转载 mysql显示SQL语句执行时间

查看 MySQL 語法 詳細執行時間 與 CPU/記憶體使用量: MySQL Query ProfilerMySQL 的 SQL 語法調整主要都是使用 EXPLAIN , 但是這個並沒辦法知道詳細的 Ram(Memory)/CPU 等使用量.於 MySQL 5.0.37 以上開始支援 MySQL Query Profiler, 可以查詢到此 SQL 會執行多少時間, 並看出 CPU/Mem

2013-10-24 16:57:28 5104 1

原创 java中类的初始化顺序

含有继承的类的初始化顺序:父类的静态变量->父类的静态块->子类静态变量->子类静态初始化块->父类变量->父类初始化块->父类的构造函数->子类的变量->子类初始化块->子类构造函数;(变量和初始化块之间的先后顺序根据类中的先后位置而定)Code:public class InitialClassOrderTestextends InitialClassOrderBa

2013-10-24 11:28:54 643

转载 java中自动打包+解包机制(又称自动装箱,拆箱)Auto-Boxing,UnBoxing

Boxing Unboxing(装箱 拆箱 有人译作打包解包)还有Generic(泛型)这里的装箱应该理解为 封装对象 ,即把基础数据类型(如 int)转换成基础类型封装类的对象(如 new Integer())拆箱就是装箱的反过程,即把基础类型封装类的对象(如 new Integer())转换为基础数据类型(如 int)。Java代码  装箱: Integer a

2013-10-23 17:04:35 1133

原创 基本数据类型的自动封装与拆箱

public class Test {     /**      * @param args      */      public staticvoid main(String[] args) throws Exception {       (1) Long t = new Long(1);     (2) System.out.println(t+1);         

2013-10-23 16:56:08 850

翻译 常见hash算法的原理

散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。

2013-10-23 10:24:58 1129

翻译 MySQL引擎

MySQL数 据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MYSQL。在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。如果技术高超,还可以使用MySQL++ API自己做一个引擎。下面介绍几种数据库引擎:    ISAM:ISAM是一个定义明确且历经时间考验的数

2013-10-22 11:16:36 496

原创 简单的推荐算法

兴例来说就是用户买了一件物品,除了这个物品外还买了哪些物品 ,可以对类似的用户做推荐。如下有一组数据结构:           X1       Y1           X2       Y2           X3       Y3           X1        Y4           X5        Y5          X表示用户,Y表示用户所买

2013-10-22 10:47:37 926

转载 Apache Mahout的Taste基于Hadoop实现协同过滤推荐引擎的代码分析

Taste 是 Apache Mahout 提供的一个协同过滤算法的高效实现,它是一个基于Java实现的可扩展的高效的推荐引擎。该推荐引擎是用这样简单的数据格式表达用户对物品的偏好。以此为输入数据,计算后就可以得到为每个user推荐的items列表。他提供了方便的单机版的编程接口,也提供了基于hadoop的分布式的实现。单机版的编程接口主要适用于写demo和做算法的评估,若处理

2013-10-22 10:34:34 1019

原创 mahout learning 代码示例

package mia.recommender.ch02;//=分析导入包可以看出mahout的包分为主要类以及它们的实现类=import org.apache.mahout.cf.taste.impl.model.file.*;import org.apache.mahout.cf.taste.impl.neighborhood.*;import org.apache.mahout.cf

2013-10-22 10:26:27 1020

原创 Mahout源码目录说明

mahout项目是由多个子项目组成的,各子项目分别位于源码的不同目录下,下面对mahout的组成进行介绍:1、mahout-core:核心程序模块,位于/core目录下;2、mahout-math:在核心程序中使用的一些数据通用计算模块,位于/math目录下;3、mahout-utils:在核心程序中使用的一些通用的工具性模块,位于/utils目录下;上述三个部分是程序的主题,存储

2013-10-22 10:19:37 1027

翻译 Mahout下个性化推荐引擎Taste介绍

Taste是 Apache Mahout 提供的一个个性化推荐引擎的高效实现,该引擎基于java实现,可扩展性强,同时在mahout中对一些推荐算法进行了MapReduce编程模式转化,从而可以利用hadoop的分布式架构,提高推荐算法的性能。在Mahout0.5版本中的Taste, 实现了多种推荐算法,其中有最基本的基于用户的和基于内容的推荐算法,也有比较高效的SlopeOne算法,以及处于

2013-10-22 10:14:47 1196

翻译 mahout算法集

在Mahout实现的机器学习算法见下表算法类算法名中文名分类算法Logistic Regression逻辑回归Bayesian贝叶斯SVM支持向量机Perceptron感知器算法Neural Ne

2013-10-22 10:07:44 710

原创 mysql导入及导出txt文件

导入数据库:mysql>use databasename;mysql>load data infile "E:\\test\\test.txt" into table tablename fields terminated by '|' lines terminated by '\r\n';如果没有换行则:mysql>load data infile "E:\\test\\te

2013-10-21 20:24:29 3601

转载 蛇形矩阵的java实现

题目:计算并输出 nXn 的蛇形矩阵。(n>0)例如 4X4 的蛇形矩阵如下:1   3   4  102   5   9  116   8  12  157  13  14  16类似于前面的输出螺旋矩阵的方法,每一次在数组中填写新的数字都有一个方向,与输出螺旋数组不同的是不是简单的上下左右四个方向,这里涉及到右,下,右上,左下四个方向,针对每步操作都需要想好对应

2013-10-19 23:35:41 3037

转载 java中关键字volatile的作用

用在多线程,同步变量。 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B。只在某些动作时才进行A和B的同步。因此存在A和B不一致的情况。volatile就是用来避免这种情况的。volatile告诉jvm, 它所修饰的变量不保留拷贝,直接访问主内存中的(也就是上面说的A)=========================分割线1============

2013-10-18 20:39:19 741 1

转载 java并发容器分析

简介    JDK5中添加了新的concurrent包,其中包含了很多并发容器,这些容器针对多线程环境进行了优化,大大提高了容器类在并发环境下的执行效率。    CopyOnWriteArrayList类是一个线程安全的List接口的实现,在该类的内部进行元素的写操作时,底层的数组将被完整的复制,这对于读操作远远多于写操作的应用非常适合。在CopyOnWriteArrayList上

2013-10-15 15:57:43 900

翻译 Java序列化的机制和原理

有关Java对象的序列化和反序列化也算是Java基础的一部分,下面对Java序列化的机制和原理进行一些介绍。Java序列化算法透析Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。Java序列化API提供一种处理对象序列化的标准机制。在这里你能学到如何序列化一个对象,什么时候需要序列化以及J

2013-10-14 15:54:52 544

转载 线程通信的更高效的方式

接近一周没更新《Java线程》专栏了,主要是这周工作上比较忙,生活上也比较忙,呵呵,进入正题,上一篇讲述了并发包下的Lock,Lock可以更好的解决线程同步问题,使之更面向对象,并且ReadWriteLock在处理同步时更强大,那么同样,线程间仅仅互斥是不够的,还需要通信,本篇的内容是基于上篇之上,使用Lock如何处理线程通信。        那么引入本篇的主角,Condition,Condi

2013-10-13 18:32:32 789

转载 锁对象Lock-同步问题更完美的处理方式

Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题,我们拿Java线程(二)中的一个例子简单的实现一下和sychronized一样的效果,代码如下:[java] view plaincopyprint?public cla

2013-10-13 18:29:01 827

转载 Callable和Future

接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。        Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行任务

2013-10-13 18:28:29 574

转载 线程池

自JDK5之后,Java推出了一个并发包,java.util.concurrent,在Java开发中,我们接触到了好多池的技术,String类的对象池、Integer的共享池、连接数据库的连接池、Struts1.3的对象池等等,池的最终目的都是节约资源,以更小的开销做更多的事情,从而提高性能。        我们的web项目都是部署在服务器上,浏览器端的每一个request就是一个线程,那

2013-10-13 18:27:28 528

转载 Timer和TimerTask

Timer和TimerTask可以做为实现线程的第三种方式,前两中方式分别是继承自Thread类和实现Runnable接口。        Timer是一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行,可以看成一个定时器,可以调度TimerTask。TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力。        一个

2013-10-13 18:26:45 869

转载 线程协作-生产者/消费者模式

上一篇讲述了线程的互斥(同步),但是在很多情况下,仅仅同步是不够的,还需要线程与线程协作(通信),生产者/消费者模式是一个经典的线程同步以及通信的模型。        假设有这样一种情况,有一个盘子,盘子里只能放一个鸡蛋,A线程专门往盘子里放鸡蛋,如果盘子里有鸡蛋,则一直等到盘子里没鸡蛋,B线程专门从盘子里取鸡蛋,如果盘子里没鸡蛋,则一直等到盘子里有鸡蛋。这里盘子是一个互斥区,每次放鸡蛋是互斥

2013-10-13 18:25:45 675

转载 线程安全与不安全

作为一个Java web开发人员,很少也不需要去处理线程,因为服务器已经帮我们处理好了。记得大一刚学Java的时候,老师带着我们做了一个局域网聊天室,用到了AWT、Socket、多线程、I/O,编写的客户端和服务器,当时做出来很兴奋,回学校给同学们演示,感觉自己好NB,呵呵,扯远了。上次在百度开发者大会上看到一个提示语,自己写的代码,6个月不看也是别人的代码,自己学的知识也同样如此,学完的知识如果

2013-10-13 18:24:56 600

转载 线程同步synchronized和volatile

通过一个简单的例子说明了线程安全与不安全,在例子中不安全的情况下输出的结果恰好是逐个递增的,为什么会产生这样的结果呢,因为建立的Count对象是线程共享的,一个线程改变了其成员变量num值,下一个线程正巧读到了修改后的num,所以会递增输出。        要说明线程同步问题首先要说明Java线程的两个特性,可见性和有序性。多个线程之间是不能直接传递数据交互的,它们之间的交互只能通过共享变量来

2013-10-13 18:24:12 654

原创 Java排序算法总结(八):基数排序

基数排序(radix sort)则是属于“分配式排序”(distribution sort),基数排序法又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的比较性

2013-10-13 16:52:02 679

原创 Java排序算法总结(七):快速排序

快速排序(Quicksort)是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序不稳定,O(log(n))的额外空间,时间复杂度为O(nlog(n)),不是自适应的。快速排序(Quicksort)有

2013-10-13 16:51:20 742

原创 Java排序算法总结(六):堆排序

堆积排序(Heapsort)是指利用堆积树(堆)这种资料结构所设计的一种排序算法,可以利用数组的特点快速定位指定索引的元素。堆排序是不稳定的排序方法,辅助空间为O(1), 最坏时间复杂度为O(nlog2n) ,堆排序的堆序的平均性能较接近于最坏性能。堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(或最小)关键字的记录变得简单。(1)

2013-10-13 16:50:40 635

原创 Java排序算法总结(五):归并排序

归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成

2013-10-13 16:50:00 674

原创 Java排序算法总结(四):希尔排序

希尔排序(缩小增量法) 属于插入类排序,是将整个无序列分割成若干小的子序列分别进行插入排序。希尔排序并不稳定,O(1)的额外空间,时间复杂度为O(N*(logN)^2)。最坏的情况下的执行效率和在平均情况下的执行效率相比相差不多。基本思想:先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二

2013-10-13 16:48:47 633

高级数据库课后答案

这是课后答案,没有必要在上课讲这些东西了,作为助教也就是抄答案的,所以大家下载了以后直接自己看,效果会更好,欢迎下载

2013-11-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除