自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 第三章 系统总线

第3章 系统总线文章目录第3章 系统总线3.1 总线的基本概念3.1.1为什么要使用总线3.1.2什么是总线3.1.3总线上信息的传送3.1.4总线结构的计算机举例3.2 总线的分类3.2.1片内总线3.2.2系统总线3.2.3通信总线3.3 总线特性及性能指标3.3.1总线物理实现3.3.2总线特性3.3.3总线的性能指标3.3.4总线标准3.4总线结构3.4.1单总线结构3.4.2多总线结构3.4.3总线结构举例3.4 总线结构3.5 总线控制3.1 总线的基本概念3.1.1为什么要使用总线根据

2021-08-29 23:41:39 245

原创 第一章 计算机系统概述

第一章 计算机系统概述文章目录第一章 计算机系统概述1.1 计算机系统简介1.1.1计算机系统的层次结构1.1.2计算机体系结构和计算机组成1.2 计算机的基本组成1.2.1冯诺依曼计算机的特点1.2.2以存储器为中心的计算机硬件框图1.2.3现代计算机硬件框图1.2.4实践1.2.5存储器的基本组成1.2.6运算器的基本组成及操作过程1.2.7控制器的基本组成1.2.8一条指令在主机上的完成过程1.2.9程序在主机上是如何执行的1.3 计算机硬件的主要技术指标1、机器字长2、运算速度3、存储容量1.1

2021-08-22 19:22:00 192

原创 新电脑环境配置

1、JDK (java -version正确、软件安装包)环境变量(JDK后配置环境变量 计算机→属性→高级系统设置→高级→环境变量)i. JAVA-HOME:JDK的安装路径 ii. PATH:JDK下的bin的目录(在原有后面加上分号;)PATH---;C:\Program Files\Java\jdk1.7.0_65\bin\;F:\JAVA\apache-maven-3.6.1-bin\apache-maven-3.6.1\bin;F:\JAVA\software\MySQL\bin

2021-08-02 21:50:57 1725

转载 面试题--1、Java基础

文章目录Java概述JVM、JRE和JDK的关系什么是跨平台性?原理是什么什么是字节码?采用字节码的最大好处是什么Java和C++的区别基础语法Java基本数据类型图switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上Math.round(11.5) 等于多少?Math.round(-11.5)等于多少float f=3.4;是否正确short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗使用 +、-、*、

2021-03-31 21:50:12 183

原创 java并发编程实战(二)-并发工具类

14 | Lock和Condition(上):隐藏在并发包中的管程并发编程领域,有两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享资源;另一个是同步,即线程之间如何通信、协作Java SDK 并发包通过 Lock 和 Condition 两个接口来实现管程,其中 Lock 用于解决互斥问题,Condition 用于解决同步问题。再造管程的理由Java 语言本身提供的 synchronized 也是管程的一种实现,既然 Java 从语言层面已经实现了管程了,那为什么还要在 SDK 里提供另外

2021-03-03 22:18:39 241 3

原创 java并发编程实战

java并发编程实战文章目录java并发编程实战死锁避免发生死锁破坏占用且等待条件破坏不可抢占条件破坏循环等待条件等待-通知机制用 synchronized 实现等待 - 通知机制调用方法时须注意尽量使用 notifyAll()07 | 安全性、活跃性以及性能问题安全性问题数据竞争、竞态条件活跃性问题性能问题08 | 管程:并发编程的万能钥匙什么是管程并发编程领域两大核心问题wait() 的正确姿势notify() 何时可以使用总结09 | Java线程(上):Java线程的生命周期通用的线程生命周期Ja

2021-03-01 20:58:54 154

原创 Maven使用profile配置不同环境

Maven使用profile配置不同环境Maven 中有一个概念叫做:profile,它的诞生主要是为了解决不同环境所需的不同变量、配置等问题。有了 profile,可以根据激活的条件,启动不同条件下的配置信息。profile 是可以有多个的,也可以同时激活多个 profile,方便自由组合。profile 一般可以在三个地方:settings.xml,pom.xml,profiles.xml(这个不常用)配置分为以下几个步骤:配置profiles节点(pom.xml)配置build节点

