![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后端
文章平均质量分 82
Wyunpeng
这个作者很懒,什么都没留下…
展开
-
java反射
java反射速览原创 2022-09-12 23:22:17 · 289 阅读 · 0 评论 -
单例模式的4种写法
单例模式是开发过程中常用的模式之一,首先了解下单例模式的四大原则:构造方法私有;以静态方法或枚举返回实例;确保实例只有一个,尤其是多线程环境;确保反射或反序列化时不会重新构建对象;饿汉模式饿汉模式在类被初始化时就创建对象,以空间换时间,故不存在线程安全问题。public class SingleTon{ // 创建对象 private static SingleTon INSTANCE = new SingleTon(); // 构造方法私有 private S原创 2022-03-02 15:42:50 · 524 阅读 · 0 评论 -
Java IO流详解
简介java的io是实现输入和输出的基础,可以方便的实现数据的输入和输出操作。在java中把不同的输入/输出源(键盘,文件,网络连接等)抽象表述为“流”(stream)。通过流的形式允许java程序使用相同的方式来访问不同的输入/输出源。流是一种有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两个设备间的传输成为流,流的本质是数据传输。流的分类:● 按流向:输入流、输出流;● 按数据类型:字节流(8位字节)、字符流(16位字节)。字节流继承关系字节输出流(OutPutS原创 2022-02-09 22:25:43 · 11671 阅读 · 0 评论 -
DateFormat报NumberFormatException
这几天在开发一个接口的时候,内部调用了一个别人查询数据的接口,发到正式环境测试的时候一直报错,如下图所示:从图中可以看出是代码中122行除了问题,代码中122行是这样的:所以很自然的想到了是日期格式转换错误,加上日志把temp输出了一下:格式基本都正确,并没有我想象当中的空字符串。这时候突然注意到一个问题我的报错是NumberFormatException而不是ParseFormatException,如果按我的猜测,输入空字符串导致格式转换,那么应该是ParseFormatException原创 2022-01-14 16:25:26 · 603 阅读 · 0 评论 -
java中的锁
简介锁是并发编程中的一个重要概念,在并发编程中,经常会遇到多个线程访问同一个共享变量,当他们同时对该共享资源进行读写操作时,就会产生数据不一致的情况;**锁就是用来控制多个线程访问共享资源的方式,简单来说,一个锁能够防止多个线程同时访问共享资源。**Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。锁的分类1. 乐观锁&悲观锁从宏观上来看,锁可以分为乐观锁与悲观锁;体现了对待锁的不同思想;乐观锁:乐观锁认为自己在访问资源的时候,不会有其他线程修改原创 2021-12-23 10:31:02 · 776 阅读 · 0 评论 -
多线程与高并发
名词解释:进程与线程进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。进程相当于程序的一次运行,线程依赖于进程,不可肚子存在。一个线程的生命周期:线程的优先级:每一个 Java 线程都有一个优先级,这样有助于操作系统确定线程的调度顺序。Java 线程的优先级是一个整数,其取值范围是 1 (Thread.MIN_PRIORITY ) - 10 (Thread.MAX_PRIORITY )。默认情况下,每一个线程都会分配一个优先级 NORM_PRIORITY(5)原创 2021-12-16 11:30:08 · 1098 阅读 · 0 评论 -
jvm内存管理
这几天在学习jvm内存结构,网上的资料有些混乱,而且关于一些知识点并没有说清楚,这里自己总结了一下。jvm内存划分区域JVM 在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。如下图所示:如图所示,其中方法区和堆是所有线程共享的,虚拟机栈、本地方法栈、程序计数器则是线程私有的,其中我们重点要了解的是栈内存,堆内存和方法区这三个部分。程序计数器(原创 2021-12-11 18:33:16 · 945 阅读 · 0 评论 -
String和new String
这几天在学习jvm内存结构的时候,发现很多文章关于运行时常量池这个概念没有说清,这里自己总结了一下,有不当之处欢迎指正;以下是参考文章:JDK1.8关于运行时常量池, 字符串常量池的要点Java内存管理尤其是看了第一篇之后,没想到一个简简单单的String还有这么东西,所以自己也是简单测了一下,加深对jvm的理解。测试之前先简单说明一下概念:首先是方法区和永久代,目前有三大Java虚拟机:HotSpot,oracle JRockit,IBM J9。目前使用最多的就是HotSqot,而另外两个原创 2021-12-10 13:59:07 · 2358 阅读 · 0 评论 -
Tomcat的优化
Tomcat作为一款常用的web容器,对其进行优化是提升性能的重要手段;对其进行优化可以从以下方面入手:调整内存;调整线程池(Executor);调整连接器(Connector);调整运行模式;调整内存如果内存设置过小,极有可能导致项目无法启动,会报OOM异常;所以可以适当增大内存;Windows下修改Tomcat_Home/bin/catalina.sh文件,在@echo off下添加如下配置;Linux下修改Tomcat_Home/bin/catalina.bat文件,在cygwin原创 2021-12-08 16:27:17 · 1030 阅读 · 1 评论 -
ssh测试git@gitee.com: Permission denied (publickey).
想要在电脑上同时部署gitee和GitHub的ssh密钥,找了下【官方文档】,如下:按照步骤一步一步来,结果在第4步测试的时候却出现了不一样的内容百度了一下,说是需要将密钥添加到本地,但是这一步在官方文档上是没有的,所以感觉不太会是这个问题,仔细看了下文档,只有第三步新建config文件可能和文档有出入。我一开始新建的是conf.config文件,修改为config文件,试了一下,成功解决该问题。...原创 2021-11-16 21:58:24 · 1041 阅读 · 0 评论 -
【已解决】Spring Boot Mybatis配置报错org.apache.ibatis.binding.BindingException:
因为之前有过做ssm项目的经验,看到这个报错第一反应是没有配置mapper包扫描,但是检查了一下,都配置了,又去网上查了查,原因无非就是像我猜测的一样,缺少包扫描,或者名字没对应上啥的,但是我把我的配置和网上的一一比对了一下,基本上都不缺,名字包名也都是直接粘贴复制的,不会出错,但是运行了一下还是有这个问题仔细检查了一下突然看到我配置的mybatis.mapper-locations是这样的mybatis.mapper-locations=classpath:mapper/*.xml但是我的目原创 2020-11-08 20:32:12 · 318 阅读 · 0 评论 -
springboot 启动报错A component required a bean of type ‘xxx‘ that could not be found.
背景是这样的,启动一个模块,该模块中有一个类依赖于另一个模块中的dao层,项目结构如图所示:za-client依赖于zx-demo一开始以为没有加入依赖,把被依赖的模块clear一下重新install,导入之后还是不行突然想到这是外部的jar包,而springboot启动是从同级目录开始扫描的,扫描不到是正常的啊于是在springboot的主启动类上加上注解@Component("使用的类的路径")果然可行...原创 2020-11-02 20:21:21 · 7901 阅读 · 0 评论 -
[已解决]java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getHttpServletMapping()Lja
之前做项目的时候一直有这个错,但是当时因为不影响项目运行就没处理,但是今天突然影响项目了,那就不得不处理了看了网上一圈,要么是jar包冲突,要么是Tomcat版本不匹配,但是我这是springboot项目,Tomcat是内置的,所以第二个原因直接排除,至于第一个,我项目里压根就没这个jar包啊,想了半天感觉总不可能是jdk里面的这个jar包和springboot内置的servlet-apijar包冲突吧试着进到jdk目录下的jdk1.8.0_251\jre\lib\ext,把里面的servl原创 2020-10-29 23:27:28 · 3313 阅读 · 4 评论 -
解决内存溢出OutOfMemoryError异常
今天启动项目时,突然了报了OOM异常,如图所示:解决办法很简单,就是把内存设置大点,主要问题是在哪里设置。1. jvm内存设置jvm虚拟机的内存设置是在jdk/jre/lib/amd64目录下的jvm.cfg文件中设置在最下面加上相关配置就好,具体大小根据需求定,Windows和Linux环境下修改jvm虚拟机的方法都是如此。-Xms2048m-Xmx4096m-XX:PermSize=1024M -XX:MaxPermSize=2048M2. IDEA内存设置如图所示,help原创 2021-12-06 14:25:16 · 2054 阅读 · 0 评论