自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (5)
  • 问答 (1)
  • 收藏
  • 关注

原创 SQL自定义参数的实现方法

def fill_params(sql, params={}): if not params: assert '${' not in sql return sql for n, v in params.items(): n = n.replace('_', '\\_') pattern = re.compile(rf'\${{{n}}}') sql = re.sub(pattern, str(v), sql)

2021-07-12 10:37:49 1430

原创 基于ID_MAPPING(ID拉通)实现多源用户整合及行为数据采集

1、序言:全渠道数据采集,全域用户ID打通,全场景多维度数据分析,全渠道精准用户触达,是现在企业数字化营销的必备技能。同时数据安全也成为大家的关注问题,脱离数据上云,私有化服务成为大家的必选,对于好多中小型公司来说,去购买行业内的营销智能产品成本都点高,或者说是大才小用,现在我们就基于一个小案例来讲解和设计一下如何实现这个产品。2、场景现在举一个新零售的例子,某安保险实现线上产品销售,有自己产品官网、H5、小程序等,对于他们的交集用户及行为很难分析,多端新增,多端活跃等指标都是很有价值的用户,现在需要

2021-05-20 15:09:57 3917 6

原创 2021年最新面试宝典【校招面试题】

关注公众号即可免费获得2021年最新总结的面试秘籍哦,本人以成功上岸,把自己的经验传授给大家。回复【 校 招 总 结 】可获得

2021-01-09 18:12:40 486

原创 【数据大屏】 Python爬取全国及北京疫情数据、实现可视化大屏

前言Python:print("Python祝程序员元旦快乐!")PHP:echo "PHP祝程序员元旦快乐!";JavaScript:document.write("JavaScript祝程序员元旦快乐!")Go:fmt.Printf("Go祝程序员元旦快乐!")SQL:SELECT 'SQL祝程序员元旦快乐!';Java:System.out.print("Java祝程序员元旦快乐!");2021年开始了,让我们迈出新的征程,加油奥力给。2020年是最不平凡的一年,在这一年中

2021-01-01 12:57:32 1776

原创 重学python【matplotlib】

#-*- encoding:utf-8 -*-import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns#散点图# 数据准备N = 10x = np.random.randn(N)y = np.random.randn(N)# 用Matplotlib画散点图plt.scatter(x, y,marker='x')plt.show()# 用Seaborn画散点图

2020-12-28 00:27:35 69

原创 重学pyhton【pandas】

#-*- encoding:utf-8 -*-import numpy as npimport pandas as pdfrom pandas import Series, DataFrame#认识Seriesx1 = Series([1, 2, 3])print(x1)x2 = Series([1, 2, 3],index=["a", "b", "c"])print(x2)d = {'a': 3, 'b': 2, 'c': 1}x3 = Series(d)print(x3)#认识

2020-12-27 21:44:37 81 1

原创 重学python【numpy】

#-*- encoding:utf-8 -*-#创建数据import numpy as npa = np.array([1, 2, 4])b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])b[1, 2] = 99#获取数组的大小print a.shapeprint b.shape#获取数组的类型print a.dtypeprint b#创建结构数组persontype = np.dtype({ 'names': ['name',

2020-12-27 01:07:13 126

原创 TIDB的安装与使用

一.下载安装包镜像wget http://download.pingcap.org/tidb-community-server-${version}-linux-amd64.tar.gzmv tidb-community-server-${version}-linux-amd64.tar.gz package.tar.gz其中 ${version} 处填入希望下载的离线镜像包版本,例如 v4.0.0。此时,package.tar.gz 就是一个独立的离线环境包。传到中控机上二.安装tiup工具

2020-08-23 00:43:57 4364 1

原创 用过哪些Map,都有什么区别,HashMap是线程安全的吗,并发下使用的Map是什么,他们内部原理分别是什么,比如hashcode,扩容等

JAVA Map的几种类型:HashMap、HashTable、LinkedHashMap和TreeMap。HashMapHashMap 是一个最常用的Map,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。遍历时,取得数据的顺序是完全随机的。HashMap最多只允许一条记录的键为Null;允许多条记录的值为 NullHashMap不支持线程的同步,是非线程安全的,即任一时刻可以有多个线程同时写HashMap,可能会导致数据的不一致。如果需要同步,可以用 Co

