自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(292)
  • 资源 (2)
  • 收藏
  • 关注

原创 自行一个简单类似Spring AOP(Jdk方式)的框架

Spring AOP有两种实现方式,一种是基于JDK的,另一种是基于Cglib的,本文模拟Spring的Jdk实现方式自行实现一个简单的小框架,目的是熟悉思想。基于JDK的动态代理,最终的一个类是InvocationHandler,InvocationHandler可以理解为一个方法调用器,在对方法进行增强时候,代理类会拦截到目标对象上的方法,然后将拦截的方法传递给InvocationH...

2019-10-26 17:58:21 306

原创 Golang那些违背直觉的编程陷阱

看到结果是不是很意外,为什么有3个six呢?接下来分下一下:由于field的print方法是指针类型,所以data2每次在调用print方法时都是v指向的内存对象,这个对象最后一次赋值是six,所以输出的是3个six(其实此处存在不确定性,main协程与子协程的调度顺序,如果每次调度main协程之后立马就去调度子协程可能结果就是正确的了)。主要看一下arr2与arr3函数即可知晓,很好理解却又很容易疏忽。

2024-04-21 10:17:29 433

原创 Java lambda表达式如何自定义一个toList Collector

【代码】Java lambda表达式如何自定义一个toList Collector。

2024-01-11 16:26:46 531

原创 Spark 代码记录

setMinConfidence(0.4) // 设置最小置信度为0.6,即如果一个商品组合被购买了,那么另一个商品也被认为是相关的。.setMinSupport(0.2) // 设置最小支持度为0.5,即至少需要有50%的用户购买了这个商品组合。model.associationRules.show() // 显示关联规则及其置信度。model.freqItemsets.show() // 显示频繁项集及其支持度。

2023-12-01 13:58:37 195

原创 破解网页禁止右键复制

之后点击就可以复制了。

2023-06-01 17:27:38 601

原创 Mac M1 终端shell兼容问题解决

Mac M1 终端shell兼容问题解决。

2022-11-03 10:29:47 1895 2

原创 Go模块版本依赖版本V2+注意事项

通常我们发布一个Go模块到远程时,可以不进行打Tag,这样被依赖的版本是v0.0.0-时间-commitId的版本;但是如果我们打tag时,需要注意v1.x.x与后续的v2+.x.x版本有区别。当v1版本时,module名字里面不需要有后缀v1,例如:此时tag:v1.0.0依赖使用时引入的依赖如下:但是某一天你升级版本到v2时,就需要注意了,此时你需要修改module名字:添加v2后缀 ,依赖引入: 总结:在golang的世界里面版本也是module的一部分,v1默认可以不写!!!...

2022-06-11 18:59:02 745

原创 控制台进度显示就地更新:Update Progress in place

