Java
文章平均质量分 71
BigManing
积水成渊,蛟龙生焉;
展开
-
Java命令行运行错误: 找不到或无法加载主类
JDK目录介绍变量名值CLASSPATH%JAVA_HOME%\lib\tool.jar (注,jdk1.5后无需配置)JAVA_HOMED:\jdk8(JDK安装目录,视个人安装情况而定)PathPath为命令行工具指定命令的查找路径。命令的本质是可执行程序,设置后可以在命令行工具下运行java、javac、javah等常用的命令;JAVA_HOME指定了JDK(Java开发工具包)路径。设置后,无论是编译还是运行程序,类加载器都会从相应的目录中加载需要的类库。转载 2024-05-20 21:31:06 · 3938 阅读 · 0 评论 -
使用maven命令查看项目直接依赖以及间接依赖树
mvn -X dependency:tree 将生成包含项目的所有依赖关系,包括直接依赖和传递依赖。生成的依赖树将被保存在名为。>tree.txt 是一个Maven命令,用于生成项目的依赖树并将结果输出到名为tree.txt的文本文件中。原创 2023-08-19 10:34:49 · 1631 阅读 · 0 评论 -
Java方法中用Integer类型作为入参 无法改变原值的根本原因
Java方法中用Integer类型作为入参 无法改变原值的根本原因转载 2022-09-23 12:45:21 · 2618 阅读 · 2 评论 -
Flink使用AsyncDataStream异步处理数据--性能提升效果
一共有20条数据,每条数据处理需要2秒,分别使用同步、异步方式处理,一共需要多久才能处理完呢原创 2022-06-25 10:46:03 · 1262 阅读 · 0 评论 -
Oauth2各个概念详细介绍
文章目录1.什么是OAuth22.应用场景3名词说明4运行流程5授权模式5.1授权码模式5.2简化模式5.3用户名密码模式5.4客户端模式(Client Credentials Grant)1.什么是OAuth2OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容,OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth1.0即完全废止了OAuth1.0。2.应用场景转载 2021-08-16 15:12:06 · 362 阅读 · 0 评论 -
Flink作业失败【the rpc invocation size exceeds the maximum akka framesize】的解决办法
文章目录前言原因解决办法转载请标明出处:https://bigmaning.blog.csdn.net/article/details/119655649本文出自:【BigManing的博客】前言jobmanager中报错信息如下:// ...Caused by: java.io.IOException: The rpc invocation size exceeds the maximum akka framesize. at org.apache.flink.runtime.r原创 2021-08-12 22:57:16 · 3574 阅读 · 0 评论 -
你真的知道 NoSuchMethodError 发生原因和解决办法吗
文章目录**运行时抛出 NoSuchMethodError 的根本原因是什么?****为什么同一个 Class 会出现多个版本?****哪个版本的 Class 最终会被执行?****如何解决 NoSuchMethodError 错误?****其他 Jar 包冲突问题**本文介绍的 Jar 包冲突解决方法,除了解决 java.lang.NoSuchMethodError 以外,对其他相似问题也具备一定的参考价值。**参考文章**当应用程序试图调用类(静态或实例)的指定方法,而该类已不再具有该方法的定义时,就转载 2021-08-12 22:36:38 · 3056 阅读 · 1 评论 -
maven常用文章(声明周期、maven命令、镜像、远程仓库、setting文件)
深入理解maven构建生命周期和各种plugin插件理解maven命令package、install、deploy的联系与区别超级详细的Maven使用教程Maven 仓库国内镜像源收藏maven仓库设置 settings.xml与pom.xml 优先级Maven部署jar包到远程仓库...原创 2021-08-10 20:25:24 · 128 阅读 · 0 评论 -
Maven:repositories、distributionManagement、pluginRepositories中repository的区别
文章目录一、repositories中的repository认证配置二、distributionManagement中的repository三、pluginRepositories中的repository一、repositories中的repository表示从什么库地址可以下载项目依赖的库文件,比如: <repositories> <repository> <id>nexus</id> <nam转载 2021-07-27 19:04:25 · 586 阅读 · 0 评论 -
HttpSession是何时被创建的
文章目录结论getSession(false)的表现getSession(true)的表现getSession()的表现更多关于cookie session内容结论嗯 … 是server端主动调用了httpServletRequest.getSession()或者httpServletRequest.getSession(true)getSession(false)的表现获取session,如果没有,返回null。并不会新创建。@AutowiredHttpServletRequest h原创 2021-07-13 17:52:27 · 269 阅读 · 1 评论 -
XmlBeanDefinitionStoreException 【通配符的匹配很全面, 但无法找到元素 ‘xx:yyyyyyyyy‘ 的声明】的解决方案
文章目录出现的原因通用解决方案转载请标明出处:https://bigmaning.blog.csdn.net/article/details/118392931本文出自:【BigManing的博客】出现的原因是因为只声明了xml的命名空间,未定义xsi:schemaLocation中的xsd地址<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/原创 2021-07-01 18:48:09 · 815 阅读 · 0 评论 -
关于JVM突破Docker内存限制的解决方案及JVM推荐配置
以下参数配置适用于非计算密集型的大部分应用分配内存堆配置推荐2G-Xmx1344M -Xms1344M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M3G-Xmx2048M -Xms2048M -Xmn768M -XX:MaxMetaspaceSize=256M -XX:MetaspaceSize=256M4G-Xmx2688M -Xms2688M -Xmn960M -XX:MaxMetaspaceS转载 2021-06-22 14:28:40 · 512 阅读 · 0 评论 -
JVM性能调优
1、JVM调优目标:使用较小的内存占用来获得较高的吞吐量或者较低的延迟。程序在上线前的测试或运行中有时会出现一些大大小小的JVM问题,比如cpuload过高、请求延迟、tps降低等,甚至出现内存泄漏(每次垃圾收集使用的时间越来越长,垃圾收集频率越来越高,每次垃圾收集清理掉的垃圾数据越来越少)、内存溢出导致系统崩溃,因此需要对JVM进行调优,使得程序在正常运行的前提下,获得更高的用户体验和运行效率。这里有几个比较重要的指标:内存占用:程序正常运行需要的内存大小。延迟:由于垃圾收集而引起的程序转载 2021-06-10 15:58:43 · 209 阅读 · 0 评论 -
面试官,不要再问我“Java GC垃圾回收机制”了
文章目录前言楔子-JVM内存结构补充GC概述如何判断对象存活面试问题标记清除算法复制算法标记整理算法分代收集算法小结前言Java GC垃圾回收几乎是面试必问的JVM问题之一,本篇文章带领大家了解Java GC的底层原理,图文并茂,突破学习及面试瓶颈。楔子-JVM内存结构补充在上篇《[JVM之内存结构详解]》中有些内容我们没有讲,本篇结合垃圾回收机制来一起学习。还记得JVM中堆的结构图吗?图中展示了堆中三个区域:Eden、From Survivor、ToSurvivor。从图中可以也可以看到它们转载 2021-06-07 19:38:14 · 185 阅读 · 0 评论 -
面试官,Java8 JVM内存结构变了,永久代到元空间
文章目录前言JVM内存结构的细化规范和实现永久代(PermGen)元空间(Metaspace)永久代为什么被替换了小结前言在文章《[JVM之内存结构详解》中我们描述了Java7以前的JVM内存结构,但在Java8和以后版本中JVM的内存结构慢慢发生了变化。作为面试官如果你还不知道,那么面试过程中是不是有些露怯?作为面试者,如果知晓这些变化,又将成为面试中的亮点。如果在网络上搜索JVM内存结构,90%的可能会搜到Java7及以前的内存图,本篇文章将会对JVM内存结构再次细化,深入理解Java8之后的内部转载 2021-06-07 19:31:51 · 278 阅读 · 0 评论 -
JVM之内存结构详解
前言对于开发人员来说,如果不了解Java的JVM,那真的是很难写得一手好代码,很难查得一手好bug。同时,JVM也是面试环节的中重灾区。今天开始,《JVM详解》系列开启,带大家深入了解JVM相关知识。我们不能为了面试而面试,但是学习会这些核心知识你必定会成为面试与工作中“最亮的一颗星”。本系列首发于微信公众号“程序新视界”。下面,开启我们的第一篇文章《JVM之内存结构详解》。思考一下学习一项知识总该知道为什么学习吧。有人会说,这些写代码好像又用不上,貌似所有的事情JVM都替我们做好了。那就,思考一下转载 2021-06-07 19:27:35 · 144 阅读 · 0 评论 -
面试官,不要再问我“Java虚拟机类加载机制”了
前言关于Java虚拟机类加载机制往往有两方面的面试题:根据程序判断输出结果和讲讲虚拟机类加载机制的流程。其实这两类题本质上都是考察面试者对Java虚拟机类加载机制的了解。面试题现在有这样一道判断程序输出结果的面试题,先看看打印的结果是什么?public class SuperClass { static { System.out.println("SuperClass static init"); } public static String ABC = "abc";}publi转载 2021-06-04 17:47:06 · 92 阅读 · 0 评论 -
Java8 JVM运行时数据区概述 (极其详细长文)
文章目录运行时数据区概述JVM中的线程说明PC寄存器(PC Register)PC寄存器介绍使用举例问题:使用PC寄存器存储字节码指令地址有什么用?为什么使用PC寄存器存储?问题:为什么是线程私有?虚拟机栈概述虚拟机栈可能抛出的异常栈的存储单位栈帧的内部结构栈的相关面试题本地方法栈堆概述堆空间大小的设置年轻代和老年代对象的分配过程Minor GC、Major GC、 Full GC对比TLAB堆是分配对象存储的唯一选择吗?方法区方法区基本理解设置方法区内存大小方法区的内部结构文件中常量池的理解运行时常量池方转载 2021-06-04 17:15:29 · 1448 阅读 · 0 评论 -
java stream异步处理流,你真的懂了吗
文章目录一、 正常调用stream结论二、 stream开启parallel进行异步处理结论三、 stream结合CompletableFuture进行异步处理结论四、 stream结合CompletableFuture、Executor进行异步处理结论五、 最后总结转载请标明出处:http://blog.csdn.net/qq_27818541/article/details/117262880本文出自:【BigManing的博客】一、 正常调用stream @SneakyThrows原创 2021-05-25 20:02:25 · 6463 阅读 · 0 评论 -
Log4j输出格式控制--log4j的PatternLayout参数含义
参数说明例子 %c 列出logger名字空间的全称,如果加上{<层数>}表示列出从最内层算起的指定层数的名字空间 log4j配置文件参数举例 输出显示媒介 假设当前logger名字空间是"a.b.c"%ca.b.c%c{2}b.c%20c(若名字空间长度小于20,则左边用空格填充)%-20c(若名字空间长度小于20,则右边用空格填充)%.30c(若名字空间长度超过转载 2021-02-23 20:24:42 · 166 阅读 · 0 评论 -
Spring boot 之 aop pointcut execution规则详解
文章目录规则表达式含义规则表达式 组合使用或与非示例规则表达式含义任意公共方法的执行:execution(public * *(..))##public可以省略, 第一个* 代表方法的任意返回值 第二个参数代表任意包+类+方法 (..)任意参数任何一个以“set”开始的方法的执行:execution(* set*(..))UserService接口的任意方法:execution(* com.coffee.service.UserService.*(..))定义在com.coffee.转载 2021-02-23 20:18:55 · 3027 阅读 · 0 评论 -
Spring MVC HandlerInterceptorAdapter拦截器的作用、注册、执行顺序
文章目录一、拦截器作用二、拦截器方法三、拦截器执行顺序定义拦截器场景一:所有preHandle都返回true注册拦截器执行结果结论场景二:中间有preHandle返回false注册拦截器执行结果结论转载请标明出处:http://blog.csdn.net/qq_27818541/article/details/113870444本文出自:【BigManing的博客】一、拦截器作用对于请求的处理(事前处理、时候处理)二、拦截器方法public interface HandlerInterc原创 2021-02-19 19:34:29 · 1478 阅读 · 0 评论 -
SpringBoot @ConditionalOnBean、@ConditionalOnMissingBean区别、更多Conditional含义
文章目录两者区别两者相同点更多Conditional 含义转载请标明出处:https://bigmaning.blog.csdn.net/article/details/113761127本文出自:【BigManing的博客】两者区别@ConditionalOnBean : spring容器中有指定类的实例,就注入。否则,不注入。@ConditionalOnMissingBean : spring容器中没有指定类的实例,就注入。否则,不注入。两者相同点都要与@bean配合使用更多Con原创 2021-02-09 00:52:06 · 280 阅读 · 0 评论 -
分布式CAP定理,为什么不能同时满足三个特性?
前言在弄清楚这个问题之前,我们先了解一下什么是分布式的CAP定理。根据百度百科的定义,CAP定理又称CAP原则,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),最多只能同时三个特性中的两个,三者不可兼得。一、CAP的定义Consistency (一致性):“all nodes see the same data at the same time”,即更新操作成功并返回客户端后,所有节点在同一时间转载 2021-01-22 16:29:33 · 302 阅读 · 0 评论 -
Spring Boot中@ConditionalOnProperty使用详解
在Spring Boot的自动配置中经常看到@ConditionalOnProperty注解的使用,本篇文章带大家来了解一下该注解的功能。Spring Boot中的使用在Spring Boot的源码中,比如涉及到Http编码的自动配置、数据源类型的自动配置等大量的使用到了@ConditionalOnProperty的注解。HttpEncodingAutoConfiguration类中部分源代码:@Configuration(proxyBeanMethods = false)@EnableConfi转载 2021-01-21 19:34:56 · 454 阅读 · 0 评论 -
swagger 报错 Multiple Dockets with the same group name are not supported
文章目录报错log原因分析解决办法转载请标明出处:http://blog.csdn.net/qq_27818541/article/details/112908605本文出自:【BigManing的博客】报错log启动项目时 ,报错Caused by: java.lang.IllegalStateException: Multiple Dockets with the same group name are not supported. The following duplicate gro原创 2021-01-20 19:29:44 · 4801 阅读 · 0 评论 -
Nacos - 服务注册中心和配置中心
文章目录前言Nacos作为服务注册中心实例1、pom依赖2、依赖3、启动类4、业务代码5、启动测试Nacos作为配置中心实例1、pom依赖2、依赖3、启动类4、业务类5、Nacos 后台服务中心配置6、测试多环境项目管理前言Nacos是阿里巴巴推出的一款新的开源项目,致力于在微服务中更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。主要作用就是服务注册和配置,用一个Nacos,相当于代替了原来SpringCloud系列中的Eureka+Config+Bus。官网地址:官网、文档下载地址:转载 2021-01-19 14:59:47 · 880 阅读 · 1 评论 -
Stream toMap()出现java.lang.IllegalStateException: Duplicate key原因分析、解决办法
文章目录异常信息原因分析解决办法转载请标明出处:http://blog.csdn.net/qq_27818541/article/details/112294983本文出自:【BigManing的博客】异常信息使用以下写法 AtomicInteger num = new AtomicInteger(0); Map<String, Integer> city_randomtime = Stream.of("北京", "上海", "天津", "上海")原创 2021-01-06 20:07:28 · 1069 阅读 · 0 评论 -
Stream 使用Comparator进行升序排列、降序排列
文章目录升序排序降序排序更多介绍升序排序Stream.of(100,20,399).sorted((o1, o2) -> o1-o2).forEach(System.out::println);结果:20100399降序排序Stream.of(100,20,399).sorted((o1, o2) -> o2-o1).forEach(System.out::println);结果:39910020更多介绍Comparable和Comparator...原创 2020-12-29 11:34:22 · 1059 阅读 · 0 评论 -
修改nginx 配置支持websocket 协议转发、支持长连接不中断
修改ngixn配置 支持websocketserver { listen 80; listen 443; ssl on; # 证书位置 ssl_certificate /etc/nginx/www.bigmaning.crt; # 密钥位置 ssl_certificate_key /etc/nginx/private.key; ssl_session_timeout 5m; ssl_session_cache shared原创 2020-12-15 15:05:05 · 2076 阅读 · 0 评论 -
SpringBoot2.0集成WebSocket,实现后台向前端推送信息
SpringBoot+WebSocket集成文章目录SpringBoot+WebSocket集成什么是WebSocket?为什么需要 WebSocket?前言maven依赖WebSocketConfigWebSocketServer消息推送页面发起运行效果后续Websocker注入Bean问题netty-websocket-spring-boot-starterSpringboot2+Netty+WebsocketServerEndpointExporter错误正式项目的前端WebSocket框架 GoE转载 2020-12-15 14:15:57 · 191 阅读 · 0 评论 -
什么是跨域CORS?跨域基本概念详解;跨域解决方法
文章目录一、为什么会出现跨域问题二、什么是跨域三、非同源限制四、跨域解决方法【1】 **设置document.domain解决无法读取非同源网页的 Cookie问题**【2】 **跨文档通信 API:window.postMessage()**【3】 **JSONP**①原生实现:② jQuery ajax:③ Vue.js【4】 **CORS****【前端设置】**①原生ajax② jQuery ajax③vue-resource④ axios**【服务端设置】**① Java后台② Nodejs后台③转载 2020-12-14 20:46:57 · 1298 阅读 · 0 评论 -
SSO - 单点登录原理 - CAS流程详解
文章目录CAS的详细登录流程1、第一次访问www.qiandu.com标号1标号2标号3标号4标号5标号6标号7标号8标号9标号102、第二次访问www.qiandu.com标号123、访问mail.qiandu.com标号13标号14标号15标号16标号17标号18标号19标号20CAS的详细登录流程上图是3个登录场景,分别为:第一次访问www.qiandu.com、第二次访问、以及登录状态下第一次访问mail.qiandu.com。下面就详细说明上图中每个数字标号做了什么,以及相关的请求内容,响转载 2020-12-11 20:02:31 · 810 阅读 · 0 评论 -
SSO- 单点登陆简单原理
文章目录sso一、共享cookie方式的单点登陆1、原理2、缺点二、标准的单点登陆1、CAS标准流程2、流程详解转载请标明出处:http://blog.csdn.net/qq_27818541/article/details/110881562本文出自:【BigManing的博客】ssoSingle Sign On,简称就是SSO。它的解释是:在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统。一、共享cookie方式的单点登陆1、原理这个实现比较简单,也好理解。 原理原创 2020-12-08 21:12:27 · 256 阅读 · 2 评论 -
java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: HourOfDay异常原因
java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: HourOfDay LocalDate now = LocalDate.now(); String day = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); String time = now.format(DateTimeFor转载 2020-12-03 20:48:05 · 7442 阅读 · 0 评论 -
Java 日期格式化SimpleDateFormat线程不安全与DateTimeFormatter线程安全
文章目录SimpleDateFormat使用方式特点DateTimeFormatter使用方式特点转载请标明出处:http://blog.csdn.net/qq_27818541/article/details/110563746本文出自:【BigManing的博客】SimpleDateFormat使用方式SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String format原创 2020-12-03 20:41:39 · 1239 阅读 · 2 评论 -
超详细的Guava RateLimiter限流原理解析
文章目录前言限流的基础算法Guava RateLimiter平滑突发限流平滑预热限流源码分析平滑突发限流平滑预热限流后记前言限流是保护高并发系统的三把利器之一,另外两个是缓存和降级。限流在很多场景中用来限制并发和请求量,比如说秒杀抢购,保护自身系统和下游系统不被巨型流量冲垮等。限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务或进行流量整形。常用的限流方式和场景有:限制总并发数(比如数据库连接池、线程池)、限制瞬时并发数(如nginx转载 2020-11-30 14:59:00 · 566 阅读 · 0 评论 -
Elasticsearch - 新增数据时 出现index_not_found_exception的解决办法
文章目录前言解决方法1:开启es自动创建索引解决方法2:不开启es自动创建索引转载请标明出处:http://blog.csdn.net/qq_27818541/article/details/108758831本文出自:【BigManing的博客】前言新增数据时出现index_not_found_exception ,表明该index不存在。出现的原因:es未开启自动创建索引功能或者不想启动es自动创建索引,但又没手动创建索引解决方法1:开启es自动创建索引手动修改/etc/ela原创 2020-09-23 18:47:57 · 16714 阅读 · 6 评论 -
Elasticsearch - 查询数据时 index_not_found_exception 解决办法
文章目录1、背景2、问题分析3、解决办法4、indicesOptions 说明转载请标明出处:http://blog.csdn.net/qq_27818541/article/details/108671948本文出自:【BigManing的博客】1、背景我这里的索引是按天建立的,在查询多索引的时候报错:Suppressed: org.elasticsearch.client.ResponseException: method [POST], host [http://127.0.0.1:9原创 2020-09-18 20:17:30 · 21061 阅读 · 0 评论 -
log4j 在每行日志上添加自定义字段(例如登陆姓名、ip地址)用于审计
文章目录前言1、配置log模式2、配置MDC3、输出log转载请标明出处:http://blog.csdn.net/qq_27818541/article/details/108607640本文出自:【BigManing的博客】前言项目中有这样一个需求:对于重要资源的操作 需要定位到操作者,以便于后期审计使用。 网上关于这方面资料很多,这里主要使用到MDC 这个类,详细介绍。使用原理:提前获知用户数据,存入MDC中然后在log配置文件中引用存入的数据(使用%X{key}获取值)在请求原创 2020-09-15 20:06:18 · 1498 阅读 · 0 评论