- 博客(53)
- 资源 (3)
- 收藏
- 关注
原创 TX一面的一道算法题
如题:有一个序列a,0 1 2 3...n求另一个序列b,使得b中第i个元素表示ai在b中出现的个数。例如n=9时:a:0 1 2 3 4 5 6 7 8 9b:6 2 1 0 0 0 1 0 0 00在b中出现6次,1在b中出现2次,2在b中出现1次,6在b中出现1次,其他数出现0次。那么对于一个存在n项序列a。a:0 1 2 3 4 5 ... n (7
2014-09-26 11:35:45 872
转载 Google Java编程风格指南
Google Java编程风格指南January 20, 2014作者:Hawstein出处:http://hawstein.com/posts/google-java-style.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处。目录前言
2014-09-02 08:57:11 1386
原创 关于JVM中方法调用的相关指令,以及解析(Resolution)和分派(Dispatch)的解释——重载的实现原理与重写的实现原理
JVM中相关方法的调用的指令invokestatic调用静态方法。invokespecial用于调用构造器方法、私有方法、父类方法。invokevirtual用于调用类的所有虚方法。invokeinterface用于调用接口方法。解析(resolution)与分派(dispatch)解析解析调用一定是个静态的过程,在编译期间就完全确定,在类装载的解析阶段
2014-08-28 11:31:57 2611
原创 hadoop hdfs API操作
hadoop的hdfs API的基本操作简单的介绍hadoop为我们提供了hdfs非常方便的shell命令(类似于Linux文件操作的命令),再者。hadoop还为我们提供hdfsAPI,使我们开发人员可以对hfds进行一些操作。如:copy文件(从本地到hdfs,从hdfs到本地)、删除文件或者目录、读取文件的内容、看文件的相关信息、列出文件的所有子目录,在文件后面追加内容。(注意:hd
2014-08-27 14:40:47 2824
原创 java序列化与反序列化以及浅谈一下hadoop的序列化
1、什么是序列化和反序列化神马是序列化呢,序列化就是把内存中的对象的状态信息,转换成字节序列以便于存储(持久化)和网络传输。(网络传输和硬盘持久化,你没有一定的手段来进行辨别这些字节序列是什么东西,有什么信息,这些字节序列就是垃圾)。反序列化就是将收到字节序列或者是硬盘的持久化数据,转换成内存中的对象。2、JDK的序列化JDK的序列化只有实现了serializable接口就
2014-08-18 20:24:06 2235
原创 生产者与消费者
1、生产者与消费者问题的描述一个或者多个生产者,一个或者多个消费者。生产者在一条生产线不停地生产产品,消费者们不停地消费产品,需要注意的是这里的生产线属于临界资源(Critical Source).当生产线的产品生产满之后,生产者不能再往生产线生产产品,当生产线为空时消费者不能往生产线消费产品。生产线里面有两个方法,生产和消费,这两个方法都临界区(Criti
2014-08-03 15:20:43 1430
原创 死锁的三种形式:一般死锁,嵌套管程锁死,重入锁死
死锁的总结死锁的定义:死锁一般是指两个(或两个以上)线程同时竞争两个(或者多个)资源,从而产生同时等待的现象,使得系统僵持不动。顺便复习一下线程与进程的定义以及他们之间的区别。进程:一个有独立功能的程序利用某些数据资源的一次远行过程。线程:一个进程里面的一条执行路径(或者执行过程),同一条进程下的n多条线程之间可以互相通信(共享数据)。区别:
2014-07-28 21:15:40 5053
原创 7月28到8月底的计划
学习内容 日期工作时间 晚上时间 7.28~8.01部署CDH,并且可以开发Mapreduce Demo,看hadoop文档看《剑指offer》,并发编程的那个目录,看完!8:30
2014-07-27 21:17:14 774
原创 一个简单的java回调函数的实现
回调函数回调函数涉及的3个函数登记回调函数回调函数响应回调函数简单的解释你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做
2014-07-10 15:39:00 4545
原创 随机数生成算法(伪随机数)
什么是伪随机数,它和随机数的区别伪随机就是一个过程看似随机的,但实际还不是随机的。伪随机数都是有一定的周期性的,如使用24小时里面的一个小时,这个就是伪随机数,或者三角函数的一个角度的三角函数值,因为时有周期性所以是伪随机的。记住一点事要做到真正的随机有:抛硬币,热噪讯号、量子力学的效应、放射性元素的衰退辐射,或使用无法预测的现象等。计算机里面的随机数主要还是用伪随机数来实现的,例如以
2014-06-04 22:25:48 3666
原创 数据结构——单链表
单链表及其ADTvoid deleteList(); //删除整个链表List makeEmpty(List l);//清空链表,只留头结点int isEmpty(List l);//判断是否为空int isLast(List l, Position p);//判断是否是最后一个结点List createList();//创建一个链表void insert(List l,
2014-05-24 17:26:52 1250
原创 求最大子数组的和,以及求该最大子数组的起始位置和末尾位置
问题描述:一个数组,长度为N,数组元素有负有正,如{-1, 4, 6, -3, 7, -3, -3, 9};我们可以清楚的知道最大的子数组应该是4到9,也就是下标1到下标7,和为17。求解思路:第一种方法:我们可以用定义1、两个数ThisSum和MaxSum来记录当前数组的和,以及数组的最大和。2、我们可以用两个for循环来来遍历数组,每一次求出子数组的最大和,每个子数组从
2014-05-08 22:04:50 2642
原创 在effective java中看到的两个比较精妙的例子,一个是建造者模式,一个是装饰器模式,故在此做一下笔记
建造者模式这个例子的优雅之处在于初始化可以zhen
2014-05-07 00:37:52 1036
原创 基于非比较的排序:计数排序(countSort),桶排序(bucketSort),基数排序(radixSort)
计数排序条件:要排序的数组的元素必须是在一定范围的,比如是1~100。在排序之前我们必须知道数组元素的范围。思路:顾名思义:就是用一个数组来计数的。步骤:1、用一个数组来计数count[ ],将要排序的数组arr[ ]的元素记为数组count[ ]数组的下标,如果数组arr[]中有两个数相同就在count[]++.如count[arr[i]]++.2、 再一次遍历数组count
2014-05-04 00:52:38 2196
原创 七大排序算法(冒泡,选择,插入,二分法排序,希尔,快速,合并,堆排序)的java实现(14/8/3更新加入二分排序)
冒泡排序思路:就是每次将最大或最小的元素放到数组的最后,so easy!时间复杂度为(O(n^2))public class BubbleSort { public static void bubbleSort(int[] a) { for (int j = 1; j < a.length; j++) { for (int i = 0; i < a.length - j; i+
2014-04-30 18:46:46 9902
原创 前缀式(波兰式)与后缀式(逆波兰式)求解表达式的值,中缀式(一般算数表达式不做讨论)
波兰式表达“三加四”时,前缀记法写作“+ 3 4”,而不是“3 + 4”。在复杂的表达式中,操作符仍然在操作数的前面,但操作数可能是包含操作符的平凡表达式。例如,如下的中缀表达式:(5 − 6) * 7写作前缀表示法时是:*(− 5 6) 7或省略括号:* − 5 6 7由于简单的算术运算符都是二元的,该前缀表达式无需括号,且
2014-04-25 01:22:32 1660
原创 Unicode与utf-8的转换
Unicode符号范围 | UTF-8编码方式(十六进制) | (二进制)--------------------+---------------------------------------------0000 0000-0000 007F | 0xxxxxxx0000 0080-0000 07FF | 110xxxxx 10xxxxxx0000 0800-0000 FFF
2014-04-13 00:05:13 759
转载 转载————如何拿到BAT级公司的offer
不久前,byvoid面阿里星计划的面试结果截图泄漏,引起无数IT屌丝的羡慕敬仰。看看这些牛人,NOI金牌,开源社区名人,三年级开始写Basic...在跪拜之余我们不禁要想,和这些牛人比,作为绝大部分技术屌丝的同学们,是否真的与国内IT巨头遥不可及呢?当你打开这个帖子的时候,我已经默认你是此文的目标读者,也就是想进入国内一流互联网企业的非牛人应届生。你不需要拿NOI的奖,无需是开源社区名人,
2014-04-06 22:47:01 1566
原创 也谈JVM
JVM的内存区域模型新生代: 程序新创建的对象都是从新生代分配内存,新生代由EdenSpace和两块相同大小的SurvivorSpace(通常又称S0和S1或From和To)构成,可通过-Xmn参数来指定新生代的大小,也可以通过-XX:SurvivorRation来调整EdenSpace及SurvivorSpace的大小。老年代:用于存放经过多次
2014-04-02 23:39:40 1136 1
原创 java IO一般用到的类
如图,具体用到就查API其余基本掌握还有总结一下从键盘读取内容:1、使用java。util.Scanner 类Scanner scan = new Scanner(System.in); String filename = scan.nextLine();2、 使用BuferedRederBufferedReader bi = new Buffe
2014-03-30 23:17:47 837
原创 关于昨天阿里与唯品会的笔试记录
阿里的一道binarySearch查找bugpublic class TestBinarySearch { public static void main(String[] args) { int a[] = {1,2,3,4,5,6,7}; System.out.println(new TestBinarySearch().binarySearch(a, 7)); } i
2014-03-30 10:06:51 2854 3
原创 动态规划初步
动态规划之钢条切割动态规划的设计1. 刻画最优解的结构特征2. 递归地定义最优解的值3. 计算最优解的值,通常采用自底向上的方法4. 利用计算的信息构造一个最优解钢条切割不同长度的的钢条,价格不同,切割钢条使价格最高:长度与价格相关表如下:长度i1234
2014-03-28 21:06:56 689
原创 关于网易
今天去了网易位于科韵路的邮箱部门,我中午12多点就出发,到了科韵路软件园的时候大概1点20多分,我在那里晃荡了一下,对着手机查了一下百度地图,过了很久我胡乱地走来走去居然让我找到海旺大厦,好吧,看了一下时间,还有的是,约定是下午2点半,我就在那里复习了一下java的基础知识。看了许久,一直度看不下去,结果,时间差不多了,于是我就向海旺大厦走去。在楼下保安阿姨,签了一下到,就上去了,在四楼,进去了。
2014-03-25 17:14:53 985 1
原创 关于哈希表
什么是哈希表根据设定的哈希函数H(key)和处理冲突的方法,将一组数据映像到一个连续的地址集(区间),并以关键字中地址集的‘像’作为记录在表中的位置,成为哈希表。通俗地讲就是哈希表就是用来记录一组数据(key)的地址的。哈希函数的构造方法。1. 直接定址法。H(key) = key ;或H(key) = a*key +b.2. 数字分析法。3.
2014-03-24 12:47:07 738
原创 近30种数据结构总结
1、线性表的动态分配顺序存储结构:#define LIST_INIT_SIZE 100#define LISTINCREMENT 10typedef struct { ElemType *elem;//存储空间基址 int length;//当前长度 int listsize;//当前分分配的存储容量}sqlist;2、线性表的dang未完
2014-03-23 23:54:55 1086
原创 Java内存详解
深入Java核心 Java内存分配原理精讲栈、堆、常量池虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同。本文将深入Java核心,详细讲解Java内存分配方面的知识Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识。一般Java在内
2014-03-23 21:09:19 738
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人