import java.util.Collections;import java.util.List;import java.util.StringJoiner;import java.util.concurrent.TimeUnit;/** * @author liuguangxin <[email protected]> * Created on 2022-04-25 */public class InPlacePrint { public s...

2022-05-10 16:56:29 395

原创 Java jar命令打可执行的jar包

基础文件结构├── MANIFEST.MF├── Main.class├── Main.java└── com └── javartisan ├── Main.class └── Main.java文件内容├── Main.classpublic class Main { public Main() { } public static void main(String[] var0)...

2021-12-24 13:28:32 1266

原创 针对Mac IDEA 安装插件启动失败解决办法

去:/Users/XXXX/Library/Application Support/JetBrains/IntelliJIdea2020.3/plugins 删除对应插件即可

2021-05-28 16:00:15 2450 1

原创 Redis Lua脚本报错 redis() command arguments must be strings or integers

粗心大意惹的祸,记下吸取一下教训。127.0.0.1:6379> EVAL "local member = redis.call('ZRANGE', KEYS[1], 0, 0) if (next(member)==nil) then return member else redis.call('ZREM', KEYS[1], member) return member end " 1 tq(error) ERR Error running script (call to

2021-02-03 21:07:03 7341

原创 Postgresql数据库基本操作入门

基本查看命令查看数据库:\l\c database 切换到指定数据库切换schema set search_path to your_schema;\dn 列出当前数据下所有的schema\db 列出所有的表空间 tablespace查看当前schema下面的表: \d查看表定义:\d tableName\du或\dg列出所有的角色或者用户\dp 查看权限分配当客户端与服务器端编码不一致时候会出现乱码,此时可以使用 \encoding utf8设置

2021-01-16 13:48:10 2057

原创 Spark海量数据取任意第Kth行的实现

val df = (1 to 100000).toSeq.toDF("id")val orderDF = df.orderBy("id").rdd.zipWithIndex()orderDF.filter(t=>t._1.getAs[Int]("id")==100).take(5) // 获取低排名为100的行(从0开始排名)查询结果: Array[(org.apache.spark.sql.Row, Long)] = Array(([100],99))...

2021-01-04 10:30:35 375

原创 Spark大数据处理TB级别海量数据的Shuffle成本(草稿)

1:轻易不要shuffle,例如20万个小文件(文件大小100MB,spark一个文件一个分区)的想要进行缩减5-8万的分区轻易不要repartition,而是coalase 进行分区合并

2020-12-27 11:30:41 926 1

原创 Spark SQL join 条件写法遇见的坑 left join 最终被当做inner join执行

SQL1:SELECT lower(trim(user_log_acct)) as user_log_acct, after_prefr_amount_1, sale_qtty, free_goods_sale_qtty, parent_sale_ord_id, ord_flag, shop_id, main_sku_id, item_id

2020-11-25 22:44:10 1668 4

原创 逻辑删除记录时-保证业务的唯一性约束

目录业务背景业务背景通常业务系统的一些记录表都会有一些唯一性约束,例如相同用户下不允许重名;通常可以对指定列创建唯一性索引即可,例如:CREATE TABLE `novel`( `id` bigint(20) NOT NULL AUTO_INCREMENT, `novel_id` bigint(20)

2020-08-25 13:23:48 1042

原创 AOF文件格式

AOF文件格式*N is the number of arguments of the command.$M is the length, i.e. the number of bytes, of each argument.*数字:表示一个命令的开始,共计有几个参数$数字:表示下面的参数的长度127.0.0.1:6379> set count 1*3 # 共计三个参数,分别是set count 1$3 # 参数长度为3个B(备注:set长度)set $5 # 下一个参.

2020-08-04 13:15:26 895

原创 Spring事务异常UnexpectedRollbackException出现原因以及解决方法

异常信息:org.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back because it has been marked as rollback-only at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatform

2020-06-08 15:48:04 4935

原创 Spring是否支持对静态方法进行Aop增强

1:JDK代理2:CGLIB代理

2020-04-22 16:06:34 5041

原创 Netty中的ChannelHandler的基础知识

Netty中的ChannelHandler类似于工程对产品流水线生产中:生产线上的每一步的处理器,而生产线则就是Netty中的ChannelPipeline。Netty也正是通过ChannelHandler实现了业务与底层网络的解耦。Netty中的ChannelHandler按照输出字节流向分为In,Out,Duplex三种ChannelHandler,本文主要介绍前面两种,Netty中...

2020-04-18 10:50:14 1316

原创 Hive扫盲之Lateral View之列为空时候该行元素消失

采坑:当lateral view explode(arr) 时候,如果arr为一个空集合则会导致行元素丢失,因此需要进行特出处理其实也不算坑吧,怪自己不了解而已。有时间完善下面文档阅读笔记。https://cwiki.apache.org/confluence/display/Hive/LanguageManual+LateralView...

2020-03-06 13:45:38 565

原创 MySQL中大小写敏感涉及的属性以及查询如何区分大小写

lower_case_file_systemProperty Value System Variable lower_case_file_system Scope Global Dynamic No Type Boolean 该变量用于设置数据库在检索数据目录时候是否区分大小学,OFF意味着是大小写敏感的;ON意味着大小写不敏感。这是一个只读属...

2020-02-24 20:10:33 1767

原创 Java中通过Runnable与Thread创建线程的区别

1 、Java中的Thread与Runnable1:在Java并发模型中,Thread是跟操作系统底层的线程一对一对应的,Thread对应一个真实的操作系统线程。2:Runnable只是一个线程执行代码片段的接口标准之外,其余跟线程关系根本不是很大(可以理解:Runnable是一个线程的Task抽象)。Runnable可以理解为线程执行代码的一个单元(juc中Callable也是一个接口标...

2020-02-23 17:09:13 1401 5

原创 Shell脚本中有关数据进制的问题(value too great for base (error token is "08"))

脚本内容:#!/usr/bin/env bashendWeek=`date +%V`echo $endWeekstartWeek=$[`date +%V`-1]year=`date +%Y`if [[ $# -eq 2 ]]then echo "please input startWeek and endWeek (week >=startWeek and week ...

2020-02-19 17:36:42 860

原创 Grafana表格配置以及Panel/Dashboard复制粘贴

Grafana是一个可视化工具,主要用于监控报表的可视化,支持各种表格以及插件灵活拓展多种数据源,更多参见:GrafanaGrafana优点:1:Grafana支持更多插件扩展数据源;2:支持监控报警;3:丰富的可视化表格等。使用大概如下:创建DashBoard基于上面创建的Dashbord创建panel,一个panel就是一个可视化面板,在panel里面可以选择多种表格,例如:...

2020-02-18 20:51:10 12833

原创 Grouping__ID 在不同版本中的使用方法不一样

GROUPING SETS clauseGrouping__ID function Grouping__ID function (before Hive 2.3.0)Hive2.3版本之后Grouping__ID functionWhen aggregates are displayed for a column its value is null. This may confli...

2020-02-14 11:31:26 1526

原创 MYSQL官方文档需要撸一遍(待学习)

https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html#function_json-arrayaggselect @rk := @rk + 1 as id, group_concat(revenue order by field("month", "Jan", "F...

2020-01-19 20:43:58 403

原创 MySQL窗口函数中的Frame(三)

12.21.1 Window Function Descriptions12.21.2 Window Function Concepts and Syntax12.21.3 Window Function Frame Specification12.21.4 Named Windows12.21.5 Window Function RestrictionsFrame定义...

2020-01-18 18:38:39 1809

原创 MySQL窗口函数概念与语法(二)

12.21.1 Window Function Descriptions12.21.2 Window Function Concepts and Syntax12.21.3 Window Function Frame Specification12.21.4 Named Windows12.21.5 Window Function Restrictions基础数据:...

2020-01-18 16:20:34 448

原创 MySQL窗口函数基础初试(一)

MySQL支持窗口函数,对于数据row的查询,会使用一些相关的rows进行计算出一个row。如下将会讨论如何使用窗口函数,包括OVER以及WINDOW子句,本结只讨论非聚集窗口函数。聚集窗口函数参考:聚集窗口函数。更多关于优化以及窗口函数参考:窗口函数优化。MySQL窗口函数主要涉及一下内容:12.21.1 Window Function Descriptions12.21.2 Win...

2020-01-17 11:59:02 374

原创 Spring @Cacheable有关缓存失效时间策略的默认实现以及扩展

之前对Spring缓存的理解是每次设置缓存之后,重复请求会刷新缓存时间,但是问题排查阅读源码发现,跟自己的理解大相径庭。所有的你以为都仅仅是你以为!!!!背景目前项目使用的spring缓存,主要是CacheManager、Cache以及@Cacheable注解,Spring现有的缓存注解无法单独设置每一个注解的失效时间,Spring官方给的解释:Spring Cache是一个抽象而不是一个...

2020-01-10 21:12:04 4933

原创 MYSQL mediumText大字段存储错误问题排查

思路:1:由于日志查询问题,没看到日志之前怀疑:MYSQL数据库字段长度是否真的足够,排查问题未果。2:步骤一未果,看日志了解错误信息如下Name":"com.javartisan.audience_management.jsf_service.service.AudienceService"}org.springframework.orm.jpa.JpaSystemExcepti...

2019-12-09 20:40:23 1321

原创 灵活多变的SQL-Where后面的case when

今天一个需要,想着是否可以where 后面使用case when ,测试一下果然可以,强大的SQL没有解决不了的难题。select login_tm, dtfrom adm.user_login_tabwhere case when 1 != 1 then dt = '2019-11-13' else dt < '2019-10-28' end limit 50 ;...

2019-11-15 18:17:09 744

原创 Spring Aop之JDK方式创建代理类的源码思路

import org.aopalliance.intercept.MethodInvocation;import org.aopalliance.intercept.MethodInterceptor;public class CustomMethodAdvice implements MethodInterceptor { @Override public Object...

2019-10-26 19:21:37 317

原创 Spring AOP处理类上或者方法上面的切面

注解定义@Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface XXXXDataSource { /** * @return datasource name */ DataSou...

2019-09-24 18:14:02 2668

原创 整合多数据源Neo连接池时遇见的问题以及方案与收获

整合多数据源时候,配置neo数据库连接池时候使用的Druid连接池,遇见的问题以及问题的解决方案与收获简单记录一下。方案1:配置信息:<bean name="neoDataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driver" value="...

2019-06-20 20:08:50 537

原创 借助Spring框架实现多数据源进行动态路由数据源进行数据查询

业务需要,不同类型数据分布在不同集群以提高查询性能,为此系统存在多个数据源。数据源实现方式:1:静态配置多个数据源,按需使用,不具备动态调整能力。示例代码:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xml...

2019-05-28 21:55:56 704

原创 基于JDK动态代理实现的Spring AOP源码学习

最近花了点时间学习了一下Spring Aop的内容,到此简单做一下笔记。如果存在错误还望多多指教。概念所谓的Aop就是Aspect Oriented Programming,即面向切面编程。对于Aop存在一个组织AOP Alliance,该组织制定了一下跟Aop有关的标准,制定的只是标准,没有实现。通常在Aop中主要有如下术语:1:Aspect是切面,是面向切面编程的一个抽象,...

2019-05-25 13:34:08 671

原创 Spark SQL有关broadcast join的不生效问题2

今天同事反应他的广播不生效,看了一下代码,它的代码样子如下: def main(args: Array[String]): Unit = { val spark = SparkSession.builder().appName("BroadCastJoinLLocalDebug").master("local[*]").getOrCreate() val sc = spar...

2019-05-21 18:39:18 1669

原创 Spark SQL有关broadcast join的不生效问题

大数据计算通常会存在大表join小表的情况,如果相对较小的表允许广播到各个executor的话,可以使用广播方式mapjoin,这样还可以避免数据倾斜。平时看文档记着有个参数是:spark.sql.autoBroadcastJoinThreshold 10485760 (10 MB) Configures the maximum size in bytes for a tabl...

2019-05-20 22:02:11 4959 1

天津大学周伟状态压缩论文

信息学发展势头迅猛,信息学奥赛的题目来源遍及各行各业,经常有一些在 实际应用中很有价值的问题被引入信息学并得到有效解决。然而有一些问题却被 认为很可能不存在有效的(多项式级的)算法,本文以对几个例题的剖析,简述状 态压缩思想及其应用。

2018-09-14

java网络编程第四版源码

java网络编程第四版源码

2017-04-04

空空如也

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

TA关注的人

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