自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

漠北鹰的专栏

纸上得来终觉浅,绝知此事要躬行

  • 博客(42)
  • 收藏
  • 关注

原创 大数据组件之初识Hive

现在在互联网行业,稍微和大数据研发或者数据分析工作沾边的,都会有听到Hive这个工具。那么Hive是什么呢,是什么情况出现了Hive这个工具,它用来处理什么样的问题,哪些是它不能处理的,本文打算从以上角度来简单介绍一下Hive。hive是什么企业中,一般的大数据仓库都是基于关系型数据库来存储数据的。比如我们的日志数据,一般会通过消息队列导入给数据仓库同学,由其加工解析,建表,存储关键字段的信息...

2019-06-17 00:19:15 402

原创 AB实验平台在贝壳找房的设计与实践

作者雏鹰(企业代号名),目前负责贝壳找房增长方向AB实验平台研发工作。引言​ 随着贝壳找房业务的不断增长,精细化运营显得尤为重要。为了保证每一次迭代,每一个方案能够真正得到用户的认可,为贝壳带来有效的商机转化率,我们就不得不理性对待每次功能上线,反复对比找到产品方案中的不足加以改进。基于这种需要,我们推出了贝壳找房AB实验平台(Athena)(以下简称ab平台)来为大家做产品方案的优化测试...

2019-06-16 19:48:32 3850 4

原创 SpringBoot结合线程池解决多线程问题实录

背景:线上有一个接口,3台机器总共QPS在3000左右,单机QPS在1000左右,接口响应时间2ms。为了保证接口的任何改动在上线之前能够在大流量下能够没有问题。提出想法,搭建一套流量回放环境,上线之前把代码先部署到流量回放环境。然后将线上的流量导入到流量回放环境,用真实的业务请求来做模拟测试,这个过程我们称作是流量回放。​ 为了保证流量回放的时候,流量导入过程,不能影响正常的线上接口请求,也...

2019-06-16 19:45:23 3803

原创 flume学习入门笔记

flume的诞生背景现在大数据、数据分析在企业中的应用越来越广泛,大数据的一个主要应用场景是对一些日志进行分析,比如公司的监控的系统,采集运行在服务器上的日志进行分析,用户行为数据分析是采集用户在各个应用上面的日志行为进行分析。总结来看,很多地方都会产生日志,比如操作系统,web server(Tomcat,nginx等),应用程序等。那么这些数据要分析的话,就得将他们收集到一起来处理,发挥他们...

2019-02-21 19:49:12 349

转载 提高代码阅读能力的7种方法

摘要:随着越来越多的公司使用敏捷开发,能够阅读别人的代码比以往显得更重要。这就需要学习一些如何提高这项技能的技巧。本文提供了7种提高代码阅读技巧的方法,以下是译文。在软件开发人员的职位描述中有阅读源代码。然而,这体验并不总能令人愉悦。不是每个人都喜欢阅读别人的代码,因为他们觉得那很乏味,甚至有时令人感到沮丧。有些案例中,你开始阅读别人的代码,最终会产生一种痛苦的感觉,因为你不能理解这些代码,或...

2018-04-03 20:17:19 242

转载 win10+nginx+php7+mysql

本文参考了 http://www.cnblogs.com/huayangmeng/archive/2011/06/15/2081337.html近几年来nginx的市场占有率逐渐上升,已经慢慢的逼近了apache,而IIS则首次跌破到10%以下。国内很多大厂的服务器都换成了nginx,依我看它未来应该会超过apache的。Nginx是俄罗斯人Igor Sysoev编写的轻量级HTT

2017-07-30 18:11:14 3006

原创 工具类

package com.ly.ie.client.common;import org.apache.commons.lang3.StringUtils;import java.io.UnsupportedEncodingException;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetExcepti

2017-01-16 11:03:56 366

原创 一个用枚举类型定义错误码的Demo

