自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 收藏
  • 关注

原创 Scala剖析 03: 隐式转换

前言scala 同 java 一样,运行在 JVM 上.其语法的灵活和易用可以理解为都是在 java 语言的基础上封装了丰富的语法糖.那scala 不同的语言特性"翻译"为 java 又是什么样子,Scala 剖析系列将会从零开始进行探索.本文主要讲述了 scala 中隐式转换在反编译 Java 结果中的体现,目的是从 Java 的角度充分理解隐式转换.文章适合有 scala 基础清楚 implicit 相关语法和应用场景的同学阅读.当"隐式"不生效时隐式值或者隐式方法都是在被需要的时候才会

2022-04-26 00:34:27 2007 1

原创 Scala 剖析 02: Val,Var和def

前言scala 同 java 一样,运行在 JVM 上.其语法的灵活和易用可以理解为都是在 java 语言的基础上封装了丰富的语法糖.那scala 不同的语言特性"翻译"为 java 又是什么样子,Scala 剖析系列将会从零开始进行探索.本文主要讲述了 scala 中变量定义部分和 java 的异同点.Scala 的类型定义众所周知,scala 中,类型定义分可变(var)与不可变(val)两种,但其实也可以像定义方法一样使用 def 来定义变量.也就是说以下三种定义变量的情况都是合法的

2022-04-22 21:13:08 1538

原创 Scala 剖析01: Object 和 Class

定义一个简单的 Object使用scala 代码定义一个简单的对象.scala 中没有静态的概念,所有静态的东西都放在 object 中.所以 object Test 可以理解一个静态类.简单的定义一个 object,看下编译的内容.object 代码如下object Test { def main(args: Array[String]): Unit = { println("hello world") }}在字节码反编译的结果上是体现了两个文件,Test.

2022-04-22 19:13:14 749

原创 一招解决 Mac JD-JUI 打不开问题

JD-JUI是一款 Java 反编译工具,Mac 版的 JD-JUI下载之后总是遇到打不开的问题.双击之后工具闪一下立马退出.网上搜索了很多资料,都是让修改universalJavaApplicationStub.sh文件,但按照网上的方式操作都没有成功.研究后发现 应该是 JD-JUI执行的时候找不到合适的 JAVA_HOME ,导致这个问题的原因可能有很多,包括环境变量设置错误,本身 JDK 版本过高等.我的电脑安装了 JDK8 和 JDK17,默认启用的是 JDK17,所以猜测当 JD-JUI

2022-04-20 09:15:46 1346

原创 idea项目代码不能读取 resources 下配置文件

需要在 pom 中添加如下配置<biuld> <resources> <resource> <directory>src/main/resource</directory> <includes> <!--我的配置文件--> <inc

2022-04-12 10:12:47 1348

原创 避坑:Spark Sql的Order By排序是不稳定的

目录问题背景实验1- 构建测试用例2- 执行测试sql原因1- 代码定位及问题追踪2- 单分区设想结论问题背景生产环境数据产品项目出现相同代码多次执行结果不同的问题,经过排查,发现了问题出现在first value的窗口函数返回的结果上.同一批数据执行相同sql返回值不相同.sql类似如下形式:select * ,first_value(s_id) over (partition by c_id order by s_score)first_show f

2021-10-31 23:32:50 4819 1

原创 scala项目打包后没有主类只有依赖

<build> <resources> <resource> <directory>${basedir}/src/main/resources</directory> <filtering>true</filtering> </resource> </res...

2021-07-06 15:25:19 393

原创 Linux使用shell递归遍历文件并打印所有文件名的绝对路径

#/bin/bash function recursive_list_dir(){ for file_or_dir in `ls $1` do if [ -d $1"/"$file_or_dir ] then recursive_list_dir $1"/"$file_or_dir else file=$1"/"$file_or_dir echo $file .

2021-03-25 23:12:44 3016

原创 聊一聊synchronized

”锁“一直是Java中很重要的部分,对锁的掌握可以说是Java程序员是否及格的重要检测标准。此次我们先从最基础的Synchronized聊起,一起看看Synchronized作用在方法上,在不同类型的变量上都有哪些效果。本文重在将能想到的情况逐一列举,尽可能全的描述Synchronized不同场景下的不同作用,所以案例避免不了有所重复,还请同学耐心读完,在锁的地方多看几个例子也是值得的。本文是在《线程八锁》相关文章的基础上做了扩展。将会通过以下几点来讲述Synchronized的应用案例。1-.

