
java
蓝奕世
不会,我可以学;落后,我可以追赶;跌倒,我可以站起来,但是台下的不能总是我。
展开
-
for循环的执行顺序,i++和++i
明天记录原创 2021-09-27 21:35:00 · 9315 阅读 · 0 评论 -
关于token更深的理解笔记
为何!!!!一、为何要使用jwt+shiro+redis*在微服务中我们一般采用的是无状态登录,而传统的session方式,在前后端分离的微服务架构下,如继续使用则必将要解决跨域sessionId问题、集群session共享问题等等。这显然是费力不讨好的,而整合shiro,却很不恰巧的与我们的期望有所违背: (1)shiro默认的拦截跳转都是跳转url页面,而前后端分离后,后端并无权干涉页面跳转。 (2)shiro默认使用的登录拦截校验机制恰恰就是使用的session。 这当然不是我们想要的原创 2021-09-23 21:24:58 · 4083 阅读 · 0 评论 -
spring data redis 出现Could not get a resource from the pool
同事使用redis做了分布式的集中去重,类似消息的唯一性的判断。报错Could not get a resource from the pool在帮忙排查问题的时候感觉特别奇怪,这不是告诉我redis的连接池里面没有可连接的东西吗?为什么会这样? @Bean public JedisPool redisPoolFactory() { try { JedisPoolConfig jedisPoolConfig = new JedisPoolCo原创 2021-08-12 21:09:35 · 439 阅读 · 0 评论 -
flink 报错is not serializable. The object probably contains or references non serializable fields.
今天有同事突然报了这样一个错误,刚开始确实没反应过来,成员变量不可以被序列化。。。。Exception in thread "main" org.apache.flink.api.common.InvalidProgramException: java.lang.ref.ReferenceQueue$Lock@11fc564b is not serializable. The object probably contains or references non serializable fields.原创 2021-07-21 21:25:24 · 15578 阅读 · 5 评论 -
maven仓库在收到导入jar包成功后,IDEA提示找不到
其实这个问题比较蠢,但是当出现的时候还是比较懵圈,所以这里把排查问题的过程总结一下1.为什么需要手动导入maven仓库依赖?当我们在电脑没有翻墙的情况下去中央仓库下载依赖会非常非常的慢,而且很有可能 导致下载的包有问题,其实还是网络的问题,这个时候手动将jar包导入maven仓库就变得很快捷。2.我在使用flink的redissink的时候遇到一些问题,就是我无法自定义ttl参数来控制键的过期时间,这样就需要将flink-connector-redis_2.11包完整的下载到本地,然后修改源代码,进行原创 2021-07-14 11:24:48 · 1380 阅读 · 0 评论 -
log4j报错Please initialize the log4j system properly.
log4j:WARN No appenders could be found for logger (org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumerBase).log4j:WARN Please initialize the log4j system properly.log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more in原创 2021-07-12 19:27:31 · 829 阅读 · 1 评论 -
maven突然发病 aliyun repository依赖找不到
总会有这种情况。。。特别奇怪,之前好好的,但是当你加入一个依赖要使用的时候,总是出来一片红字说找不到当前使用的包。。试了一下手动下载依赖,还是不行,而且不报错,你说气人不mvn cleanmvn install然后就想吧,你不是没依赖嘛,那我手动下载依赖,然后添加到maven仓库,点击jar下载然后在当前项目目录下mvn install:install-file -Dfile="/Users/luziyuan/Downloads/flink-connector-jdbc_2.12/1.12.原创 2021-06-18 16:21:17 · 1542 阅读 · 2 评论 -
synchronized的规则
上个文章介绍完了之后忘了一个东西synchronized,这个东西我觉得真真是很常用的,所以这里谈一下自己的见解。以下内容纯个人想法,如有偏差,评论区见第一synchronized可以加在方法,也可以给一段代码加锁,也就是说给这个代码的上面加把锁,然后结束加把锁,然后用2个锁将一段代码锁起来,但是我们知道线程跑不跑决定因素是cpu的时间段分配情况,那么如果明明一个线程进入到锁代码中,然后cpu时间片段片段正好到了,这个时候怎么办,这种情况下当前线程并不会放弃锁,而是一直等,直到等到cpu又分配到当前原创 2021-02-22 16:46:31 · 2483 阅读 · 0 评论 -
volatile和atomicInteger的区别理解特性
volatile和atomicInteger的理解原创 2021-02-22 14:36:24 · 4409 阅读 · 1 评论 -
使用java下载东西如何优化下载网速
之前要从腾讯云上下载一批视频,然后老板让优化一下速度,我心里很无语。。。。我说这怎么搞?网速不行,这怪我?服务器次?这怪我?平均下载速度只有10M/S(实际上是自己知识面太浅)经过一系列的操作后网速达到了40M/S的程度,在这里总结一下分享给大家。首先优化下载速度要从以下几个个方面考虑。1.网速是否榨干?这个怎么测试呢?在服务器上开启一个测速软件,开启了自己的下载程序后,直接从服务器上下载一个大文件,已经下载不动了,或者网速极慢,这个就说明网速已被榨干,这个自然而然已经有瓶颈了,说明你网速太次,这里原创 2021-02-12 19:04:00 · 4321 阅读 · 3 评论 -
okhttp 访问第三方api接口,有时候正常,有时候返回空
最近项目中使用了一个第三方api,可是相当奇怪,有时候返回数据正常,但是如果要是访问的数据多了,就会出现返回数据为空的情况,主要是之前没出现过这种情况,而postman直接访问的时候又正常,只有在服务器访问过多的时候才出现这个问题,然后以为是okhttp的原因,一直排查代码,直到打印了下响应头,才恍然大悟。虽然返回值为空但是响应头中显示错误码503 Service Unavailable,才明白并不是自己的错误,而是api的服务器负载过高。导致返回不了正常数据。解决办法就很简单啦,联系第三方api技术原创 2020-12-23 14:59:23 · 2874 阅读 · 0 评论 -
vert.x java post请求无法接收到post请求body中的参数
最近才了解到这个框架vert.x,这个框架在我看来是很不错的。1.首先基于netty,这个优点就不说了。2.异步非阻塞的网络框架。3.轻量级框架,启动真的是超级快,如果你用过spring的框架,对比之下就会发现它有多轻量。4.支持各种插件,redis guice 以及graphql(说实话还有很多很多,就不一一列举了。)5.官方对于每个插件都给了相应的demo案例,可以说相当良心了。其实我也没有系统的学习这个东西,就是说想试着用一下,感受一下它的强大,使用post请求的参数的时候却发生了让我意原创 2020-11-02 10:33:14 · 4583 阅读 · 1 评论 -
使用docker容器启动java项目使用./路径读取的是哪里?以及docker容器中写的某路径找不到该怎么解决。
今日来深刻理解一下容器中的./是指哪里?是容器内?还是容器外,究竟存储到了哪里呢?比如说我使用代码生成一个文件用如下代码new File(./20201023003000.xlsx )那么生成的xlsx究竟放到了哪里呢?因为我是使用的docker我也看不到,于是乎想去docker内部去看一看。首先查看容器的iddocker ps然后使用命令进入到容器内部docker exec -it 9c0484ad49c2 /bin/sh然后发现生成的excel的位置在由此可知./是指在和jar包原创 2020-10-26 11:47:46 · 9129 阅读 · 0 评论 -
对于常量池来说, 字符串 *** 的 UTF8 表示过长怎么解决
需要从一个json字符串中拿点数据,但是报了这样一个错误,这一看,难受了啊,字符串太长了,导致无法继续了上网上搜索了攻略,发现都是一些比较拉闸的办法,感觉使用起来比较复杂。。这里给大家说一个新方法。仅适用于跑程序的时候出现这种问题的情况。。。。。。直接将字符串放到一个桌面的.txt文件中,然后在程序中读取这个文件。使用如下代码需要使用guava包,引入以下 <dependency> <groupId>com.google.guava<原创 2020-10-10 15:01:56 · 7512 阅读 · 3 评论 -
使用synchronized (this) 没有上锁成功,多线程还是同时运行起来。
测试代码/** *@ClassName Test *@Description TODO *@Author luziyuan *@Date 2020-03-22 15:04 *@Version 1.0 **/public class Test { public void test() { synchronized (this) { Sy...原创 2020-03-22 17:44:53 · 14699 阅读 · 1 评论 -
这次还理解不了多线程的生产者和消费者问题,觉得我凉凉了。
首先贴一段代码消费者import java.util.List;public class Consume implements Runnable { private List container = null; private int count; public Consume(List lst) { this.container = lst; } public void ru...原创 2020-03-22 14:25:26 · 220 阅读 · 0 评论 -
上传文件到minio文件大小限制
"Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its max...原创 2020-02-03 23:17:10 · 21356 阅读 · 0 评论 -
新版IDEA(2019年以上版本)使用Gradle搭建项目报错处于离线模式无法生成gradle项目
org.gradle.internal.resolve.ArtifactResolveException: Could not download junit.jar (junit:junit:4.12): No cached version available for offline mode出现以上错误其次还有一些连带问题就是创建的Gradle项目没有src和resource目录一同出现...原创 2020-01-15 21:36:45 · 14009 阅读 · 7 评论 -
okhttp使用response.body().string()获取到的数据是一堆乱码
看看是不是请求头中设置了这句话addHeader("Accept-Encoding","gzip, deflate")直接删除掉就好了,你自己设置了之后OkHttp会认为你要按照自己处理解压缩步骤. 直接删除这个头信息后, OkHttp 会自动处理加头信息和解压缩的步骤,这样拿到的数据就会一切正常了。...原创 2020-01-12 11:54:31 · 11200 阅读 · 0 评论 -
java使用gradle build 打包报错
What went wrong:Execution failed for task ‘:jar’.archive contains more than 65535 entries.To build this archive, please enable the zip64 extension.See: https://docs.gradle.org/5.2.1/dsl/org.grad...原创 2020-01-02 15:39:23 · 5072 阅读 · 0 评论 -
InputStream的available()能否用来判断当前流是否读取到文件
读取minio中的文件的时候,通过以下代码。InputStream inputStream = minioClient.getObject(minio_bucketNameExam,fileurl);而我想做的事情是在读取完了以后判断一下inputStream.available()是否等于0,如果等于0的话,就判断没有从minio中读取到数据,如果大于0的话就判断已经读取到minio...原创 2019-12-30 17:44:21 · 3389 阅读 · 0 评论 -
springboot mybatise xml没有转义符号报的异常
Caused by: org.springframework.core.NestedIOException: Failed to parse mapping resource: ‘file [/Users/luziyuan/Desktop/work/spring_work_space/shop/target/classes/mybatis/mapper/SignIntegralMapper.xml...原创 2019-12-16 17:02:55 · 499 阅读 · 0 评论 -
java 循环导致UUID重复
是这样的,为了避免重复,将主键设置为UUID,然后没想到居然报错了,内容是主键重复,一脸蒙圈,不是说3000年不会重复吗。之前生成的时候也没出现过这种情况。但是这次我是批量插入的,然后自己仔细的看了一些文档后总结了下可能出现的原因,因为我是在循环中生成UUID,可能是由于程序循环的时候太快了,导致几乎在同一时间生成UUID,所以才会导致这种重复的情况,那么怎么解决呢?解决方案:将生成U...原创 2019-12-06 14:40:23 · 10504 阅读 · 9 评论 -
非spring 项目mybatise报错XXXMapper is not known to the MapperRegistry.
Exception in thread "main" org.apache.ibatis.binding.BindingException: Type interface example.armeria.mapper.extend.xxxMapper is not known to the MapperRegistry.好几次出现过这个错误,每次出现都得百度,真的菜的可以每次看同一篇博客解决,...原创 2019-12-04 10:44:31 · 337 阅读 · 0 评论 -
Gradle项目导入IDEA无法找到中心仓库的依赖,但是在Gradle中心仓库看是有的
首先电脑必须安装过gradle,这个直接在命令行下gradle -v就可以查看版本安装之后在项目目录下直接./gradlew build 作用检查依赖并且打包然后就会自动下载项目所需的依赖,然后就可以成功启动项目至于原因还是真的没搞明白,不明白为什么会发生这种情况。...原创 2019-10-15 20:00:49 · 1565 阅读 · 0 评论 -
后台传给前台的进度条传百分比数据
要求:前后2端的比例是中间长度的50%可以传入一个最小值,一个数组(这个数组里面的数字可以是任意个)和一个最大值,改变最小值也可以直接传入初始的百分比import java.text.DecimalFormat;/** * * @Date: 2019/7/7 * @Time: 23:14 * @Description: No Description */public class...原创 2019-07-08 15:20:43 · 2057 阅读 · 0 评论 -
java继承关系当中,子类是不是直接将父类的代码直接赋值到子类当中?
这里我们直接用一个小故事来解决这个问题:老爹(父类)将毕生所学的技能传授于儿子(子类),儿子在“继承”到了,便可以使用了。儿子所使用的技能是他自己从他老子那里学来的,不是他老子的。有时候,老爹觉得有些技能“不好”或者是儿子目前所不需要的,那么不打算把这些技能传授于儿子(private)。因此,儿子是不会知道如何使用这些技能的。不过,儿子有时候也会觉得老子某些技能不好用,然后加以改进(覆盖)。当然...原创 2019-05-09 11:04:37 · 542 阅读 · 0 评论 -
为什么在初始化子类的时候,一定要先去初始化父类的对象
自己的理解:当产生继承关系以后,在子类里面会有一个父类对象,在子类的构造器当中如果什么都不写的话,会默认有一个super()去调用父类的默认构造函数,在初始化子类的时候,一定要使父类已经存在了(所以要初始化先初始化父类对象).不然没办法调用父类的构造函数.父类必须在子类初始化之前就已经准备好....原创 2019-05-09 11:00:04 · 3820 阅读 · 1 评论 -
接口和抽象类的关系和区别
首先这2者都不可以创建对象,但是是可以创建引用的,都可以创建引用将实现类的对象传给他区别:1.抽象类只可以单继承,而接口可以多实现(抽象类的子类只能有一个父类,而接口的子类可以实现多个接口,其实本质是java不能多继承,)2.接口中必须都是抽象方法,而抽象类可以有抽象方法,也可以有普通方法3.接口中无构造方法,不可继承,可以实现,而抽象类中,可以有构造方法,但是不可以实例化4.抽象类的方...原创 2019-05-08 11:05:08 · 799 阅读 · 0 评论 -
java使用new关键字创建对象时内部究竟做一些什么事
首先一定要提示大家当我们创建对象的前提,其实就是类必须要被加载了之后才能创建对象,那么类是怎么被加载了的呢?类的加载是通过jvm加载的,jvm在加载类的时候分为3个过程,1.装载:查找并加载类的二进制数据2.链接:(1)验证:确保被加载类的正确性(2)准备:为类的静态变量分配内存,并将其初始化为默认值(3)解析:把类中的符号引用转换为直接引用()什么是符号引用:在编译时,java...原创 2019-05-08 10:32:01 · 2498 阅读 · 0 评论 -
java中父类引用等于子类对象-这样写有什么意义
其实这样做的意义很简单:就是表示类的继承性,继承是为了重(chong)用父类代码,同时为实现多态性作准备。那么什么是多态呢?自己理解的多态:方法的重写、重载与动态连接构成多态性。Java之所以引入多态的概念:原因之一是它在类的继承问题上和C++不同,后者允许多继承,这确实给其带来的非常强大的功能,但是同时复杂的继承关系也给C++开发者带来了更大的麻烦,为了规避风险,在Java中只允许单继承...原创 2019-05-03 11:27:53 · 3203 阅读 · 0 评论 -
IDEA中怎么在运行时传参数
点击下面圈住这块选择Edit Configurations在下方黑笔圈中的地方直接写入要传递的参数就可以了感谢阅读,祝开心每一天原创 2019-07-11 15:41:38 · 3111 阅读 · 0 评论 -
简单记录一下对于同步和异步的理解
首先简单的说一下什么是同步:因为多线程将异步行为引进程序,所以在需要同步时,必须有一种方法强制进行。例如:如果2个线程想要通信并且要共享一个复杂的数据结构,如链表,此时需要确保它们互不冲突,也就是必须阻止B线程在A线程读数据的过程中向链表里面写数据(A获得了锁,B必须等A释放了该锁)。为了达到这个目的,java在一个旧的的进程同步模型——监控器(Monitor)的基础上实现了一个巧妙的方案:监...原创 2019-07-16 18:48:19 · 551 阅读 · 0 评论 -
怎么将build.gradle中的依赖转化为pom文件依赖
在build目录下加一个这样的task writeNewPom << { pom { project { inceptionYear '2008' licenses { license { name 'The Apache Software ...原创 2019-07-29 13:26:37 · 2335 阅读 · 2 评论 -
mac如何将本地项目上传到github
首先要安装一个git我们使用homebrew来安装git首先安装homebrew,这个我就不细说了,网上攻略一大把1.安装gitbrew install git2.设置username和email(github每次commit都会记录他们)git config --global user.name "用户名"git config --global user.email "当初注册的邮...原创 2019-08-06 21:33:37 · 894 阅读 · 0 评论 -
mac安装好maven后,并且配置好环境变量,但是无法使用mvn命令
前提是安装maven并且配置好环境变量source ~/.bash_profile 后使用mvn -v可以正常使用,关闭终端再次打开使用mvn -v报错无法使用,报错的大致意思是无法使用命令mvn,但是奇怪的是只要使用source ~/.bash_profile就可以使用,反复试了几次,每次打开终端都需要重新source ~/.bash_profile,才可以使用mvn命令,心想不能每次要终...原创 2019-08-15 16:49:49 · 10499 阅读 · 6 评论 -
maven项目在pom文件写好后,所有关于springboot项目的依赖还是报红
不得不说,真的让人难受,因为最近换了台mac,在使用maven项目的时候,遇到了无数的坑,这里浅谈一下,让自己记住,自己真的是菜。这次遇到的问题是这样的,在搭建好的springboot项目中,写好了pom文件,并且在提示下导入依赖,pom文件也没有报错,但是依赖就是没有导入进来,点击IDEA右边的MAVEN也是没有看到Plugins,在左侧的External Libraries,也没有一个依赖,...原创 2019-08-15 23:55:47 · 6184 阅读 · 2 评论 -
Gradle项目跨域问题在servlet中解决
问题描述:公司需要换产品代码的部分东西,然后有些需要更换都是线上的产品,而我写的代码并没有部署到线上,还是在我本地,这时候就产生了一个跨域问题。这个跨域问题是什么样的:后台有一个post请求,然后前台访问这个接口的时候会默认发送一个option请求,进行“探路”,如果这个请求都没有正确的响应,那么直接会报错,只有得到正确的响应后,才会发送post请求进行真正的访问,然后将结果返回去问题1:访问...原创 2019-09-23 23:38:17 · 1060 阅读 · 0 评论 -
模拟一个跨域请求
直接打开网上的一个网站然后在浏览器的控制台输入$.post('url','{"variables":{ "jsCode":"071I2spT094c402bs9pT0JsypT0I2sp4", "sns": "wechat-pc"}}');其中$.post 是请求方式,url是接口的地址 variables是传入的属性(因为是post请求)。...原创 2019-09-23 23:43:25 · 8554 阅读 · 6 评论 -
java是怎么分配内存和释放内存的-详解
java的内存管理 对象的分配与释放分配:程序员通过new为每个对象申请内存空间(基本类型除外下面有介绍,注意局部变量和对象的实例变量的区别)所有对象都在堆中分配空间;释放:对象的释放是由垃圾回收机制决定和执行的,这样极大的简化CG(垃圾处理装置)的负担,当然同时也为程序员带来便利(例如c语言需要手动的去处理已经不在使用的对象,如果遗忘内存就会被越占越多)。可以分为2大类:堆内存与栈内存...原创 2019-05-03 10:09:00 · 5570 阅读 · 0 评论