Java
文章平均质量分 62
Anakki
后端开发/风光摄影师/驴友/航拍手/后期小佬/火星居民
展开
-
JfreeChart折线图工具类
Jfreechart原创 2023-03-29 16:30:17 · 258 阅读 · 0 评论 -
AQS之Node源码详解(基于JDK8)
AQS同步队列Node节点源码解读原创 2022-10-05 01:15:09 · 605 阅读 · 0 评论 -
AfterNodeInsertion方法
AfterNodeInsertion方法解读原创 2022-10-03 19:57:17 · 906 阅读 · 0 评论 -
多个@PostConstruct执行顺序
1.同一个类中多个@PostConstruct,无互相依赖多次实测可知:顺序随机 @PostConstruct public void test01(){ System.out.println("test01"); } @PostConstruct public void test02(){ System.out.println("test02"); } @PostConstruct public voi原创 2020-09-17 19:06:34 · 7638 阅读 · 4 评论 -
java.lang.NoSuchMethodError: org.apache.commons.io.FileUtils.moveFile(Ljava/io/File;Ljava/io/File;V
异常:java.lang.NoSuchMethodError: org.apache.commons.io.FileUtils.moveFile(Ljava/io/File;Ljava/io/File;)V异常信息:此异常的意思是在:org.apache.commons.io.FileUtils这个类中找不到moveFile方法。我们点击DiskFileItem.java查看此方法...原创 2019-12-01 22:20:25 · 5984 阅读 · 0 评论 -
Mysql随机记录获取注意事项
在随机获取数据库记录时。我们的sql语句一般都是确定的。因此对于使用了Mybatis的项目中来说,mysql的随机数据会被Mybatis缓存下来,因此导致每次Dao获取的数据都是一样的,也就失去了随机的意义。这里需要配合mapper文件里的以下标签使用,刷新(清空)缓存。 mapper标签:flushCache="true"举例: <select id="getRandomV...原创 2019-12-01 15:33:11 · 490 阅读 · 0 评论 -
《深入理解Java虚拟机》第二版 第三章笔记
目录三.垃圾收集器与内存分配策略1.1 概述1.2 对象已死吗?1.2.1 引用计数法(RC Reference Counting)1.2.2 可达性分析算法1.2.3 引用1.2.4 生存还是死亡1.2.5 回收方法区1.3 垃圾收集算法1.3.1 标记 - 清除算法1.3.2 复制算法1.3.3 标记 - 整理算法1.4 HotSpot的算...原创 2019-01-15 22:18:52 · 890 阅读 · 0 评论 -
Java中length和length()的区别
length是数组的属性length()是字符串类的方法,本质上也是调用了数组的length属性。因为字符串底层也是char数组嘛! /** * Returns the length of this string. * The length is equal to the number of <a href="Character.html#unicode"...原创 2019-01-18 21:38:12 · 2081 阅读 · 0 评论 -
解读ArrayList中的add和remove方法
1. public boolean add(E e) /** * Appends the specified element to the end of this list. * * @param e element to be appended to this list * @return <tt>true</tt> ...原创 2019-01-11 20:45:33 · 2742 阅读 · 1 评论 -
ArrayList史上最详细源码分析
今天电话面试,面试官问到ArrayList中add方法的原理,我一下蒙了,这个用的最多的一种数据结构被我忽视了,没答上来,有时候用的最多的反而最自信,最自信的东西最容易忽视其中的细节,因此今天决定扒扒源码。1 ArrayList是什么?一种用来存放数据的数据结构。它的底层是一个数组,用来存放数据。2 ArrayList的特点?底层为数组。 所存储的数据在内存中连续。 查询的...原创 2019-01-10 22:46:49 · 308 阅读 · 0 评论 -
解读ArrayList中的indexOf(Object o)方法
源码如下: /** * Returns the index of the first occurrence of the specified element * in this list, or -1 if this list does not contain the element. * More formally, returns the lowest...原创 2019-01-10 22:22:31 · 2924 阅读 · 0 评论 -
解读ArrayList中的grow(int minCapacity)方法
查看源码: /** * Increases the capacity to ensure that it can hold at least the * number of elements specified by the minimum capacity argument. * * @param minCapacity the desired...原创 2019-01-10 21:24:50 · 6303 阅读 · 3 评论 -
doPost()详解
此方法中注释的意思为:由服务器(通过<code>service</code>方法)调用,以允许servlet处理POST请求。HTTP POST方法允许客户端一次向Web服务器发送无限长的数据,并且在发布诸如信用卡号码之类的信息时非常有用。<p>当重写此方法时,读取请求数据,写入响应头,获取响应的写入器或输出流对象,最后写入响应数据。最好包括内容...原创 2018-12-28 20:53:20 · 18909 阅读 · 0 评论 -
doHead()详解
HttpServlet中有一个方法为doHead()它主要作用是返回头部信息他的注释中文意思大概是:从受保护<code>服务</code>方法接收HTTP HEAD请求并处理该请求。当客户端仅希望看到响应的头部时,例如Content-Type或Content-Length,它发送一个HEAD请求。HTTP HEAD方法对响应中的输出字节进行计数,以便准确地...原创 2018-12-28 19:50:16 · 3771 阅读 · 0 评论 -
对可重入锁和不可重入锁的理解,他们的区别及实现原理解析。
首先我们这里提到的锁,是把所需要的代码块,资源,或数据锁上,在操作他们的时候只允许一个线程去做操作。最终结果是为了保证cpu计算结果的正确性。 对不可重入锁的理解:public class Test{ Lock lock = new Lock(); public void methodA(){ lock.lock(); .......原创 2019-01-21 21:36:18 · 25149 阅读 · 19 评论 -
JVM栈溢出实践
本次在eclipse中实践本异常:通过递归调用自己,无结束语句制造栈溢出的情况 ,或在多线程的模式下无限创建线程来实践OOM的情况。1. 栈溢出的情况(StackOverflowError)虚拟机参数设置:-Xss128k /** * JavaVMStackSOF.java * @author anyunpei *2019年1月16日下午7:07:03 * VM Args...原创 2019-01-16 19:41:17 · 730 阅读 · 0 评论 -
RunnableFuture接口(源码解读)
此接口继承了Runnable和Future接口。其中Runnable接口中就只有一个run方法,用于执行任务。 其中Future接口中主要有:对任务的执行进行取消操作。判断任务是否被取消。判断任务是否被执行完成。获取任务返回的结果。至此RunnableFuture接口想要其实现类实现的功能就是相当于一个拥有run方法的future接口。可以执行任务。可以取消...原创 2019-08-23 15:50:42 · 1170 阅读 · 0 评论 -
如何判断单向链表是否带环,有回环问题。
问题描述:一个单向链表的结构,其中一个节点通常为保存一个数据的容器object(data)和一个指向下一个保存数据的容器的地址next组成。什么叫带环,或者有回环呢?比如当前节点的next指向当前节点之前的任意一个节点的地址,那么我们说这个单向链表有回环。或者带环。1.那么如何判断一个单向链表有环呢?虽然网上有很多博客都说教式的阐述了如何判断是否有环,但我觉得大多都写得...原创 2019-08-10 19:52:10 · 1002 阅读 · 0 评论 -
ajax中,以post方法在请求体中使用键值对传递参数给后台,springmvc以方法参数接受请求体键值对方法,非对象方式接收。
博主为了实现 后台不使用实体类 来接收前台 以post方式传回来的data数据。而使用方法参数接受数据的方式实现。在网上找了很多方案,都不行。然后开始自己慢慢的试。发现有一种方法是可行的。就是在前台请求数据的时候千万不要指定contentType:"xxx"我就是按照网上的博客 前后台都指定过contentType,还使用了@RequestBody来接收json格式的...原创 2019-05-11 17:47:43 · 4475 阅读 · 5 评论 -
静态方法,或工具类如何调用Spring管理的对象,调用Dao,Service接口方法时,普通调用方式报空指针异常:解决方案。
由于是static方法去调用的是Spring管理的对象,而且static方法不能调用非静态的方法,和属性。因为static方法不依赖对象的创建,在类加载的时候就被加载进内存,因此static调用dao接口或service接口里的方法时,接口的实现类也许并没有被Spring管理并实例化为对象。因此我们需要确保工具类被spring管理。并且在工具类中static方法调用普通方法之前,普通方法所在的...原创 2019-04-29 17:57:00 · 3254 阅读 · 1 评论 -
springboot项目打成jar包发布后,获取jar包当前所在路径。windows与Linux通用。
获取代码:String jar_parent = new File(ResourceUtils.getURL("classpath:").getPath()).getParentFile().getParentFile().getParent();我的springboot项目名叫springcloud-eureka-servicesupport是用idea构建的(以module构建)。...原创 2019-04-29 17:26:50 · 17546 阅读 · 4 评论 -
nohup无法创建输出文件夹,无法输出日志
无法创建输出文件夹:如果在运行这个命令之后,再把日志文件删除,那么确实是不会再次自动生成日志文件,也就无法输出日志了。无法输出日志:当运行jar包的时候 写的绝对路径 比如:nohup java -jar /usr/CouldComment/ServiceSupport_module.jar >text.txt &但是日志文件又只有文件名,那么无法输出日志标准用法...原创 2019-04-26 10:53:03 · 1468 阅读 · 0 评论 -
Linux下运行 jar包java.net.BindException: Address already in use: JVM_Bind解决方法
一个jar包多次运行或其他程序占用端口,会有这个错误。解决方案:查找对应端口号的程序,根据程序pid删除。我的案例:代码指令:netstat -apn|grep XXXX[端口号]kill -9 XXXXX[pid]...原创 2019-04-26 10:28:55 · 3563 阅读 · 6 评论 -
JVM堆溢出实践
本次在eclipse中实践本异常:通过无终止的在队中创建对象,以制造堆溢出的情况。虚拟机参数设置:-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError将最大内存和最小内存设为相等是为了避免虚拟机自动扩展对内存大小!参数解释:-Xms20m:虚拟机堆的最小内存-Xmx20m:虚拟机堆的最大内存-XX:+HeapDumpOnOutO...原创 2019-01-16 20:04:13 · 285 阅读 · 0 评论 -
AJax请求处理成功却不进入success的解决方案,(项目迁移至springboot中出现的问题)
之前环境eclipse+ssm 运行一切ok之后环境idea+maven+springboot 出错博主在出现这个问题的时候是在把ssm项目迁移成springboot中时出现的。也就是说ssm项目中可以正常返回数据,springboot就不行了。一般这种问题是controller返回的数据类型不符合ajax要求的数据类型导致!!一般这种问题是controller返回的数据类...原创 2018-12-19 22:11:50 · 1955 阅读 · 0 评论 -
Mybatis的两种取值方式#{ } 与${ } 使用时需要注意的地方
需要映射的接口:/** * 根据id查询管理员 * @param id * @return */Manager retrieveManagerById(@Param("id")Integer id);/** * 根据名字查询管理员 * @param name * @return */Manager retrieveManagerByName(@Param("name")...原创 2018-12-02 16:22:36 · 2008 阅读 · 0 评论 -
使用Kaptcha出现图片加载失败的问题
今天在使用jar包kaptcha.jar 做一个验证码登录的过程中出现了图片加载失败的问题首先使用过程:1.网上下载下的kaptcha-2.3.jar版本的jar包2.直接拖入项目的WEB-INF/lib目录下 3.配置web.xml<servlet> <servlet-name>Kaptcha</servlet-name> ...原创 2018-09-11 20:09:18 · 4684 阅读 · 2 评论 -
一个JdbcUtils的类详解及原理备忘
一.静态代码块中的代码1.声明Properties用于读取配置文件2.使用加载JdbcUtil的类加载器去加载配置文件jdbc.properties,节约加载文件所耗费的资源。 (getResourceAsStream只能用于 需加载的配置文件 与被加载的类处于同一src下的文件)3.Properties读取配置文件4.通过键值对的键获取值(值为数据库驱动的类加载路径),从...原创 2018-09-08 15:10:24 · 374 阅读 · 0 评论 -
(异常)java.sql.SQLException: 无法转换为内部表示
博主出现此异常的情况为结果集resultSet获取结果类型与结果集里的数据类型不对应。例如resultSet.getString(2)第二个位置的结果类型并不为String类型,却以String类型去取出,编译不会报错,而运行会报错。补充:但是当book.setName(resultSet.getString(2));中resultSet.getString(2)类型与setName所需要...原创 2018-09-02 17:03:41 · 7802 阅读 · 1 评论 -
Java的Closeable接口close()方法的意义
Closeable接口又继承了另外的父接口AutoCloseable其中close()方法是关闭流并且释放与其相关的任何方法,如果流已被关闭,那么调用此方法没有效果。InputStream和OutputStream类都实现了该接口。源码:package java.io;import java.io.IOException;/** * A {@code Closeab...原创 2018-08-20 20:12:19 · 19050 阅读 · 4 评论 -
单例设计模式
单例设计模式:(有常见的五种单例)1.饿汉式2.懒汉式(安全与非安全的懒汉式)3.双重检测锁式4.静态内部类式5.枚举单例目的:节约内存开销和CPU利用率。特点:保证某一对象在系统中的唯一性,此对象在系统中只拥有一个实例。适用性:1、当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。2、当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能...原创 2018-08-22 22:34:57 · 145 阅读 · 0 评论 -
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
链表的定义:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。ps:因此这里指的链表(单向链表)只能往后遍历,无法逆向遍历,因此需要双向链表,一个节点有三个部分,前节点地址,数据...原创 2018-08-07 19:47:48 · 3728 阅读 · 10 评论 -
Java中,split()方法,在jdk1.6与之后版本的区别
split()方法在jdk1.6的描述: split()方法在jdk1.9的描述:两者区别是当在此字符串的开始处存在正宽度匹配时,在结果数组的开始处包含空的前导子字符串。 开始时的零宽度匹配不会产生这样的空的前导子串。区别是jdk为1.6的时候,split("");分割随意一个字符串为单个字符数组时,新的字符串数组第一位为 "",一个空字符,因此jdk1.6会某些程序出错...原创 2018-08-10 19:23:35 · 1178 阅读 · 0 评论 -
跳台阶与变态跳台阶解法(Java实现)
这两道题博主都是用的数学归纳法。首先一.跳台阶题目叙述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。情况:1阶:跳1次2阶:跳2次3阶:跳3次4阶:跳5次5阶:跳8次6阶:跳13次7阶:跳21次1,2,3,5,8,13,21····从次数可以看出是一种数列,那就是斐波那契数...原创 2018-07-29 14:39:14 · 4075 阅读 · 2 评论 -
亲密数 3个算法版本,运算次数差异极大(Java实现)
一.如果整数 A 的全部因子(包括 1,不包括 A 本身)之和等于 B,且整数 B的全部 因子包括 1,不包括 B 本身)之和等于 A,则称整数 A\B 是一对亲密数。求 3000 以内的全部亲密数。(1) 370 6080次运算版本(最新版本)最容易理解的版本/** * LoveNumber.java * * @author anyunpei 2018年7月24日下午4:...原创 2018-07-26 08:56:37 · 1417 阅读 · 0 评论 -
一个ThreadLocal的使用场景
/*** 有了驱动类后,通过驱动类创建连接* @return*/private static ThreadLocal<Connection> tol =new ThreadLocal<Connection>();public static Connection getConnection() { //声明连接 try { Connection conn=t...原创 2018-09-03 23:32:36 · 268 阅读 · 0 评论 -
ctrl点击HttpServlet无法查看源码解决办法
需要下载外部资源导入开发平台才能查看。在eclipse中若出现点击HttpServlet想查看源码时出现 进入Apache Tomcat主页:http://tomcat.apache.org/点击左侧download tomcat是多少版本的就点进多少版本。这里博主为8.0版本的。一般源码都放在最下面,点击Source Code Distributions下的zip...原创 2018-09-06 21:07:45 · 1478 阅读 · 0 评论 -
Servlet重点笔记
一.Servlet是什么?1.百度百科解释:https://baike.baidu.com/item/servlet/477555?fr=aladdin2.自己的见解:是一个Java程序,运行在服务器端,为客户端的操作做出不同的响应,实现不同功能的一段代码。在Java中为一个能实现的接口。3.单词释意:Servlet为Server Applet缩写(参照百度翻译) 二.接...原创 2018-09-16 18:21:05 · 1994 阅读 · 0 评论 -
Jquery的Ajax请求Action与Action响应数据实例,以及下拉表单三级联动实例。全代码可用
1.Ajax请求action,各参数意义,及数据返回过程图:绿色线为数据传去服务器过程:使用ajax的data参数红色为服务器传回过程:使用ajax的success参数坐上蓝框补充:post提交数据在HTTP 消息主体中发送。大小无限制,安全(当然https才是真的安全)项目结构图:Jsp页面:<%@ page language="java" content...原创 2018-10-30 21:03:30 · 979 阅读 · 0 评论 -
独立的小易(Java实现)
小易为了向他的父母表现他已经长大独立了,他决定搬出去自己居住一段时间。一个人生活增加了许多花费: 小易每天必须吃一个水果并且需要每天支付x元的房屋租金。当前小易手中已经有f个水果和d元钱,小易也能去商店购买一些水果,商店每个水果售卖p元。小易为了表现他独立生活的能力,希望能独立生活的时间越长越好,小易希望你来帮他计算一下他最多能独立生活多少天。import java.util.Scann...原创 2018-07-22 21:00:42 · 462 阅读 · 0 评论