自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring自用

Bean的生命周期:分为4个阶段:Bean的实例化阶段Bean的设置属性阶段Bean的初始化阶段Bean的销毁阶段在设置属性阶段后,postProcessBeforeInitialization方法执行前,会执行很多Aware类型的接口,这种类型接口作用是加载资源到Spring容器中,Aware前面的名字就对应哪种资源,依次加载的是:BeanNameAwareBeanClassLoaderAwareBeanFactoryAwareEnvironmentAware

2021-04-16 17:48:27 94

原创 Redis自用

Redis是一款开源的Key-Value存储系统,其中value支持String,List,Hash,Set,Zset五中常用的数据结构,还有hyperloglog,bitmap,都支持push/pop,add/remove,取交集,并集,排序等丰富的操作,操作为原子性。单线程,存储在内存中。可持久化,周期性的把更新的数据写入磁盘(RDV)或者把修改操作追加写入记录文件中(AOF),特点:单线程+多路IO复用。应用场景:(1)配合关系型数据库做高速缓存针对于高频次,热门访问数据(热点数据),Redi

2021-04-07 14:40:10 154 1

原创 Spring自用

Bean的生命周期:分为4个阶段:1.      Bean的实例化阶段2.      Bean的设置属性阶段3.      Bean的初始化阶段4.      Bean的销毁阶段在设置属性阶段后,postProcessBeforeInitializat

2021-04-07 14:38:39 101

原创 索引的使用,最左前缀原则

创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。...

2019-09-07 21:06:27 652

原创 CyclicBarrier 使用详解

1. CyclicBarrier 是什么?从字面上的意思可以知道,这个类的中文意思是“循环栅栏”。大概的意思就是一个可循环利用的屏障。它的作用就是会让所有线程都等待完成后才会继续下一步行动。举个例子,就像生活中我们会约朋友们到某个餐厅一起吃饭,有些朋友可能会早到,有些朋友可能会晚到,但是这个餐厅规定必须等到所有人到齐之后才会让我们进去。这里的朋友们就是各个线程,餐厅就是 CyclicBarr...

2019-08-23 18:35:57 100

原创 倒计时器:CountDownLatch

CountDownLatch是一个非常实用的多线程控制工具类。常用的就下面几个方法:CountDownLatch(int count) //实例化一个倒计数器,count指定计数个数countDown() // 计数减一await() //等待,当计数减到0时,所有线程并行执行CountDownLatch在我工作的多个场景被使用,算是用的很频繁的了,比如我们的API接口响应时间被要求在2...

2019-08-23 18:17:05 133

原创 Git基本操作

整理自廖雪峰老师的教程初始化一个Git仓库,使用git init命令。添加文件到Git仓库,分两步:使用命令git add ,注意,可反复多次使用,添加多个文件;使用命令git commit -m ,完成。要随时掌握工作区的状态,使用git status命令。如果git status告诉你有文件被修改过,用git diff可以查看修改内容(此时未被提交)。HEAD指向的版本就是当前版...

2019-08-23 17:50:07 116

转载 Java线程的6种状态及切换

Java中线程的状态分为6种。初始(NEW):新创建了一个线程对象,但还没有调用start()方法。运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready...

2019-06-07 10:59:41 153

转载 jvm垃圾回收原理

在jvm中堆空间划分为三个代:年轻代(Young Generation)、年老代(Old Generation)和永久代(Permanent Generation)。年轻代和年老代是存储动态产生的对象。永久带主要是存储的是java的类信息,包括解析得到的方法、属性、字段等等。永久带基本 不参与垃圾回收。我们这里讨论的垃圾回收主要是针对年轻代和年老代。具体如下图。年轻代又分成3个部分,一个ede...

2019-05-31 11:49:43 129

转载 面试必备:HashMap、Hashtable、ConcurrentHashMap的原理与区别

下面直接来干货,先说这三个Map的区别:HashTable底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化初始size为11,扩容:newsize = olesize2+1计算index的方法:index = (hash & 0x7FFFFFFF...

2019-05-31 11:17:40 93

转载 TCP、UDP和HTTP详解

http:是用于www浏览的一个协议。tcp:是机器之间建立连接用的到的一个协议。1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。因此,HTTP本身就是一个协议,是从Web服务器传输超文本到...

2019-05-31 09:35:41 145

转载 进程与线程的区别,进程间通信方式,线程间通信方式

进程与线程的区别进程的通信方式线程的通信方式2011-03-15 01:04进程与线程的区别:通俗的解释一个系统运行着很多进程,可以比喻为一条马路上有很多马车不同的进程可以理解为不同的马车而同一辆马车可以有很多匹马来拉–这些马就是线程假设道路的宽度恰好可以通过一辆马车道路可以认为是临界资源那么马车成为分配资源的最小单位(进程)而同一个马车被很多匹马驱动(线程)–即最小的运行单位...

2019-05-31 00:17:03 568

转载 进程、线程、多线程相关总结

一、说说概念1、进程(process)狭义定义:进程就是一段程序的执行过程。广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。简单的来讲进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域...

2019-05-30 19:07:28 67

原创 JAVA集合类了解吗?简单介绍一下

JAVA集合类主要分为两大体系:Collection和Map体系。其中Collection又派生出List、Set、Queue等三大体系。其中,List主要用来存放一些有序、可重复的元素;主要实现类有:ArrayList、LinkedList、Vector和Stack。① ArrayList是基于数组实现的,增删改比较慢,查询比较快。② LinkedList是基于链表实现的,与ArrayLi...

2019-05-30 15:40:41 134

原创 TCP三次握手四次挥手

三次握手所谓三次握手(Three-way Handshake),是指建立一个 TCP 连接时,需要客户端和服务器总共发送3个包。三次握手的目的是连接服务器指定端口,建立 TCP连接,并同步连接双方的序列号和确认号,交换 TCP窗口大小信息。在 socket 编程中,客户端执行 connect() 时。将触发三次握手。第一次握手(SYN=1, seq=x):客户端发送一个 TCP的 SYN ...

2019-05-28 10:20:13 112

原创 Java的异或运算符^

^是异或运算符,异或的规则是转换成二进制比较,相同为0,不同为1.一个数a与另一个数b异或的结果等于a^b,用结果( a^b)异或a,就会得到b;上面的结果,我们用代码来验证。代码( a=a^b; b=a^b; a=a^b;)可以转换成这样。int c=a^b ; ------------ 01=10^11 得到结果C( a^b)b=c^b; ------------ 10=01^11 用...

2019-05-26 11:15:19 396

原创 修改教务系统主键,删除id设置为student

取消自增ALTER TABLE school_census_schoolcensus MODIFY COLUMN id int NOT NULL;查看约束名select TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME from INFORMATION_SCHEMA.K...

2019-05-12 18:09:16 396

原创 Django中Q查询及Q()对象

Django中Q查询及Q()对象当我们在查询的条件中需要组合条件时(例如两个条件“且”或者“或”)时。我们可以使用Q()查询对象。例如下面的代码:if(user.loginname == 'XXX'): stu1 = SchoolCensuspro.objects.filter((Q(training_major = '085239')|Q(traini...

2019-02-25 11:11:00 424

空空如也

空空如也

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

TA关注的人

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