2020-12-22 23:05:33 274

原创 Volatile关键字(三) 再看双锁检测单例模式

目录双锁检测单例模式双锁检测单例的问题Volatile解决指令重排双锁检测单例模式前边的文章中聊过单例模式的几种实现方式以及样例代码,当时有写到最推荐的写法是静态内部类方式。因为静态内部类集合了饿汉式和懒汉式的优点且利用了JVM类装载过程线程安全的特性来保证线程安全,代码简洁实用。但有一个叫做双锁检测的方式也集合了饿汉式和懒汉式的优点,同样也是线程安全。当时在文章中提到 ”因为JVM内部运行机制的原因,有微小概率出错“而遗憾落榜。下面我们来回顾一下双锁检测机制的代码并通过前两章Volat

2020-12-21 16:23:57 297

原创 Volatile关键字(二) 不满足原子性

什么是原子性原子性是指完成一件事一系列动作的不可分割,完整性.即某个线程正在做某件事时,中间不可以被加塞或者分割,需要一次性做完,这个事情整套动作要么同时成功要么同时失败.前面文章我们讨论过Volatile关键字可以保证变量的可见性并使用代码证明。同样的,我们使用多线程代码来证明Volatile不满足原子性。在证明之前,需要从i++说起。i++在JVM中是怎么被执行的我们所编写的Java代码不会直接被JVM执行,而是先要将其转换为一个个更为细粒度的命令集合,这些转换出来的命令集才是JVM实际

2020-12-18 16:03:45 364

原创 Volatile关键字(一) 可见性

