java学习
文章平均质量分 62
86上山了、
这个作者很懒,什么都没留下…
展开
-
fastjson:对象转化成json出现$ref
我们可以将List中的对象使用BeanUtil这样的工具,拷贝为新的对象。(BeanUtil创建出来的对象跟原来的对象不是同一个对象)但是因为全局配置是在我们项目的基础jar包中配置的,改动基础jar包会有风险,会对前面所有的依赖项目产生影响。所以也不采用这种方式。:即A对象引用B对象,B对象又引用A对象,这种情况是要极力避免的,因为会导致堆栈溢出(StackOverflowError);如果循环引用的数据,前端用不到,那可以在实体类对应的字段加注解禁止序列化,这样前端就不会接收到这个字段的引用数据了。原创 2023-01-11 11:46:31 · 1541 阅读 · 1 评论 -
讲透JAVA Stream的collect用法与原理
前面我们演示了很多Collectors工具类中提供的收集器的用法,上一节中列出来的Collectors提供的常用收集器,也可以覆盖大部分场景的开发诉求了。但也许在项目中,我们会遇到一些定制化的场景,现有的收集器无法满足我们的诉求,这个时候,我们也可以自己来实现定制化的收集器。我们知道,所谓的收集器,其实就是一个Collector接口的具体实现类。所以如果想要定制自己的收集器,首先要先了解Collector接口到底有哪些方法需要我们去实现,以及各个方法的作用与用途。接口名称功能含义说明。转载 2023-01-09 11:30:47 · 652 阅读 · 0 评论 -
吃透JAVA的Stream流操作
如果纯粹是个String字符串拼接的诉求,确实没有必要使用Stream来实现,毕竟杀鸡焉用牛刀嘛~ 但是可以看看下面给出的这个示例,便可以感受出使用Stream进行字符串拼接的真正魅力所在。因为Stream主要用于对集合数据的处理场景,所以除了上面几种获取简单结果的终止方法之外,更多的场景是获取一个集合类的结果对象,比如List、Set或者HashMap等。并行流类似于多线程在并行处理,所以与多线程场景相关的一些问题同样会存在,比如死锁等问题,所以在并行流终止执行的函数逻辑,必须要保证线程安全。转载 2023-01-06 14:17:20 · 320 阅读 · 0 评论 -
ConfigurationProperties注解详解
根据以上总结看到@ConfigurationProperties的几种使用方式@Configuration //可以换成@Component @ConfigurationProperties(prefix = "mail") public class ConfigProperties {} }注:未指定@Configuration注解,需要在启动类加@EnableConfigurationProperties注解} }转载 2023-01-05 15:09:15 · 5586 阅读 · 0 评论 -
Bean实例化(Instantiation)多种方式
ServiceLoaderFactoryBean使用的是ServiceLoader,ServiceLoader默认读取的是/META-INF/services/下的文件,而value="org.example.factory.UserFactory"刚好就是文件名,从而serviceType获取到的是文件内存储的UserFactory的所有实现类全路径,通过ServiceLoader.load(getServiceType(), this.beanClassLoader)方法加载得到了bean对象。转载 2022-12-15 15:18:02 · 487 阅读 · 0 评论 -
Java Timer(定时器)
schedule(TimerTask task , Date time) // 安排在 "指定的时间" 执行 指定的任务。原创 2022-12-14 16:53:56 · 8087 阅读 · 0 评论 -
JUC之Phaser
Phaser是一个灵活的线程同步工具,他包含了CyclicBarrier和CountDownLatch的相关功能。题目:5个学生一起参加考试,一共有三道题,要求所有学生到齐才能开始考试,全部同学都做完第一题,学生才能继续做第二题,全部学生做完了第二题,才能做第三题,所有学生都做完的第三题,考试才结束。分析这个题目:这是一个多线程(5个学生)分阶段问题(考试、第一题做完、第二题做完、第三题做完、结束),所以很适合用Phaser解决这个问题。MyPhaser类继承自Phaser,重写了每个阶段完成以后的自动调用原创 2022-12-05 14:40:17 · 190 阅读 · 0 评论 -
为什么1月在Java日历中为0?
您可以通过在添加月份之前减去 1 来再次完成所有这些工作,然后进行模数运算,最后再次加 1 …也就是解决一个潜在的问题。12 月后的 1 个月是 1 月,但要正常计算出这一点,您必须使用月份数并进行数学运算。我可以通过使用 12 的模数来快速解决这个问题。现在让我们考虑一下 0 - 11 个月的问题。这可以正常工作 11 个月,直到 11 月…因为用月份做数学要容易得多。原创 2022-11-01 17:54:25 · 233 阅读 · 0 评论 -
IDEA报错:Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found
是版本号没有和父项目保持一致。原创 2022-09-14 17:04:17 · 342 阅读 · 0 评论 -
高效解决 springBoot 集成 Redis 出现的: Unable to connect to Redis 问题
报错如下:org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to 192.168.136.222:6379 at org.springframework.data.redis.connection.lettuce转载 2022-04-19 18:09:02 · 1867 阅读 · 0 评论 -
MyBatis中井号与美元符号的区别
#{变量名}可以进行预编译、类型匹配等操作,#{变量名}会转化为jdbc的类型。select * from tablename where id = #{id}假设id的值为12,其中如果数据库字段id为字符型,那么#{id}表示的就是’12’,如果id为整型,那么id就是12,并且MyBatis会将上面SQL语句转化为jdbc的select * from tablename where id=?,把?参数设置为id的值。${变量名}不进行数据类型匹配,直接替换。select * from ..原创 2022-03-22 09:20:58 · 1183 阅读 · 0 评论 -
解决方法整合-----The following has evaluated to null or missing
问题描述servlet请求转发到freemarker中,访问时报错如下Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#els原创 2021-10-24 11:18:44 · 6799 阅读 · 1 评论 -
使用idea创建JavaWeb项目
File—New—Project—Java Enterprise对应的tomcat以及create web.xml起名并选择存储位置 点ok在WEB-INF目录下右键选择NEW->Directory,创建classes和lib两个目录。WEB-INF/classes:用来存放编译后的java文件。WEB-INF/lib:用来存放java类库文件(.jar)点击File->Project Structure–>点击Modules–>然后选中项目example.原创 2021-10-11 19:42:05 · 129 阅读 · 0 评论 -
IDEA web项目导出 war 包
首先你要把你的web项目导入到IDEA中,并且成功的运行起来。然后再来谈 导出war 的问题。以这个为前提,我们来看看如何导出 war 包。1.首先看IDEA 的右上角,我标出来的图标,点击它如果没有就点击左上角的 File —>Project Structure2.然后再最左边选择Artifacts。右上角 Type 选择 Web Application : Archive3.选择之后,最下面会出现一个框框(有或者没有无所谓),不用管它,,最好还是勾选上include inproj原创 2021-10-11 18:19:23 · 5230 阅读 · 0 评论 -
给idea设置默认使用的maven配置和jdk
maven一、前言大家都知道,java开发中最经常使用的开发工具是Maven,最近看新同事在使用idea,我也下载了一个,准备尝试一下。而maven是非诚方便进行工程管理的,至少管理jar包,是非常方便的,我还记得我刚刚入门的时候,都是手动的一个一个jar包copy到工程的lib中的。我们都知道maven会在本地电脑上形成一个maven仓库,默认是在c盘的,而且随着maven使用的越多,jar包越多,这个仓库将会非常的大,我经历过的可以达到5G。这对我们本来就不大的C盘会带来不小的压力,很可能早成原创 2021-05-18 12:05:54 · 3534 阅读 · 0 评论 -
导入新项目的时候报错,无法导入依赖
导入新项目的时候报错,无法导入依赖问题描述在学习maven时候,导入项目进行学习,有时候出现如下问题1.project无法读取到指定文件2.导入依赖爆红,但是无论如何update,reimport都没有作用无论如何update都没有用,其实原因很简单!maven未使用本地仓库找到自己本地保存的目录,点击->OK可能还需要设置jdk修改成项目需要的jdk版本,即可...原创 2021-05-18 11:59:41 · 280 阅读 · 0 评论 -
maven配置,以及项目“Dependency ‘xxxx‘ not found“解决过程
项目场景:提示:这里简述项目相关背景:例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大)问题描述:提示:这里描述项目中遇到的问题:例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据APP 中接收数据代码:@Override public void run() { bytes = mmInStream.read(buffer); mHandler.obta转载 2021-05-18 10:44:50 · 2412 阅读 · 0 评论 -
idea中lib目录下的jar包的引用
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器在ubuntu16中,当我们输入sudo apt-get update会失败,这里有很多原因转载 2021-04-15 10:12:15 · 6387 阅读 · 0 评论