JAVA
JAVA相关问题及知识····
工程师小A
这个作者很懒,什么都没留下…
展开
-
Spring Boot集成SpringFox 3.0与Pageable参数处理
Springfox 3.0的Swagger UI地址,从http://host/context-path/swagger-ui.html 改成了 http://host/context-path/swagger-ui/ ,OAS 3.0的api docs地址默认为/v3/api-docs,因此Security中的ignore path要进行相应修改。将Docket中的参数DocumentationType.SWAGGER_2改为DocumentationType.OAS_30。Pageable参数。原创 2023-10-23 16:37:06 · 3932 阅读 · 0 评论 -
MySQL 5.1中文文档PDF下载(百度网盘)
链接:https://pan.baidu.com/s/1AhDN7OTmFPecZ6WfAf6jog?原创 2023-07-17 10:05:55 · 5662 阅读 · 0 评论 -
IP获取归属地区(免费)
使用 http://whois.pconline.com.cn/ipJson.jsp 这个 URL 来获取 IP 地址的归属城市信息。原创 2023-07-14 17:18:08 · 11240 阅读 · 3 评论 -
这10个Lambda表达式必须掌握
【代码】这10个Lambda表达式必须掌握。原创 2023-07-06 17:38:24 · 279 阅读 · 0 评论 -
探索7个引人注目的 Java 全栈框架
Java 是一种广泛应用的编程语言,拥有众多优秀的全栈框架。在本文中,我们将深入探讨七个备受瞩目的 Java 全栈框架,包括Vaadin’s Hilla、jHipster、GraalVM、Micronaut、MicroStream、TeaVM 和 ApacheFlink。我们将详细介绍每个框架的发展历程、核心技术和优势,帮助您了解它们的适用场景和如何学习和应用。原创 2023-06-27 11:55:50 · 682 阅读 · 0 评论 -
BigDecimal有哪些坑?
BigDecimal是Java编程语言中的一个类,用于进行高精度的十进制数值计算。它提供了精确的数值表示和计算,可以处理比基本数据类型(如double和float)更大范围和更高精度的数字。Java的基本数据类型(如int、float和double)具有固定的位数和精度,但在处理金融、货币计算或需要精确小数计算的场景中,可能会出现舍入误差。BigDecimal类的目的就是为了解决这个问题。高精度:BigDecimal可以处理任意位数的整数和小数,不会出现精度丢失问题。原创 2023-06-27 11:20:55 · 446 阅读 · 0 评论 -
JPAQuery日期分组查询
JPAQuery日期分组查询。原创 2022-09-21 14:08:01 · 1082 阅读 · 0 评论 -
springboot用@value给static变量赋值
@Value("${spring.rabbitmq.host}")private static String host;运行后发现注入失败。解决方法:给参数注入,执行set方法(这里注意set方法中的static要去掉)@Value("${spring.rabbitmq.host}")public void setHost(String host) { ConnectionUtil.host = host;}...原创 2022-03-18 14:24:04 · 1695 阅读 · 0 评论 -
Target host is not specified解决方案
异常:org.apache.http.ProtocolException: Target host is not specified解决办法: 请求的url需要带上请求协议, 如http, https等, 且url不能为空原创 2022-03-11 10:14:24 · 9819 阅读 · 0 评论 -
web项目上传文件报413 (Request Entity Too Large)解决办法
报错信息:413 (Request Entity Too Large) 释义:请求体过大解决办法:取消限制(不建议)调整限制大小方案:1、如果项目使用tomcat容器的话,修改tomcat配置路径:conf -> server.xml<Connector port="8082" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort原创 2022-02-11 15:10:59 · 3961 阅读 · 0 评论 -
Java四种引用类型
Java四种引用类型 1、强引用(FinalReference): Object obj= new Object()//new 的对象都是是强引用 只要强引用存在,垃圾回收器将永远不会回收被引用的对象,哪怕内存不足时,JVM也会直接抛出OutOfMemoryError,...转载 2022-02-08 17:33:56 · 649 阅读 · 0 评论 -
字符串去除特殊字符
字符串去除特殊字符 String address= "江苏省。苏州市;工业园区 学府!"; String regEx="[\n`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。, 、?]"; address = address.replaceAll(regEx,""); System.out.println(address);...原创 2022-02-08 08:56:43 · 1876 阅读 · 2 评论 -
OBS追加上传文件
OBS追加上传文件public class OssService { private final Logger log = LoggerFactory.getLogger(OssService.class); private final HuaweiyunProperties huaweiyunProperties; public OssService(HuaweiyunProperties huaweiyunProperties){ this.huaweiyu原创 2021-11-17 15:40:29 · 549 阅读 · 0 评论 -
HttpClient /Httpmime Maven配置
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.13</version></dependency><dependency> <groupId>org.apache.httpcomponent原创 2021-09-10 17:03:49 · 2292 阅读 · 0 评论 -
ZooKeeper概念详解,最全整理
相信大家对 ZooKeeper 应该不算陌生,但是你真的了解 ZooKeeper 是什么吗?如果别人/面试官让你讲讲 ZooKeeper 是什么,你能回答到哪个地步呢? 我本人曾经使用过 ZooKeeper 作为 Dubbo 的注册中心,另外在搭建 Solr 集群的时候,我使用到了 ZooKeeper 作为 Solr 集群的管理工具。 前几天,总结项目经验的时候,我突然问自己 ZooKeepe...转载 2021-08-26 17:50:43 · 334 阅读 · 0 评论 -
IDEA安装Leetcode插件
1. 安装在 IDEA的 setting 的 Plugins 的 Marketplace 中搜索 leetcode,找到该插件,安装完成之后重启即可。2. 参数配置2.1 第一次使用前,需要进行一些基本的配置。在Setting的Tools中可以找到安装好的leetode plugin:URL选项:可以选择是国内还是国外的语言。LoginName:注册的用户名Password:密码TemFilePath:项目存放的路径,可以自己设定。CodeFileName:代码文件名字,正常是让你显示每转载 2021-07-19 08:35:48 · 650 阅读 · 2 评论 -
Java线程池七个参数详解
java多线程开发时,常常用到线程池技术,这篇文章是对创建java线程池时的七个参数的详细解释。从源码中可以看出,线程池的构造函数有7个参数,分别是corePoolSize、maximumPoolSize、keepAliveTime、unit、workQueue、threadFactory、handler。一、corePoolSize 线程池核心线程大小线程池中会维护一个最小的线程数量,即使这些线程处理空闲状态,他们也不会被销毁,除非设置了allowCoreThreadTimeOut。这里的转载 2021-07-16 15:26:39 · 2125 阅读 · 0 评论 -
SMTPSendFailedException: 501 ÇëµÇ¼exmail.qq.comÐÞ¸ÄÃÜÂë
异常:SMTPSendFailedException: 501 ÇëµÇ¼exmail.qq.comÐÞ¸ÄÃÜÂë解决方法:使用者创建的账号,系统会自动分配一个密码,不可直接使用这个密码,否则会出现上述异常,我们要用分配的账号, 通过http://exmail.qq.com/login 这个地址登录,此时会提示更换密码,按照提示更换密码,然后使用新密码就可以正常发送邮件...原创 2021-05-20 11:58:07 · 2117 阅读 · 0 评论 -
The maximum number of cell styles was exceeded. You can define up to 4000 styles in a .xls workbook
POI操作Excel中,导出的数据不是很大时,则不会有问题,而数据很多或者比较多时,就会报以下的错误,是由于cell styles太多create造成,故一般可以把cellstyle设置放到循环外面报错如下:Caused by: java.lang.IllegalStateException: The maximum number of cell styles was exceeded. You can define up to 4000 styles in a .xls workbookat转载 2021-05-19 16:19:24 · 3902 阅读 · 0 评论 -
MyBatis生成UUID
1.<selectKey>标签属性说明keyProperty:设置需要自动生成键值的列 order:可选值BEFORE和AFTER,设置为BEFORE会先执行selectKey语句,设置keyProperty属性,再执行insert语句;设置为AFTER会先执行insert语句再执行selectKey语句 resultType:结果类型,MyBatis 通常可以自己检测到,但这并不影响给它一个确切的类型。MyBatis 允许使用任何基本的数据类型作为键值,也包括String 类...原创 2021-05-12 16:02:53 · 1511 阅读 · 0 评论 -
Java被超越了,2021年5月编程语言最新排行榜出炉
TIOBE 头条TIOBE 5月编程语言排行榜新鲜出炉。前十榜单中,C、Python、Java三大鳌头仍占据前三榜单。去年11月,Python短时间的挤掉Java跃居至榜单第二名;今年5月,Python再次挤掉Java,再度夺下榜二。TIOBE排行榜是世界上权威编程语言排行榜,注意,它只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,毕竟术业有专攻。TIOBE开发语言排行榜每月更新一次,其结果作为当前业内程序开发语言的流行使用程度的有效指标。该指数可以用来检阅开发者的编程技能能否跟上...转载 2021-05-10 17:53:40 · 1020 阅读 · 0 评论 -
两年经验Java研发,5面拿下阿里 Offer(复盘总结)
为此我做了非常多的准备,最终顺利拿到offer,特分享一下这次的5轮技术面真题,以及一份阿里P7师兄整理的4月份各部门面试题,希望能够给一些正在面试阿里或计划面试大厂的朋友提供帮助。总共有五面,主要涉及的知识点复盘如下:Java部分 Jdk1.7与jdk1.8 在g1垃圾回收器上有什么区别? 常见的加载器有哪些,如何自定义一个加载器? 生产上有没有与到JVM参数调优的问题? 知道什么是内存泄露吗,如何手动去造成内存泄露? 线程池常见的一些参..原创 2021-05-08 17:54:38 · 134 阅读 · 0 评论 -
面试官:什么是mmap?
平时在面试中你肯定会经常碰见的问题就是:RocketMQ 为什么快?Kafka 为什么快?什么是 mmap?这一类的问题都逃不过的一个点就是零拷贝,虽然还有一些其他的原因,但是今天我们的话题主要就是零拷贝。传统IO在开始谈零拷贝之前,首先要对传统的 IO 方式有一个概念。基于传统的 IO 方式,底层实际上通过调用 read() 和 write() 来实现。通过 read() 把数据从硬盘读取到内核缓冲区,再复制到用户缓冲区;然后再通过 write() 写入到...原创 2021-05-08 17:45:44 · 258 阅读 · 0 评论 -
面试官:Java 反射是什么?我回答不上来!
一.概念反射就是把Java的各种成分映射成相应的Java类。Class类的构造方法是private,由JVM创建。反射是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员进行操作。例如它允许一个java的类获取他所有的成员变量和方法并且显示出来。Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pascal、C 或者 C++ 中就没有办法在程序中获得函数定义相关的信息。(来自Sun)JavaB转载 2021-05-08 17:39:50 · 64 阅读 · 0 评论 -
Java8之Optional 判空,简化判空操作
一、导语在没有用 Optional 判空之前,你是否也像下面的代码一样判空呢?如果是,请往下看,Optional 相对传统判空的优势。传统阶层判空为什么要用 Optional,它到底是什么东西你也看到了上面的那张图,一旦代码量大起来了,条件多了,代码就会变得很冗余,变得难以维护。那么此时我们就有必要了解 Optional 了。Optional 类是一个可以为 null 的容器对象。如果值存在则 isPresent() 方法会返回 true,调用 get() 方法会返回该对象。Opti转载 2021-05-08 17:37:33 · 412 阅读 · 0 评论 -
Java集合Stream类filter的使用
同样的场景:你是公司某个岗位的HR,收到了大量的简历,为了节约时间,现需按照一点规则过滤一下这些简历。比如要经常熬夜加班,所以只招收男性。//求职者的实体类public class Person { private String name;//姓名 private Integer age;//年龄 private String gender;//性别 ... //省略构造方法和getter、setter方法 ... //重写toString转载 2021-05-08 17:16:39 · 2015 阅读 · 0 评论 -
Java根据指定的路径删除文件
package com.ys.test;public class DelFile { /** * 删除文件 * @param filePathAndName 指定得路径 */ public static void delFile(String filePath) { try { java.io.File file = new java.io.File(filePath); file.del.原创 2021-04-30 11:41:21 · 773 阅读 · 0 评论 -
@NotNull怎么取得自定义的message
由于项目表单需要校验字段过多,一个一个去判空太麻烦,所以用了@NotNull注解,字段为空会抛出MethodArgumentNotValidException异常。接下来要取得@NotNull(message=“自定义异常”)里的message内容给前端显示直接贴上代码:public String getMessage(MethodArgumentNotValidException exception){ String message = exception.getBindin原创 2021-04-27 08:34:41 · 1084 阅读 · 0 评论 -
map转换成JSON
方式一:json-lib <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency>.原创 2021-04-22 09:28:07 · 7527 阅读 · 0 评论 -
SpringBoot中整合Thymeleaf模板引擎
SpringBoot 为我们提供了 Thymeleaf 自动化配置解决方案,所以我们在 SpringBoot 中使用 Thymeleaf 非常方便一、简介Thymeleaf是一个流行的模板引擎,该模板引擎采用Java语言开发,模板引擎是一个技术名词,是跨领域跨平台的概念,在Java语言体系下有模板引擎,在C#、PHP语言体系下也有模板引擎。除了thymeleaf之外还有Velocity、FreeMarker等模板引擎,功能类似。Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式转载 2021-04-21 17:51:48 · 655 阅读 · 0 评论 -
增强for、lambda for、stream 遍历List 结束方法 or 跳过循环本次循环
public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6); System.out.println("forEach"); list.forEach(num -> { if (num == 3) { return; // 结束本次循环 ..原创 2021-04-19 10:03:44 · 1835 阅读 · 0 评论 -
使用QueryDSL与SpringDataJPA完成Update&Delete
使用SpringDataJPA更新实体SpringDataJPA内置了一个save方法用于保存、更新实体内容,如果存在主键值则更新对应主键的row信息,反则是添加一条新信息,这一点跟Hibernate的saveOrUpdate方法比较相似。我们先来创建一个UserController控制器,代码如下所示:package com.yuqiyu.querydsl.sample.chapter3.controller;import com.querydsl.jpa.impl.JPAQueryFac.转载 2021-04-17 10:11:09 · 1263 阅读 · 0 评论 -
Instant、LocalDate、LocalDateTime两日期相差时间(小时、天、年)
Instant、LocalDate、LocalDateTime两日期相差时间(天): /** * 两日期差多少天 * @param start * @param end * @return 大于0 start< end */ public static long getDifferDay(Instant start,Instant end){ return start.until(end, ChronoUnit.DAY原创 2021-04-15 17:56:48 · 1307 阅读 · 0 评论 -
java各种List循环:for、forEach、lambda forEach、stream forEach、iterator性能效率对比
public static void main(String[] args) { for( int m=1;m<5;m++){ for(int n=1;n<=4;n++){ List<Integer> testList = Arrays.asList(new Integer[(int) Math.pow(100,(m))]); long t1 = System.currentTimeMillis(); .原创 2021-04-15 14:21:11 · 1109 阅读 · 0 评论 -
SpringBoot 获取静态文件路径
String rootPath = ClassUtils.getDefaultClassLoader().getResource("templates").getPath();原创 2021-04-14 18:05:13 · 346 阅读 · 0 评论 -
Java 下载成PDF格式
Java 下载成PDF格式1、maven配置 <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.28</version> </dependency> .原创 2021-04-14 18:01:48 · 560 阅读 · 0 评论 -
SpringBoot+JavaMailSender+ 腾讯企业邮箱配置
SpringBoot+JavaMailSender+ 腾讯企业邮箱配置1. 引入spring-boot-starter-mail 依赖包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </d原创 2021-04-13 16:31:47 · 11142 阅读 · 6 评论 -
UT000010: Session is invalid
引发原因:默认情况下,JHipster是无状态的,session管理策略是http.sessionCreationPolicy(SessionCreationPolicy.STATELE);而代码中用到了request.getSession().setAttribute(..)解决方案:方案一:代码中去掉request.getSession().setAttribute(..)逻辑;方案二:改变session管理策略http.sessionCreationPolicy(Sessi...原创 2021-04-12 17:08:33 · 3598 阅读 · 0 评论 -
阿里云文本转语音外呼
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.5.14</version> </dependency> <dependency>...原创 2021-04-12 11:49:49 · 737 阅读 · 2 评论 -
使用EntityGraph解决JPA下N+1问题
JPA解决N+1问题(指查询对象A,结果把A中的子对象B、C等也查询出来),我们可以使用EntityGraph。@NamedEntityGraph( name = "aWithBWithC", attributeNodes = { @NamedAttributeNode(value = "bs", subgraph = "bWithC")}, subgraphs = { @NamedSubg原创 2021-04-10 09:31:59 · 792 阅读 · 0 评论