- 博客(29)
- 资源 (6)
- 收藏
- 关注
原创 如何设计IO密集型多线程和CPU密集型多线程?
多线程技术是我们日常工作中遇到的最常见的技术了,它的使用经常伴随着线程池,今天我们聊聊如何设计一个合理的线程池。首先线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程但线程的数目永远不会超过最大值。超过最大值的线程可以排队,但他们要等到其他线程完成后才启动。...
2019-03-29 17:25:34
2372
1
原创 JAVA内存泄露
1.什么是内存泄露?对于很多初学者来说,或多或少都听过内存泄露,但是什么是内存泄露呢。内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。通俗来讲就是我们声明的对象不再使用了,但是由于该对象仍在被引用,所以gc无法回收该对象占用的空间,造成的内存浪费现象。简称‘无用但可达’。废话不多说...
2019-02-28 17:33:12
254
原创 maven常用打包配置
1. 打war包(支持同时将本地包打进war包中)pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...
2019-01-17 11:08:01
351
转载 B树,B+树,红黑树 数据库常见面试题
https://blog.csdn.net/zhangshk_/article/details/83013482
2018-12-25 16:53:55
463
原创 postgresql存储过程
通过指定字符串和长度,返回该字符串在数据库的存储次数,可用来统计字符出现的次数,或生成自增序列。---- Name: gb_code_sequence(character varying, integer); Type: FUNCTION; Schema: public; Owner: postgres--CREATE FUNCTION gb_code_sequence(in_objec...
2018-12-24 21:42:15
920
原创 impala实现自增序列udf
impala本身不支持关系型数据库的自增序列,业务需要我们添加一列为自增序列并作为主键,考虑到impala支持udf(用户自定义函数),于是用udf实现了,下面说说我的实现思路。构建udf环境pom引入依赖包继承org.apache.hadoop.hive.ql.exec.UDF类,并重写evaluate方法,一定要重写该方法,impala读取的就是该方法。参数可根据自己需要自定义。...
2018-12-24 18:49:02
5574
原创 小米面试
2018年12月16日,小米面试总结一面自我介绍聊项目SpringBoot的优缺点mybatis支持的数据类型序列化的优缺点StringBuffer和StringBuilder区别。熟悉的集合框架ArrayList和LinkedList的区别。static加载机制oracle和mysql的分页查询手写单例模式,线程安全两个Arraylist合并,O(n)有两个文件,每...
2018-12-17 20:18:50
742
2
原创 归并排序
复杂度介绍:非递归版的归并排序,省略了中间的栈空间,直接申请一段O(n)的地址空间即可,因此空间复杂度为O(n),时间复杂度为O(nlogn)。平均时间复杂度: O(NLogN)最好情况时间复杂度: O(NLogN)最差情况时间复杂度: O(NLogN)所需要额外空间: 递归:O(N + LogN), 非递归:O(N)稳定性: 稳定算法思想:开始以间隔为1的进行归并,也就是说,第一...
2018-12-16 18:00:12
221
转载 HBase概念及表格设计
1. 概述HBase是一帮家伙看了Google发布的一片名为“BigTable”的论文以后,犹如醍醐灌顶,进而“山寨”出来的一套系统。由此可见:1. 几乎所有的HBase中的理念,都可以从BigTable论文中得到解释。原文是英语的,而且还有不少数学概念,看了有点儿懵,建议网上找找学习笔记看看,差不多也就可以入门了。2. Google确实牛X。3. 老外也爱山寨~第一次看HBase, ...
2018-12-14 10:53:43
304
原创 吐血总结
面向对象在java,c++等面向对象编程的语言中,他们将一切事物都当作对象,而将事物的特征和行为定义为对象的属性和方法封装是实现面向对象程序设计的第一步,封装就是,具有有相同特性(属性)和相同行为(方法)的对象用一个类来描述。这样对象只要去调用类中方法,就可以实现功能,而不用管具体的实现。继承主要实现重用代码,节省开发时间。多态就是,多种形态,同一操作作用于不同的对象,可以有不同的解释...
2018-12-03 16:00:56
556
原创 2017校招面试总结
List:|–Vector:内部是数组数据结构,是同步的。增删,查询都很慢!|–ArrayList:内部是数组数据结构,是不同步的。替代了Vector。查询的速度快。|–LinkedList:内部是链表数据结构,是不同步的。增删元素的速度很快。Set:元素不可以重复,是无序。Set接口中的方法和Collection一致。|–HashSet: 内部数据结构是哈希表 ,是不同步的。如何保...
2018-12-02 23:14:49
786
转载 分布式系统生成全剧唯一ID
公司业务需要,将mpp数据库迁移到kudu中去,而kudu不支持自增序列,所以准备自己实现一下。一般情况,实现全局唯一ID,有三种方案,分别是通过中间件方式、UUID、雪花算法。方案一,通过中间件方式,可以是把数据库或者redis缓存作为媒介,从中间件获取ID。这种呢,优点是可以体现全局的递增趋势(优点只能想到这个),缺点呢,倒是一大堆,比如,依赖中间件,假如中间件挂了,就不能提供服务了;依赖...
2018-12-02 20:59:44
688
原创 JAVA面试题总结
1. 如果创建一个线程池,有哪些参数需要设置。核心线程数,最大线程数,空闲线程存活时间,时间单位,工作队列,拒绝任务处理器。2. 如果有5个线程分别处理不同的任务,需要等这5个线程都执行完成后输出一条日志,如何解决。Java并发编程:CountDownLatch、CyclicBarrier和 Semaphore:http://www.importnew.com/21889.htmlCou...
2018-12-02 18:49:04
201
转载 JVM的内存模型
一、JVM内存结构JVM 内存共分为虚拟机栈,堆,方法区,程序计数器,本地方法栈五个部分。JVM的内存模型和类加载机制是分不开的 JVM类加载机制。二、JVM内存区域功能堆内存堆内存是JVM内存模型中最大的一块区域,被所有线程共享,是在JVM启动时候进行创建的。几乎所有的对象的空间分配都是在堆内存上进行分配的。考虑到JVM的内存回收机制,堆内存可以划分为新生代和老年代两个区域(默认...
2018-12-02 14:06:02
380
原创 常用的排序算法的时间复杂度和空间复杂度
常用的排序算法的时间复杂度和空间复杂度排序法最差时间分析平均时间复杂度稳定度空间复杂度冒泡排序O(n2)O(n2)稳定O(1)快速排序O(n2)O(n*log2n)不稳定O(log2n)~O(n)选择排序O(n2)O(n2)不稳定O(1)二叉树排序O(n2)O(n*log2n)不一定O(n)插入排序O(n2)O...
2018-12-02 13:00:55
304
原创 对面向对象和多态的认识
面向对象在java,c++等面向对象编程的语言中,他们将一切事物都当作对象,而将事物的特征和行为定义为对象的属性和方法,这样在编写程序时,重要封装是实现面向对象程序设计的第一步,封装就是,具有有相同特性(属性)和相同行为(方法)的对象用一个类来描述。这样对象只要去调用类中方法,就可以实现功能,而不用管具体的实现。继承主要实现重用代码,节省开发时间。多态就是,多种形态,同一操作作用于不同...
2018-12-01 22:18:55
309
转载 JVM类加载机制
JVM类加载分为5个过程:加载,连接(包括验证、准备、解析),初始化,使用,卸载。下面的例子清晰明了转载:https://blog.csdn.net/noaman_wgs/article/details/74489549...
2018-12-01 20:53:54
176
原创 死锁产生的原因
产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。...
2018-12-01 17:32:36
134
转载 JAVA反射获取私有属性
反射获取类对象,获取私有属性和方法集合,然后取消访问检查setAccessible(true),最后调用私有属性或方法。反射优点:能够运行时动态获取类的实例,大大提高了系统的灵活性和扩展性;与java动态编译相结合,可以实现无比强大的功能。反射缺点:使用反射的性能较低;使用反射来说相对不安全;破坏了类的封装性,可以通过反射来获取这个类的属性,和私有方法。https://blog...
2018-12-01 17:27:31
2007
转载 数据库面试:SQL相关概念及常用的SQL优化方式
in 和 not in 应避免使用,会导致全表扫描应尽量避免在 where 子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描不要使用select * from t的形式进行查询避免出现隐式转换,保持SQL中变量类型与字段类型一直当需要插入大量数据时,使用copy方式,避免执行大量 insert 语句https://blog.csdn.net/yueqi1125/art...
2018-12-01 17:15:05
148
转载 mysql各种引擎对比、实战
以下两点必须使用 InnoDB:1)可靠性高或者要求事务处理,则使用InnoDB。这个是必须的。2)表更新和查询都相当的频繁,并且表锁定的机会比较大的情况指定InnoDB数据引擎的创建。对比之下,MyISAM的使用场景:1)做很多count的计算的。如一些日志,调查的业务表。2)插入修改不频繁,查询非常频繁的。InnoDB和MyIsam引擎原理:MyISAM索引结构:MyISAM...
2018-12-01 16:36:56
281
转载 JAVA并发编程:线程池
为什么要用线程池?在Java中,如果每当一个请求到达就创建一个新线程,开销是相当大的。在实际使用中,每个请求创建新线程的服务器在创建和销毁线程上花费的时间和消耗的系统资源,甚至可能要比花在实际处理实际的用户请求的时间和资源要多的多。除了创建和销毁线程的开销之外,活动的线程也需要消耗系统资源。如果在一个JVM中创建太多的线程,可能会导致系统由于过度消耗内存或者“切换过度”而导致系统资源不足。为了防...
2018-12-01 14:47:41
308
原创 Hashmap、Hashtable和ConcurrentHashMap相关的问题
首先,他们的父类不同,hashmap的父类是AbstractMap,而hashtable是Dictionary,ConcurrentHashMap的父类也是AbstractMap。hashmap初始容量默认16,装载因子0.75,扩容默认为2n,hashtable初始容量默认11,装载因子0.75,扩容默认2n+1,如果hash冲突太多,可以通过降低装载因子。空间换时间来降低hash冲突。h...
2018-11-29 09:52:47
344
原创 Kafka基础知识及高并发和一致性原理
KafkaKafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Lin...
2018-11-08 12:06:29
1584
原创 springboot logback配置
sprintboot 日志管理spring boot自带了log打印功能,使用的是Commons logging 具体可以参考 Spring Boot Loglogback配置logback是log4j的升级版,配置简单,性能更好,因此使用其作为SpringBoot项目的日志管理框架,以下为配置流程1. application.properties中指定logback配置文件地址...
2018-11-01 17:00:42
439
原创 IDEA远程debug服务器上代码
之前在项目中,springboot项目本地运行正常,但部署到服务器上,会出现一些问题,因此想在本地调试服务器上的代码。运行环境:服务端:Linux系统客户端:IDEA1. 服务端配置编辑tomcat目录下的bin/catalina.sh,添加以下代码: CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,susp...
2018-11-01 13:42:02
2170
Kafka Tool Mac版本,适用于kafka0.11及以上
2018-12-14
Kafka Tool linux版本,适用于kafka0.11及以上
2018-12-14
FSCapture_8.5.0.0安装包及注册码
2018-12-11
scala-2.11.12.msi 安装程序
2018-12-11
idea-2018.3.4 scala插件
2018-12-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人