自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

prime1019的博客

不以物喜,不以己悲

  • 博客(52)
  • 收藏
  • 关注

原创 分布式事物

1.单机下 的事物在单机单节点的情况下,单个逻辑下执行多个操作,这些操作要么全部成功,要么全部失败,这就是事物。2.分布式事物在实际的企业生产环境中,不可能一直是单节点的操作,当涉及到多节点的处理时,我需要操作多个分布于不同节点的数据库,这种情况就是分布式事物了。举个例子,大家耳熟能详的下单业务。一个下单动作,减库存之后,生成订单,这两个操作必须全部成功,不可能说我生成了一条新的订单,但是库存扣失败了,也不可能说我库存扣成功了,但是订单没生成,这些都会导致数据的不一致性。那么如.

2021-11-03 18:03:50 235 2

原创 LinkedList解析

上篇文章,我们分析了ArrayLlist及其源码,链接在这:ArrayList源码解析这一篇文章,我们来学习一下LinkedList,看看会不会有新的收获。1.引子LinkedList的数据结构是基于双向链表的,数据结点中有两个指针,分别指向直接前驱和直接后继,很多人都说LinkedList插入删除速度快,查找速度慢,这是对的吗?为什么会这样呢?2.构造函数1.空参构造函数构造一个空的集合源码: public LinkedList() { }2.Collecti

2021-10-28 11:43:28 307 2

原创 关系型数据库中的事务

什么是事务?事务用于处理操作量大,复杂性高的数据,例如,我们删除一个成员的数据时,既要删除成员信息表的数据又要删除该成员的基本资料表的数据,由多个数据库紧密关联操作的语句构成一个事务。事务的四个特性:A(atomicity):原子性定义:事务的操作是一个不可分割的整体,执行时操作要不全部执行成功,要不全部执行失败C(consistency):一致性定义:事务使数据库中的数据从一个一致性状态到另一个一致性状态,事务的一致性与原子性是密切相关的。I(isolation):隔离性并

2021-04-09 22:39:02 1486

原创 ArrayList源码解析

谈起ArrayList,首先它是基于数组的数据结构实现的,与我们普通定义的数组不同,数组的长度是可以动态扩展的,可以在插入数据时,实现动态扩容、数据拷贝等,灵活性更强。下面来深入ArrayList源码,剖析内部原理。1.构造器首先来分析一下ArrayList的构造器ArrayList构造器有三种:1.默认构造器没有给定初始容量大小,此时,初始化为空数组。这种情况下,数组的长度会在第一次插入元素时候设置。List<String> list = new ArrayLis

2021-01-27 09:25:13 289

原创 BIO/NIO/AIO总结(1)

Java 中的 BIO、NIO和 AIO 理解为是 Java 语言对操作系统的各种 IO 模型的封装。程序员在使用这些 API 的时候,不需要关心操作系统层面的知识,也不需要根据不同操作系统编写不同的代码。只需要使用Java的API就可以了。在讲 BIO,NIO,AIO 之前先来回顾一下这样几个概念:同步与异步,阻塞与非阻塞。关于同步和异步的概念解读困扰着很多程序员,大部分的解读都会带有自己的一点偏见。参考了 Stackoverflow相关问题后对原有答案进行了进一步完善:When you exec

2021-01-16 23:10:33 142

原创 如何将自己本地的代码上传到github上

2021-01-07 14:26:51 1794

原创 (Java)HashMap与ArrayMap

数据量比较小,并且需要频繁使用Map存储数据时,推荐使用ArrayMap,数据量偏大,推荐使用HashMap。前面的文章有写过HashMap,就不多阐述了,这篇文章主要的是讲讲ArrayMap与HashMap的区别。ArrayMap与HashMap类似,都是使用键值对存储数据,考虑到内存优化的问题,Android优化了HashMap,也就是现在的ArrayMap。ArrayMap使用二分法对key从小到大排序,在删除,添加,查找元素的时候,使用二分查找法找到key所在的index,通过index

2020-09-29 23:05:05 872

原创 (Java)异常概述总结

Java异常的分类及关系所有异常的根类是java.lang.Throwable,下面有两个子类Error和Exception。Error是程序本身无法克服恢复的严重问题。Exception是程序可以克服的异常。Exception分为系统异常和普通异常。系统异常是软件本身开发的问题,通常需要改动代码才能解决问题,这种情况,程序使用者是无法感知并控制的。普通异常是运行环境等问题造成的,这种情况是可以控制并作处理。受检异常与非受检异常普通异常是需要使用try..catch捕获异常,或用

2020-09-28 10:11:43 206

