03 2020 档案

Java中Comparable与Comparator的区别
摘要:1、Comparator Comparator是比较接口,我们如果需要控制某个类的次序,而该类本身不支持排序(即没有实现Comparable接口),那么我们就可以建立一个“该类的比较器”来进行排序,(n1,n2) => n1<n2 return 1 降序;n1==n2 return 1 原序 数组如 阅读全文

posted @ 2020-03-31 21:44 hdc520 阅读(214) 评论(0) 推荐(0) 编辑

经典的排序算法
摘要:1、冒泡 void BubbleSort(int[]nums,int n){ for(int i=0;i<a.length;i++){ flag=0; for(int j=0;j<a.length-1-i;j++){ if(a[j]<a[j+1]){ int tmp=a[j]; a[j]=a[j+1 阅读全文

posted @ 2020-03-31 21:28 hdc520 阅读(172) 评论(0) 推荐(0) 编辑

Java之多线程讲解
摘要:1、线程的创建 (1)继承Thread类创建线程类,代码如下: //1、定义一个继承Thread类的子类,并重写该类的run()方法; //2、创建Thread子类的实例,即创建了线程对象; //3、调用该线程对象的start()方法启动线程。 class SomeThead extends Thr 阅读全文

posted @ 2020-03-29 17:17 hdc520 阅读(287) 评论(0) 推荐(0) 编辑

Hive的面试整理
摘要:1、hive的作用: hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 相对于mapreduce 离线计算需要写很多java代码去实现数据提取,hive可以通过类SQL语句快速实 阅读全文

posted @ 2020-03-28 17:45 hdc520 阅读(718) 评论(0) 推荐(0) 编辑

Spark面试整理
摘要:一、spark的优势: 1、每一个作业独立调度,可以把所有的作业做一个图进行调度,各个作业之间相互依赖,在调度过程中一起调度,速度快。 2、所有过程都基于内存,所以通常也将Spark称作是基于内存的迭代式运算框架。 3、spark提供了更丰富的算子,让操作更方便。 二、为什么Spark比Map Re 阅读全文

posted @ 2020-03-28 17:29 hdc520 阅读(2944) 评论(0) 推荐(2) 编辑

Hadoop面试整理
摘要:1、Hadoop1.x和2.x之间的区别:Hadoop 1.0主要由两个分支组成:MapReduce和HDFS,在高可用、扩展性等方面存在问题 (1)HDFS存在的问题 1)NameNode单点故障,难以应用于在线场景。 2)NameNode压力过大,且内存受限,影响扩展性。 (2)MapReduc 阅读全文

posted @ 2020-03-28 17:20 hdc520 阅读(3338) 评论(0) 推荐(0) 编辑

代码运行实例
摘要:1、return与finally的执行顺序 public class Main { public static void main(String[] args) { System.out.print(fun1()); } public static String fun1() { try { Sys 阅读全文

posted @ 2020-03-26 16:02 hdc520 阅读(242) 评论(0) 推荐(0) 编辑

Linux面试
摘要:1、进程管理命令之ps -ef和ps aux:ps -ef | more 一般执行ps -ef 或者ps aux 命令是查看我们的进程是否启动成功,或者找出进程号,对进程的kill强制关闭,比如系统正在运行mysql进程,突然发现mysql挂掉了,那只能杀掉mysql这个进程了,我会使用ps -ef 阅读全文

posted @ 2020-03-26 12:22 hdc520 阅读(356) 评论(0) 推荐(0) 编辑

操作系统比较重要的知识点
摘要:1、进程与线程之间的区别 (1)进程是拥有资源的最小单位;线程是拥有调度的最小单位; (2)进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵 (3)线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远 阅读全文

posted @ 2020-03-24 15:24 hdc520 阅读(271) 评论(0) 推荐(0) 编辑

算法之数字运算
摘要:一、快速幂 (1)普通算法:求a^b%m的时间复杂度为O(b) (2)快速幂:求a^b%m的时间复杂度为O(logb) 比喻:我们已知 2^3 求 2^6,不就是 2^3 * 2^3嘛。快速幂就是这个原理;当遇到奇数时2 ^ 5,就是 2 * 2 ^ 4 。 求a ^ b快速幂的基本思路: 1)当b 阅读全文

posted @ 2020-03-23 20:55 hdc520 阅读(658) 评论(0) 推荐(0) 编辑

回溯法详解
摘要:一、概述 解决一个回溯问题,实际上就是一个决策树的遍历过程。只需要考虑以下三个问题: (1)路径:已经做出的选择。 (2)选择列表:也就是你当前所做出的选择。 (3)结束条件:也就是到达决策树底层,无法在做出的条件。 注意: (1)ans为全局变量 (2)路径最后新建如:ans.add(new Ar 阅读全文

posted @ 2020-03-22 21:40 hdc520 阅读(582) 评论(0) 推荐(0) 编辑

JVM之垃圾收集与内存分配策略
摘要:1、垃圾收集器处理的事情:哪些内存需要回收,什么时候需要回收,如何回收。 (1)Java内存运行时的各个部分区域:程序计数器,Java虚拟机栈,本地方法栈,Java堆,方法区。 (2)垃圾收集器不需要考虑的内存区域:程序计数器,虚拟机栈,本地方法栈这三个内存区域随线程而生,随线程而亡;栈中的栈帧随方 阅读全文

posted @ 2020-03-21 16:41 hdc520 阅读(172) 评论(0) 推荐(0) 编辑

java序列化
摘要:参考链接: https://blog.csdn.net/xlgen157387/article/details/79840134?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant 阅读全文

posted @ 2020-03-18 12:07 hdc520 阅读(158) 评论(0) 推荐(0) 编辑

设计模式之观察者模式
摘要:对于观察者模式而言,肯定有观察者和被观察者之分。比如在一个目录下建立一个文件,这时系统会通知目录管理器增加目录,并通知磁盘减少空间,在这里,文件就是观察者,目录管理器和磁盘就是被观察者。 观察者模式(Observer),区别于发布-订阅模式(Publish/Subscribe),定义对象间一种一对多 阅读全文

posted @ 2020-03-13 11:37 hdc520 阅读(139) 评论(0) 推荐(0) 编辑

设计模式之工厂模式
摘要:参考链接:https://www.cnblogs.com/yssjun/p/11102162.html 三个工厂模式的区别:根据产品是具体产品还是具体工厂可以分为简单工厂模式和工厂方法模式;根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式。 一、简单工厂模式 简单的对不同类对象的创建进行了一层薄薄 阅读全文

posted @ 2020-03-13 10:59 hdc520 阅读(162) 评论(0) 推荐(0) 编辑

设计模式中的6大准则
摘要:一、里氏替换原则 我们知道Java的三大特性:封装,继承,多态。Java 继承有很多优点,是减少重复代码的可靠手段。但是继承同时存在一些缺点: 类的耦合性增加了。比如父类更改之后子类也同时需要更改 降低代码灵活性。因为继承时,父类会对子类有约束性我们使用里氏替换原则,可以减少继承带来的问题。 定义: 阅读全文

posted @ 2020-03-12 21:40 hdc520 阅读(522) 评论(0) 推荐(0) 编辑

设计模式之单例模式
摘要:1、定义:保证每个类仅有一个实例,并给外部提供一个访问它的全局访问点。 (1)设计思路:如果一个类能够被创建多个实例,那么这个类的构造方法肯定是公开的。若把创建实例对象的权限收回来,让类自身负责创建实例,然后由类本身来提供外部访问这个类的实例的方法,就实现了单例模式。 (2)实现单例模式的方法,懒汉 阅读全文

posted @ 2020-03-12 20:44 hdc520 阅读(142) 评论(0) 推荐(0) 编辑

导航