
java
Bestest~
学习 分享 交流 记录 成长
展开
-
idea Content is too large (47.59 MB), limit is 20.97 MB解决方法
idea文件过大解决方法转载 2023-01-05 17:30:42 · 2740 阅读 · 0 评论 -
SpringBoot集成MongoDB GridFS基本使用
SpringBoot集成MongoDB GridFS基本使用原创 2023-01-05 17:13:28 · 1048 阅读 · 0 评论 -
java实现deflate数据压缩和gzip数据压缩
java实现deflate数据压缩和gzip数据压缩。原创 2023-01-05 10:15:16 · 1040 阅读 · 0 评论 -
百度语音识别api使用(Java版本)
百度语音识别api使用(Java版本)原创 2022-11-30 16:47:17 · 2182 阅读 · 0 评论 -
springBoot集成mongo相关常用基础和复杂操作
springBoot集成mongo相关常用基础和复杂操作。原创 2022-09-07 15:01:10 · 380 阅读 · 0 评论 -
mysql的json类型字段操作和注意事项
mysql的json类型字段操作和注意事项。原创 2022-09-07 14:23:00 · 4542 阅读 · 0 评论 -
java利用hutool工具快速导出csv文件——流下载
java利用hutool工具快速导出csv文件——流下载原创 2022-09-07 13:31:09 · 5104 阅读 · 0 评论 -
java实现图片合成gif图——输出到具体路径或流数据上传
【代码】java实现图片合成gif图——输出到具体路径或流数据上传。原创 2022-08-24 13:50:18 · 970 阅读 · 0 评论 -
SpringBoot - 创建可以依赖的JAR包
出现问题正常情况下,Spring Boot 项目是一个可以独立运行的项目,也就是说打包的 JAR 是可执行 JAR,它的类放在 BOOT-INF 目录下,如果直接作为其他项目的依赖,会找不到类。解决问题编辑项目的 pom.xml 文件,配置 Maven 插件生成一个单独的 artifact,这个单独的 artifact 可以作为其他项目的依赖`注意`:classifier 指定了可执行 JAR 的名字,而'默认的 JAR 则作为可以被其他程序依赖的 artifact'。<plugin&g转载 2021-09-10 13:34:28 · 952 阅读 · 0 评论 -
Maven POM中的各种scope理解和应用记录汇总
文章目录一、基本区别描述1.1 compile1.2 provided1.3 runtime1.4 test1.5 system1.6 import一、基本区别描述1.1 compile默认的scope。任何定义在compile scope下的依赖将会在所有的class paths下可用。maven工程会将其打包到最终的artifact中。如果你构建一个WAR类型的artifact,那么在compile scope下引用的JAR文件将'会被集成到WAR文件内'。1.2 provided这原创 2021-09-10 11:31:36 · 1679 阅读 · 0 评论 -
Java字符序列CharSequence接口学习记录
文章目录一、基本认识二、基本注意事项三、学习和理解3.1 在线文档3.2 理解注意一、基本认识CharSequence是java.lang包下的一个接口,此接口对应不同的实现类,如CharBuffer、String、StringBuffer、StringBuilderCharSequence接口的源码package java.lang;import java.util.NoSuchElementException;import java.util.PrimitiveIterator;原创 2021-04-28 17:11:35 · 777 阅读 · 0 评论 -
Apache HttpClient之fluent API的使用
pom引入<!-- Apache HttpClient fluent --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>fluent-hc</artifactId> <version>4.5.8</version>原创 2021-04-22 11:09:39 · 697 阅读 · 0 评论 -
解决@JsonFormat注解后查询日期少一天的问题
问题前 @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "UTC") private Date dateTime;解决 @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai") private D原创 2021-04-09 11:28:39 · 2517 阅读 · 0 评论 -
多线程之核心线程如何设置理解记录
文章目录概念描述1.1 CPU密集型1.2 IO密集型总结概念描述1.1 CPU密集型`概念定义:` cpu密集型又称计算密集型,指大部分时间用来做计算逻辑判断等CPU动作的程序称为CPU密集型任务。 该类型的任务需要进行大量的计算,主要消耗CPU资源。这种计算密集型任务虽然也可以用多任务完成, 但是任务越多,花在任务切换的时间就越多,CPU执行任务的效率就越低, 所以,要最高效地利用CPU,计算密集型任务同时进行的数量应当等于CPU的核心数。`特点:` 1、CPU 使用率较高(也就是原创 2021-04-07 15:21:23 · 408 阅读 · 0 评论 -
java计算根据两组经纬度计算之间距离
public Result campusQueryByLatAndLng(double lng1, double lat1,Double temp) { // 计算2.5km内 0.048=500m if (temp == null) { temp = 0.024; } // 0.012246 0.01125 // 0.0225 0.0225 // 0.0192 ...原创 2021-03-26 15:23:09 · 331 阅读 · 0 评论 -
解决mybatis查询日期小八个小时问题记录
一、查询数据库统默认时区二、查看数据库连接用的时区?useUnicode=true&characterEncoding=UTF-8&serverTimezone=AUTC&useSSL=false修改?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false补充JAVA日期转换:public String dateToString(Da原创 2021-03-24 18:43:31 · 1508 阅读 · 0 评论 -
Java8集合常用操作记录和实现原理学习记录
1、list对象集合查询是否存在重复主键并筛选出来 // 学员编号重复计数情况 Map<Object, Long> collectCount = diaExamsInfosPoArrayList.stream().collect( Collectors.groupingBy(DiaExamsInfosPo::getStuNumber, Collectors.counting())); // 筛选重复大于1的信息值原创 2021-03-24 15:34:36 · 193 阅读 · 0 评论 -
JVM——虚拟机参数配置学习记录
-XX:+PrintGCDetails 堆的JVM常见配置方式:-Xss //选置栈内存的大小-Xms: //初始堆大小-Xmx: //最大堆大小-XX:NewSize=n: //设置年轻代大小-XX:NewRatio=n: //设置年轻代和年老代的比值。比如设置为3,表示年轻代与年老代比值为1:3-XX:SurvivorRatio=n: //年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。比如设置为3,表示Eden:Survivor=3:2,一个Surviv原创 2021-02-20 14:35:12 · 282 阅读 · 0 评论 -
java中int和Integer的细微区别
1、Integer是int的包装类,int则是java的一种基本数据类型 2、Integer变量必须实例化后才能使用,而int变量不需要 3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 4、Integer的默认值是null,int的默认值是01、由于Integer变量实际上是对一个Integer对象的引用,所以两个通过new生成的Integer变量==比较为false,因为new生成的是两个对象,其内存地址不同。可通过转载 2021-02-07 11:16:52 · 174 阅读 · 1 评论 -
@RequestParam与@RequestBody注解理解过程记录
一、@RequestParam注解@Target(ElementType.PARAMETER)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface RequestParam { @AliasFor("name") String value() default ""; @AliasFor("value") String name() default ""; boolean required() default原创 2021-01-31 16:32:45 · 305 阅读 · 0 评论 -
Java上传图片到阿里云OSS
一、pom中引入阿里云sdk <!-- aliYun OSS --> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.10.2</version> </de原创 2021-01-29 14:50:23 · 610 阅读 · 2 评论 -
Redis遇到的问题Could not resolve type id ** into a subtype解决办法
提示:以下是本篇文章正文内容,下面案例可供参考场景描述:现有A、B两个服务。A服务用于授权,授权成功会存储对象到redis中。B服务通过token去redis中拿到object对象后转换成业务对象是出现该种错误信息。原因分析:A服务存储对象到redis中时候会对应有一个全路径类名限定。在通过token进行取对象值并强制转换的时候,如果接收对象的全路径名称和redis中保存的不一样的话就会转换失败报错。解决办法:`方法一:`获取并转换接收redis中的对象时将接收对象的全路径与redi原创 2021-01-25 11:15:52 · 9371 阅读 · 7 评论 -
Warning:(36, 30) java: java.net.URLEncoder中的encode(java.lang.String)已过时
一、查看过时的encode方法/** * Translates a string into {@code x-www-form-urlencoded} * format. This method uses the platform's default encoding * as the encoding scheme to obtain the bytes for unsafe characters. * * @param s {@code Str原创 2020-12-15 12:07:26 · 5093 阅读 · 0 评论 -
JVM——内存管理和垃圾回收学习整理
文章目录一、基础概念1.1 何为GC1.2 何为垃圾1.3 垃圾产生的情况举例1.3.1 案例一1.3.2 案例二1.3.3 案例三1.3.4 案例四1.3.5 案例五二、四种引用类型2.1 强引用2.2 软引用2.3 弱引用2.4 虚引用三、典型的垃圾回收算法3.1 Mark-Sweep(标记-清除)算法3.2 Copying(复制)算法3.3 Mark-Compact(标记-整理)算法3.4 Generational Collection(分代收集)算法四、典型的垃圾回收器4.1 Serial&转载 2020-12-03 14:33:27 · 319 阅读 · 0 评论 -
JVM——自定义类加载器整理
文章目录一、自定义类加载器的应用场景1.1 加密1.2 从非标准的来源加载代码1.3 实际综合运用二、双亲委派模型2.1 双亲委派模型的工作过程2.2 双亲委派模型的好处三、自定义类加载器3.1 案例一(Class.forName)3.1.1 自定义一个People.java类做例子3.1.2 自定义类加载器3.1.3 在主函数里使用3.1.4 运行结果3.2 案例二(loadClass)参考转载一、自定义类加载器的应用场景1.1 加密Java代码可以轻易的被反编译,如果你需要把自己的代码进行加密转载 2020-12-03 11:34:07 · 289 阅读 · 0 评论 -
JVM——类加载机制原理总结
一、类加载器的组织结构1、Bootstrap ClassLoader:根类(或叫启动、引导类加载器)加载器它负责加载Java的核心类(如String、System等)。它比较特殊,因为它是由`原生C++`代码实现的,并不是java.lang.ClassLoader的子类,所以下面的输出结果为null:System.out.println(String.class.getClassLoader());2、Extension ClassLoader:扩展类加载器。它负责加载JRE的`扩展目录(原创 2020-12-02 18:13:11 · 635 阅读 · 0 评论 -
web项目启动报404问题的汇总【解决】
1.启动项目报404问题的解决方法。场景一:pom文件中添加相关架包后重启项目报404问题。解决方法:查看本页面modules最右部分有没有多出红色的错误消息,有的话就删掉。继续切换到facets栏:查看以下两个路径是否跟当前项目路径一致。web.xml路径:web路径:不一样的话则编辑修改到对应路径。保存,重启项目即可。场景二:项目路径不匹配引...原创 2018-12-12 14:50:00 · 11071 阅读 · 1 评论 -
JVM——Java虚拟机架构
一、基础概念`Java虚拟机`(Java virtualmachine)实现了Java语言最重要的特征:即`平台无关性`。平台无关性`原理`:编译后的 Java程序(.class文件)由 JVM执行。JVM屏蔽了与具体平台相关的信息,使程序可以在多种平台上不加修改地运行。Java虚拟机在'执行字节码'时,把字节码'解释'成具体平台上的机器指令执行。因此实现`Java平台无关性`。二、JVM结构图理解`JVM` = '类加载器 classloader' + '执行引擎 execution原创 2020-12-02 10:21:11 · 213 阅读 · 0 评论 -
并发控制和锁问题简易版理解整理——<七>
一、悲观并发控制1.1 悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。1.2 悲观锁中包含的概念`读写锁(又叫共享互斥锁)`'共享锁、原创 2020-12-01 16:44:28 · 263 阅读 · 1 评论 -
微信根据openId发送模板消息
一、发送前分析1.1 微信官方文档二、发送步骤2.1 获取AccessToken/** * 获取微信公众号的AccessToken * * @return */public String getAccessToken(String url) { String accessToken = (String) redisUtils.getValueByKey(ToolUtils.accessTokenKey); if (!StringUtils.isEmpty(access原创 2020-11-09 17:43:19 · 550 阅读 · 1 评论 -
解决Java上传文件到Linux 没有读权限
问题描述上传图片后想对文件进行查看发现一直是403错误,到linux下找到上传文件的,发现其群组和其他组没有读的权限,修改一下权限则可以访问。由此判定由权限问题导致的403错误。导致权限不足原因<1> tomcat版本差别高版本的tomcat会出现这种问题解决问题<1> 检查linux-- 查看系统默认配置vim /etc/profilelinux文件访问默认权限与umask有关,如果是002或022就正常没有问题。<2> 检查tomcat[原创 2020-11-09 10:20:29 · 2209 阅读 · 0 评论 -
记录SpringBoot下打包成war并部署在tomcat下问题及解决
一、问题记录产生原因1.1 pom中直接引入后clean->package<packaging>war</packaging>1.2 问题记录打包放在tomcat的webapps进行部署,nginx配置后访问接口一直出现400的错误,本地运行又可以访问,想到问题可能就出在打包方式上了。查询网上多种方式,最后记录一种解决方式进行记录。二、解决方式2.1 步骤一:pom修改<!-- web控制--><dependency> &l原创 2020-09-10 10:13:21 · 290 阅读 · 0 评论 -
springBoot集成过滤器进行跨域问题的解决
一、概述原理cors是"Cross-Origin Resource Sharing"的简称,跨域资源共享(CORS) 是一种机制,它使用额外的 HTTP 头来告诉浏览器 让运行在一个 origin (domain) 上的Web应用被准许访问来自不同源服务器上的指定的资源。当一个资源从与该资源本身所在的服务器不同的域、协议或端口请求一个资源时,资源会发起一个跨域 HTTP 请求。出于安全原因,浏览器限制从脚本内发起的跨源HTTP请求。 例如,XMLHttpRequest和Fetch API遵循同源策原创 2020-09-07 13:57:33 · 730 阅读 · 0 评论 -
git历史命令总结整理
一、笔记整理git log 显示当前分支的版本历史git diff 显示暂存区和工作区的差异git diff HEAD 显示工作区与当前分支最新commit之间的差异git cherry-pick <commit> 选择一个commit,合并进当前分--初始化$ git init $ git remote add origin 项目地址修改/添加文件,否则与原文件相比就没有变动。$ git pull origin master$ git ad原创 2020-09-07 11:10:28 · 607 阅读 · 0 评论 -
ThreadLocal的介绍和使用记录
1原创 2020-09-07 10:58:12 · 162 阅读 · 0 评论 -
List集合遍历java.util.ConcurrentModificationException问题解决
一、解决方式,采用如下方式即可 @SuppressWarnings("unchecked") List<UserInfosDto> userInfosDtoList = response.getData(); // logger.info("信息的返回结果:{}", userInfosDtoList.toString()); Iterator<UserInfosDto> iterator = userInfosDtoList.iterator(); whil原创 2020-09-04 11:07:33 · 632 阅读 · 0 评论 -
使用redisTemplate集群模式下执行lua脚本报错的问题解决过程
一、问题环境介绍1.1 pom引入 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.0.2.RELEASE</version> </dependency原创 2020-08-30 11:20:33 · 4201 阅读 · 7 评论 -
springBoot引用定时任务出现的问题和解决记录
一、快速使用@Component@EnableScheduling@Slf4j@RequiredArgsConstructor(onConstructor = @__(@Autowired))public class ScheduleMessage { private final AliCloudTools aliCloudTools; @Resource private UserService userService; /** * 每60秒模板消息原创 2020-08-29 11:21:11 · 1067 阅读 · 0 评论 -
mybatis注解开发注意事项
常用开发方式一、xml方式二、注解方式(常用方式) 开发过程中比较简单的操作,复杂的操作时候容易出现各种问题,如在sql中引入in时候必须按照下面方式才能引入。@Select({ "<script>", "select", "*", "from delivery_spot", "where is_valid=1 and id in", "<foreach collection='rang原创 2020-08-29 10:36:59 · 233 阅读 · 0 评论 -
@Cacheable和@Transactional注解失效的解决方法
一、@Cacheable注解失效的问题1、实体类没有进行序列化。同一个类中方法A内部调用有注解的方法B,方法B不走缓存原创 2020-08-19 18:01:23 · 836 阅读 · 0 评论