原创 (Java)面试官:@Transactional默认对哪种异常进行处理

Spring的事务注解@Transactional,使用该注解时候,我们可以在代码中做异常处理,例如try {catch(Throwable t)},也可以通过配置文件,配置发生回滚的异常。但是,如果我不做异常配置,事务注解@Transactional默认什么情况会抛异常呢?答案是RuntimeException,该异常是运行时异常,如果不做异常回滚的配置,默认非运行时异常,不会发生回滚。...

2020-09-22 22:46:02 3448

原创 收藏IDEA断点调试快捷键

快捷键 功能描述F8 单步调试,不进入函数内部F7 单步调试,进入函数内部Shift+F7 选择要进入的函数Shift+F8 跳出函数Alt+F9 运行到断点Alt+F8 执行表达式查看结果F9 继续执行,进入下一个断点或执行完程序Ctrl+F8 设置/取消当前行断点Ctrl+Shift+F8 查看断点...

2020-05-23 11:11:57 204

原创 springboot项目搭建(四)ActiveMQ(Windows)

1. 安装ActiveMQ:1.1 进入下载界面:http://activemq.apache.org/activemq-5122-release.html选择Windows下的安装包,下载并解压到本地。1.2 进入win64文件夹下,1.3. 启动avtivemq服务,进入控制台默认端口:8161;默认对外服务端口:616161.4. 浏览器中输入:h...

2020-02-26 23:35:51 169

原创 springboot项目搭建(一)

1.2. 选择Spring Initializr ,点击next3. 可以修改项目的名称,此处我修改成springbootdemo,(可以不修改),点击next4. 在这一步可以添加项目所需要的依赖,在这里,我先不添加。后面需要哪些依赖的时候,一步步添加即可。5. 点击finish此处我们已经新建好了一个基本的springboot项目的框架,...

2020-02-15 18:02:25 195

原创 springboot项目搭建(二)SpringBoot+Redis

首先,可以在电脑上安装redis,安装的教程贴出链接:https://www.cnblogs.com/888888CN/p/9519590.html1.在pom.xml中,添加redis的依赖 <dependency> <groupId>org.springframework.boot</groupId> ...

2020-02-15 18:01:34 154

原创 springboot项目搭建(三)SpringBoot+Mybatis+mysql

1.首先在数据库里面新建一张表customer,表的设计如下:然后在表中插入几条数据。2.整个项目的结构如下所示:3.在application.properties中配置mysql,以及mybatis的映射路径,这里的url的表名记得改成自己的哦。#mysql配置spring.datasource.password=123456spring.datasource.ur...

2020-02-15 18:00:55 579

原创 工作杂记(1)Long 与 long 的失误

今天,在调试代码的时候,发现在一行A.setXXXX() = B.getXXXX()处报错,此处,B.getXXXX的值为null,后来发现是因为在A这个对象里面,属性XXXX的字段的类型是long,而在B这个对象里面,属性XXXX的字段的类型是Long。 Long是long的包装类型,可以用来两个对象之间的比较,对象的值可以为null,而long 是基本类型,数值不能直接赋值为null...

2020-01-16 20:34:13 568

原创 由浅入深谈HashMap(二)JDK1.8 put方法源码解析

此篇博客主要讲述HashMap的put方法。public V put(K key, V value) { return putVal(hash(key), key, value, false, true); }上述是HashMap源码的put方法,入参是键跟值, 然后调用putVal方法下面就来看看putVal方法的具体实现://HashMap的p...

2019-12-30 10:54:53 234

原创 由浅入深谈HashMap(一)导言

谈起hashmap,很多人都会觉得很简单嘛,会用不代表简单,不信?往下看:猜猜上述代码的运行结果为多少?结果到底为两个张三,还是一个张三呢? 以上代码的运行结果为:结果是一个张三,且值为第二个张三的值。别急,再往下看看:当map的key为对象时,hashCode方法返回值是age的hashCode值时,map集合的长度为多少呢?答案是2...

2019-12-22 00:19:40 171

原创 (Linux) 利用linux的命令,查询日志总结

在公司需要看线上日志,这里总结一下在工作中经常会用到的一些linux命令。1. cd /logs 进入logs的目录2. ll 打开此目录下存放有哪些文件3. less xx.log 打开一个具体的文件,按q退出4. grep命令(一般用来做条件查询),用法总结如下:grep命令常用方法总结 grep xxx aaa.log bbb.log...

2019-12-04 11:32:07 366

原创 WebService入门

