string类

解读:Hadoop序列化类

拟墨画扇 提交于 2019-12-26 02:52:44
序列化( serialization )是指将结构化的对象转化字节流,以便在进程间通信或写入硬盘永久存储。 反序列化( deserialization )是指将字节流转回到结构化对象的过程。 需要注意的是,能够在网络上传输的只能是字节流。所以,Map的中间结果在不同主机间Shuffle洗牌时,结构化对象将经历序列化 (map结果写入磁盘) 和反序列化 (reduce读取map结果) 两个过程。 Writable接口 Hadoop并没有使用JAVA的序列化机制,而是引入了自己的序列化系统, package org.apache.hadoop.io 这个包中定义了大量的可序列化对象,这些对象都实现了Writable接口,Writable接口是序列化对象的一个通用接口。其中包含了 write()和readFields() 两个序列化相关方法。 WritableComparable接口 WriteCompareable接口是对Wirtable接口的二次封装, 并提供了compareTo(T o)方法 ,用于序列化对象的比较。因为MR中间有个基于key的排序阶段。 RawComparator接口 Hadoop为优化 Shuffle阶段的排序 ,提供了原生的 比较器接口RawComparator<T> 用于在 字节流层面进行比较 ,从而大大缩短了比较的时间开销。该接口并非被多数的衍生类所实现

加密解密帮助类

故事扮演 提交于 2019-12-26 01:48:50
二进制数据的序列化反序列化和Json的序列化反序列化的重要区别   前言:最近一个一个很奇怪的问题,很明白的说,就是没看懂,参照下面的代码: /// <summary> /// 反序列化对象 /// </summary> /// <typeparam name="T">指定对象类型</typeparam> /// <param name="data">字节数组</param> /// <param name="isClearData">压缩完成后,是否清除待压缩字节数组里面的内容</param> /// <returns>指定类型的对象</returns> public static T DeserializeByBytes<T>(byte[] data, bool isClearData = true) { T t = default(T); if (data == null) return t; try { BinaryFormatter formatter = new BinaryFormatter(); using (MemoryStream ms = new MemoryStream(data)) { t = (T)formatter.Deserialize(ms); } formatter = null; if (isClearData) Array.Clear

Enum(枚举类)