2020-08-20 14:12:02 1374

原创 ES加密,Elastic Search 5.6.1X添加X-pack后,修改连接方式(RestClient 和 客户端模式)

是什么?1、ES在老版本中没有用户认证,升级ES的开销又特别大,尤其是跨大版本的时候,语法有变了,所以好多小项目都选择了破解X-pack为ES加密。2、X-pack的安装我们在这里略过,百度一大堆。。。。。接下来我们已经对es添加了用户认证3、我们连接Es的时候,需要提供用户认证。这个时候我们使用之前demo连接的时候就会报错啦。{"error":{"root_cause":[{"type":"security_exception","reason":"missing authen

2020-07-23 15:56:10 1287

原创 一步一步认识阻塞队列

阻塞队列是一种队列,一种可以在多线程环境下使用,并且支持阻塞等待的队列。也就是说,阻塞队列和一般的队列的区别就在于:多线程环境支持,多个线程可以安全的访问队列 支持生产和消费等待,多个线程之间互相配合,当队列为空的时候,消费线程会阻塞等待队列不为空;当队列满了的时候,生产线 程就会阻塞直到队列不满。如果你还没懂阻塞队列是啥,那这边在举个例子,你妈妈让你去她钱包里拿钱,可是钱包里没有钱,傻乎乎的你就一直看着钱包,啥事也不敢,就等里面有钱,或者是你妈妈让你把100块钱硬币放到钱包里,可是就塞不进去,傻乎

2020-07-08 23:54:05 105

原创 并发编程总结

1、ABCD四个线程按照是顺序执行的方法要用join().2、lock锁的用法:Lock lock = ...;lock.lock();try{ //处理任务}catch(Exception ex){}finally{ lock.unlock(); //释放锁}这是一个个模板,lock的实现类是ReentrantLock,现在我们来一个简单的demopublic class LockThread { Lock lock = new Reentran

2020-07-08 23:27:59 83

原创 Mysql的使用与内存优化

1 内存优化原则1) 将尽量多的内存分配给MySQL做缓存,但要给操作系统和其他程序预留足够内存。2) MyISAM 存储引擎的数据文件读取依赖于操作系统自身的IO缓存,因此,如果有MyISAM表,就要预留更多的内存给操作系统做IO缓存。3) 排序区、连接区等缓存是分配给每个数据库会话(session)专用的,其默认值的设置要根据最大连接数合理分配,如果设置太大,不但浪费资源,而且在并发连接较高时会导致物理内存耗尽。2 MyISAM 内存优化myisam存储引擎使用 key_buffer

2020-07-07 00:41:36 228

原创 ThreadLocal的使用和注意事项

一、前言对ThreadLocal不熟悉的同学,可以先参考我的另外一篇文章浅谈ThreadLocal在讨论内存泄漏之前,需要明白java中的四种引用,同样可以移步到java中的四种引用什么是内存泄露?大白话讲,就是我自己创建的对象,在一系列操作后,我访问不到该对象了,我认为它已经被回收掉了,但该对象却一直存在与内存中。二、示例先给出一个简单例子,用来说明引用与对象的指向关系package com.yang.testThreadLocal; public class Main .

2020-07-05 13:15:57 1000

原创 ClickHouse的初步认识与使用

表引擎的作用可以看出clickhouse是基于各种引擎实现操作的,可以理解为等级制度,比如校长管着老师,老师管着学生,老师和学生在不同的班级,班级是分片,座位是副本,年级是同类型的表,要找一个学生肯定是去对应班级找,如果学生不在座位还在也算找到了,当然可以通过老师找,也可以通过校长找,可以指定班级年级,让老师去找,校长是分布式表,也可以直接通过李老师找,老师不能找其他班级的同学,所以他是非分布式的,但是每个老师的找学生的方法是不一样的,可对应表引擎也是不一样的。注意:由于搭建的是C.

2020-07-05 12:52:53 1432

原创 hive add columns后新插入列数据为空,但是用presto查询的时候却有数据

hive在新加列(add columns)后,再load数据时,理论上来说新增的列如果有数据的话会展示出来;解决办法:方法一:重建分区方法二:手动更新元数据----在元数据库里执行如下语句1、select CD_ID from SDS where LOCATION=‘hdfs://ods.db/tablename’; -------查找表对应的CD_ID2、SELECT * FROM SDS WHERE LOCATION LIKE ‘hdfs://bidc/ods.db/tablname/

2020-06-22 20:17:46 776

原创 StreamAPI的使用学习与总结

Stream APIStream操作的三个步骤创建stream中间操作(过滤、map)终止操作stream的创建:// 1,校验通过Collection 系列集合提供的stream()或者paralleStream()List list = new ArrayList<>();Strean stream1 = list.stream();// 2.通过Arrays的静态方法stream()获取数组流String[] str = new String[10];Stream&l

2020-06-22 00:13:09 146

原创 通过设计注解的方式,利用redis防止接口恶意调用

其实也就是spring拦截器来实现。在需要防刷的方法上,加上防刷的注解,拦截器拦截这些注解的方法后,进行接口存储到redis中。当用户多次请求时,我们可以累积他的请求次数,达到了上限,我们就可以给他提示错误信息。具体实现:编写一个注解@Retention(RUNTIME)@Target(METHOD)public @interface AccessLimit {int seconds();int maxCount();boolean needLogin()default true;}编

2020-06-22 00:01:44 327

原创 快速学习Lambda表达式

先看以下的一个示例:@FunctionalInterfaceinterface Print { void output(String str);} public class Main { private static void handle(String str, Print p) { p.output(str); } public static void main(String[] args) { handle("abc",

2020-06-17 23:15:24 165

原创 快速实践Java8中Stream的新特性

先给出一个示例下面有五个学生,放入到集合中 @Data @AllArgsConstructor class Student { private String name; private Integer age; } Student a = new Student("a", 20); Student b = new Student("b", 18);

2020-06-17 23:09:50 122

原创 如何快速设计一个优秀秒杀系统

1 什么是秒杀秒杀场景一般会在电商网站举行一些活动或者节假日在12306网站上抢票时遇到。对于电商网站中一些稀缺或者特价商品,电商网站一般会在约定时间点对其进行限量销售,因为这些商品的特殊性,会吸引大量用户前来抢购,并且会在约定的时间点同时在秒杀页面进行抢购。2 秒杀系统场景特点秒杀时大量用户会在同一时间同时进行抢购,网站瞬时访问流量激增。秒杀一般是访问请求数量远远大于库存数量,只有少部分用户能够秒杀成功。秒杀业务流程比较简单,一般就是下订单减库存。3 秒杀架构设计理念限流: 鉴于只有少部分

2020-06-15 23:39:33 159

原创 File was loaded in the wrong encoding:的解决办法

File was loaded in the wrong encoding: 'UTF-8’错误改正下边的中文是乱码的,无论是注释中还是代码中,都是乱码的。原因:我们文件使用UTF-8进行编辑,而Windows默认使用GBK编码格式,所以导致打开文件时出现乱码。解决办法1点击右下角的UTF-8,选择GBK,在弹出的窗口中选择Reload(重载)解决办法2在编辑文本时,设置指定的编码格式。encoding="utf-8"...

2020-06-15 23:35:56 4019 1

原创 项目中CPU、内存占用过高问题排查

CPU占用过高问题的排查及解决排查步骤1.使用top 定位到占用CPU高的进程PID 然后按shift+p按照CPU排序2.查看Java进程里面的线程的占用情况 或者是再用ps -mp pid -o THREAD,tid,time 查询进程中,那个线程的cpu占用率高 记住TID3.通过jstack命令获取占用资源异常的线程栈,可暂时保存到一个文件中查看4.上面方法用于进程正常情况下的堆栈打印5jps命令查看java进程的pid更实用1.使用top...

2020-06-14 18:48:32 3462

原创 DNS用的是TCP协议还是UDP协议

DNS用的是TCP协议还是UDP协议DNS 查询以各种不同的方式进行解析。客户机有时也可通过使用从以前查询获得的缓存信息就地应答查询。DNS 服务器可使用其自身的资源记录信息缓存来应答查询,也可代表请求客户机来查询或联系其他 DNS 服务器,以完全解析该名称,并随后将应答返回至客户机。这个过程称为递归。另外,客户机自己也可尝试联系其他的 DNS 服务器来解析名称。如果客户机这么做,它会使用基于服务器应答的独立和附加的查询,该过程称作迭代,即DNS服务器之间的交互查询就是迭代查询。DNS 查询的过程如下

2020-06-14 18:39:52 7060 1

原创 java中形参和实参的区别(值传递 引用传递)

形参和实参的区别形参就是形式参数,用于定义方法的时候使用的参数,用来接收调用者传递的参数。形参只有在方法被调用的时候,虚拟机才会分配内存单元,在方法调用结束之后便会释放所分配的内存单元。因此,形参只在方法内部有效,所以针对引用对象的改动也无法影响到方法外。实参就是实际参数,用于调用方法是传递给方法的参数。实参在传递给方法前是要被先赋值才能传递的。在值传递的过程中,只能把实参传递给形参,而不能把形参的值反作用给实参。在函数调用过程中·,形参的值发生改变,而实参的值不会发生改变。在引用传递调用的机

2020-06-14 18:33:48 1046

原创 线程安全问题出现的原因和解决方法

线程安全问题出现的根本原因:1. 存在两个或者两个以上的线程共享着一个资源。2. 操作共享资源的代码有两句或者两句以上。解决思路:就是将多条操作共享数据的线程代码封装起来,当有线程在执行这些代码的时候,其他线程是不可以参与运算的。必需要当前线程把这些带那都执行完毕后,其他线程才能参与运算。同步的好处:解决了线程的安全问题。同步的弊端:相对降低了效率,因为同步外的线程都会判断同步锁...

2020-01-12 02:15:35 1765

原创 在SpringBoot中实战token

token学习欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会...

2020-01-12 01:56:23 1010

原创 数据库备份工具innobackupex

一、了解innobackupex1、mysqldumpmysql逻辑备份工具,作用于服务器本地,不需要额外安装插件可以单表备份,备份为sql文件形式、方便,在多个场景通用可通过shell命令实现定时备份,<font color="Red">但备份时如果用户有操作,容易造成脏数据</font>将数据库备份到服务器本地sql文件,属于逻辑备份,不受数据库引擎限制只能...

2020-01-08 22:36:58 2378

原创 jdk工具,学会查看内存溢出,内存泄漏

在JDK的安用装目录bin下,有一些有非常实用的小工具,可用于分析JVM初始配置、内存溢出、内存泄漏、硬件资源异常等问题我们在jdk目录下会看到bin目录,一般这些工具就放在这儿。1、jps大家都应该用过jps这个命令吧,通过jps工具我们可以知道当前正在运行的Java进程,以及这些进程初始化的参数配置。他可以有很多参数-q:仅输出VM标识符,不包括classname,jar name...

2020-01-08 22:18:32 972

原创 Mysql中要注意的地方,不等于 会过滤掉null的情况

在写SQL 条件语句时经常用到 不等于 != 的筛选条件。这是表中数据执行一条查询语句过滤掉了userid为3的数据,为什么会这样呢?这还得从mysql的底层开始说起,因为 NULL 不是一个「值」,而是「没有值」。「没有值」不满足「值不等于1」这个条件,怎么解决可以使用ifnull()方法,将null转为空字符串。或者这个字段做出判断 加上OR a is null。当然使用ifnull相率...

2020-01-07 23:56:01 2704

原创 最长回文串之暴力法,中心扩展,动态规划

正读倒读都一样的整数 ,这个应该是最简单的介绍了吧。用程序怎么简单实现呢?示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”判断一个字符串是否是回文串public class isPlalindrome { public static void main(String[] args) {...

2020-01-07 23:25:00 121

原创 数据结构-栈 队列(数组实现栈、队列、循环队列)

栈先进后出,底层就是一个数组。首先java中的Stack继承Vector实例化Stack stack=new Stack();写一个底层原理public class MyStack1<E> { private Object[] stack; private int size; public MyStack1() { stack =...

2020-01-06 23:39:53 115

原创 数据结构——排序问题

排序1、冒泡排序public static void BubbleSort(long[] arr){ long tmp = 0; for(int i=0;i<arr.length-1;i++){ for(int j=arr.length-1;j>i;j--){在这里插入代码片 //进行交换 if(arr...

2020-01-06 23:16:37 437

原创 StringUtils.replace用法,加源码解释!小白通俗易懂!

StringUtils.replace用法首先我们先看源码:public static String replace(String text, String searchString, String replacement, int max) { if (!isEmpty(text) && !isEmpty(searchString) && re...

2019-07-12 17:29:26 2452

转载 Python使用MongoDB的基本操作(二)

MongoDB关系表示多个文档之间在逻辑上的相互关系。表示1:1,1:n,n:1,n:n。一个同学有多门课程Student:{u'age': 10, u'_id': ObjectId('5cff13917ebced1b4c7f7181'), u'name': u'zhangsan'}Grade:{u'classname': u'java', u'_id': ObjectId('5cff1...

2019-06-11 14:57:07 98

原创 RabbitMq消费数据后推往kafka代码学习

(python版)# coding: utf-8import pikaimport osimport jsonfrom kafka import KafkaProducerfrom kafka.errors import KafkaErroros.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'class GetRabbi...

2019-06-10 23:07:50 434

转载 RabbitMQ的代码学习(消费者)

(Python实现)# coding: utf-8import pikaimport osimport jsonfrom kafka import KafkaProducerfrom kafka.errors import KafkaErroros.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'class GetRabb...

2019-06-10 22:56:31 688

原创 RabbitMQ的代码学习(生产者)

(Python实现)# coding: utf-8import pika,osos.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'class SendRabbitMq: def __init__(self,username,password,host,queueName,exchange,routing_key,bod...

2019-06-10 22:54:34 208

原创 Python使用MongoDB的基本操作

mongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。mongoDB中的 database—>collections—>document—>field —>index.相当于关系系数据库中的 database—>table —>rows —&gt...

2019-06-10 22:51:20 602

转载 每日算法练习——两数相加

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。``分析:就像小学列竖式一样计算。//连表结构public class ListNode { int val; ...

2019-05-15 23:57:02 133

音频测试音频测试音频测试

音频测试音频测试音频测试

2024-05-12

Spark3.0安装包

Spark3.0安装包,不用担心网速慢的问题

2024-01-11

【Flink】大佬总结的flink中文教程,Flink设计与实现,带案例

详细介绍各个接口,每个API都会带源码案例,让你学习起来亲亲松松~ Apache Flink是一个用于分布式流和批处理数据处理的开源平台。Flink的核心是流 数据流引擎,为数据流上的分布式计算提供数据分发,通信和容错。Flink在流引擎 之上构建批处理,覆盖本机迭代支持,托管内存和程序优化。

2022-07-08

Spring面试题和答案(2020年大厂必备带答案1).pdf

2020年总结的spring面试题,经典带答案哦,我收集了一些spring面试的问题,这些问题可能会在下一次技术面试中遇到。对于其他spring模块,我将单独分享面试问题和答案。 如果你能将在以前面试中碰到的,且你认为这些应该是一个有spring经验的人可能被问到的问题发给我,我将不胜感激! 我将把它们添加到这个列表中。这将对其他学习者也会有很大的帮助。

2020-08-19

2020年Java各知识点综合面试题.rar

非常全面的Java知识总结,有事没事都可以看看,把你看抖音的时间拿来学习,还怕什么大厂进不去啊,要相信自己啊

2020-07-05

Java基础知识.doc

学好Java基础、拿高薪offer; java中会存在内存泄漏吗,请简单描述。 会,原因: 如果对象被集合类引用时,如果只是添加,而不删除,会引起内存泄漏,严重时会发出内存溢出。 Java中的内存泄露的情况:长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露 内存泄露的另外一种情况:当一个对象被存储进HashSet或HashMap中以后,就不能修改这个对象中的那些参与计算哈希值的字段了,否则,对象修改后的哈希值与最初存储进HashSet集合中时的哈希值就不同了,在这种情况下,即使在contains方法使用该对象的当前引用作为的参数去HashSet集合中检索对象,也将返回找不到对象的结果,这也会导致无法从HashSet集合中单独删除当前对象,造成内存泄露。

2020-06-22

permission_demo.zip

权限设置,包括用户权限,按钮权限。使用技术springboot,redis,jwt,全注解实现,改造你的项目非常的方便,

2020-01-12

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

TA关注的人

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