自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 问答 (4)
  • 收藏
  • 关注

原创 JDK17 动态设置线程池核心线程数以及最大线程数

在以前使用jdk8的时候,曾经使用过动态线程池,也就是在线程池运行过程中,动态修改其核心程池数以及最大线程数,以控制对三方接口的并发调用。但是在我们将jdk8切换至jdk17之后,调用这两个方法的地方开始报 IllegalArgumentException。可以看到jdk17在进行核心线程数修改以及最大线程数修改时,增加了新的判断,要求,设置这两个参数时都必须保证最大线程数 大于等于 核心线程数。

2024-02-04 10:54:28 415 2

原创 jdk1.8升级jdk17,build.gradle的变化

应公司要求,需将jdk1.8升级到jdk17版本,在升级过程中遇到的坑以及解决方案记录如下:PlatformClassLoadercannotbecasttoclassjavanetURLClassLoaderjdkinternalloaderClassLoaders。

2023-04-21 15:22:44 1352

原创 idea插件开发icon设计

最后一步,编辑svg,在线工具: https://c.runoob.com/more/svgeditor/该素材库下载 png 图片免费,但是下载 svg 是收费的,所以第一步,先下载png,一般都是512px。接下来需要一个转换器 https://www.pngtosvg.com/ 将png转为svg。svg素材库: https://www.freepik.com/最后就可以得到一个你想要的svg。

2023-04-19 12:00:16 556

原创 通过gradle开发idea插件,环境版本适配

在我开发插件期间,饱受版本适配的痛苦,开发过插件的人应该知道,idea有多个版本,从2019至2022,期间多个主要版本,各个版本差异巨大。使用 Java 语言开发idea插件,那么需要3个基础的依赖, jdk,gradle,org.jetbrains.intellij,只有这个三个依赖互相配合,才能解决兼容性问题。至此三个依赖的版本全部找齐,可以愉快的开发和打包,妈妈再也不用担心我的插件被 Jet Brains 打回了。下面是我踩坑之后,总结的版本兼容解决方案,亲测可用。

2023-03-22 18:07:22 4872 1

原创 JavaMail发送邮件,附件中文乱码原因解析及解决方案

JavaMail文件名乱码

2023-02-24 13:07:36 5057 2

原创 技术好文收藏

好文收藏

2022-09-09 18:13:51 151

原创 一次诡异的 invalid bound statement (not found) 排查

一次诡异的 invalid bound statement (not found) 排查背景今天生产环境发生了一个诡异的错误,服务发布之后,在调用一个 Mybatis statement 时,突然报出 invalid bound statement (not found) 这个错误。而在开发以及测试过程中并未出现过这个问题,因此我们立即在测试环境进行复现,结果同样报出这个错误,因此我们环境代码肯定有地方出现了bug,而且是隐藏的比较深的bug,随即我们在本地进行测试,结果并未复现,排查陷入了僵局。排查

2021-12-22 11:24:08 722

原创 使用JavaMail读取邮件