最近在看一些项目,有传统的项目,用到了webservice技术,而且,对于理解微服务,分布式服务框架技术等有帮助,很多思想相似。查了一些资料,发现一篇博客写的挺好的,解答了我项目中的很多疑惑。特贴出来。原文链接:https://www.cnblogs.com/xdp-gacl/p/4048937.html一、序言  大家或多或少都听过 WebService(Web服务),有一段时间很多计算...

2019-10-25 01:57:27 136

原创 java虚拟机类加载机制

class文件(这里的class文件不一定是以存在于具体磁盘的文件形式存在,而是一串二进制的字节流)需要加载到虚拟机中才能使用,虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换,解析,初始化,最终形成可以被虚拟机直接使用的Java类型,即虚拟机类加载机制。类加载的生命周期如下图所示:类加载的过程主要是加载,验证,准备,解析,初始化这五个部分,其中,解析的顺序不是固...

2019-10-23 13:03:21 227

原创 class类文件结构

用WinHex十六进制编辑器打开一个class类文件结构如下图所示:Class文件是一组以8位字节为基本单位的二进制流,各个数据项目按照顺序有序的排列,中间没有分隔符,0xCAFEBABE为魔数,作用是确定这个文件是否能被jvm虚拟机接受的 ,紧跟魔数后面四个字节是class文件的版本号,第5,6是次版本号,第7,8是主版本号,(这些都是16进制,必要时自己转换成十进制),紧接着主次版...

2019-10-23 00:40:35 149

原创 (JVM)java虚拟机性能监控工具

最近 再看java虚拟机这一块的知识,想总结一下关于jdk的命令行工具,供日后工作需要时查阅。由于jdk的版本不同,有些工具的参数等会有些差异,我在书中看到的是使用的jdk1.6,而我自己电脑上使用的jdk版本是1.8jdk的命令行工具总结:cmd进入 JDK的bin 目录下(一)jps(虚拟机进程状况工具)显示指令系统内所有的HotSpot虚拟机进程如下图,我启动了主函数...

2019-10-17 17:28:52 366

原创 (Java)插入排序

