自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 漫谈锁

什么是锁假设世界上只有一个人,那么锁是不会出现的。因为锁是为了防范外人的不法行为,如果只有一个人,那就谈不上外人,那当然锁就没有必要。即使有多个人,如果这两个人井水不犯河水,也没有提防的必要。可是现实确实,人是一个社会性的存在,人与人之间不可避免的存在各种依赖于竞争等各种情况,所以就需要制定一定的规则对其进行协调。同样在软件开发中的锁,也是一种在多线程下的对资源的访问进行协调的手段。协调与同步基本是中同义替换,这就不难理解在 Java 中写多线程程序使用锁时会使用 synchronized 了。示例代

2021-02-13 16:16:12 129

原创 谈谈一致性问题

什么是一致性问题在软件开发中存在两种一致性问题:一是单数据副本时的一致性问题(如数据库),二是因为在分布式系统下数据的复制导致的一致性问题(如缓存与数据库数据的不一致,严格来说cpu缓存导致的数据一致性问题也在此列)。这篇文章主要讨论第一种一致性问题,即数据库事务中的一致性问题。一致性问题是如何产生的,以及事务概念的产生一个软件系统不可避免会使用数据,一旦有了数据,就会有脏数据问题,是为一致性问题。就像房间没有良好的清洁行为,自然会变得脏乱差。这个比喻可能还是不好理解。还是以转账为例。假设A向B转

2021-02-12 18:08:58 1126

原创 tcp那些事

tcp哪些事关于tcp三次握手四次挥手相关的问题,面试经常问,所以临阵磨枪,稍微整理一下。tcp协议漫谈tcp是传输层协议,该协议的设计目标为通信双发提供可靠的字节流传输服务。之所以有三次握手和四次挥手,就是为了实现这个目标。tcp是一个全双工,点对点的协议,每一方可以同时是发送方和接收方。假设有A,B两台电脑通信,那么tcp就需要保证:A发送的消息需要可靠交付到B手上B发送的消息需要可靠交付到A手上所以在网络中的消息就有这样几种类型:A发送给B的B发送给A的如何保证可靠传输

2021-02-07 17:09:44 192

原创 junit浅谈

junit浅谈今天看一个项目的时候,发现其中的单元测试看不懂。所以觉得自己需要学习下单元测试。后面学习了mockito项目的使用,看了junit5的文档。最终竟开始阅读Junit的源码。真是跑题的非常严重!下面谈谈看源码的一点心得。我看的源码是junit4-r3.8.2,之所以不选择最新版本是因为,新的版本会考虑到很多细节,看起来比较吃力,而旧的版本几乎全部都是精华。不多说,进入正题。单元测试框架的需求使用面向对象的语言的项目有一个弊端,就是代码的逻辑散落在各处,代码总是来回调用,容易晕车。为了解

2021-02-07 00:14:04 193

原创 如何高效进行一场(技术)面试?

如何高效进行一场(技术)面试?最近在找工作。也收到了两个offer,有的面试则没有音讯。于是我就在思考造成不同结果的原因。没有收到offer,是公司的问题,还是自己的问题,如何判断这一点?以及,如果准备一场(技术)面试?面试的本质做一件事,首先要去理解这件事的本质。知道了做这件事的本质,才好有的放矢。不然即使成功,也是凭运气了。那么,面试的本质是什么?在我的理解,面试其实就是一场考试。招聘公司对应聘者的表现进行评估,然后对比不同的应聘者,决定招哪一个人。面试考察点既然是考试,肯定是要有考试

2020-09-15 17:55:27 333

原创 linux启动过程

linux启动过程先把相关的学习资料摆出来:systemv vs upstart vs systemdbios 到 boot loader内核初始化详细启动过程如下首先计算机开机加电,自检硬件有没有问题执行bios中的引导程序加载启动盘MBR中的代码通过MBR的信息加载磁盘的启动分区(放有/boot目录,专门用于linux系统启动)将操作系统的内核代码加载到内存并加压缩执行内核的各种初始化工作,如进程管理,内存管理,文件系统功能前面的过程都偏底层,其实不必过于纠结,我也只是

2020-06-14 16:17:39 133

原创 cs:app第一章:计算机系统漫游读书笔记

cs:app第一章:计算机系统漫游读书笔记信息就是位+上下文操作系统的抽象文件是对io设备的抽象虚拟内存是对存储器的抽象进程是对信息就是位+上下文计算机的世界里一切都是比特。磁盘,内存中的指令,数据都是比特;区别在于对比特的解读,不同的解读有了不同的信息。操作系统的抽象文件是对io设备的抽象虚拟内存是对存储器的抽象进程是对...

2019-12-09 22:20:14 138

原创 关于脚本语言

关于脚本语言程序是给普通用户使用的,脚本是程序员使用的。处理特定工作,普通用户使用特定的程序(也是程序员编写的)。这种程序实现的功能通常是比较通用的功能,因为程序员编写一个程序当然要考虑用户的数量啊。但是,在工作中,我们会经常遇到一些重复性强,而又个性化的功能。而一般的程序无法满足要求,这时对于程序员来说,自己写程序就是一个较好的选择了。由于是满足自己个性化的功能,所以用户体验就不是首要...

2019-12-04 22:56:19 183

原创 笔试题分享:写两个线程,一个线程打印数字,一个线程打印字母

一个笔试题前天面试遇到一个面试题,要求写两个线程,一个线程打印数字152,一个线程打印AZ。效果是:“12A34B…5152Z”网上找了一些文章,都有些功能残缺,自己参考着写了一个完整版的,一个测试类实现。供参考。public class SimpleTest { //用于线程的锁 Object obj = new Object(); //t1线程是否已经启动,用于t2...

2019-06-14 18:22:10 1599

原创 mysql批量插入10万条数据性能测试报告

mysql批量插入10万条数据性能测试报告测试mysql的插入性能测试过程总结测试mysql的插入性能测试过程我编写了一个sql的随机函数来生成固定长度的字符串作为username与password字段的值。(函数是网上找的,自己改了一下)具体sql语句如下:DELIMITER // DROP FUNCTION IF EXISTS `rand_string` // CREATE FUN...

2019-04-03 18:34:29 4251 3

原创 vmware安装ubuntu删除所有文件?

vmware安装ubuntu删除所有文件?在使用vmware安装ubuntu操作系统的时候,安装程序会询问是否删除操作系统上的所有文件并将系统写入磁盘。这一句富有歧义性的话,简直是触目惊心。然而,选择是就是了,因为是虚拟机嘛。这并非第一次安装,不过之前的过程我给忘了,所以写个文章备忘。[https://www.ubuntu.com/download/desktop]这是下载地址然后...

2019-03-21 17:18:45 2343 1

原创 mybatis一直报空指针异常????

mybatis一直报空指针异常????

2019-01-22 15:28:20 5505 2

空空如也

空空如也

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

TA关注的人

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