java
文章平均质量分 58
彩色贝
学无止境,加油
展开
-
LRU-最近最久未使用算法
import java.util.HashMap;import java.util.Map;/** * @author caisebei */public class LRUCache { private Node head; private Node end; private int limit; private Map<String,Node> hashMap; public LRUCache(int limit) { .原创 2021-08-30 22:15:41 · 368 阅读 · 0 评论 -
MAC 安装指定版本thrift
mac 通过brewhome 安装的thrift 是head 版本,一般公司里用的版本都是0.9.x 版本(比如 0.9.3)这时不需要像网上说的那么麻烦,通过安装brew info thrift 可以看到如下图:就是通过一个homebrew-core 项目里的一个thrift.rb 文件然后进行安装的。有兴趣的可以看看这个仓库里的项目,同级的还有thrift@0.9.rb 文件所...原创 2020-03-03 19:03:14 · 1969 阅读 · 1 评论 -
解决spring 循环依赖
1. 什么是循环依赖?一般场景是一个Bean A依赖Bean B,而Bean B也依赖Bean A.Bean A → Bean B → Bean A当然我们也可以添加更多的依赖层次,比如:Bean A → Bean B → Bean C → Bean D → Bean E → Bean A2. Spring中的循环依赖当Spring上下文在加载所有的bean时,他会尝试按照他们...转载 2020-02-14 23:48:19 · 423 阅读 · 0 评论 -
logback中的日志配置参数解析
springboot 中默认实现为LogBack,使用apache commons Logging 作为日志接口,因此代码通常这样:public class FooControlelr{ private Log log = LogFactory.getLog(FooControlelr.class); ...}日志每行内容格式如下:1)日期和时间;2) 日志级别;3)进程id,S...原创 2019-11-16 14:05:02 · 2139 阅读 · 0 评论 -
java.io.IOException: invalid constant type: 18
今天同事(不是我哈)切了一个分支写项目的时候,发现项目启动不起来了,然后也没有日志,我就看了下,在springboot 内置tomcat 的StandardService 的几个重要方法内打了断点,发现了抛了一个异常:java.io.IOException: invalid constant type: 18 , 搜索了一番发现说是java lamda8 导致,问了同事是否使用了java8 ,...原创 2019-10-22 10:16:08 · 678 阅读 · 0 评论 -
Unknown column 'user_id' in 'field list', Time: 0.001000s(普通的标题,不一样的经历)
标题说起: 首先感谢您能点击到这篇文章,对于一个不算新手的我来说,这个标题在学校刚学习数据库的时候,大家都不陌生了,经常出现的场景在一些select、update、insert 列名写的不对,都有可能出现这样的error 提示,但是对于我个人来说,生产上一个运行了很久的insert 语句突然接收到了elk 的一个报警,插入时列找不到,让我很是懵* 啊 ,有点丈二和尚摸不着头脑的感觉。...原创 2019-10-13 21:36:21 · 935 阅读 · 0 评论 -
Java 并发工具包 java.util.concurrent 用户指南
1. java.util.concurrent - Java 并发工具包Java 5 添加了一个新的包到 Java 平台,java.util.concurrent 包。这个包包含有一系列能够让 Java 的并发编程变得更加简单轻松的类。在这个包被添加以前,你需要自己去动手实现自己的相关工具类。本文我将带你一一认识 java.util.concurrent 包里的这些类,然后你可以尝试着如何在...转载 2018-08-13 11:37:29 · 293 阅读 · 0 评论 -
Arrays.sort 实现原理 和 Collections.sort 实现原理(源码分析)
Arrays.sort(int [] a) /Arrays.sort(long[] a) /Arrays.sort(float[] a)/Arrays.sort(double[] a)/源码如下:public static void sort(int[] a) { DualPivotQuicksort.sort(a, 0, a.length - 1, null, 0, 0);}...原创 2018-12-05 18:44:01 · 2683 阅读 · 0 评论 -
十大排序算法·
0、排序算法说明0.1 排序的定义对一序列对象根据某个关键字进行排序。0.2 术语说明稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 内排序:所有排序操作都在内存中完成; 外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行; 时间复杂度: 一个算法执行所...转载 2019-02-17 20:10:25 · 322 阅读 · 0 评论 -
Lock wait timeout exceeded; try restarting transaction
问题出现的原因:假设有两个事务A和事务B,他们两个都存在update 同一条记录,A 先修改,但是没有提交事务,B也想修改但是一直等,直到等到了超过了innodb_lock_wait_timeout所设置的时间,就会爆出此异常模仿异常的出现: 创建一个表:CREATE TABLE `emp` ( `id` int(4) NOT NULL, `deptno` int(4) DEF...原创 2019-02-23 23:42:14 · 13079 阅读 · 2 评论 -
VisualVM(1) 插件安装
使用jvisualvm 中默认的插件地址为oracle 默认提供的地址,无法检查安装及更新,github 上也提供的有 介绍:https://visualvm.github.io/plugins.html 下载地址:https://visualvm.github.io/pluginscenters.html选择指定java 版本的visualvm 插件地址版本,如上述红色...原创 2019-08-01 22:42:45 · 848 阅读 · 0 评论 -
java内存模型-基础理论
1. 相关定义① java内存模型规定了所有的变量都存储在主内存中② 每条线程还有自己的工作内存,线程的工作内存中保存了该线程使用到的变量的主内存存副本拷贝,线程对变量的所有操作(读取、赋值等)都必须在工作内存中进行,而不能直接写主内存中进行,而不能直接读写主内存中的变量③ 不同线程之间也无法直接访问对方工作内存中的变量,线程变量值的传递均需要通过住内存来完成,线程、主内存、工作内存三...原创 2019-10-05 13:44:41 · 240 阅读 · 0 评论 -
java-逃逸分析
在Java的编译体系中,一个Java的源代码文件变成计算机可执行的机器指令的过程中,需要经过两段编译,第一段是把.java文件转换成.class文件。第二段编译是把.class转换成机器指令的过程。第一段编译就是javac命令。在第二编译阶段,JVM 通过解释字节码将其翻译成对应的机器指令,逐条读入,逐条解释翻译。很显然,经过解释执行,其执行速度必然会比可执行的二进制字节码程序慢很多。这就...转载 2019-10-05 19:36:20 · 148 阅读 · 0 评论 -
lombok (小辣椒)使用
1、安装 lombok安装就用maven下载的jar包, 用java -jar lombok1.16.18.jar或者直接双击打开如下: 然后选择IDE安装目录即可安装.安装好之后再ide 的outline 中才能有对应的方法 API文档: https://projectlombok.org/api/lombok/ToString.html@NoArgsConstr...原创 2018-07-25 19:50:23 · 1480 阅读 · 0 评论 -
Linux 中java + jenkins + svn + maven +tomcat搭建JavaEE 持续集成环境
所需环境:java + jenkins + svn + maven +tomcat1 java 安装 在linux 中解压,在/etc/profile 中配置自己的JAVA_HOME 路径(并需要经过java 和javac 测试)2. tomcat 安装 将tomcat 解压,然后修改其端口号(三处8080,8009,8005) 对外开放的端口号 在此我修改为8081 修改con...原创 2018-07-01 18:05:19 · 413 阅读 · 2 评论 -
synchronized 作用在普通方法与静态方法的区别
synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象; 2. 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象; 3. 修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象;...转载 2018-06-04 14:58:51 · 495 阅读 · 0 评论 -
java中常用的工具类Collections分析
Collections 和 Arrays 是 JDK 为我们提供的常用工具类,方便我们操作集合和数组。这次之所以总结这个,是因为在一次面试中被问到一个细节,回答地不太好,这里补一下吧。由于两个都是工具类,我们就放在一起学习。读完本文你将了解:文章出处Collections提供的多种内部类不可变集合同步的集合有类型检查的集合空集合只转载 2017-10-28 22:39:33 · 204 阅读 · 0 评论 -
java.security.cert.CertificateException: Issuer class type invalid or Subject class type in valid
在写一个CA 的时候遇见问题如下:java.security.cert.CertificateException: Issuer class type invalid.at sun.security.x509.X509CertInfo.setIssuer(X509CertInfo.java:860)at sun.security.x509.X509CertInfo.set(X509Ce原创 2017-10-30 18:03:43 · 1793 阅读 · 1 评论 -
Linux 中mysql-5.7.9 64位 RPM 详细安装
mysql-5.7.9 64位 RPM集合包在Linux系统中的安装过程。因为我用的64位的CentOS7所以我下的是64位的集合包,如果你用的32位的Linux系统请下载32位的集合包。这里我只讲安装,不解释命令的使用方法,因为都是些比较常用的基本命令,不懂的,可以去网上找资料,或者下个Linux常用命令手册。在安装前我们可以先添加一个名为mysql的用户组:groupadd mysql。再转载 2017-11-03 11:36:44 · 853 阅读 · 1 评论 -
提交下载请求,后台(SpringMVC)正确处理但是浏览器无反应
原因分析:前台使用的jq-grid 插件,然后写的ajax 提交请求解决:用 a标签请求下载,或者使用form 表单提交下载的请求扩展:如果前端使用的是插件提供的提交请求的方法,一般后台提供的是ajax 提交请求的方式,可以自己更改为上述的请求方式SpringMVC 提供的下载方式,不用再暴露耦合servlet api,突出框架的优越性@RequestMapping(value原创 2017-12-06 11:08:10 · 2672 阅读 · 0 评论 -
JOOQ 入门第一篇
官网地址:https://www.jooq.org/maven 依赖 org.jooqjooq3.9.5org.jooqjooq-meta3.9.5org.jooqjooq-codegen3.9.5 mysqlmysql-connector-java5.1.14library.xml原创 2018-02-03 19:15:41 · 1278 阅读 · 0 评论 -
What is ActiveRecord ?
ActiveRecord是什么:1. 每一个数据库表对应创建一个类.类的每一个对象实例对应于数据库中表的一行记录; 通常表的每个字段在类中都有相应的Field;2. ActiveRecord同时负责把自己持久化. 在ActiveRecord中封装了对数据库的访问, 即CRUD; 3. ActiveRecord是一种领域模型(Domain Model), 封装了部分业务逻辑;Ac转载 2018-02-07 17:35:47 · 204 阅读 · 0 评论 -
angularjs 和jersey 实现文件下载
$http({method : "post",url : Constant.prefixUrl+"/customerQueryCount/exportMonthReport",timeout : Constant.timeout,responseType: "blob" //注意此参数}).success(function(data, status, headers, config){var ...原创 2018-03-16 14:50:52 · 330 阅读 · 0 评论 -
java 中 PO,DO,TO,DTO,VO,BO,POJO,DAO 概念介绍
PO(persistant object) 持久对象在 o/r 映射的时候出现的概念,如果没有 o/r 映射,没有这个概念存在了。通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的 java 对象。最简单的 PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合。 PO 中应该不包含任何对数据库的操作。DO(Domain Object)...转载 2018-03-11 14:23:03 · 385 阅读 · 0 评论 -
Maven之pom.xml配置文件详解
Maven之pom.xml配置文件详解2016年05月24日 09:53:25标签:maven37111setting.xml主要用于配置maven的运行环境等一系列通用的属性,是全局级别的配置文件;而pom.xml主要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和licenses,以及其他所有的项目相关因素,是项目级别的配置文件。基础配置一个典型的pom.xml...转载 2018-03-04 17:16:21 · 172878 阅读 · 14 评论 -
Java垃圾回收机制
说到垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联系起来。在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。顾名思义,垃圾回收就是释放垃圾占用的空间,那么在Java中,什么样的对象会被认定为“垃圾”?那么当一些对象被确定为垃圾之后,采用什么样的策略来进行回收(释放空间)?在目前的商业虚拟机中,有哪些典型的垃圾收集...转载 2018-06-03 15:17:44 · 188 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了...转载 2018-06-03 18:04:01 · 156 阅读 · 0 评论 -
四十道java线程面试题
声明:这个博客的内容不是我的原创内容,但是我忘记了从哪看的了,提供出来仅供大家学习交流使用(如有侵权请告知删除)40 道 Java 线程面试题下面是 Java 线程相关的热门面试题,你可以用它来好好准备面试。1) 什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提原创 2017-10-28 22:04:23 · 329 阅读 · 0 评论