/** * Created by gfj43958 on 2017/1/6. */public enum WrapperEnumError { //网络超时 SOCKET_TIMEOUT("W001", "网络超时"), //网络链接异常 SOCKET_CONNECT_EROOR("W002", "网络链接异常"), //请求参数错误 REQ

2017-01-16 10:39:43 3954 1

转载 一个优雅的threadLocal工具类

import java.util.*;public final class ThreadLocalUtil { private static final ThreadLocal<Map<String, Object>> threadLocal = new ThreadLocal() { protected Map<String, Object> initialValue()

2017-01-07 16:24:52 7872 2

原创 求解斐波那契数列的方式

题目描述在要求输入一个整数n,请你输出斐波那契数列的第n项。输入42输出31import java.util.Scanner;/** * Created by acer on 2016/10/5. * 斐波那契数列: * 0 1 1 2 3 5 */public class Fibonacci { //递归方式 public int finbonacci(int n){

2016-10-05 14:47:29 559

原创 旋转数组的最小数字

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。输入3,4,5,1,21,0,1,1,1输出10/** * Created by acer on 2016/10/4. * 思想:不断缩小比较的距离,【这也就是和左端比大,和右端

2016-10-04 21:06:06 269

原创 java实现快速排序(利用随机索引)

public void random_partion(int start, int length) {//核心代码(随机位置二分排序) if (length <= 1) return; Random rand = new Random(); int index = rand.nextInt(length) + start;

2016-10-02 21:05:26 894

原创 利用两个队列实现一个栈

import java.util.ArrayDeque;import java.util.Scanner;/** * Created by acer on 2016/10/1. * 借助两个队列实现一个栈 * 思想:保证每次最后添加进来的元素成为队列最前面的元素即可 */public class SolutionQueen { ArrayDeque<Integer> deque1

2016-10-02 15:47:55 375

原创 栈的动态数组实现

栈的特性:先进后出public class Stack<E> { private ArrayList<E> list = new ArrayList<E>(); //1、置空栈 public void empty() { list.empty(); } //2、判栈空 public boolean isEmpty() {

2016-10-02 12:55:32 1023

原创 利用两个栈实现一个队列

直接贴代码,注释都写在代码里面了import java.util.Scanner;import java.util.Stack;/** * Created by acer on 2016/10/1. * 利用两个栈构建一个队列 *思路:1.进队列:直接将元素添加到栈1当中 * 2.出队列:(1)先将栈1中的所有元素入栈到栈2,再依次从栈2中pop即可。 *

2016-10-01 21:17:08 339

原创 根据前序遍历序列和中序遍历序列重建二叉树

问题描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。整体思路:前序遍历的第一个节点是根,在中序遍历中找到这个根所在的位置,那么中序遍历中根位置左边的便是整个树的左子树,根右边的是整个树的右子树,然后找到左子树

2016-10-01 20:50:32 2702

原创 转圈打印矩阵或者生成转圈矩阵

题目情况:给出一个整数N,打印出N*N的转圈矩阵,例如:输入整数4输出:或者是给出一个这样的转圈矩阵,如何将其转圈输出代码以及思路如下:public class Class01 { public static int[][] circleJuzhen(int N){ int[][] a=new int[N][N]; int k=0; int i

2016-09-02 12:37:27 1796

原创 java内存结构划分与java虚拟机调优

java内存结构划分java内存主要分为6部分,分别是程序计数器,虚拟机栈,本地方法栈,堆,方法区和直接内存,下面将逐一详细描述。1、程序计数器线程私有,即每个线程都会有一个,线程之间互不影响,独立存储。代表着当前线程所执行字节码的行号指示器。2、虚拟机栈线程私有,它的生命周期和线程相同。描述的是java方法执行的内存模型:每个方法在执行的同时多会创建一个栈帧用于存储局部变量表、操作数栈、动态链表、

2016-08-23 20:23:50 405 2

原创 java虚拟机垃圾回收

java虚拟机垃圾回收缺点 : 垃圾回收的一个潜在的缺点是它的开销影响程序性能。Java虚拟机必须追踪运行程序中有用的对象,而且最终释放没用的对象。优点 : 当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用, 自动释放内存空间,减轻编程的负担。垃圾收集的算法分析 大多数垃圾回收算法使用了根集(root set)这个概念;所谓根集就是正在执行的Java程序可以访问的引用变量

2016-08-23 20:20:02 432

原创 表单提交限制字段为中文的处理

var userNameCn = $("#userNameCn").val(); if ("" == userNameCn || "undefined" == userNameCn) { alert("中文名不能为空"); return; }else{ for(var i=0;i< userNameCn.len

2016-08-16 14:25:36 842

原创 数据库事务(2)数据库的隔离级别

事务的隔离级别:以上的4种问题(更新丢失、脏读、不可重复读、幻读)都和事务的隔离级别有关。通过设置事务的隔离级别,可以避免上述问题的发生。未授权读取 级别:也称为读未提交(Read Uncommitted)。以操作同一行数据为前提,读事务 允许 其他读事务和写事务,未提交的写事务 禁止 其他写事务(但允许其他读事务)。此隔离级别可以防止 更新丢失 ,但不能防止 脏读、不可重复读、幻读 。此隔离级别可

2016-08-15 17:21:30 328

原创 数据库事务(1)数据库事务的特性以及 并发事务引起的问题

事务的4大特性(ACID):原子性(Atomicity) :事务是 数据库 的逻辑工作单位,它对数据库的修改要么全部执行,要么全部不执行。一致性(Consistemcy) :事务前后,数据库的状态都满足所有的完整性约束。隔离性(Isolation) :并发执行的事务是隔离的,一个不影响一个。如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统

2016-08-15 17:19:48 987 1

原创 java实现文件夹的复制和文件的复制

//复制到特定目录下 public void copyFiles(File rootFile,File copyFile){ //如果目标目录是一个文件,则抛出不可复制到文件的异常 if(copyFile.isFile()){ throw new RuntimeException("不能将一个文件夹复制到一个文件当中");

2016-07-08 21:01:21 1197

转载 Git系列学习二 git的诞生

发明人:Linus发明时间:1991年为什么弄出这么个玩意儿?(最初的目的只是想拿来管理Linux)Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码事实上的管理方式是:在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!你也许会想,为什么Li

2016-07-08 19:40:14 419

转载 Git系列一之git简介

Git简介Git是什么?Git是目前世界上最先进的分布式版本控制系统(没有之一)。Git有什么特点?简单来说就是:高端大气上档次!那什么是版本控制系统?如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……”一个新文件,这样一直改下去,最后你的

2016-07-08 19:31:11 348

原创 java实现双向循环链表

模拟JDK中LinkedList的实现原理进行实现package 链表;//java实现循环链表public class NewLinkedList<E>{ private int size; private Entry<E> header=new Entry(null,null,null); //定义节点类型 private class Entry<E> {

2016-07-01 12:13:11 745

原创 JAVA实现单链表

解释透明,代码通过亲测没毛病,可直接赋值粘贴运行^_^定义节点类:package 链表;public class Node { public int Element; public Node next; public Node(int Element,Node next){ this.Element=Element; this.next=n

2016-06-30 12:55:52 442

原创 二维数组中的查找

题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。输入描述:array: 待查找的二维数组target:查找的数字输出描述:查找到返回true,查找不到返回falsejava的实现代码public class Solution { public boolean Find

2016-06-26 21:55:23 266

原创 设计模式二之策略模式

策略模式定义:它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。策略模式(Strategy)组成:1. 定义一个所有支持的算法的公共接口策略接口或者抽象类,在这个接口或抽象类中定义一个算法方法由具体的策略实体类来重写,并实现具体的算法功能package 大话设计模式.策略模式;//策略接口public interface Strategy {

2016-06-26 21:42:07 334

原创 设计模式一 简单工厂设计模式

为什么要用设计模式使用设计模式的好处:使得程序能够增强了极大的* 维护性,复用性,扩展性和灵活性*设计模式一:简单工厂模式举例子引出设计模式:用面向对象的方式实现一个计算器,输入两个数和运算符号,得到结果不用设计模式的情况实现:public class Calculator { //设计一个计算器程序,输入两个数和一个操作符:得到结果 public double getResult(

2016-06-26 15:38:41 429 1

原创 二叉树的三种遍历方式java实现

二叉树的定义 二叉树(binary tree)是结点的有限集合,这个集合或者空,或者由一个根及两个互不相交的称为这个根的左子树或右子树构成. 从定义可以看出,二叉树包括:1.空树 2.只有一个根节点 3.只有左子树 4.只有右子树 5.左右子树都存在 有且仅有这5中表现形式 二叉树与一般...

2016-06-11 19:24:49 23085 9

原创 树的相关必备理论

树的必备概念以及相关术语1.树的概念及特征树(tree)是n(n>0)个结点的有限集合T,满足下面2个条件。树形结构是一类重要的非线性结构 (1)有且仅有一个特定的称为根(root)结点 (2)其余的结点可分为m(m>=0)个互不相交的有限集合,其中每个集合又是一棵树,并称其为根的子树(subtree)说明: 由于树不是线性结构,所以一般不用顺序存贮结构来描述,而用链式存贮结构来描述

2016-06-11 18:37:30 487

原创 hotspot虚拟机中对象是如何访问的

对象是如何访问的? 通过栈上的对象引用来访问对象。 引用是如何来访问java堆中的对象的呢??主要看具体的虚拟机怎么实现,主流的有两种:1.句柄访问:在java堆中国划分一部分内存存储句柄的句柄池,引用类型存的是指向该句柄池的地址,然后造句柄池中对应保存着实例对象的地址 优点:在实例对象发生移动时候(垃圾回收器回收对象,实例对象移动很正常)  就可以只改

2016-04-18 20:49:25 629

原创 hotspot虚拟机中的对象是如何布局的

对象是如何布局的 对象在内存中存储的布局可以分3块区域:对象头,实例数据,对齐填充 对象头:在内存分配中已经说过,一部分,保存对象本身的固有信息,一般占32bit或者64bit(和虚拟机的位数相匹配) 另一部分是其类型指针,指定了该对象是哪个类的实例 实例数据:    对象真正有效存储的信息,存储顺序会受到虚拟机的分批额策略参数和再java中定义

2016-04-18 20:45:48 335

原创 HotSpot虚拟机对象揭秘之对象的创建过程探究

对象是如何创建的? (1)检查    虚拟机遇到new指令,上常量池中找有没有要new的这个类的符号引用,并且检查,类符号引用的类是否是否已经完成了加载,解析和初始化工作,如果没有,先执行类加载的相应过程 (2)分配  为新生对象分配内存,把一块确定大小的内存从java堆中划分出来。。分配方式:  指针碰撞:加入内存是绝对规整的,用过的放在一边,没用过的

2016-04-18 20:42:33 645

原创 java内存区域与内存溢出异常

运行时数据区域的简要总结:     1.程序计数器:             特性                     线程私有,一个线程一个            功能    当前线程所执行的字节码行号显示器,虚拟机字节码解释器通过改变程序计数器的值来取下一条需要执行的字节码指令,常见的控制语句都需要它来完成 执行java方法,代表的是字节码指令的地址执行

2016-04-18 20:40:05 384

原创 Ajax是啥

Ajax扫盲系列1.Ajax是神马鬼: ajax,(PS:这家伙读“阿甲克斯”,原谅我把这么高大上的英文就这么给汉语化了,毕竟好读,因为本小吊之前不会读这个真是闹了不少笑话,哈哈)百度百科给的解释是:AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。

2015-09-30 22:49:31 536

原创 AJAX实现级联列表,入门级实现方式

直接贴代码吧,前台代码用js语言实现var xmlHttp;function createXMLHttpRequest(){ if(window.ActiveXObject) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } else{ xmlHttp=new XM

2015-09-26 15:49:12 432

原创 java连接数据库工具类写法

创建一个dao.imp包,此类涉及到一般数据库的基本操作,可以当工具类用package dao.imp;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;pu

2015-05-25 22:54:33 510

原创 Tomcat的安装与配置(2)

二:安装tomcatTomcat安装文件下载地址:http://tomcat.apache.org/download-60.cgi                   解压缩版本zip  (pgp, md5)linux版本tar.gz (pgp, md5)Windows安装版本Windows Service Installer 

2015-05-23 13:11:50 722

空空如也

空空如也

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

TA关注的人

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