自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 scala隐式转换在流式调用中的应用

前言关于流式调用,熟悉Java的小伙伴可能第一时间都会想到Java8关于stream相关的API,类似这种的代码list.stream().map(item->item+1).colletion(Collector::toList),流式调用带给我们的直接感受是代码量的减少。但是由于Java的特性导致一旦流式代码过长或者封装的不好会导致可读性急剧下降。这里我想要分享一个scala中基于隐式转换的流式调用,来帮助我们将结构更清晰化,聚焦核心代码逻辑的应用。示例以下我会用一个简单的代码片段来比较ja

2022-05-29 16:53:28 276

原创 Spark DataFrame UDF的使用与注意事项 [scala版]

spark dataframe使用udf的注意事项

2022-05-19 16:38:36 774

原创 Spark调优、DataFrame API使用、大表Join、动态分区

Spark job 调优

2022-05-18 15:54:23 1461

原创 Java的static关键字在实践中深刻认知

Java的static关键字的定义在Java中static是个修饰符,用于修饰类(而非对象)的成员方法,成员变量,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问。static 修饰的属于类,对于同一类共享内存,而成员变量,普通方法属于对象,不共享内存。示例演示以下以最近我在实际生产中写的static关键字的乱用带来的bug演示:需求如下:我们做了一个多平台统一的管理系统,现在有一个功能我们需要根据给定时间生成计划,但是目前我们只有其中一个平台支持该功能,但是我们要让程序有足够

2022-04-09 15:06:11 387

原创 Java8多线程编程指北

Java8中如何便捷高效的使用多线程编程前言关于面试中经常问到的线程创建的几种方式:继承 Thread 创建线程实现 Runnable 创建线程实现 Callable || Future 创建线程通过线程池来创建线程总的来说分两种,有返回值的和没有返回值的.Java8 中如何使用多线程编程一般来说前言中使用的方式在 java8中基本都没用了, 从各个 类和 interface 的出现时间就可以判断, java多线程的发展趋势.Thread 和 Runnable是从 JDK1 就有了,

2021-07-19 21:50:05 1113 2

原创 MySQL cast 用法及其限制条件

cast 的使用cast 函数是将数据类型进行转换, 比如 int 转 string. 基础用法是 CAST(expr AS type [ARRAY])expr: 表达式,一般是某个字段type: 需要转换成的类型比如表中有 id 字段为 int 类型,cast(id as char), 就是将 int 类型的 id 转换成 charcast 的限制在使用 cast 转换类型时需要注意一点, cast能支持的类型不多, 我们常用的 varchar2 之类的类型是不支持的. 支持的类型有

2021-07-05 13:00:58 5728

原创 各种类型数据库以及其适用场景

数据库分类按数据库组织关系分两大类:关系型数据库(RDBMS)和非关系型数据库(NOSQL),这种分类比较宽泛。一般按数据存储格式来划分数据库类型以及生产实践中的选型,大致分为以下四类:行式存储数据库,经典的关系型数据库基本都是行式存储,如MySQL,Oracle,SQLServer等。他们数据高度结构化,有很好的事务支持,但是扩展性不好,大数据分析困难。键值数据库,很多内存数据库都是键值对数据库,如Redis,Memcached等。他们的方便易用,有很高的查询效率,没有固定的数据结构。列式存储

2021-06-24 20:29:13 3066

原创 Mac 中使用命令行用 Idea打开文件(目录)

作为一个命令行重度依赖患者, 有时候想打开个文件或者项目, 又不想通过点击系统的某个 application 图标打开软件.一般这种情况我会创建一个链接来使用命令行打开软件,文件等.Mac 中如何给 Intellij Idea 创建命令行启动命令在 Mac 中给 Idea 创建在命令行可用的启动命令其实很简单,Intellij Idea 本身提供了这个功能打开Intellij Idea, 点击Tools -> Create Command-line Launcher -> 使用默认弹出的

2021-06-23 13:29:03 2748 1

原创 MySQL中关于emoji表情的存储(微信登录出现登录失败【由于微信昵称字符问题】)