邮差的信 提交于 2019-12-26 01:29:51
有的人说,不推荐使用枚举。有的人说,枚举很好用。究竟怎么使用,如何使用,仁者见仁智者见智。总之,先学会再说~ 为什么要引入枚举类 一个小案例 你写了一个小程序,不过好久不用了,突然有一天,你想使用一下它。程序要想正确运行,需要将今天星期几存到数据库里。这个时候,你开始犯难了。 当初的你还很年轻,不懂程序界的险恶,设计这个程序的时候,傻不拉几把这个字段设计为int类型的,用0代表周日,1代表周一。。。6代表周六,添加的时候就setWeekday(0)。但是这么长时间没用了,你忘记自己是从周一开始计算还是周日开始计算了,换句话说,你想不起来0代表的是周一还是周日了! 于是你各种翻代码,看数据库的字段,数据库保存的信息,终于搞懂了,你很开心,用了一次之后,觉得这个程序没意思,又不用了。 很久之后,你心血来潮,又想用一次它,很不幸,你又忘记到底0代表周一还是周日了,一番查找之后。你决定重构代码,因为你受不了了!! 静态变量来帮忙 经过一番思考,你决定使用七个静态变量来代表星期几,以后只要引用和静态变量就可以了,而不用自己输入012….你这么写: public class Weekday { public final static int SUN = 0 ; public final static int MON = 1 ; public final static int TUE = 2 ;

集合类(List,Set,Map)

心已入冬 提交于 2019-12-25 17:55:21
package org.vv.game.test; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.Hashtable; import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.ListIterator; import java.util.Map; import java.util.Properties; import java.util.Set; import java.util.TreeMap; import java.util.TreeSet; import java.util.concurrent.ConcurrentLinkedQueue; public class TypeTest { private void

java 内部类 *** 最爱那水货

馋奶兔 提交于 2019-12-25 10:02:14
   注:    转载于 http://blog.csdn.net/jiangxinyu/article/details/8177326 Java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类。内部类又分为:常规内部类、局部内部类、匿名内部类和静态嵌套类四种。我们内部类的知识在Android手机开发中经常用到。 一、常规内部类 所谓常规内部类,或者说内部类,指的就是除去后面三种之外的内部类(这算什么解释。。。) 先写一个最简单的内部类的例子,大家感觉一下: 1 public class Outer { 2 public class Inner{ 3 } 4 } 编译一下,我们看到目录中出现了两个class文件,其中有一个文件名叫做Outer$Inner.class,带了一个$符号,这个特点让我们很容易的认出来这是内部类编译后的class文件。 再写一个稍微复杂一点的内部类: 01 public class Outer { 02 03 private int x=1; 04 05 public Outer(){ 06 System.out.println("Outer initial"); 07 } 08 09 public class Inner{ 10 11 public Inner(){ 12 System.out.println("Inner initial");

Java编程中类和对象的定义

限于喜欢 提交于 2019-12-23 00:24:21
1,什么是类? 答:类是客观存在的,抽象的,概念的东西。 2,什么事对象? 答:对象 是具体的,实际的,代表一个事物。例如:车是一个类,汽车,自行车就是他的对象。 关于类与对象的描述: 类是对象的模版,对象是类的一个个体。 3,Java中定义类的方法? class 类名 用Java语法定义人类: public class Person { } 4,对象的定义方法? 1,对象声明:类名 对象名; 2,对象创建 对象名 = new 类名(); new作用:分配内存空间。 也可以合写为:类名 对象名 = new 类名(); 5,例子:创建一个空调,并调用制冷。 //设计一个空调 package practice; public class Kongtiao { //空调属性 String name; String pinpai; String pishu; int tempeture; //定义制冷行为 void cool() { tempeture--; } //定义加热行为 void hot() { tempeture+=7; } //主函数 public static void main(String[] args){ Kongtiao kt = new Kongtiao(); kt.name = "美的"; kt.pishu = "2匹"; kt.tempeture = 20;

DES加密/解密类。

旧城冷巷雨未停 提交于 2019-12-22 00:12:53
using System; using System.Security.Cryptography; using System.Text; namespace ROYcms.DB { /// <summary> /// DES加密/解密类。 /// </summary> public class DESEncrypt { public DESEncrypt() { } #region ========加密======== /// <summary> /// 加密 /// </summary> /// <param name="Text"></param> /// <returns></returns> public static string Encrypt(string Text) { return Encrypt(Text,"ROYcms"); } /// <summary> /// 加密数据 /// </summary> /// <param name="Text"></param> /// <param name="sKey"></param> /// <returns></returns> public static string Encrypt(string Text,string sKey) { DESCryptoServiceProvider des = new

IO概述、异常、File文件类_DAY19

自古美人都是妖i 提交于 2019-12-19 01:24:13
IO概述: 操作数据的工具 IO流,即数据流,数据像水流一样通过IO工具进行传输。 程序 <IO> 硬盘 绝对路径与相对路径 1:异常(理解) (1)就是程序的非正常情况。 异常相关操作: 创建异常对象(JDK已定义的异常会自动创建对象,自定义异常需要手动创建) 抛出异常(JDK已有定义的异常会自动抛出异常,自定义异常需要手动抛出) 处理异常: 程序员在有异常抛出时,异常的处理方法有两种:(1)将异常捕获并处理(2)声明抛出异常 (2)异常的继承体系结构: Throwable: |--Error 严重的问题,不需要处理的。 |--Exception 非RuntimeException必须进行处理。两种方案,点击鼠标即可。 |--RuntimeException 运行时期异常,需要修正代码。 (3)jvm的默认处理方式: 默认情况下,jvm会采用默认处理方案: 把异常的全路径名称,原因,及位置等信息显示出来。 注意: 如果是jvm的默认处理方式,那么,它会在出问题的地方结束。 (4)我们自己的处理方案: A:处理方式之一:使用捕获 try...catch...finally 基本格式: try { 可能有问题的代码; }catch(异常对象) { 对问题的处理; }finally { //一定会执行的代码 释放资源; } 变形格式: try...catch try...catch..

Java 对象和类

瘦欲@ 提交于 2019-12-18 18:39:50
摘录于:http://www.runoob.com/java/java-object-classes.html Java 对象和类 Java作为一种面向对象语言。支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 本节我们重点研究对象和类的概念。 对象 :对象是类的一个实例( 对象不是找个女朋友 ),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类 :类是一个模板,它描述一类对象的行为和状态。 Java中的对象 现在让我们深入了解什么是对象。看看周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。 拿一条狗来举例,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴和跑。 对比现实对象和软件对象,它们之间十分相似。 软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。 在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。 Java中的类 类可以看成是创建Java对象的模板。 通过下面一个简单的类来理解下Java中类的定义: public class Dog{ String breed; int age; String color; void barking(){ } void hungry(){ } void sleeping(){ } }

Java复习笔记8--内部类

怎甘沉沦 提交于 2019-12-18 10:44:13
Java内部类 在《Think in java》中有这样一句话:使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。 接口只是解决了部分问题,而内部类使得多重继承的解决方案变得更加完整。 其实使用内部类最大的优点就在于它能够非常好的解决多重继承的问题,但是如果我们不需要解决多重继承问题,那么我们自然可以使用其他的编码方式,但是使用内部类还能够为我们带来如下特性(摘自《Think in java》): 1、 内部类可以用多个实例,每个实例都有自己的状态信息,并且与其他外围对象的信息相互独立。 2、 在单个外围类中,可以让多个内部类以不同的方式实现同一个接口,或者继承同一个类。 3、 创建内部类对象的时刻并不依赖于外围类对象的创建。 4、 内部类并没有令人迷惑的“is-a”关系,他就是一个独立的实体。 5、 内部类提供了更好的封装,除了该外围类,其他类都不能访问。 在这个应用程序中,我们可以看到内部了InnerClass可以对外围类OuterClass的属性进行无缝的访问,尽管它是private修饰的。这是因为当我们在创建某个外围类的内部类对象时,此时内部类对象必定会捕获一个指向那个外围类对象的引用,只要我们在访问外围类的成员时,就会用这个引用来选择外围类的成员。