java
文章平均质量分 83
prime1019
年轻人就得用尽全力折腾
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
分布式事物
1.单机下 的事物在单机单节点的情况下,单个逻辑下执行多个操作,这些操作要么全部成功,要么全部失败,这就是事物。2.分布式事物在实际的企业生产环境中,不可能一直是单节点的操作,当涉及到多节点的处理时,我需要操作多个分布于不同节点的数据库,这种情况就是分布式事物了。举个例子,大家耳熟能详的下单业务。一个下单动作,减库存之后,生成订单,这两个操作必须全部成功,不可能说我生成了一条新的订单,但是库存扣失败了,也不可能说我库存扣成功了,但是订单没生成,这些都会导致数据的不一致性。那么如.原创 2021-11-03 18:03:50 · 288 阅读 · 2 评论 -
LinkedList解析
上篇文章,我们分析了ArrayLlist及其源码,链接在这:ArrayList源码解析这一篇文章,我们来学习一下LinkedList,看看会不会有新的收获。1.引子LinkedList的数据结构是基于双向链表的,数据结点中有两个指针,分别指向直接前驱和直接后继,很多人都说LinkedList插入删除速度快,查找速度慢,这是对的吗?为什么会这样呢?2.构造函数1.空参构造函数构造一个空的集合源码: public LinkedList() { }2.Collecti原创 2021-10-28 11:43:28 · 358 阅读 · 2 评论 -
关系型数据库中的事务
什么是事务?事务用于处理操作量大,复杂性高的数据,例如,我们删除一个成员的数据时,既要删除成员信息表的数据又要删除该成员的基本资料表的数据,由多个数据库紧密关联操作的语句构成一个事务。事务的四个特性:A(atomicity):原子性定义:事务的操作是一个不可分割的整体,执行时操作要不全部执行成功,要不全部执行失败C(consistency):一致性定义:事务使数据库中的数据从一个一致性状态到另一个一致性状态,事务的一致性与原子性是密切相关的。I(isolation):隔离性并原创 2021-04-09 22:39:02 · 1544 阅读 · 0 评论 -
ArrayList源码解析
谈起ArrayList,首先它是基于数组的数据结构实现的,与我们普通定义的数组不同,数组的长度是可以动态扩展的,可以在插入数据时,实现动态扩容、数据拷贝等,灵活性更强。下面来深入ArrayList源码,剖析内部原理。1.构造器首先来分析一下ArrayList的构造器ArrayList构造器有三种:1.默认构造器没有给定初始容量大小,此时,初始化为空数组。这种情况下,数组的长度会在第一次插入元素时候设置。List<String> list = new ArrayLis原创 2021-01-27 09:25:13 · 332 阅读 · 0 评论 -
如何将自己本地的代码上传到github上
原创 2021-01-07 14:26:51 · 1897 阅读 · 0 评论 -
(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 · 906 阅读 · 0 评论 -
(Java)异常概述总结
Java异常的分类及关系所有异常的根类是java.lang.Throwable,下面有两个子类Error和Exception。Error是程序本身无法克服恢复的严重问题。Exception是程序可以克服的异常。Exception分为系统异常和普通异常。系统异常是软件本身开发的问题,通常需要改动代码才能解决问题,这种情况,程序使用者是无法感知并控制的。普通异常是运行环境等问题造成的,这种情况是可以控制并作处理。受检异常与非受检异常普通异常是需要使用try..catch捕获异常,或用原创 2020-09-28 10:11:43 · 236 阅读 · 0 评论 -
(Java)面试官:@Transactional默认对哪种异常进行处理
Spring的事务注解@Transactional,使用该注解时候,我们可以在代码中做异常处理,例如try {catch(Throwable t)},也可以通过配置文件,配置发生回滚的异常。但是,如果我不做异常配置,事务注解@Transactional默认什么情况会抛异常呢?答案是RuntimeException,该异常是运行时异常,如果不做异常回滚的配置,默认非运行时异常,不会发生回滚。...原创 2020-09-22 22:46:02 · 3600 阅读 · 0 评论 -
由浅入深谈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 · 277 阅读 · 0 评论 -
由浅入深谈HashMap(一)导言
谈起hashmap,很多人都会觉得很简单嘛,会用不代表简单,不信?往下看:猜猜上述代码的运行结果为多少?结果到底为两个张三,还是一个张三呢? 以上代码的运行结果为:结果是一个张三,且值为第二个张三的值。别急,再往下看看:当map的key为对象时,hashCode方法返回值是age的hashCode值时,map集合的长度为多少呢?答案是2...原创 2019-12-22 00:19:40 · 281 阅读 · 0 评论 -
java虚拟机类加载机制
class文件(这里的class文件不一定是以存在于具体磁盘的文件形式存在,而是一串二进制的字节流)需要加载到虚拟机中才能使用,虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换,解析,初始化,最终形成可以被虚拟机直接使用的Java类型,即虚拟机类加载机制。类加载的生命周期如下图所示:类加载的过程主要是加载,验证,准备,解析,初始化这五个部分,其中,解析的顺序不是固...原创 2019-10-23 13:03:21 · 248 阅读 · 0 评论 -
class类文件结构
用WinHex十六进制编辑器打开一个class类文件结构如下图所示:Class文件是一组以8位字节为基本单位的二进制流,各个数据项目按照顺序有序的排列,中间没有分隔符,0xCAFEBABE为魔数,作用是确定这个文件是否能被jvm虚拟机接受的 ,紧跟魔数后面四个字节是class文件的版本号,第5,6是次版本号,第7,8是主版本号,(这些都是16进制,必要时自己转换成十进制),紧接着主次版...原创 2019-10-23 00:40:35 · 184 阅读 · 0 评论 -
(JVM)java虚拟机性能监控工具
最近 再看java虚拟机这一块的知识,想总结一下关于jdk的命令行工具,供日后工作需要时查阅。由于jdk的版本不同,有些工具的参数等会有些差异,我在书中看到的是使用的jdk1.6,而我自己电脑上使用的jdk版本是1.8jdk的命令行工具总结:cmd进入 JDK的bin 目录下(一)jps(虚拟机进程状况工具)显示指令系统内所有的HotSpot虚拟机进程如下图,我启动了主函数...原创 2019-10-17 17:28:52 · 413 阅读 · 0 评论 -
(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 · 140 阅读 · 0 评论 -
(Java)冒泡排序
问题:使用冒泡排序对一个已知数组进行排序思想:冒泡排序是这样的:从第一个数开始,每个数都跟相邻的数进行比较,如果前面的数大于后面的数,则交换,直到一轮结束,此时最大的数沉在最下面;每一轮都能得到一个最大的数;外部趟数为n-1趟,内部比较的次数为:n-i-1次代码为: public void maopaoSort(int[] arr){ int i,j; ...原创 2019-10-11 12:27:45 · 132 阅读 · 0 评论 -
(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 · 6276 阅读 · 0 评论 -
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 · 3355 阅读 · 0 评论 -
(Java) 输出字符串中包含在特定符号中所有字符
例如:问题:输出字符串因${address}发生${store},${name}救援出动。中${}中的字符输出:addressstorenameString key = "$"; String key1="}"; int i=tem.indexOf(key); ...原创 2019-06-19 09:52:03 · 1588 阅读 · 0 评论 -
(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 · 944 阅读 · 0 评论 -
(java)字符串之间使用特殊符号隔开,末尾不含符号处理方法
方法一:比较直接,就是使用判断,for(i=0;i<x.getLength-1;i++){字符串+=字符串+‘,’}if(i==x.getLength()-1){字符串+=字符串}使用判断语句,到最后一个数时,末尾则不添加符号方法二:不使用判断,StringBuffer str1 = new StringBuffer(); for ...原创 2019-06-10 17:03:18 · 2289 阅读 · 0 评论 -
(Java)基础:集合的学习
今天做项目需要处理数据的时候,需要用到将字符串转换为集合类型,输出样式是:[store, address,...],书到用时方恨少,发现自己集合这个模块实在是弱项,并没有扎实,于是自己百度,测试了几个,有map类型,有set类型,最后实现效果的还是set,//定义set集合Set<String> set = new HashSet<String>();//将St...原创 2019-06-20 17:30:55 · 149 阅读 · 0 评论 -
(JSON)无限级动态树形菜单升华版
为什么说这个是升华版的呢,因为以前做的无限级动态树形菜单是单个的,孤立的,只要读取出来的,单纯的......说了那么多,还不如一张图来的实在。放图一张不行,那就两张,接着放图图片中的文字都是自己瞎掰的,不代表任何意义!发现不同了吗?有头名称来表明你这是属于哪个分组下的,虽然我以前也不知道这什么玩意儿,一个json就能写出来?郁闷了几天,终于在老大不催我进度的时候,弄出来了...原创 2019-06-20 17:56:08 · 837 阅读 · 0 评论 -
(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 · 939 阅读 · 0 评论 -
(Java)如何在总的人员中确定哪些人员已经选择过
今天在做项目的时候,遇到这样一个问题,如何确定下来人员是否被选择过,需求是这样:这个表是staff表。里面是有人员的,现在我想导入新的人员,从企业微信录里面导入,那么已经导入进来的人员肯定就不能在出现,如下:这里的人员是member表,未选人员里面不能再出来原来已经导入进去的,那么看起来很复杂的需求,该从哪里入手呢!我能想到最简单的方法就是在member表中加入一栏flag,设...原创 2019-06-21 16:58:20 · 218 阅读 · 0 评论 -
(Java)hibernate的查询总结
在上面做项目的时候,有用到查询条件,那么将自己项目中遇到的查询先小小总结一下(一)查询某字段的值,字表出现的,主表不出现DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Member.class); DetachedCriteria detachedCriteria1 = DetachedCrite...原创 2019-06-21 17:53:42 · 232 阅读 · 0 评论 -
(Java) 构造器小结
(一)构造器也是方法,叫构造方法,与方法不同的是,构造器是用来初始化对象的,而方法不能,但是,这样不意味着对象是由构造器创建的,在A a = new A();创建对象时,在调用构造方法之前,系统就为对象分配内存空间,并且执行初始化,所以对象在执行构造方法函数体之前就已经创建,只是这个对象不能被外界访问,所以需要构造器对其初始化。(二)构造器如果没有对其重载,系统会有默认构造器,但是一旦...原创 2019-06-25 16:41:58 · 125 阅读 · 0 评论 -
获取动态input框的内容
对于静态的inout框,例如:<input type="text" id="inpue1" >获取这样的input框中的内容很简单,直接$("inpue1").val()在项目开发中,input框可能是动态生成的,所有inout框的id值就不能知道,id值应该是唯一的,那么对于这种情况,怎么获得我输入的内容呢方式(一): alert($("input[name='...原创 2019-06-24 15:16:46 · 4206 阅读 · 0 评论 -
(Java)导入excel表格数据到数据库并在界面显示
public String uploadtable() { /* * if(StringUtils.isEmpty(training_id)){ addActionMessage("请选择授课计划!"); } */ String fileExtension = StringUtils.substringAfterLast(uploadxlsFileName, ".").t...原创 2019-07-03 09:44:09 · 1187 阅读 · 0 评论 -
(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 · 118 阅读 · 0 评论 -
(Java)equals 与 ==的区别
在上一篇hashCode与equals区别的文章中,发现,equals 与 ==的区别有:若一个类没有覆盖equals方法,那么equals与== 意义相同,都是比较的是地址空间若类在其中覆盖equals方法,@Override public boolean equals(Object obj) { if (this == obj) ...转载 2019-06-27 17:30:52 · 107 阅读 · 0 评论 -
(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 · 608 阅读 · 0 评论
分享