MySQL中关于emoji表情的存储(微信登录出现登录失败【由于微信昵称字符问题】)问题描述解决方法闲谈问题描述今天网站遇到用户说登录失败,查看日志发现是微信登录自动生成用户时,用户创建失败。其中部分的日志如下:{ Cause: java.sql.SQLException: Incorrect string value: '\\xF0\\x9F\\xA6\\x84 ...' for column 'nick_name' at row 1; uncategorized SQLException;

2020-12-02 22:22:14 269

原创 基于阿里云的Docker安装Jenkins

基于阿里云的Docker安装Jenkins环境准备安装JDK安装Maven安装Git安装Docker安装JenkinsJenkins初始化环境准备由于是Maven的Java项目,所以我们需要现在服务器上安装JDK,Maven和Git。由于阿里云服务器默认不安装wget,所以我先安装一个wgetyum install wget安装JDKyum install -y java-1.8.0-openjdk安装Mavenwget https://mirrors.bfsu.edu.cn/apach

2020-08-13 21:47:30 476

原创 Scala中DataFrame查询,合并多列(使用数组列表等不定列查询)

1.通过数组,列表select()方法2.合并表中部分指定多列3.删除多列没啥好说,代码如下:object Demo { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("Demo").setMaster("local") val sparkSession = SparkSession.builder().config(conf).enableHiveSuppo.

2020-05-21 11:57:04 2302 1

原创 Scala-Spark项目踩坑小结

项目环境Java8,Maven3.1,Scala2.11,Spark2.3项目介绍本项目致力于通过统计信息分析多个文件的差异,它支持指定一列或者多列比较count,mean,stddev,max,min,最终会产生分析报表和差异数据。主要用于检查公司内部hadoop sql转移到spark中由于数据和sql本身的问题和转移翻译过程中产生的job阶段产物差错检测。项目踩坑下面是真从0到1的过程,因为在写这个项目前,我完全没有任何spark和scala的经验,以下经验仅供小白入门者参考。

2020-05-19 18:09:36 829

原创 SpringBoot下使用模板引擎发送邮件(JavaMailSenderImpl)踩坑

使用JavaMailSenderfangcaikengImpl这个类时配置文件中的配置需要手动导入进去才能生效,并且如果连接25端口(发送邮件不配置端口默认都是25端口)以外的端口就必须有mail.smtp.ssl.enable这个参数设置。

2020-04-29 22:31:46 1910

原创 K8S架构图

以下架构图纯属帮助本人理解,不代表正确架构。

2020-04-08 11:32:11 490

原创 基于Java8流式语法的Spark程序之入门级WordCount

写在前面:在使用java学习spark之前必须要先去了解java8流式语法,这十分有利于学习spark的计算方式。 关于流式语法它就像一个管道,将初始的数据看成需要加工的原材料,通过每次管道的流水线作业进行加工转换,最后包装成产品。这里涉及到spark中两个算子,每次管道的流水线作业相当于spark中的转换算子,最后包装成产品相当于spark中的行动算子。 关于spark中出现的Tuple...

2020-04-07 15:10:42 258

原创 【JAVA发送邮件】运行在阿里云服务器你必须要知道几点

环境:阿里云服务器CentOS7,JDK8,SpringBoot2.0+,网易163邮箱账号和授权码application.yaml邮件配置spring: mail: default-encoding: utf-8 #邮箱服务器 host: smtp.163.com #host: stmp.qq.com #邮箱授权码 passwor...

2020-02-25 13:03:02 1039

原创 记一次使用netty解决服务端获取消息拆包问题(基于springboot项目模块)

要说的话全在代码里了,直接上代码。以下内容仅供学习使用,转载请标明出处和作者,并向本人说明。以下是pom依赖配置 <!--netty--> <dependency> <groupId>io.netty</groupId> <artifactId>n...

2020-01-16 09:56:27 964

原创 2019年应届生年终总结,一把鼻涕一把泪

2019年的最后一天了,这一年是真的坎坷,今天一下子从天天加班的噩梦中停了下来。回首来时路,几多心酸。在被人戏称为搬家公司的公司里各种搬家,又经历一毕业部门被裁被迫转手到另外一处,不论是物理地址还是使用的技术都有很大的变动,从golang又干回了java。下面就以毕业时间6月份为界限来回忆一下今年一年都经历了什么。 三月份开始实习golang,在老大的指导下基本上golang已经...

2019-12-31 17:34:11 201

原创 mybatis-plus代码生成集成达梦数据库的萝卜坑

坑位1:Mybatis-plus从3.2.0才开始支持达梦数据库的代码生成!!!!!代码生成配置上基本没有啥特别的点,我不写了,直接参考这位的吧https://blog.csdn.net/xiaoningzvj/article/details/103028988坑位2:达梦数据库不支持Hikari连接池的超时断开连接功能,druid可以支持。达梦数据库用的太难受了,...

2019-12-10 16:14:34 2809 4

原创 Java的JVM内存模型小记

前两天参加了网络安全创新大会,加上昨晚在b站看张博大佬直播修fastjson的bug,趁着这两天项目结束闲下来了,重新探索了一下jvm相关的一些知识,感觉挺有意思的。上午使用jps,jstat,jmap等命令玩了一阵子,发现虽然可以达到效果但是命令行的数据化可读性很差,今天下午终于get到了一个不错的工具jconsole.exe,可以提供可视化的JVM先关的数据监控和管理。其实java本身是提...

2019-11-29 14:33:20 169

原创 关于lombok在maven编译时报栈溢出的问题

最近在项目中使用maven编译一个静态模块时,出现关于lombok的栈溢出的问题。对于导致该问题的原因主要是使用lombok注解的实体类对象字段(几百个字段)过多,在反射字段编译时压栈过多导致的栈溢出。以下截图中显示了使用lombok注解的五个大对象栈溢出了。解决办法:A1:暴力解决:扩大maven运行时的栈内存大小,这里我基于idea修改maven的栈内存,File-&gt...

2019-11-24 12:19:54 1286

原创 Java8的List流式语法按指定规则排序,多字段排序

举个栗子:以下是一个同学LoL职业选手表现涨幅信息对象,其中deviation为涨幅可正可负,需求是要求表现波动最大的十名选手的信息,并按波动和年龄排序,(即波动最大的且年龄最大的选手我们就发警告函,让其退役,哈哈哈)@Data@NoArgsConstructor@AllArgsConstructorpublic class UserInfo{ private String n...

2019-11-13 15:25:27 6440 4

原创 Java的getDeclaredField和getField的使用和区别,以及如何获取父类的私有字段

终于于于于于休息啦,上来先说结论。结论:getDeclaredFields方法仅对类本身的字段有效果,对于继承的父类的字段无效 getFields方法只能获取类及其父类的公共字段 获取父类的私有字段需要先使用getSuperClass获取父类Class,然后通过父类Class的getDeclaredFields方法获取父类的所有字段下面我们举个简单的栗子:这是我们定义的一...

2019-10-30 21:00:02 3821 1

原创 关于feign接口调用时的date类型的传参问题

先说结论:在feign接口调用时使用表单形式(@RequestParam)传date类型会发生时间精度错乱,在8时区会多14个小时。 使用json格式(@RequestBody)传date类型不会发生这种情况。 表单形式我的解决办法是:在对外暴露的feign接口中使用字符串类型(String date)来接收日期,在真正feign调用的controller服务中使用@DateTimeForma...

2019-10-30 20:31:56 5435

原创 如何阅读JDK和Spring中关于注解代码的浅析

1.JDK中的@Resource注解@Target({TYPE, FIELD, METHOD})@Retention(RUNTIME)public @interface Resource { String name() default ""; String lookup() default ""; Class<?> type() d...

2019-10-22 21:47:10 208

原创 (Java程序)Excel自动生成mysql表

读取excel生成字段最近项目中遇到了一个费时间的事,就花了点时间写了一个小程序来做这件事。description:现在在项目的前期设计阶段,需要从excel的数据库表格字段生成数据库,开始是手动搬砖,但是碰到了一个按照时间自增生成的列,一个表需要生成几百列的字段,手敲感觉要命,就写了以下的小程序来完成数据库表的生成和字段的自动生成。如下图,有字段是要分段生成的。以下程序生成...

2019-10-09 14:57:24 1345 2

原创 使用navicat将postgresql数据库导入到mysql

小记点击工具栏的数据传输,跳出如下界面,如果navicat没连接过的数据库可以手动填写,连接过的可以通过下拉框直接选。 点击下一步,再点击开始就可以将postgresql的数据库表和数据全部导入mysql了。...

2019-09-16 16:17:21 3959

原创 基于阿里云的docker中安装运行redis并远程访问

有关docker的安装配置这里不详述,直接进重点。在上一篇中我们使用了docker pull redis拉取了远程仓库最新的redis镜像。这里我想主要讲一下的是提供远程访问的注意点配置文件在我们使用压缩包安装redis,解压后的redis根目录下回有一个初始的redis.conf,如下图就是一个redis解压后的根目录。有三点需要注意:redis.conf文件中...

2019-09-03 14:52:16 3575 1

原创 基于阿里云的docker中安装运行mysql并远程访问

第一步在阿里云上安装一个docker服务器并启动,这里我们不细说了。yum install docker -yservice docker start我们使用docker images查看一下当前docker中的镜像文件有哪些,这里我们看到这个docker中是没有任何镜像的。使用vim/etc/docker/daemon.json查看docker的配置文件,默认就是这个路径,可...

2019-09-03 11:35:40 1505 1

原创 (MySQL8)windows系统下MySQL8安装、配置及所踩的几大坑,必有你踩过的!!!

目录开头直接给重点的几个坑1.首先到官网下载mysql82.解压到目录中3.在这个mysql的根目录下创建一个my.ini文件,写一些MySQL的配置4.使用管理员cmd进入mysql的bin目录下,D:\MySQL\mysql-8.0.13-winx64。5.初始化mysql6.安装mysql服务7.启动mysql服务8.登录mysql9.登录成功,修改密...

2019-08-21 23:29:31 501

原创 (Docker)开箱即用的Docker常用命令集合,已用颜色标记出来使用频率

/*** 注意以下命令重要程度:红色》》黄色》》黑色。*/启动一个docker容器并给其命名docker run -i -t --name=dockername 或者 docker run -it --name=dockername查看所有/最近的docker容器docker ps (-a...

2019-08-15 23:10:47 521

原创 Go的http包代码执行流程

package mainimport ( "fmt" "log" "net/http" "strings")func sayhelloName(w http.ResponseWriter, r *http.Request) { r.ParseForm() //解析参数,默认是不会解析的 fmt.Println(r.Form) //这些信息是输出到服务器端的打印信...

2019-06-24 16:52:39 178

原创 关于Go拷贝Mutex死锁问题

package mainimport ( "fmt" "sync")type myMutex struct { count int sync.Mutex}func main() { var mu myMutex mu.Lock() var mu2 = mu mu.count++ mu.Unlock() mu2.Lock() mu2.count++ mu2...

2019-04-29 15:53:40 922

原创 vuex学习旅程

安装导入和elementUI,router等基本一样的套路,先进入项目目录下执行cmd命令:npm install vuex --save然后在main.js文件中引入。import Vuex from 'vuex'Vue.use(Vuex)至此vue项目引入vuex完毕。下面结合个人理解对vuex进行解读。在src目录下建立一个store目录,在s...

2019-04-11 19:11:38 171

原创 Go 操作数据库基本CURD

引入包import ( "database/sql" _ "github.com/go-sql-driver/mysql")注意:从github中引的这个驱动包没有使用,仅做了init加载,所以如果没有主动引入代码不会有提示。获取数据库连接//获取数据库连接func GetDb()(db *sql.DB){ //获取数据库连接 db, err ...

2019-03-19 16:32:14 731

原创 golang基础全篇(适合已有编程语言经验的猿们)

package 统一包下不能有相同函数 包的三个作用 区分相同名字的函数和变量等标识符 管理项目 控制函数,变量等的访问范围,即作用域。 func go不支持重载,函数也是一种数据类型,可以赋值给一个变量 ...

2019-03-07 11:53:29 463

原创 番外(idea中将项目打包成jar运行)

话不多说,开干。网上看了一些打架包的文章,尝试了几次,发现还是maven打架包的插件简单粗暴,一次成功。分享给大家。我这是基于springboot的项目,只需要在pom文件中添加一个插件就行。需要添加的pom文件如下: &lt;build&gt; &lt;plugins&gt; &lt;plugin&gt; &l...

2018-12-03 16:37:11 185

原创 搭建springcloud-eureka服务

本文开头头先列一下所用环境:idea2017,springboot2.0.5,springcloud Finchley.SR2。踩了三四天的坑,现在仅用本篇文章记录一下犯错历程。读了很多springcloud eureka集群搭建的博客,书籍,开始着手搭建eureka服务。1.创建maven父工程先是创建一个maven工程,算是整个springcloud的父工程,文件 - >...

2018-12-02 17:09:30 3133 3

原创 SpringbootHealth访问健康监测时报404问题

先是参考网上的SpringbootHealth相关文章https://www.cnblogs.com/javanoob/p/springboot_healthcheck.html但是在输入http://127.0.0.1:9000/TEISService/health健康监测时总报404,这里我们要了解一下,以上接口地址具体代表什么。9000是我项目服务器运行时的端口,TEISServ...

2018-10-30 17:09:59 5365

原创 jdk8集合包源码理解记录

1.String类:实现了serilizable,可比接口,seriliazable仅用于标志,具有可比性的comparableTo方法用于比较字符串大小。底层是通过final char []实现字符串的,其所有方法基本是用字符数组相关方法实现的。2.ArrayList:实现了列表,RandomAccess的,克隆,serilizable接口,ArrayList的底层由动态数...

2018-10-21 15:50:39 530

Mybatis-Plus自定义模板,生成标准的单表增删改查分页等代码

内置controller,entity,mapper,mapper.xml,service,serviceImpl的标准模板代码

2019-12-31

空空如也

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

TA关注的人

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