插入排序的思路: 对于长度为n的数组,a[0]-a[i-1]已经是有序,a[i] - a[n]无序,将a[i]插入进去,使a[0]-a[i]有序public void charuSort(int arr[]){ int i,j; int n=arr.length; for(i=1;i<n;i++) { if(arr[i]<...

2019-10-11 16:47:56 119

原创 (Java)冒泡排序

问题:使用冒泡排序对一个已知数组进行排序思想:冒泡排序是这样的:从第一个数开始,每个数都跟相邻的数进行比较,如果前面的数大于后面的数,则交换,直到一轮结束,此时最大的数沉在最下面;每一轮都能得到一个最大的数;外部趟数为n-1趟,内部比较的次数为:n-i-1次代码为: public void maopaoSort(int[] arr){ int i,j; ...

2019-10-11 12:27:45 112

原创 (FreeMarker)if..else语句及比较

FreeMarker)if..else语句的语法格式为:<#if XXX><#else if XXX><#else if XXX><#else></#if>如下:<div class="layui-col-md8 layui-col-sm8 layui-col-lg8"><#if jib...

2019-07-29 15:13:01 6061

原创 a[i++]=a[j]与a[++i]=a[j]

如下,对于一个数组{1,2,3,4,5},将第一个数换成最后一个数的值,使用a[i++]=a[j]的值为:package test;import java.util.Arrays;public class qf0719 {public static void main(String[] args) { int i=0; int j=4; int a[] = {1,2,3,4...

2019-07-19 17:00:28 3301

原创 (Java)BufferedReader简述

文档中关于BufferedReader的描述为:Reads text from a character-input stream, buffering characters so as to provide for the efficient reading of characters, arrays, and lines.The buffer size may be specified,...

2019-07-10 17:36:08 562

原创 (Java)导入excel表格数据到数据库并在界面显示

public String uploadtable() { /* * if(StringUtils.isEmpty(training_id)){ addActionMessage("请选择授课计划!"); } */ String fileExtension = StringUtils.substringAfterLast(uploadxlsFileName, ".").t...

2019-07-03 09:44:09 1162

转载 (Java)equals 与 ==的区别

在上一篇hashCode与equals区别的文章中,发现,equals 与 ==的区别有:若一个类没有覆盖equals方法,那么equals与== 意义相同,都是比较的是地址空间若类在其中覆盖equals方法,@Override public boolean equals(Object obj) { if (this == obj) ...

2019-06-27 17:30:52 86

转载 (Java)hashCode与equals的区别与联系(一)

转载自https://blog.youkuaiyun.com/afgasdg/article/details/6889383#一、equals方法的作用1、默认情况(没有覆盖equals方法)下equals方法都是调用Object类的equals方法,而Object的equals方法主要用于判断对象的内存地址引用是不是同一个地址(是不是同一个对象)。2 、要是类中覆盖了equals方法,那么就...

2019-06-27 17:24:18 91

转载 单例模式解析

文章转载自http://blog.youkuaiyun.com/dmk877/article/details/50311791相信大家都知道设计模式,听的最多的也应该是单例设计模式,这种模式也是在开发中用的最多的设计模式,可能有很多人会写几种设计模式,那么你是否知道什么是设计模式?为什么会有单例设计模式即它的作用是什么?单例模式有哪些写法?对于这样的问题,可能有部分童鞋并不能很好的回答,没关系今天就和大家...

2019-06-27 11:46:06 138

原创 (Java) 构造器小结

(一)构造器也是方法,叫构造方法,与方法不同的是,构造器是用来初始化对象的,而方法不能,但是,这样不意味着对象是由构造器创建的,在A a = new A();创建对象时,在调用构造方法之前,系统就为对象分配内存空间,并且执行初始化,所以对象在执行构造方法函数体之前就已经创建,只是这个对象不能被外界访问,所以需要构造器对其初始化。(二)构造器如果没有对其重载,系统会有默认构造器,但是一旦...

2019-06-25 16:41:58 100

原创 获取动态input框的内容

对于静态的inout框,例如:<input type="text" id="inpue1" >获取这样的input框中的内容很简单,直接$("inpue1").val()在项目开发中,input框可能是动态生成的,所有inout框的id值就不能知道,id值应该是唯一的,那么对于这种情况,怎么获得我输入的内容呢方式(一): alert($("input[name='...

2019-06-24 15:16:46 4146

原创 (Java)hibernate的查询总结

在上面做项目的时候,有用到查询条件,那么将自己项目中遇到的查询先小小总结一下(一)查询某字段的值,字表出现的,主表不出现DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Member.class); DetachedCriteria detachedCriteria1 = DetachedCrite...

2019-06-21 17:53:42 212

原创 (Java)如何在总的人员中确定哪些人员已经选择过

今天在做项目的时候,遇到这样一个问题,如何确定下来人员是否被选择过,需求是这样:这个表是staff表。里面是有人员的,现在我想导入新的人员,从企业微信录里面导入,那么已经导入进来的人员肯定就不能在出现,如下:这里的人员是member表,未选人员里面不能再出来原来已经导入进去的,那么看起来很复杂的需求,该从哪里入手呢!我能想到最简单的方法就是在member表中加入一栏flag,设...

2019-06-21 16:58:20 186

原创 (JSON)无限级动态树形菜单升华版

为什么说这个是升华版的呢,因为以前做的无限级动态树形菜单是单个的,孤立的,只要读取出来的,单纯的......说了那么多,还不如一张图来的实在。放图一张不行,那就两张,接着放图图片中的文字都是自己瞎掰的,不代表任何意义!发现不同了吗?有头名称来表明你这是属于哪个分组下的,虽然我以前也不知道这什么玩意儿,一个json就能写出来?郁闷了几天,终于在老大不催我进度的时候,弄出来了...

2019-06-20 17:56:08 801

原创 (Java)基础:集合的学习

今天做项目需要处理数据的时候,需要用到将字符串转换为集合类型,输出样式是:[store, address,...],书到用时方恨少,发现自己集合这个模块实在是弱项,并没有扎实,于是自己百度,测试了几个,有map类型,有set类型,最后实现效果的还是set,//定义set集合Set<String> set = new HashSet<String>();//将St...

2019-06-20 17:30:55 131

原创 (Java) json格式读取对象的值

对于这种json格式:[{"title":"六子","value":"4"},{"title":"王五","value":"3"},{"title":"李四","value":"2"}]如何利用java读取所有的title以及value的值呢?首先应该明白JSONObject与JSONArray的区别,简单的区别方式就是前者类似于{"title":"六子","value":"4"}形式...

2019-06-19 15:47:11 908

原创 (Java) 输出字符串中包含在特定符号中所有字符

例如:问题:输出字符串因${address}发生${store},${name}救援出动。中${}中的字符输出:addressstorenameString key = "$"; String key1="}"; int i=tem.indexOf(key); ...

2019-06-19 09:52:03 1567

原创 (java)判断一组手机号字符串是否都是合法

public boolean isMobile(String mobile) { boolean flag=false; if(mobile.length()==0){ return false; } String[] mobiles=mobile.split("、"); int len=mo...

2019-06-11 09:54:35 901

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除