使用JavaMail读取邮件在工作中遇到了一种场景,当我们向用户发送邮件后,偶尔会有一些用户投诉,未收到邮件,对于这种情况,我们需要一种方式来监控是否我们真的没有发送成功。我们使用的发件箱是outlook,当我们发送一个邮件到不存在的邮箱时,outlook会返回一个退信邮件,告知我们邮件并未送达,因此我们的解决方案就是解析该类邮件,并且对应到我们的发送记录中,话不多说直接上代码。public class ReadMailTest { private static final String mu

2021-07-09 10:02:04 1266

原创 leetcode 464. 我能赢吗?

leetcode 464. 我能赢吗?原题链接:https://leetcode-cn.com/problems/can-i-win在 “100 game” 这个游戏中,两名玩家轮流选择从 1 到 10 的任意整数,累计整数和,先使得累计整数和达到 100 的玩家,即为胜者。如果我们将游戏规则改为 “玩家不能重复使用整数” 呢?例如,两个玩家可以轮流从公共整数池中抽取从 1 到 15 的整数(不放回),直到累计整数和 >= 100。给定一个整数 maxChoosableInteger (整数

2020-08-10 17:46:50 180

原创 三个无重叠子数组的最大和

689. 三个无重叠子数组的最大和给定数组 nums 由正整数组成,找到三个互不重叠的子数组的最大和。每个子数组的长度为k,我们要使这3*k个项的和最大化。返回每个区间起始索引的列表(索引从 0 开始)。如果有多个结果,返回字典序最小的一个。示例输入: [1,2,1,2,6,7,5,1], 2输出: [0, 3, 5]解释: 子数组 [1, 2], [2, 6], [7, 5] 对应的起始索引为 [0, 3, 5]。我们也可以取 [2, 1], 但是结果 [1, 3, 5] 在字典序上更大。

2020-08-06 10:49:10 330

原创 ReentrantLock 的实现原理以及源码分析

ReentrantLock是一个可重入的锁,内部采用AQS来实现ReentrantLock的构造函数:public ReentrantLock(boolean fair) { sync = fair ? new FairSync() : new NonfairSync();}可以看到构造函数将一个sync的字段进行了初始化,分为公平锁和非公平锁,sync是什么呢?abstract static class Sync extends AbstractQueuedSynch

2020-05-14 12:22:20 287

原创 集合等离散数据结构

集合简单说一下集合的概念,集合包含一组可区分的对象,称为成员或元素。如果一个对象x是对象S的一个成员,记为x∈Sx\in{S}x∈S。如果x不是S的成员,则记为x∉Sx\notin{S}x∈/​S。通过在一对大括号中显式列出集合的所有成员的方式描述一个集合,例如通过S={1,2,3}S = \{1,2,3\}S={1,2,3}定义一个包含成员1,2,3的集合。如果两个集合A和B包含相同的成员,则...

2019-12-19 16:55:05 2079

原创 DruidDataSource出现UnsupportedOperationException异常的情况

在开发过程中发现了这个问题,当我们配置druid数据源的时候是以下面的这种方式配置的@Bean@ConfigurationProperties("spring.datasource.druid.two")public DataSource dataSourceTwo(){ return DruidDataSourceBuilder.create().build();}但是在...

2019-12-10 11:47:41 1621

原创 JVM内存模型

java内存模型的主要目的就是定义各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量的底层细节。这里的变量指的是实例对象,静态变量和构成数组对象的元素,不包括局部变量和方法参数,也就是堆内存中的变量。java内存模型规定了所有的变量都存储在主内存中,每条线程都有自己的工作内存,工作内存中保存了线程使用到的变量从主内存拷贝过来的副本,线程对变量的所有操作都是在工作内存中的,而不能...

2019-09-25 15:39:03 111

原创 jvm的类加载机制

类从被加载到虚拟机内存中开始,到卸载出内存结束,真个生命周期包括了几个阶段:加载-》验证-》准备-》解析-》初始化-》使用-》卸载虚拟机规范严格规定了有且只有四种情况必须立即对类进行初始化操作遇到new,getstatic,putstatic,invokestatic这4条字节码指令时,如果类没有进行初始化,必须先初始化,生成这4条指令最常见的java代码场景是:new一个对象、...

2019-06-14 16:49:38 135

原创 关于idea新建子目录时往父目录名字后叠加而不是树形结构的解决方法

当Compact Empty Middle Packages选中时,目录会叠加,所以首先去掉√,然后新建子目录,然后在勾上,就可以解决。

2017-03-24 13:29:06 8976 4

原创 浅析Hadoop(二)之MapReduce

浅析Hadoop(二)之MapReduce1.经典的mapreduce工作原理1)提交作业,job提交时,client向jobtracker请求一个新的作业id,检查作业的输出目录,如果没有指定或者已经存在,就会抛出异常。如果检查通过,开始计算作业的输入分片,将运行作业所需要资源复制到一个以作业id命名的目录下jobtracker的文件系统中,然后告知jobtracker作业准备执

2016-12-03 08:51:37 713

原创 浅析hadoop(一)之HDFS

浅析Hadoop(一)之HDFS再次看hadoop权威指南,又有了一些不一样的收获,所以心血来潮,就想将我理解和整理的东西写出来,还有很多不足,欢迎大家指正。1. hdfs的特点一次写入,多次读取硬件要求低高延时性,高吞吐量,牺牲低延时,获得高吞吐不适合大量的小文件存储Hdfs的文件只能有一个writer,写操作只能追加,而不能修改。2. hdfs的数据块大

2016-12-02 16:51:58 783

转载 maven向本地仓库中导入官方库中没有的jar包

对于官方仓库没有的jar包,maven向本地仓库导入jar包用如下命令  Cmd代码   mvn install:install-file  -DgroupId=包名  -DartifactId=项目名  -Dversion=版本号  -Dpackaging=jar  -Dfile=jar文件所在路径    以

2016-11-30 20:59:30 490

原创 maven项目由于多个依赖中含有同一个jar包导致的冲突问题的解决办法

今天在利用mapreduce对HBase进行输入输出的时候,发生了一件很无厘头的事情,我和同事写同样的代码,但是我成功了,而他却失败了,这就有点让人头疼。一开始我们以为是配置的问题,但是经过比对,配置并没有什么不同。因此,我就将mapreduce的执行过程看了一遍,结果发现,他的org.apache.hadoop.conf.Configuration 类和我的org.apache.hadoop.c

2016-11-10 11:56:56 9946 1

原创 hbase的预分区

HBase中,表会被划分为1...n个Region,被托管在RegionServer中。Region二个重要的属性:StartKey与 EndKey表示这个Region维护的rowKey范围,当我们要读/写数据时,如果rowKey落在某个start-endkey范围内,那么就会定位到目标region并且读/写到相关的数据当我们只是通过HBaseAdmin指定TableDescriptor来创建