2021-01-04 22:55:17 3653

原创 深入理解Java虚拟机-个人总结(汇总)

汇总贴,方便查找记录自己拜读《深入理解Java虚拟机》的一些个人总结二、自动内存管理三、垃圾收集器与内存分配策略

2020-09-21 22:10:39 70

原创 三、垃圾收集器与内存分配策略-个人总结

未完待续…文章目录一、概述需要关注哪些内存回收二、对象已死1、引用计数法2、可达性分析算法3、再谈引用4、生存还是死亡5、回收方法区三、垃圾收集算法1、分代收集理论2、标记-清除算法3、标记-复制算法4、标记-整理算法四、HotSpot的算法实现细节1、根节点枚举2、安全点3、安全区域4、记忆集与卡表5、写屏障6、并发的可达性分析一、概述当需要排查各种内存溢出,内存泄漏时,当垃圾收集成为系统达到更高并发量的瓶颈时,就需要去了解垃圾收集和内存分配。需要关注哪些内存回收对于Java内存运行时的区域中,

2020-09-15 23:14:32 145

原创 解决属性命名不规范导致接收不到数据问题

Bug描述使用postman进行接口测试的时候,发现接收参数有一个属性怎么也接收不到数据,其他的属性都可以正常接收。也仔细检查过名称是否一致等种种可能问题,还是不知道怎么回事。Bug原因项目中使用Lombok的@Date注解来自动生成get、set方法,如果这时有一些属性的命名不规范,可能导致生成的get、set方法名字有些特殊,这就是导致参数接收不到数据的原因。例如:项目中"qChargeAmt"这个参数尽管已经符合驼峰命名法了,但仍然接收不到参数//附加费private BigDecimal

2020-09-14 20:41:44 802

原创 ArrayList