不一致的Flag 首先来看下边这段代码。在代码中,我们开启了两个线程:主线程 mian 和ThreadDemo对象start的线程,我们叫它线程A。两个线程拥有一个共享变量flag。 线程A在sleep 2000ms后将flag从false变为true,main线程死循环不断去判断flag是否为true,为true的时候print一串等号并退出循环。public class TestVolatile { public static void main(String[...

2020-12-17 11:08:19 1853 4

原创 Linux下按照文本第一列的内容切分文件

cat ../res_all.csv | awk '{for(i=0;i<NF;i++){split($i,array, ",");print "echo "$i" >> "array[1];}}' | bash

2020-11-16 18:09:43 1607

原创 错误: 找不到或无法加载主类 xxxx

使用IDEA安装了Scala之后执行helloWord代码报错。错误: 找不到或无法加载主类 HelloWorld设置代码文件夹为sourceroot dir解决标记完成后,src文件夹变为蓝色。再次执行OK

2020-11-13 18:26:03 295

原创 记一次HDFS空间清理:Non DFS Used

文章中记录了问题发现和解决的过程,单纯为了解决问题的伙伴请到最后一段。发现问题入职到公司后,维护集群时有一项日常不是很频繁的任务就是清理集群数据。我们公司的Hadoop(CDH 5.x)集群大概不到50台的样子,总DN容量在450T左右。这个数据量对于大的互联网公司可能不算什么,但我之前一直也没遇到过如此多的数据,百T级别的容量都要清理空间,感觉公司的数据量实在是庞大。但随着入职时间的增加,在进行日常运维的时候发现了一些不太合乎逻辑的问题。比如我们看到的告警信息如下机器的总容量是7.8T

2020-10-23 15:43:58 4644 5

原创 关闭Linux服务器的swap交换空间

备份/etc/fstabcp /etc/fstab /tmp/fstab.`date +%F`删除 /etc/fstab 中 swap 挂载项vim /etc/fstab删除带swap的行关闭所有 swapswapoff -a观察进程使用 swap 和 swapoff -a 之后回收情况,对于不能回收 swap 的进程需要安排时间重启检查:free -m # 应该 Swap 这一行显示全是 0...

2020-10-22 16:33:56 1263

原创 当数仓中表被误删

实际工作中,误删表虽然是小概率时间,但同时也是不可避免又最不想发生的事了。那么,万一误删了如何处理呢。1-表还在,数据被误删了2-哎,都没了第一种情况a-从HDFS的回收站中将数据重新拷贝到表格中hdfs dfs -cp /user/USER_NAME/.Trash/user/hive/warehouse/db_name.db/table_name /user/hive/....b-执行加载数据命令load data inpath 'path...' into tabl.

2020-08-21 11:30:16 269

原创 使用spark计算IRR(内部收益率)

概念IRR又叫内部收益率,通俗解释就是内部收益率越高,就说明投入的成本相对较少,这时候可以获得的收益也就相对更多些。另外我们也可以理解为要决定一个项目接受与否,但又不适应现实情况的一个贴现率。这两种理解都算是通俗的解释IRR 内部收益率在Excel和Pandas中有对应的函数,因需要计算的数据量太大所以给出spark解决方案,本文只做实现记录和部分概念讲解。IRR代码在网上IRR 内部收益率有对应的Java和Oracle sql实现,Java代码如下。原文链接 public st

2020-08-11 10:54:43 2870

原创 来看看Java的动态代理,看不懂算我输(JDK动态代理)

动态代理是Java中非常重要的一个知识点,本文将按照以下思路逐步讲解1-动态代理能解决的问题是什么2-如何解决的3-解决问题的逻辑及原理1-动态代理能解决的问题是什么首先我们有一个计算器的接口和实现类如下public interface ArithmeticCalculate { public int add(int i, int j); public int sub(int i, int j); public int mul(int i, int j); pub.

2020-07-31 19:45:16 690 1

原创 生产环境apache Atlas-1.1.0安装方案

Atlas是一套可扩展和可扩展的核心基本治理服务,使企业能够有效和高效地满足Hadoop内的法规遵从性要求,并允许与整个企业数据生态系统进行集成。ApacheAtlas为组织提供了开放的元数据管理和治理功能,以构建其数据资产的目录,对这些资产进行分类和管理,并为数据科学家、分析师和数据治理团队提供围绕这些数据资产的协作能力。 Atlas可以完成元数据信息展示、hive表数据传递血缘关系展示的逻辑为:读取hive meta store和hive hook的信息,meta store的数据用来展示元...

2020-07-10 10:41:16 1164 1

原创 阅读理解类面试题 : 一维生物

目录题目题目解读:解题朋友遇到的题目,分享一波。侵删~这个题目的难点就在于读题,如果题目读明白了,题目自然就解决了。所以在看题的时候要耐心,需要发现除文字描述以外的信息。题目如下题目想象一种一维生物,由一系列顺序排列的细胞构成(可以理解为一维数组),细胞只有两种状态:活跃或者休眠(取值1或者0)。每经过一代进化,细胞状态都会发生改变。细胞进化后状态由当前该细胞状态和左右相邻细胞的状态决定。三个细胞最多有2×2×2=2^3=8种状态,在这8种状态下进化后的结果代表一种规则。例如:

2020-06-19 11:14:21 1319

转载 1.1 GB of1 GB physical memory used

原文链接 : https://blog.csdn.net/dd390738878/article/details/9785679问题描述:在跑一个mapreduce程序的过程中,提示内存溢出的错误,确定非程序影响。百度了很多可能的问题产生原因,依次排除后,终于解决了。想把前人的经验总结一下方便后人查阅。异常提示:Container [pid=23708,containerID=container_1369623433359_0404_01_000151] is running beyond ph

2020-06-02 14:01:16 1212

原创 工厂模式

工厂模式-实现了创建者和调用者的分离,降低耦合。工厂模式的作用- 实例化对象,用工厂方法代替new 对象应用场景工厂模式是一个大的结构,通常会同其他设计模式组合起来。比如工厂+单例- JDBC中Connection的获取- 反射中Class对象的newInstance方法-详细分类1- 简单工厂模式(静态工厂模式) 最常用在工厂类中创建工厂方法根据传递的参数不通产生需要的不同对象.样例代码a-基本的类关系interface Car...

2020-05-28 16:05:10 297

原创 单例模式以及五种实现方式

什么是单例 单例模式根据名字可知就是一个类只能有一个单独的实例并且对外提供一个访问该实例的全局访问点。使用单例模式有什么好处单例模式只生成一个实例,减少了系统性能开销。当一个实例的创建需要较多资源时,比如读取配置文件、产生其他依赖对象等,可以通过启动应用时直接产生一个永驻内存的单例对象来避免重复创建对象产生的性能消耗。应用场景- 项目中读取配置文件的类- 数据库连接池- Spring中的Beans默认是单例- Windows的任务管理器等等~~...

2020-05-27 18:33:34 1811 4

原创 JVM类加载笔记

类加载过程1-JVM加载类粗略分可以分为三步a-加载将class字节码文件加载到内存,字节码的来源可以有很多,本地文件、zip包、数据库等都可以作为字节码来源。类加载器得到字节码后,将其转换成运行时数据结构存入方法区。同时,在堆中生成一个java.lang.class对象作为方法区中数据的访问入口。b-链接链接又可以分为验证、准备、解析。是将二进制代码合并到JVM运行状态中的过程。验证:确保加载的数据符合jvm规范且没有安全问题。准备:正式为static变量分配内存并初.

2020-05-26 18:20:49 350

原创 二叉树的序列化和反序列化

序列化将二叉树的各个节点的值和位置以文本的形式存储下来。其中叶子节点的left和right都是null,制定一个特殊字符代替null即可。反序列化根据序列化的规则,将文本转化为一棵二叉树。先序遍历顺序序列化二叉树每个节点的值之间用#间隔,遇到空节点用@代替。 public static String SerializeByPre(Node head){ ...

2020-04-10 11:34:22 394

原创 二叉树的先序、中序和后序遍历(递归与非递归方式)

目录二叉树的基本结构什么是序二叉树遍历的递归版本递归先序(中 -> 左 -> 右)递归中序(左 -> 中 -> 右)递归后序(右 -> 左 ->中)二叉树遍历的非递归版本非递归先序非递归中序(精华)非递归后序二叉树的基本结构class Node{ int data; Node left; Node righ...

2020-04-05 22:25:44 1246

原创 岛问题

题目一个矩阵中只有0和1两种值,每个位置都可以和自己的上、下、左、右 四个位置相连,如果有一片1连在一起,这个部分叫做一个岛,求一个矩阵中有多少个岛?解题思路矩阵在代码中的表现形式就是二维数组。从头开始遍二维数组,遇到值为1的点,岛的数量加一;同时将该点以及该点上下左右值为1的点的值都改为2并且依次传染下去,这样该点所在的相邻为1的区域的1就都变为了2,感染动作结束,继续遍历。直...

2020-04-04 21:11:11 609

原创 并查集

什么是并查集 是一种自定义的数据结构.可以快速完成两个任务 1-查看两个元素是否属于同一个集合 2-给定两个元素,将两个元素所属的集合合并为一个大集合有多快 在样本量为N的时候,所有合并和确认是否为同一个集合的操作次数接近N次时,其每一次操作的平均时间复杂度为O(1)如何工作 在并查集结构中,以链表的形式来表现"集合",如果Nod...

2020-04-04 13:11:57 305

原创 TrieTree 前缀树

前缀树:理论知识不做赘述,直接看代码1-Node节点、树是由一个个节点组件而来,那前缀树的节点应该包含哪些基本信息呢: a-以当前节点作为末尾节点的次数 b-以当前节点作为中间节点的次数 c-当前节点的后续节点代码如下: class TrieNode{ int path; int end; TrieNode [] nexts ; Tri...

2020-04-01 12:29:32 284

原创 最小字典序组合

题目给定一个字符串类型的数组strs,找到一种拼接方式,使得把所有字符串拼起来之后形成的字符串具有最低的字典序.解题思路如果只有两个字符,那么我们期望的排序是当str1 + str2的拼接结果小于str2 + str1的拼接结果时,得到str1 + str2.也就是说希望String数组中每两个字符串之间的排序规则都按照(str1 + str2).comparaTo(str2 + st...

2020-03-31 11:05:47 523

原创 IPO问题

题目及要求如下输入:参数1,正数数组costs 参数2,正数数组profits 参数3,正数k 参数4,正数mcosts[i]表示i号项目的花费,profits[i]表示i号项目在扣除花费之后还能挣到的钱(利润),k表示不能并行、只能串行的最多做k个项目,m表示初始的资金说明:每做完一个项目,马上获得的收益,可以支持你去做下一个项目。输出:最后获得的最大钱数。主体思路 每次...

2020-03-30 11:29:07 287

原创 会议宣讲调度问题

题目:一些项目要占用一个会议室宣讲, 会议室不能同时容纳两个项目的宣讲。 给你每一个项目开始的时间和结束的时间(给你一个数组, 里面 是一个个具体的项目), 你来安排宣讲的日程, 要求会议室进行 的宣讲的场次最多。 返回这个最多的宣讲场次。解题思路:如果想要宣讲最多次数,可以按照会议的结束时间作为优先比较的项.结束时间靠前的先宣讲,宣讲完毕后,去掉开始时间大于上一次会议结束时间的...

2020-03-27 11:54:43 297

原创 哈夫曼编码问题

经典的哈夫曼编码问题:一块金条切成两半, 是需要花费和长度数值一样的铜板的。 比如长度为20的 金条, 不管切成长度多大的两半, 都要花费20个铜板。 一群人想整分整块金 条, 怎么分最省铜板?例如,给定数组{10,20,30}, 代表一共三个人, 整块金条长度为10+20+30=60. 金条要分成10,20,30三个部分。如果, 先把长度60的金条分成10和50, 花费60 再把长度...

2020-03-26 13:48:57 1133

转载 Failed to run task: 'bower --allow-root install --offline' failed.

编译zeppelin遇到标题所述问题.解决办法:I was getting the same problem here, and this answer is just a guide, for those who are getting the same error: The maven output was similar to yours:[ERROR] Failed to ex...

2020-03-25 17:46:01 1298

原创 布隆过滤器(BloomFilter)

布隆过滤器的用途让我们先来看一个业务场景.假设某搜索公司的URL黑名单有100亿条记录.业务上需要时刻监控如果用户访问的URL是黑名单中的就驳回访问请求.如何实现这样的黑名单监控功能呢?最容易的办法当然是将数据存入hash表中,用户访问网页时,查看黑名单hash表中是否包含其正访问的网址以做出正确的回应.伪代码可以简单的写成if(userUrl == blackList.get(...

2020-03-19 22:00:28 293

原创 已知一个完全二叉树,求其节点个数

解题思路:根据完全二叉树的定义可以知道,如果一个节点的右子树生长到了整棵树的最顶端,那么这棵树的左子树一定是一棵满二叉树.如果右子树没有生长到最顶端,那右子树一定是一棵满二叉树,只不过高度 - 1满二叉树的节点计算公式为 nodeNumber = (2 ^ level ) -1 public static int getNodeNum(Node head){ if(hea...

2020-03-18 18:03:15 854

原创 如何判断一棵树是不是完全二叉树

完全二叉树子节点从左往右生长,一层生长完全才可以生长下一层.解题思路: 横向遍历(按层)二叉树的过程中,每个节点的子节点有以下四种情况: 1-左右都没有 : 该节点为叶子节点 2-左右都有: 没啥说的,一个没什么幺蛾子的节点. 3-有右没左 : 出现这种情况直接返回false,这种情况违反完全二叉树的定义 ...

2020-03-18 15:49:03 910 1

原创 判断一棵树是不是搜索树

搜索二叉树一棵树上任何一个节点,左子树的值都比节点本身值小,右节点都比节点本身值大.二叉树的中序遍历节点值是依次升序的就是搜索二叉树.通常搜索二叉树中不会出现重复节点.利用递归函数会访问每个节点三次的特性,先收集左树信息再收集右树信息,然后比较是否符合规定.1-设计返回结构返回结构需要包含当前节点是否符合左节点比自己小右节点比自己大的信息,还要包含当前节点的值.结构如下:...

2020-03-18 14:03:07 244

原创 如何判断一棵树是不是平衡二叉树

平衡二叉树对于任意一个节点,左子树和右子树的高度差不超过1.满二叉树一定是平衡二叉树.解题思路:在树类问题上,递归函数使用起来很方便.它可以让我们从一个节点上经过三次.利用这个特性可以解决大多数的问题.我们可以先收集左树信息,再收集右数信息然后返回到当前节点判断该节点是否满足要求.在本题中,我们需要收集的信息是:左树是否平衡,右树是否平衡以及左树和右树的高度.1-可能性分析...

2020-03-18 11:25:05 708

空空如也

空空如也

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

TA关注的人

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