2016-11-09 21:06:47 1666

原创 hive中自定义UDAF、 UDTF、 UDF

回头看了看之前自定义的UDF,UDAF,UDTF,竟然有种生疏的感觉,因此,对于其中的代码重新做了注释,更加的详细和容易理解,下面就是我自己定义的几个样例,比较简单,主要是通过样例来了解如何自定义UDF来完成需求。

2016-11-09 19:55:56 895

原创 hbase的整体架构分析

HBase的功能非常强大,下面是我对于HBase的一些理解,欢迎指点。HBase是Apache Hadoop的数据库,能够对大型数据提供随机、实时的读写访问。HBase的目标是存储并处理大型的数据。HBase是一个开源的,分布式的,多版本的,面向列的存储模型。它存储的是松散型数据。Region1. Table随着记录增多不断变大,会自动分裂成多份Splits,成为Regions

2016-11-09 17:38:41 487

原创 zookeeper的分布式锁的实现

zookeeper作为支持应用程序高可用性的首选方案,他肯定有自己的强大之处,所以对于他的一些应用还是很有必要了解的。

2016-11-03 14:05:08 320

原创 hbase的常用操作

package com.wangl.hadoop.hbase;import java.util.ArrayList;import java.util.List;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.a

2016-10-27 22:09:03 420

原创 hive的分区和分桶

1、Hive分区表在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念。分区表指的是在创建表时指定的partition的分区空间。 Hive可以对数据按照某列或者某些列进行分区管理,所谓分区我们可以拿下面的例子进行解释。 当前互联网应用每天都要存储大量的日志文件,几G、几十

2016-10-26 09:50:38 13607

原创 hive中控制map和reduce的个数

一、   控制hive任务中的map数:1.    通常情况下,作业会通过input的目录产生一个或者多个map任务。主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文件块大小(目前为128M,可在hive中通过set dfs.block.size;命令查看到,该参数不能自定义修改);2.    举例:a)    假设input目录下有1

2016-10-25 17:50:43 928

原创 hadoop2.x的集群搭建

Hadoop集群安装1.配置服务器1个主节点:master(192.168.15.128),2个(从)子节点,slaver1(192.168.15.129),slaver2(192.168.15.130)配置主节点名(192.168.15.128)vi /etc/sysconfig/network添加内容:NETWORKING=yesHOSTNAME=master配

2016-10-19 21:55:36 323

转载 HA机制下hadoop2.x的配置

对于hadoop下分布式文件系统的单点故障问题,采用HA(high availibility)高可用性机制进行应对时的hadoop集群的配置

2016-10-19 17:36:24 422

原创 hadoop核心知识点总结

1、  安装hadoop需要配置的hadoop中的配置文件有哪些?hadoop-env.shyarn-env.shcore-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xmlslaves2、  Hadoop的核心模块和相应的进程HDFS:namenode,datanode,secondarynameno

2016-10-14 17:22:24 7137

原创 mapreduce机制及mapreduce任务的分析

由于经典的MapReducer(MapReduce1)的jobtracker负责作业的调度、任务进度监视、追踪、重启过慢的任务和进行任务登记,对于CPU的消耗非常大,而且jobtracker是与namenode在同一节点上,namenode的内存中还需要保存每个文件的各个块的元数据信息,所以对于内存的消耗非常巨大,也因此成为了mapreduce1的瓶颈。对于节点超出4000的大型集群,mapr

2016-10-11 19:04:35 2853

原创 hanoi汉诺塔问题

Hanoi塔问题是个古典的数学问题,如果能够想清楚这个问题,那我相信你的逻辑思维已经很不错了,问题是这样的:古代有一个梵塔,塔内三个座A,B,C,A上有64个盘子,从小到大,从上而下依次排列,有人想把这64个盘子从A移动到C,每次只能移动一个盘子,并且移动过程中始终保持三个座上小盘在上,大盘在下,请问该怎么移动?刚拿到这个问题,绝对是很难从头到尾想清楚详细的步骤,当然除非你的大脑比电脑的运

2016-09-26 22:15:39 617

原创 javaweb三大框架知识点总结

对于web编程的三大框架的知识点总结,分别叙述了struts , spring ,hibernate 的特点,希望对看到这篇文章的人有所帮助。

2016-09-24 08:50:07 10898 2

原创 appfuse中遇到的一些问题

今天第一次使用appfuse框架创建ssh继承架构,遇到了一系列的问题,下面简单总结一下1.在控制台上进入到项目目录下执行mvn appfuse:copy-templates命令,本应该在src/test/resources/appfuse/下面导入dao,model,service,web四个模版,结果并没有成功导入进来对此的解决办法就是,去github官网上搜索appfuse,在a

2016-09-01 21:43:26 370

空空如也

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

TA关注的人

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