自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (11)
  • 收藏
  • 关注

原创 hive导入hbase笔记

背景:需要记录用户最近x天内浏览过和下过单的live房间记录过程:从hive捞了一波数据,发现有几亿条,初步选型为hbase,之后的工作可以说是折腾了我三天一夜,特此记录,省的下次再浪费时间步骤:1、需要在hive创建数据时建立一列rowkey列用来做导入hbase的rowkeyrowkey设计规则:一般建议定长,就算为了节省空间不是定长,split的前缀必须定长!!!!不然就会导致数据导入不均衡exp:2wqps ,20G数据,7天ttl的量级数据大概需要至少14个region

2022-02-11 21:09:23 874

原创 实用工厂模式

工厂类:@Servicepublic class ProducerFactory { public Map<FactoryTypeEnum, BaseProducer> producerMap; //Autowired注解作用在方法上会在初始化时执行该方法,如果该方法有参数,会使用autowired的方式在容器中查找是否有该参数 @Autowired public ProducerFactory(List<BaseProducer> pro

2022-01-13 01:01:32 109

原创 操作系统内存管理

1、分段分段主要是对用户程序进行分段处理,用户程序运行的逻辑地址都是相对地址,为了避免使用相同的地址,需要偏移基址+逻辑地址来进行从逻辑地址到内存可用物理地址的映射,段表LDT就是用来存储偏移基址的,每一个进程有自己的LDT表用来存储不同分段的基址,操作系统有一个总的GDT表用来存储各LDT表信息2、分页分页是指对物理内存进行分页,因为内存不适合进行分段处理,段比较大,容易出...

2019-08-26 16:04:29 84

原创 HashMap、ConcurrentHashMap总结

HashMap我们都知道hashmap 的底层数据结构是数组+链表的node,node的key值通过一系列hash得到一个hashcode,根据hashcode放入数组某个位置。当这个hashcode之前不存在时,就new一个节点放入数组;当hashcode已经存在时,这时有两种原因:1、一种是hashcode冲突了,也就是两个不同的key算出来了一个hashcode,这时就把节点...

2019-08-15 01:50:55 101

原创 BFS的主要思想

DFS之前在回溯法中已经介绍过了BFS主要是用队列实现,具体模版是入队第一个元素,当队列不为空时进行循环,如果需要记录每层的数据(层数),就保存队列的长度,在队列不为空的循环里进行for长度的循环,先出队第一个元素,进行条件判断,满足条件的节点入队。BFS主要应用于二叉树层次遍历相关、二叉树的右视图、求二叉树/简单图的最短/最小路径,拓扑排序,单词接龙等,图的遍历、克隆图、由图判树、连通快...

2019-08-13 01:45:41 430

原创 Spring IOC 和 AOP

先介绍一下工厂模式简单工厂模式是多个不同产品,工厂类负责根据产品的不同名称生产所有产品,调用工厂类时需要传入产品的名称工厂模式是还是多个不同产品,一个工厂接口,多个根据产品实现工厂接口的不同产品工厂,每个特定工厂生产特定的同一类产品,调用时根据所需要的产品去找对应的工厂进行生产抽象工厂是指一把不同的产品组合在一起形成一个工厂接口,一个工厂能根据需求同时生产需要的产品以上的工厂接口...

2019-08-13 01:36:54 67

原创 锁和锁的优化

jdk对锁的优化:1、偏向锁,可以用-XX:+UseBiasedLocking参数开启偏向锁,偏向锁的意思就是当程序没有竞争时,当前线程拿到了锁,便进入偏向模式,下次又是这个线程再次申请,不许要同步操作又能拿到锁,但是如果期间有其他线程进行了锁请求,就会退出偏向模式。这种不适用于竞争特别激烈的多线程环境,因为竞争特别激烈的每次都是不同的线程来访问,反而会降低性能2、轻量级锁 不太理解3...

2019-08-11 23:24:01 68

原创 深拷贝和浅拷贝

List copiedlist = new LinkedList<>();List softCopy = copiedlist;浅拷贝拷贝引用List deepCopy = new LinkedList(copiedlist);深拷贝拷贝内容当copiedlist.add(1)时,softCopy会变成和copiedlist一样,但是deepCopy不会变化。...

2019-08-08 11:10:07 64

原创 回溯法总结

回溯法类似DFS算法,如果没走过则可以往下走,当回溯时记得把走过的状态清空到初始状态,如果是链表加数则要去掉最近加的一个数,求不重复元素的回溯法要用到剪枝,剪枝的首要条件是要保证列表有序,然后如果前一个分支nums[i-1]和当前分支nums[i]走到的元素相同,且前一个分支的visited[i-1]=0,说明程序已经回退到前一个分支和当前分支的上层且马上要走到当前重复的分支了,这时continu...

2019-08-07 01:48:51 172

原创 合并k个链表

合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6有三种方法1、把所有元素入最小堆,再输出堆顶实现,堆可以用java的PriorityQueue实现2...

2019-08-07 01:41:42 231

原创 leetcode32 求最长有效括号

题目:给定一个只包含 '('和 ')'的字符串,找出最长的包含有效括号的子串的长度。示例1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"解析:有效的括号子串可以分为两种,一种是()(),一种是((())),针对这两种括号的任意组合,我们可以求出状态转移方程如下,从...

2019-08-02 20:00:43 91

原创 两个线程交替打印数字到100

1、等待唤醒机制import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * @author: surepeng * @description: * @date: 2019/07/24 **/public class MultiThreadPrint { ...

2019-07-25 01:30:53 756

原创 java并发基础常用方法

1、线程和进程进程等于一个资源(即内存映射表)+多个指令执行序列,当切换进程的时候我们不仅要切换指令序列,而且要切换内存映射表,但是线程之间的切换只是在同一个内存映射表之间的指令切换(在java中切换pc,虚拟机栈,本地方法栈,不切换堆和方法区),线程既保留了并发的特点,又避免了线程切换的代价2、start和run调用start方法会新建一个线程,让这个新建的线程去调用run方...

2019-07-24 15:27:50 83

原创 缓存更新顺序

考虑多线程的场景1.先删除缓存再更新DB多线程下先删除缓存再更新DB会导致,一个线程更新缓存,一个线程进行查询,如果缓存中查询不到就会去DB中查询旧数据并放到缓存中,这样及时之后DB中是新数据,缓存中也是旧数据,就会导致脏数据的出现2.先更新DB再更新缓存多线程下一个线程更新DB,一个线程查询缓存,这样即使缓存查到的是旧数据之后更新完DB之后缓存也会更新,只会有短暂的数据不一...

2019-07-24 11:45:53 253

原创 关于java的printWriter和FileOutputStream

PrintWriter writer = new PrintWriter(filePath);writer.write(数据);writer.flush();writer.close();注意读写大量数据时,使用printWriter一定要进行flush操作,不然会出现数据输出不全的情况。是因为PrintWriter写入数据时,是用到缓存的。数据是先被读到了内存缓冲区中,再把数据写...

2018-10-16 11:28:34 1493

原创 一些基础

常见的基本数据类型总共八种8位:byte、16位:short、char、32位:int、float、64位:long、doubleboolean关于IntegerInteger在-128-127之时,Integer对象是在IntegerCache.cache产生,会复用已有对象,可以直接用等于号判断,当在这个数之外时,Integer对象对象在堆上产生,用等号判断会返回fa...

2018-10-16 11:27:31 79

原创 第一篇博客——Python如何实现一个守护进程来定时每天在十点的时候跑shell脚本

还需要考虑不同异常情况helloworld.pyimport datetimeimport timeimport osdef doSth(): print('hello') n=os.system('./desktop/apache-tomcat-8.5.28/bin/startup.sh') print('thats all') time.sle...

2018-07-18 12:12:02 1753 1

NIO,AIO编程视频5

AIO、NIO编程视频

2018-10-16

NIO,AIO编程视频4

AIO、NIO编程视频

2018-10-16

NIO,AIO编程视频3

AIO,NIO编程视频

2018-10-16

NIO,AIO编程视频2

NIO,AIO编程

2018-10-16

微信6.5.4版永不更新版

微信6.5.4版永不更新版

2018-10-16

csapp最著名的五个实验

中科大csapp课程实验,内附代码,可以在控制台运行。,,

2018-05-31

ios学生成绩管理小程序

用ios实现的学生成绩管理小程序,编译环境是xcode8.3,可以直接运行

2018-05-31

ios高级计算器小程序

ios用栈实现的高级计算器小程序,编译环境是Xcode8.3,可以直接运行

2018-05-31

IOS计算器小程序

Xcode用栈实现的ios计算器小程序,可以直接运行,大家可以下载看看

2018-05-31

android计步小程序

基于加速度传感器的计步小程序,android studio可以运行

2018-05-31

模型驱动开发试题

非常有用的试题,尤其针对模型驱动开发这门课程,大家可以下载看看

2018-05-31

空空如也

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

TA关注的人

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