- 博客(65)
- 资源 (6)
- 收藏
- 关注
原创 toB企业解决方案工作流程
1. 判断当前客户是否可以做确认客户的需求是否可以满足2. 需求整理出具体的需求3. 方案产研确认优先级,给出几种方案4. 投标和友商竞标、产研评估、财务评估、法务评估、交付团队评估、砍价等等5. 合同确认交付内容、确认交付程度等等...
2022-05-06 23:11:20
558
原创 回溯算法题目总结 全排列、组合、子集问题 Java版本
题型一:排列、组合、子集相关问题提示:这部分练习可以帮助我们熟悉「回溯算法」的一些概念和通用的解题思路。解题的步骤是:先画图,再编码。去思考可以剪枝的条件, 为什么有的时候用 used 数组,有的时候设置搜索起点 begin 变量,理解状态变量设计的想法。全排列(中等) 全排列 II(中等):思考为什么造成了重复,如何在搜索之前就判断这一支会产生重复; 组合总和(中等) 组合总和 II(中等) 组合(中等) 子集(中等) 子集 II(中等):剪枝技巧同 47 题、39 题、40 题;
2022-01-23 09:10:08
1130
原创 每日温度、数组右边第一个比自己小的(单调栈实现java版本)
739. 每日温度请根据每日 气温 列表 temperatures ,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用 0 来代替。示例 1:输入:temperatures = [73,74,75,71,69,72,76,73]输出: [1,1,4,2,1,1,0,0]示例 2:输入: temperatures = [30,40,50,60]输出: [1,1,1,0]示例 3:输入: temperatures = [30,60,90]输出:
2022-01-10 12:14:49
913
原创 有效括号判断(利用栈,奇数个数返回false) java版本
20. 有效的括号难度简单2878给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例 2:输入:s = "()[]{}"输出:true示例 3:输入:s = "(]"输出:false示例 4:输入:s = "([)]"输出:false示例 5:输入:s = "{[]}"输出
2022-01-10 11:57:23
279
原创 最小栈三种不同方式实现 java版本
155. 最小栈设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。方法一:两个栈实现,辅助栈同步保存最小值class MinStack { private Deque<Integer> stack; private Deque<Integer> minSt..
2022-01-09 23:41:28
607
原创 树的层次遍历(按层遍历)、锯齿(之字形、)遍历 java版本
二叉树的层序遍历给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。/** * 102. 二叉树的层序遍历 * 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 * * * * 示例: * 二叉树:[3,9,20,null,null,15,7], * * 3 * / \ * 9 20 * / \ * 15 7 * 返回其层序遍历结果:...
2021-03-12 12:55:24
335
2
原创 java双亲委派机制与作用
双亲委派机制与作用2.1 什么是双亲委派机制当某个类加载器要加载 .class文件时,先上级类加载器去加载,一直递归下去,如果上级类加载器没有加载,则自己在去加载。2.2 类加载器的区别启动类加载器 BootstrapClassLoaderC++编写,加载核心库 java.* 创建 ExtClassLoader 和appClassLoader标准扩展类加载器 ExtClassLoaderjava编写,加载扩展库, classpath中的jre javax 或者 java.ext.
2021-03-08 23:20:44
222
原创 二叉树中序遍历与前序遍历构建二叉树、二叉树中序遍历和后续遍历构建二叉树 java版本
二叉树中序遍历与前序遍历构建二叉树、二叉树中序遍历和后续遍历构建二叉树二叉树中序遍历与前序遍历构建二叉树二叉树中序遍历与后序遍历构建二叉树主要是利用分治的思想,根据中序遍历的结果找到分治的左子树和右子树序列,然后递归实现树的重建。二叉树中序遍历与前序遍历构建二叉树从前序与中序遍历序列构造二叉树根据一棵树的前序遍历与中序遍历构造二叉树。注意:可以假设树中没有重复的元素。 public TreeNode buildTree(int[] preorder, int[] inorder) {
2021-03-08 13:00:41
163
1
原创 二叉树深度 最大深度、最小深度(迭代和递归两种实现)java版本
目录最大深度最小深度最大深度题目:输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。方法一 、利用深度优先搜索方法二、利用广度优先搜索 和数的层次遍历类似/** * DFS * * @param root * @return */ public int maxDepth(TreeNode root) { if (root.
2021-03-06 16:45:26
422
原创 二叉树的前序、中序、后续遍历(preOrder、InOrder、postOrder)迭代和递归 java版本
目录二叉树的前序遍历二叉树的前中序遍历二叉树的前后序遍历二叉树的前序遍历顺序为 中、左、右 /*方法二: 迭代的方式 */ public List<Integer> preOrder2(TreeNode root) { List<Integer> result = new ArrayList<>(); Deque<TreeNode> stack = new LinkedL...
2021-03-06 13:06:26
1126
9
原创 小白优化ES优化读写思路小节
ES优化读写优化本文对es优化提供一些思路,具体操作还是需要结合es集群的机器性能、网络、es版本、索引数据量、doc大小、读多还是写多等,来进行实际的测试和调整来进行选择最优的方式。大多数时候,读性能和写性能是不可能达到最优的,这个时候就需要根据具体的业务去权衡。本文对正在使用的索引进行优化,当然对打算新建索引参考也是很有参考意思,这意味着丛一开始使用索引就尽可能达到最优状态,另外有一些业务数据随着时间的推移已经不是一开始设想的读写频率、读写比例、已经每天数据增加减少。那就需要定期审视目前业务需求
2021-02-01 21:14:53
424
原创 ES 索引分片数、副本数优化
分片(shard):一个ES的index由多个shard组成,每个shard承载index的一部分数据。副本(replica):index也可以设定副本数(number_of_replicas),也就是同一个shard有多少个备份。对于查询压力较大的index,可以考虑提高副本数(number_of_replicas),通过多个副本均摊查询压力shard数量(number_of_shards)设置过多或过低都会引发一些问题:shard数量过多,则批量写入/查询请求被分割为过多的子写入/查询,导...
2020-10-27 18:19:14
6570
原创 hive表增量更新到elasticsearch方案
1. 背景2. sql#!/bin/shversion_now=$(date -d"-2 day" +%Y-%m-%d)version_pre=$(date -d"-3 day" +%Y-%m-%d)hive -e "DROP TABLE IF EXISTS app.tmp_xz_jimi3_sku_description_delete"hive -e "CREATE TABLE app.tmp_xz_jimi3_sku_description_delete ASSELECT
2020-07-11 22:48:38
989
原创 elasticsearch初学者常遇到错误
一、 查询1.嵌套文档的查询(nested)认为嵌套文档查出来的结果里面,只会把符合查询条件的嵌套层内容查出来,其实,他是把嵌套层对应的整个document查出来,所有需要进行过滤。举个例子(1)索引设计如下的{"settings": {"index": {"number_of_shards": "8","number_of_replicas": "1"}},"mappings": {"f...
2020-06-04 21:27:30
431
原创 elasticsearch各个版本官方学习资料
1. 官方参考文档(可以选择想要看的版本这里是6.3版本)https://www.elastic.co/guide/en/elasticsearch/reference/6.3/index.html
2020-05-20 14:01:57
271
原创 elasticsearch 各个版本下载安装
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
2020-05-14 17:50:50
3046
转载 log4j配置 自动删除日志文件
1. 需要使用的两个包log4j-core-xx.jar log4j-api-xx.jar2. classpath为scr文件夹下必须注意.xml 文件的文件名为log4j2<?xml version="1.0" encoding="UTF-8"?> <!-- status=debug 可以查看log4j的装配过程 --> <Configuration status="off" monitorInterval="1800"&g...
2020-05-13 20:35:08
7452
1
原创 hive小文件的问题弊端以及合并
小文件的弊端 1、HDFS中每个文件的元数据信息,包括位置大小分块信息等,都保存在NN内存中,在小文件数较多的情况下,会造成占用大量内存空间,导致NN性能下降; 2、在读取小文件多的目录时,MR会产生更多map数,造成GC频繁,浪费集群资源; 3、现在大数据平台文件总数超过30亿,单个NS文件数超过4亿的时候,读写性能会急剧下降,影响到所有读写该...
2019-11-13 10:10:33
1388
原创 Linux centos yum 安装jdk
1.查看linux是否是centoslsb_release -a 可以查看是否是centos2. 安装jdkyum -y install java-1.8.0-openjdk安装之后,java -version 可以查看版本,但是javac -version不行3.执行命令使得javac可以执行yum install java-devel利用该命令,之后java...
2019-10-24 22:39:05
264
原创 shell脚本定时
在公司的堡垒机上定时执行一些程序,这里用的一个比较简单粗暴的方式,写了一个死循环,放在后台执行。这个任务是临时任务才这么执行。while truedohour=`date +"%H"`minute=`date +"%M"`ct=${hour}"_"${minute}if [ $ct = "02_00" ]then echo $hour" "$minute n...
2019-09-26 17:53:26
580
原创 复利计算程序
投资复利计算,现代的生活,我们可能会为养老生活做打算,做一个定期投资。每月的定投计算如何计算呢。下面上程序 public static void main(String[] args) { double everyMonthDeposit = 300;//每个月存入的钱 double ratio = 0.08;// 年化收益率 int yea...
2019-09-23 20:41:22
1859
原创 shell脚本变量在 curl 使用
项目背景: 项目需求,需要每天删除elasticsearch的索引中数据。也就是需要一个定时任务,来完成。解决方式: 通过shell脚本定时删除指定条件的数据。通过curl命令删除elasticsearch索引的数据,命令如下:curl -XPOST -H "Content-Type: application/json" -H "Au...
2019-09-11 18:14:07
9879
原创 PowerMock类的私有属性和方法
项目的单元测试经常会对某一些类的私有属性和私有方法进行mock,这个时候powerMock可以胜任这个任务。maven 依赖的pom <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-...
2019-09-10 15:50:54
9503
原创 Hive表数据出库到elasticsearch(ES)速度
项目背景 每天需要批量更新商品属性相关的数据用来检索,由于数据量比较大,每天的数据都是上亿量级的记录,考虑到检索速度的要求,选用ES来检索。但是数据都是在hadoop上,索引用hive到同步到ES的技术来完成。此篇主要是对任务完成速度的介绍图1是hive同步的任务,一共6个任务,上面有任务开始时间、结束时间。图2是ES集群的监控,监控数据插入到ES的速度。下面结合这两幅图简要对数据...
2019-09-05 10:05:00
1197
原创 elasticsearch 6.x(ES)模板申请
背景项目需要,每天有大量的数据需要从hadoop同步到ES,这部分数据需要替换掉之前ES索引的数据,所以不太可能每天都向ES的一个索引增加,另一个原因是ES的存储资源比mysql等相对比较贵。索引看了用ES模板来每天创建一个新的索引,删除一个相对比较老的索引。实战下面的内容是在ES 6.3集群进行操作的。(6.x都是一样的)公司的es模板申请页面如下(其实不同公司的页面都类似)...
2019-09-02 18:32:32
723
原创 log4j日志系统学习
<?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN"> <Properties> <Property name="logDir">/export/Logs/jimi3-dm.jd.local</Property> &l...
2019-07-17 11:37:29
244
原创 Elasticsearch 增删改查
一、查询(_search)例如,查询index 和 type 为idx_ot的所有文档,下面的例子忽略curl中的公共部分,只展示query部分curl -XPOST -H "Content-Type: application/json" -H "Authorization: xxx "http://11.5.44.232:40002/idx_ot/idx_ot/_search?pr...
2019-06-17 16:29:41
247
原创 code review 常见问题
1. 共有方法判空问题只要是public方法,入参一定要判空,这样其他人在使用该方法时入参错误了可以收到具体的错误信息。另外所有的对象在使用前都要记得判空,防止因为一个空指针异常,程序终止。2. 异常块的包裹范围大在finally块中,文件close之前一定记得判空File file = new File(fileName); BufferedReader reader ...
2019-04-17 21:46:08
287
原创 hive 表插入、导入数据
1. 向有分区的表插入数据 (1) 覆盖现有分区数据,如果没有该指定分区,新建该分区,并且插入数据INSERT OVERWRITE TABLE 库名.表名 PARTITION(dt='2018-09-12',name='Tom', ...)SELECT ... FROM 库名.表名 where...(2)向现有的分区插入数据 (之前的数据不会被覆盖)INSERT INTO ...
2018-12-21 17:30:24
5402
原创 向hive表插入数据如何自动分区
首先强调一下,分区的名称不能是中文,只能是英文!不然会报错。 1. 本地文件导入到分区表LOAD DATA 【LOCAL】 INPATH ‘....’ 【OVERWRITE】 INTO TABLE t1 【PARTITION (...)】 eg: load data local inpath '/usr/local/data/user' into table jiuye par...
2018-12-11 15:50:03
4180
原创 Hive表删除表部分数据
背景:1、hive表删除数据不能使用DELETE FROM table_name 中SQL语句2、hive表删除数据要分为不同的粒度:table、partition、partition内一、有partition表1. 删除具体partitionalter table table_name drop partition(partiton_name='value'))2. ...
2018-11-16 11:18:56
39821
3
原创 查看Hive 表 所有信息
目录1. 查询创建表信息(show create table)2. 查询表的字段信息(desc)3. 查看表的详细属性信息(desc formatted)4. 查看表的delimiter信息(describe extended)5. 查看表的partitions信息(show partitions ) a.表不是partition表 b. 表有partitio...
2018-11-16 10:17:04
11499
原创 同一个工程MQ 的producer和consumer以及Dubbo的provider 分离 独立发布
背景:好多时候在同一个项目中需要完成MQ Dubbo等服务,但是发布项目的时候想把每个服务单独部署,相互不要干扰,这样在出现问题时候也容易排查,方便管理。解决思路:配置文件在java Spring 工程中,我们一般都是通过spring.xml来管理主要的service、listener、producer等。 我们可以通过spring.xml加载不同的resource来实现把不同的服务独...
2018-11-16 09:17:22
1166
1
原创 Elastic Search(es) spring ElasticsearchTemplate查询
1. 单个字段多个值查询termsQuery termsQuery 是完全匹配(es建库的时候一定设置该字段为 not_analysis)一次search时,限定sku字段=sku1或者sku2或者为"" 特别强调一下 空字符串"" 也是可以完全匹配的代码如下termsQuery("sku", “sku1”,"sku2“,”“);2.完全匹配(使用term)最重要的是在...
2018-10-09 18:41:45
983
原创 当运行jar时,如何设置 jar 的-Xmx
只需要在 -jar 与jar包名的中间添加 -XX:MaxHeapSize=7168M 就可以设置最大堆内存了java -jar -XX:MaxHeapSize=7168M A.jar
2018-08-08 17:06:39
5873
原创 Maven 无法下载jar
1.maven工程今天突然不能下载jar,经过重新配置maven的环境,重新导入工程,注销,关机等都不能下载jar。但是可以在终端(cmd)中用maven命令行可以下载jar。开始怀疑IDE有问题。果真问题就在IDE,IDE没有允许maven上网,如下图 把 Work offline √去掉就可以了 如下图:之后 重新 reimport 就ok了...
2018-07-24 20:32:57
564
转载 volatile和synchronized区别
volatile和synchronized特点首先需要理解线程安全的两个方面:执行控制和内存可见。执行控制的目的是控制代码执行(顺序)及是否可以并发执行。内存可见控制的是线程执行结果在内存中对其它线程的可见性。根据Java内存模型的实现,线程在具体执行时,会先拷贝主存数据到线程本地(CPU缓存),操作完成后再把结果从线程本地刷到主存。synchronized关键字解
2017-04-04 10:41:13
500
转载 装饰器模式(Java版)
1.认识装饰器模式 装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象添加功能。通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生对应的子类来扩展,抑或是使用对象组合的方式。显然,直接修改对应的类这种方式并不可取。在面向对象的设计中,而我们也应该尽量使用对象组合,而不是对象继承来扩展和复用功能。装饰器模式就是基于对象组合的方式,可以很灵活的给对象添加所需要的功能。装
2017-03-27 21:46:33
455
转载 Java为什么要使用内部类?
1.内部类 首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个 方法的名称,参数相同,你应该怎么办?这时候,你可以建一个内部类实现这个接口。由于内部类对外部类的所有内容都是可访问的,所以这样做可以完成所有你直 接实现这个接口的功能。 不过你可能要质疑,更改一下方法的不就行了吗? 的确,以此作为设计
2017-03-12 10:52:23
2787
Anaconda3-5.2.0-Windows-x86_64 .exe
2018-08-24
hibernate-core-4.3.5.Final.jar
2016-12-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人