
java
文章平均质量分 93
-早起的码农
这个作者很懒,什么都没留下…
展开
-
作为码农你必须懂的序列化
一、基本概念 序列化:将对象写入到IO流中 反序列化:从IO流中恢复对象 意义:序列化机制允许将实现序列化的Java对象转换位字节序列,这些字节序列可以保存在磁盘上,或通过网络传输,以达到以后恢复成原来的对象。序列化机制使得对象可以脱离程序的运行而独立存在。 使用场景:所有可在网络上传输的对象都必须是可序列化的,比如RMI(remote method invoke,即远程方法调用),传入的参数或返回的对象都是可序列化的,否则会出错;所有需要保存到磁盘的java对象都.原创 2021-02-09 16:23:22 · 297 阅读 · 0 评论 -
递归实现两个二叉树的比较
废话不说,上代码package com.alan.basic;import com.alan.basic.Tree.Node;/** * 二插树 * * @author alan * */class Tree { Node root; public Tree() { root = null; } pu原创 2012-10-27 11:04:48 · 2252 阅读 · 0 评论 -
无锁HashMap的原理与实现
在《疫苗:Java HashMap的死循环》中,我们看到,java.util.HashMap并不能直接应用于多线程环境。对于多线程环境中应用HashMap,主要有以下几种选择:使用线程安全的java.util.Hashtable作为替代。使用java.util.Collections.synchronizedMap方法,将已有的HashMap对象包装为线程安全的。使用java.util.concu转载 2013-09-09 14:35:47 · 1748 阅读 · 0 评论 -
GPS 偏移校正(WGS-84) 到(GCJ-02) java版本实现
public class EvilTransform { final static double pi = 3.14159265358979324; // // // a = 6378245.0, 1/f = 298.3 // b = a * (1 - f) // ee = (a^2 - b^2) / a^2; final static doubl原创 2014-07-01 18:16:39 · 7071 阅读 · 0 评论 -
JAVA矩阵包JAMA学习
jama是一个基本的线性代数java包,它提供了实数非稀疏矩阵类,程序员可构造操控这些类。对于经常使用到矩阵运算的码农来说,即使不精通线性代数也没有关系,因为jama包提供的功能已经够用,调用方便,使用自然,而且易于理解。 JAMA功能汇总Jama.Matrix 对象操作 构造函数 set 方法 set(int i, i原创 2015-07-22 16:59:00 · 8622 阅读 · 1 评论 -
python,scala,java中的map,reduce和filter
1,python中的map,reduce,filter使用 >>> a=[1,2,3,5]>>> map(lambda x:x+x,a)[2, 4, 6, 10]>>> map(lambda x:2*x,a)[2, 4, 6, 10]>>> reduce(lambda x,y:x*y,a)30>>> filter(lambda x : x%2,a)[1, 3, 5]2,sc原创 2016-12-01 12:04:09 · 2654 阅读 · 1 评论 -
MD5/DES/AES加密实现
三种加密方式,java版本实现代码如下:import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import javax.crypto.Cipher;import javax.crypto.Ke原创 2016-12-23 14:58:17 · 2236 阅读 · 0 评论 -
Hive ORC数据格式的MapReduce Shuffle
1,mr代码如下package com.test.hadoop;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.NullWritable;import org.apach原创 2017-03-03 17:01:25 · 1533 阅读 · 0 评论 -
Mapreduce实例-JOIN
package com.sohu.tv.amstat.mr.test;import java.io.IOException;import java.util.ArrayList;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.conf.Configured;import org.apache.h原创 2017-07-28 13:55:17 · 655 阅读 · 0 评论 -
Spark MLlib之协同过滤
Spark MLlib 协同过滤实例原创 2017-03-23 14:16:20 · 1992 阅读 · 0 评论 -
Aerospike API操作Map
Aerospike是一个高性能、可扩展、可靠性强的NoSQL解决方案,支持RAM和SSD作为存储介质,并专门针对SSD特殊优化,广泛应用于实时竞价等实时计算领域。官方保证99%的操作在1ms内完成,并提供集群数据自动Rebalance、集群感知客户端等功能,且支持超大规模数据集(100T级别)的存储。作为KV存储,Aerospike提供多种数据类型,其操作方式和Redis比较类似。除基...原创 2019-03-01 15:01:31 · 1263 阅读 · 0 评论 -
实现mapreduce多文件自定义输出
普通maprduce中通常是有map和reduce两个阶段,在不做设置的情况下,计算结果会以part-000*输出成多个文件,并且输出的文件数量和reduce数量一样,文件内容格式也不能随心所欲。这样不利于后续结果处理。 在hadoop中,reduce支持多个输出,输出的文件名也是可控的,就是继承MultipleTextOutputFormat类,重写generateFileNam原创 2012-07-13 14:30:13 · 8592 阅读 · 5 评论 -
Java 强引用、 软引用、 弱引用、虚引用
1 .对象的强、软、弱和虚引用 在 JDK 1.2 以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及( reachable )状态,程序才能使用它。从 JDK 1.2 版本开始,把对象的引用分为 4 种级别,从而使程序能更加转载 2011-09-07 15:54:17 · 1504 阅读 · 1 评论 -
Java深度历险(一)——Java字节代码的操纵
<br />在一般的Java应用开发过程中,开发人员使用Java的方式比较简单。打开惯用的IDE,编写Java源代码,再利用IDE提供的功能直接运行Java 程序就可以了。这种开发模式背后的过程是:开发人员编写的是Java源代码文件(.java),IDE会负责调用Java的编译器把Java源代码编译成平台无关的字节代码(byte code),以类文件的形式保存在磁盘上(.class)。Java虚拟机(JVM)会负责把Java字节代码加载并执行。Java通过这种方式来实现其“编写一次,到处运行(Write o转载 2010-12-22 09:57:00 · 1394 阅读 · 0 评论 -
基于mongodb的java之增删改查(CRUD)
1,下载驱动https://github.com/mongodb/mongo-java-driver/downloads,导入工程java中2,建立测试代码import java.net.UnknownHostException;import java.util.Set;import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.DBCursor;impor原创 2011-01-09 17:51:00 · 5840 阅读 · 0 评论 -
Java深度历险(二)——Java类的加载、链接和初始化
<br /> 在上一篇文章中介绍了Java字节代码的操纵,其中提到了利用Java类加载器来加载修改过后的字节代码并在JVM上执行。本文接着上一篇的话题,讨论Java类的加载、链接和初始化。Java字节代码的表现形式是字节数组(byte[]),而Java类在JVM中的表现形式是java.lang.Class类的对象。一个Java类从字节代码到能够在JVM中被使用,需要经过加载、链接和初始化这三个步骤。这三个步骤中,对开发人员直接可见的是Java类的加载,通过使用Java类加载器(class loade转载 2011-01-09 18:04:00 · 1640 阅读 · 0 评论 -
Java深度历险(三)——Java线程:基本概念、可见性与同步
开发高性能并发应用不是一件容易的事情。这类应用的例子包括高性能Web服务器、游戏服务器和搜索引擎爬虫等。这样的应用可能需要同时处理成千上万个请求。对于这样的应用,一般采用多线程或事件驱动的架构。对于Java来说,在语言内部提供了线程的支持。但是Java的多线程应用开发会遇到很多问题。首先是很难编写正确,其次是很难测试是否正确,最后是出现问题时很难调试。一个多线程应用可能运行了好几天都没问题,然后突然就出现了问题,之后却又无法再次重现出来。如果在正确性之外,还需要考虑应用的吞吐量和性能优化的话,就转载 2011-01-18 10:42:00 · 2012 阅读 · 0 评论 -
Java垃圾回收机制与引用类型
<br /> Java语言的一个重要特性是引入了自动的内存管理机制,使得开发人员不用自己来管理应用中的内存。C/C++开发人员需要通过malloc/free 和new/delete等函数来显式的分配和释放内存。这对开发人员提出了比较高的要求,容易造成内存访问错误和内存泄露等问题。一个常见的问题是会产生“悬挂引用(dangling references)”,即一个对象引用所指向的内存区块已经被错误的回收并重新分配给新的对象了,程序如果继续使用这个引用的话会造成不可预期的结果。开发人员有可能忘记显式的转载 2011-02-10 14:30:00 · 1382 阅读 · 0 评论 -
spring3 web mvc framework
Spring MVC是一个构建于Spring Framework之上的现代Web应用程序框架. Spring3 全面支持REST风格的Web服务,"We're really seeing extensive interest and growth in REST, and it will have comprehensive support for RESTful Web services," said Johnson.spring3再加上对annotation的支持如虎添翼! web.xml原创 2011-03-03 11:35:00 · 3576 阅读 · 1 评论 -
ICE应用实例
本文接上篇博文《ICE通信框架》如果你还没有接触过ice请先阅读我的上篇博文http://blog.youkuaiyun.com/liuzhoulong/archive/2011/03/04/6223450.aspx本文将结合实际项目,做一个基于ice的实际项目实例应用,该实例完成客户端调用服务端接口完成消息发送,计算的功能。1,创建java项目ICEServer,导入ice.jar.2,在项目下创建slice文件夹,编写model.ice,service.ice,service2.ice文件,其内容如下model.i原创 2011-03-07 10:37:00 · 7834 阅读 · 0 评论 -
java并行计算Fork/Join和python并行计算pp
计算给定数组中数据所有素数之和java的Fork/Join实现,需要jsr166y的下载http://g.oswego.edu/dl/concurrency-interest/import java.util.concurrent.TimeUnit;import jsr166y.原创 2011-05-05 12:11:00 · 3650 阅读 · 1 评论 -
ICE通信框架
Ice 出自ZeroC名门之下 , Ice 是一种面向对象的中间件平台。从根本上说,这意味着Ice 为构建面向对象的客户-服务器应用提供了工具、API 和库支持。Ice 应用适合于异构平台环境中使用:客户和服务器可以采用不同的编程语言,可以运行在不同的操作系统和机器架构上,并且可原创 2011-03-04 15:27:00 · 30860 阅读 · 1 评论 -
morphia for MongoDB
Morphia is a lightweight type-safe library for mapping Java objects to/from MongoDB: Morphia是一个安全轻量级的为MongoDB设计的java持久化架构。1.要使用Morphia,需要依赖下原创 2011-01-17 17:24:00 · 7456 阅读 · 1 评论 -
org.apache.commons.lang.builder包下的一些常用类的研究与应用
1、CompareToBuilder – 用于辅助实现Comparable.compareTo(Object)方法:用于比较两个对象所有的非static和非transient成员变量 CompareToBuilder.reflectionCompare( this , obj);( new CompareToBuilder( ) .append(firstName, pc.原创 2010-05-27 11:40:00 · 1888 阅读 · 0 评论