get/** * Returns the element at the specified position in this list. * * @param index index of the element to return * @return the element at the specified position in this list * @throws IndexOutOfBoundsException {@inheritDoc}

2020-08-19 21:50:02 171

原创 数组

数组:是一种线性表数据结构,用一组连续存储空间,存储相同类型的数据。线性表数据排成一条线一样的存储结构,在线性表中,数据之间相互关系只有前后关系,除了数组之外,还有链表、队列、栈等。与线性表对应的就是非线性表结构,数据之间不止简单的前后关系,比如:二叉树、堆、图等。连续存储空间和相同类型的数据数组不仅要在逻辑上连续,也要在物理上连续。在内存中就要求必须是连续存储,从而导致数组在新增或删除一个数据的时候,为了保证连续性,就需要做大量数据搬移操作。同时数组也具有"随机访问"特性,可以根据下标直接访问

2020-08-19 21:49:14 200

原创 链表Code

文章目录[剑指 Offer 22. 链表中倒数第k个节点](https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/)题解一、固定长度的链表二、双指针(最优)[剑指 Offer 18. 删除链表的节点](https://leetcode-cn.com/problems/shan-chu-lian-biao-de-jie-dian-lcof/)题解一、删除链表中结点[剑指 Offer 25. 合并两个排序的链表

2020-08-19 21:46:08 121

原创 每日一题0819

647. 回文子串给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:“abc”输出:3解释:三个回文子串: “a”, “b”, “c”示例 2:输入:“aaa”输出:6解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”提示:输入的字符串长度不会超过 1000 。来源:力扣(LeetCode)链接:https://leetcode-cn.

2020-08-19 21:45:15 63

原创 序列化

序列化和反序列化序列化:将Java对象转换为有序字节流的过程;转化过程保证对象的完整性和可传递性,转换完成后形成有序字节流,以便在网络上进行传输或保存到磁盘中;反序列化:将有序字节流转化为Java对象的过程;根据有序字节流中保存的对象状态和信息,反序列化出对象。序列化优点将对象序列化转换为字节流,存储到磁盘中;减少内存压力,也可以永久保存对象,等到下次JVM启动时在通过反序列化还原对象。方便在网络中进行传输通过序列化,将对象保存在内存中,可以再通过此数据得到多个对象的副本。过程只有实现

2020-08-03 20:23:05 97

原创 排序(四)排序优化

几种排序算法时间复杂度是否稳定是否原地排序冒泡排序O(n²)稳定是插入排序O(n²)稳定是选择排序O(n²)不稳定是快速排序O(nlogn)不稳定是归并排序O(nlogn)稳定不是计数排序O(n+k),k是数据范围稳定不是桶排序O(n)稳定不是基数排序O(dn),d是维度稳定不是排序算法的选择虽然线性排序时间复杂度比较低,但是适用场景特殊条件苛刻,所以不能选用线性排序作为通用排序算法。

2020-07-22 22:30:24 96

原创 排序(一)

排序算法(一)排序算法时间复杂度是否基于比较冒泡、插入、选择O(n²)√快排、归并O(nlogn)√桶、计数、基数O(n)×如何分析一个排序算法一、执行效率最好情况、最坏情况、平均情况时间复杂度时间复杂度的系统,常数、低阶比较次数和交换(移动)次数二、内存消耗内存消耗可以通过空间复杂度衡量。原地排序:特指空间复杂度为O(1)的排序算法,不需要使用额外空间。三、稳定性稳定性:排序之前存在有两个值相等的元素,排序之后,相等元素之间原有的相

2020-07-21 20:05:46 92

原创 线性排序

三种时间复杂度为O(n)的排序算法:桶排序、计数排序、基数排序这三种排序算法都不涉及元素之间的比较操作,也叫做线性排序(Linear sort)桶排序核心思想将要排序的数据分散到有序的桶中,分别对桶中的数据进行排序。排序好了之后,按照桶的顺序依次取出,就得到排好序的数据了。时间复杂度时间复杂度为O(n)。假设要排序的数据有n个,均匀的划分到m个桶内,每个桶里就有k=n/m个元素,对每个桶使用快速排序,时间复杂度为O(k * logk),m个桶的时间复杂度为O(m * k * logk),因为k

2020-07-21 19:52:55 656

原创 时间复杂度为 O(nlogn) 的排序算法

时间复杂度为O(nlogn)的排序算法(归并排序、快速排序),比时间复杂度O(n²)的排序算法更适合大规模数据排序。归并排序归并排序的核心思想采用“分治思想”,将要排序的数组从中间分成前后两个部分,然后对前后两个部分分别进行排序,再将排序好的两部分合并在一起,这样数组就有序了。分治是一种解决问题的思想,递归是一种编程技巧,使用递归的技巧就是,先找到递归公式和终止条件,然后将递归公式翻译成递归代码。归并排序的递推公式和终止条件://递归公式merge_sort(p...r) = mege(mer

2020-07-21 19:51:43 8079

原创 递归

递归递归是一种常用的算法(或者是编程技巧),利用递归求解问题的时候,去的过程(一直向下向深处)叫做“递”,回来的过程(由下级深处运算携带结果返回过程)叫“归”。时间复杂度:递归代码中多了很多函数调用,当函数调用数量较大时,时间成本还是挺高的空间复杂度:每次递归调用都会在栈中保留一次临时变量,所以空间复杂度通常并不是O(1),可能是O(n)递归需要满足的三个条件一个问题的解可以分解成几个子问题的解这个问题和分解之后的子问题,除了数据规模不同外,求解思路完全一样有递归终止条件编写递归代码关

2020-07-15 20:46:52 94

原创 队列

队列先进先出,后来的只能插入到队尾操作入队:enqueue(),出队dequeue()应用循环队列(高性能队列DIsruptor,Linux环形缓存)、阻塞队列、并发队列,Java concurrent 并发包利用 ArrayBlockingQueue 来实现公平锁等实现数组实现顺序队列,链表实现链式队列队列需要两个指针,一个是head指针指向第一个数据,一个是tail指针指向下一次要插入数据的位置数据搬移解决数组空间用完问题。优化搬移操作:如果每删除一个数据就搬移一次,出队的时间复杂度

2020-07-13 21:33:56 81

原创 内部类

内部类内部类的分类一、成员内部类1、外部类、内部类代码@Datapublic class OuterClass { private int outerVariable = 1; private int commonVariable = 2; private static int outerStaticVariable = 3; //外部成员方法 public void outerMethod(){ System.out.println("

2020-07-10 22:33:47 108

原创 二、深入理解Java虚拟机---个人总(zhuang)结(bi)

深入理解Java虚拟机–个人总结(持续更新)每天按照书本学一点,会把自己的总结思考写下来,形成输出,持续更新,立帖为证--2020年7月7日 开始第一次学习自动内存管理Java内存区域与内存溢出异常Java与C++在内存控制方面截然不同,因为Java虚拟机有自动内存管理机制,所以Java程序员就牺牲部分内存控制权,来换取编写程序时的便利。虽然不容易出现内存泄漏和内存溢出问题,但还是有必要学习点Java虚拟机相关知识,除了在遇到虚拟机问题时可以快速解决之外,还可以和别人装逼(最大的快乐!)Jav

2020-07-07 23:40:25 591

原创 LeetCode-链表

LeetCode-链表日积月累文章目录LeetCode-链表一、数组-K个一组反转链表[25. K 个一组翻转链表](https://leetcode-cn.com/problems/reverse-nodes-in-k-group/)一、数组-K个一组反转链表25. K 个一组翻转链表25.1 题目给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这

2020-07-06 21:14:41 80

原创 数据结构与算法3-栈

数据结构与算法3-栈什么是栈操作栈这种数据结构可以看作是往只有向上开口的瓶子中放入大小合适的乒乓球,先放入的会被放在底部(压入栈顶),取的时候先取最上面的(弹出栈顶)。所以主要结构特性:先进后出,后进先出栈是一种操作受限的线性表,只能在一端新增、删除。当在需要某个数据结构只能在一端操作,并且满足先进后出,后进先出特性,就优先使用栈这种数据结构如何实现一个栈用数组实现栈叫做顺序栈,用链表实现栈叫做链式栈。主要操作就是入栈:在栈顶插入一个元素;出栈:在栈顶删除一个元素因为不需要额外存储空间,所以空间

2020-06-23 21:35:21 116

原创 链表(一)

链表(一)链表与数组区别数组:在逻辑上连续,在物理上也是连续的,所以如果我们申请一个100MB大小数组,内存空间中没有足够连续空间,即使可用空间大于100MB也会申请失败具有随机访问特性,可以根据首地址和下标通过寻址公式,就可以直接计算出对应的内存地址,所以查询比较快因为在物理上需要保持连续,插入或删除的时候需要整体移动操作位置之后的数据,所以增删比较慢数组大小固定,申请之后大小就固定了。申请过大过小都不太合理链表:在逻辑上连续,但是在物理上可以不用连续。在链表上存在指针域,存储着

2020-05-27 22:49:01 203

原创 使用AOP记录后台删除更新操作

场景需要使用AOP记录下后台删除更新操作,并存到数据库中作为备份,在记录更新操作的时候需要详细记录下哪个字段发生变化思路1、使用Spring AOP思想,并将切面设置为自定义注解,更具有灵活性。2、在记录更新操作时,需要获取更新前参数,考虑到因为通用性,可以在自定义注解里面添加参数,记录通过ID查询的方法名、ID位于第几个参数中、更新ID的名字是什么,将参数转为JSONString后ID如果有多个,位于第几个3、比较参数发生变化的时候就调用之前博客写的比较方法,即可得到代码切面类@Slf4j

2020-05-25 21:10:57 635

原创 比较两个对象参数是否一致

场景项目中需要将后台更新操作记录到数据库中,并且需要详细记录哪个字段发生改变思路大概思路就是使用反射。先获取到更新前后的参数,以更新后参数为比较依据获取属性名,再分别获取更新前后的值进行比较代码//比较两个Object类型参数是否一致public static String compareDiff(Object afterUpdateObject, Object beforeUpdateObject) { StringBuilder modifyContent = new StringB

2020-05-25 20:52:03 793

原创 LeetCode–数组

日积月累

2020-05-14 23:18:44 120

原创 fastjson使用问题总结

fastjson使用问题总结fastjson生成json时Null属性不显示的解决方法分析序列化时默认会将null对应的key值过滤掉,例如:Map < String , Object > jsonMap = new HashMap< String , Object>();jsonMap.put("a",1);jsonMap.put("b","");jsonM...

2020-04-29 20:55:28 246

原创 fastjson详解及常用用法

fastJSON使用在pom文件中加入依赖<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</ar...

2020-04-29 20:50:02 507

原创 正则表达式匹配固定汉字

正则表达式匹配固定汉字场景收到String类型数据,需要进行匹配是否包含固定的字符(英文、汉字),如果有则输出固定字符位置之前的数据,如果没有。则输出无思路使用正则表达式进行匹配,并使用group方法进行分组代码 //判断是否包含"购票折扣率" //如果包含,则输出"购票折扣率"前面的内容 //如果不包含,则输出"没有提前天数" @Test public void tes...

2020-04-22 21:02:00 9405 1

原创 LocalDateTime多种格式同一转换处理

LocalDateTime多种格式同一转换处理场景:在程序中有可能会接收到不同的String类型的时间,需要统一转换为LocalDataTime格式思路:先使用正则表达式,将除数字以外的符号统一替换为相同符号,之后按照符号进行分割,分割之后,按照年、月、日 三个一组划分为一个LocalDataTime时间private static final DateTimeFormatter forma...

2020-04-22 20:51:25 1989

原创 正则表达式java应用

正则表达式java应用正则表达式其实就是一个字符串识别的规则,首先设定好规则,然后程序根据这个规则识别比较在Java里面使用正则表达式需要涉及到两个Pattern和Matcher。Pattern和Matcher之间的关系就好比Pattern是做模具的师傅,pattern将模具(正则表达)做好之后,指派一个小工(matcher)去匹配,matcher要做的就是原材料(即要被匹配的源字符串)和模具...

2020-04-22 20:35:53 192

原创 重构优化读取合并单元格速度

重构读取合并单元格重构优化结果分别计算每张sheet的转换时间和总共需要转换的时间//优化之前2020-04-13 15:21:37.921 [main] INFO c.juneyaoair.service.impl.FormatImportServiceImpl - 单个sheet转换成对象时间 = 40002020-04-13 15:21:38.355 [main] INFO c...

2020-04-20 20:35:57 368

原创 maven配置多环境

maven 配置多环境添加多环境配置文件,结构如下图在pom.xml中文件添加修改<!--多环境配置--><profiles> <profile> <!-- 测试环境 --> <id>test</id> <properties> ...

2020-04-20 20:33:47 393

原创 9. 回文数

题目判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。回文数:121、101、111、1,…不是回文数:-121,110,123,…题解暴力解法将数字转为字符串,之后利用StringBuffer的reverse方法,将字符串进行翻转,之后和数字直接进行比较即可class Solution { public boolean isPalind...

2020-04-14 21:01:30 230

原创 coordinator与offset管理和consumer rebalance

Coordinator与offset管理和Consumer Rebalance消费者组消费者组(consumer group)是Kafka提供的可扩展且具有容错性的消费者机制主要有三个特性:consumer group下可以有一个或多个消费者,或是消费者实例(consumer instance),consumer instance可以是一个进程,也可以是一个线程group.id:是一个...

2020-03-06 22:58:35 141

原创 Kafka入门

kafka入门文章目录kafka入门kafka与消息引擎关系kafka设计之初旨在提供三个方面的特性:kafka与其他主流发数据流式计算框架相比优点kafka的不同版本Apache KafkaConfluent KafkaCDH/HDP KafkaKafka版本号Kafka版本命名规则Kafka版本演进0.70.80.90.10.0.00.11.0.01.0、2.0kafka与消息引擎关系A...

2020-03-01 16:53:00 153

空空如也

空空如也

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

TA关注的人

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