自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(271)
  • 资源 (9)
  • 收藏
  • 关注

原创 哈哈哈,我终于学会Redis哨兵模式了

Redis哨兵太牛逼了

2022-01-25 21:56:20 1919 2

原创 来看看Redis主从怎么配(超详细实战教程)

全是干货,厉害了

2022-01-25 21:52:54 1947

转载 对什么都不感兴趣,怎么办?

希望能给你一些动力

2022-01-24 17:37:31 449

原创 从两道题来认识“事务的传播行为”

前言我们今天来学习关于事务的传播行为的知识。题目一题目如下:某个复杂的计算逻辑,由若干个子流程处理 + 主流程处理共同完成。业务要求是 :1)子流程处理互相独立,即其中一个发生错误事务回滚,不影响其他子流程的处理;2)主流程处理失败,事务回滚时,所有的子流程也要跟着回滚。思考鄙人苦苦思索良久,绞尽脑汁,穷尽我以前所学知识,憋出了如下的答案:class A { @Transactional public void methodA() {

2022-01-24 16:39:47 322

原创 Lucene应用实战(四)——Lucene搜索的两种方式

前言本文我们来对Lucene具体如何进行数据的搜索,进行详细的介绍。环境准备我们直接使用在 Lucene应用实战(二)——Field域的使用及索引库的维护 中的应用代码案例。因为索引和存储两者是分开的,对于某一个字段我们可以建立索引,但是不存储,我们依然可以对此字段进行搜索,但是因为我们没有存储,所以我们搜索出来的结果中不显示此字段的内容。本文为了结果的展示明显,我们将“desc“属性进行索引并且存储。搜索结果TopDocs类Lucene搜索结果可通过TopDocs遍历,TopDocs类提供了

2022-01-24 13:52:13 2018

原创 Lucene应用实战(三)——分词器的使用

前言前面几篇文章我们对Lucene中索引的创建等相关知识进行了初步的学习。接下来思考一个问题,我们创建的索引,是不是符合我们搜索要求的索引呢?平日里我们搜索东西的时候,输入某个关键词,有时候能搜出来,有时候搜别的关键词就搜不出来。用户输入的关键词和我们存储的索引之间会有一个匹配的过程,如果能匹配的上,那么就返回相应结果。索引创建是很关键的一环,而分词又是索引创建的核心,直接影响到索引的质量。接下来我们来从分词入手,详细拆解索引创建过程中分词的流程。分词的相关概念分词器:采集到的数据会存储到D

2022-01-24 13:51:28 1151

原创 Lucene应用实战(二)——Field域的使用及索引库的维护

Field域的使用及索引库的维护前言在前面我们对Lucene的使用进行了简单的demo实战,本文我们详细来说明下Lucene中的Field域的使用及索引库维护的相关操作。Fileld域的使用简介Lucene存储对象是以Document为存储单元,对象中相关的属性值则存放到Field中。Field是文档中的域,包括Field名和Field值两部分,一个文档可以包括多个Field,Document只是Field的一个承载体,Field值即为要索引的内容,也是要搜索的内容。Field有三大属性:

2022-01-24 13:50:45 441

原创 Lucene应用实战(一)——索引创建与搜索

Lucene简介Lucene是非常优秀的成熟的开源的免费的纯java语言的全文索引检索工具包。Lucene是一个高性能、可伸缩的信息搜索(IR)库。 Information Retrieval (IR) library.它可以为你的应用程序添加索引和搜索能力。Lucene是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。由Apache软件基金会支持和提供,Lucene提供了一个简单却强大的应用程序接口,能够做全文索引和搜索。

2022-01-24 13:49:04 2454

原创 痛苦的根源

我痛苦的根源在于在用学生的思维来生活和工作,学生时做题考试是有标准答案的,但是人生没有标准答案,可以这样活,也可以那样活,最重要的是要想明白自己到底想要的是什么,然后去做选择,这是属于我自己的选择,与他人无关,至于别人所吹捧的别的什么东西,那也是别人的,与我无关。...

2022-01-24 12:38:52 234 1

原创 面试官:MySQL中的锁你能说出来几种?

前言面试官:MySQL中的锁很多,你能说出来几种?要是你能完整的回答出来,那就不用往下看了,如果有疑惑,就继续看喽。锁分类在 MySQL中锁有很多不同的分类。从操作粒度看从操作的粒度可分为表级锁、行级锁和页级锁。表级锁:每次操作锁住整张表。锁定粒度大,发生锁冲突的概率最高,并发度最低。应用在MyISAM、InnoDB、BDB 等存储引擎中。行级锁:每次操作锁住一行数据。锁定粒度最小,发生锁冲突的概率最低,并发度最高。应用在InnoDB 存储引擎中。页级锁:每次锁定相邻的一组

2022-01-24 11:51:44 1192

原创 听说你用过RabbitMQ?那来说说RabbitMQ的几种工作模式吧......

你真的了解rabbitmq吗?不,你不了解

2022-01-22 20:17:33 1744

原创 都啥年头了,还问这种面试题

两道经典面试题灵魂拷问,我hold不住了

2022-01-22 19:46:09 455

原创 深入Redis底层数据结构,看这篇文章就够了

Redis的value的常见几种数据类型,有string字符串类型、list列表类型、set集合类型、sortedset(zset)有序集合类型、hash类型等。本篇我们来深入研究下这些数据结构的底层实现,从而对Redis有更深层次的认识。

2022-01-20 19:46:23 826

原创 面试官:来说一说缓存雪崩、缓存穿透、缓存击穿的区别?我整个人都懵了

前言本文我们整理总结下Redis使用过程中一些常见的问题,并研究如何解决。缓存穿透一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。简介缓存穿透是指在高并发下查询key不存在的数据,会穿过缓存查询数据库。导致数据库压力过大而宕机 。解决方案解决方案:对查询结果为空的情况也进行缓存,缓存时间(ttl)设置短一点,或者该key对应的数据insert了之后清理缓存。存在的问题:缓存太多空值占用了更多的空间使用布隆过滤器。在缓存之前

2022-01-20 19:37:46 1912 2

原创 大厂面试题:说一说Redis的过期淘汰策略

前言我们经常用redis来当缓存使用,既然是缓存,就有过期时间,否则就有可能数据更新不及时,造成脏数据的现象,本文我们来学习下redis的过期淘汰策略。Redis的性能Redis有两种使用场景,一种是作为DB(数据库)使用,一种是当做缓存使用。关于Redis的性能,我们来看一下官方数据:读:110000次/s写:81000次/s长期使用,key会不断增加,Redis作为缓存使用,物理内存也会满。如果物理内存满了之后,内存就需要与硬盘交换(swap) ,就是需要我们常说的虚拟内存 ,频繁IO

2022-01-20 19:31:06 1550

原创 缓存“延时双删”真的有必要吗?我觉得没有

第一次清空缓存后,更新数据库前的这段时间内,其他事务查询了数据库的数据,第二次清空缓存后,刚才查询数据库 的那个线程又更新了缓存,此时又会将旧数据更新到缓存

2022-01-19 13:37:42 5632 1

原创 大厂面试十大真题(附有详细解答)

大厂面试十大真题,并附有详细解答,供大家学习,文末有额外大礼包资料及内推哦。

2022-01-18 13:59:53 870

原创 Linux性能优化大杀器—平均负载率详解(鼓励收藏)

平均负载是指单位时间内,系统处于 可运行状态 和 不可中断状态 的平均进程数,也就是平均活跃进程数,它和CPU 使用率并没有直接关系。

2022-01-18 08:59:39 1255 1

原创 学会了伪共享问题解决方案,又能涨薪了

前言学习的过程中遇到了一个名词——“伪共享”,出于对知识的兴趣,上网查阅了一些博文,研究了“伪共享”的问题,写此文章总结记录。要很好的理解伪共享问题,我们要先从CPU的缓存开始说起。CPU缓存架构CPU 是计算机的心脏,所有运算和程序最终都要由它来执行。主内存(RAM)是数据存放的地方,CPU 和主内存之间有好几级缓存,因为即使直接访问主内存也是非常慢的。如果对一块数据做相同的运算多次,那么在执行运算的时候把它加载到离 CPU 很近的地方就有意义了,比如一个循环计数,你不想每次循环都跑到主内存

2022-01-17 13:50:44 224 1

原创 给自己立一个flag

给自己立一个flag,2022年每天发表一篇博客,粉丝破千。2022年1月16日的博客数据如下:

2022-01-16 19:19:11 274 4

原创 2021,我一直在面试

不是在面试,就是在面试的路上

2022-01-16 12:44:00 2469 16

原创 经济学的几个原理

1. 边际效用递减边际效用递减 ,是指在一定时间内,在其他商品的消费数量保持不变的条件下,当一个人连续消费某种物品时,随着所消费的该物品的数量增加,其总效用(total utility)虽然相应增加,但物品的边际效用(marginal utility,即每消费一个单位的该物品,其所带来的效用的增加量)有递减的趋势。 边际收益递减原理,在实际社会中的应用举例如下。在生产中,比如,在农田里撒化肥可以增加农作物的产量,当向一亩农田里撒第一个100公斤化肥的时候,增加的产量最多,撒第二个100公斤

2022-01-16 11:36:36 2763

原创 java对象分配过程及堆溢出测试

JVM设计者不仅需要考虑到内存如何分配,在哪里分配等问题,并且由于内存分配算法与内存回收算法密切相关,因此还需要考虑GC执行完内存回收后是否存在空间中间产生内存碎片。

2022-01-15 19:40:11 237

原创 java中“堆”的相关参数demo设置

堆大小 = 新生代 + 老年代。其中,堆的大小可以通过参数 –Xms、-Xmx 来指定。1)年轻代(Young Gen):年轻代主要存放新创建的对象,内存大小相对会比较小,垃圾回收会比较频繁。年轻代分成1个Eden Space和2个Survivor Space(from 和to)。2)年老代(Tenured Gen):年老代主要存放JVM认为生命周期比较长的对象(经过几次的Young Gen的垃圾回收后仍然存在),内存大小相对会比较大,垃圾回收也相对没有那么频繁。

2022-01-15 19:34:39 250

原创 GC日志分析实战,你了解吗?

前言本节我们来通过代码实战来看下GC日志的一些信息。代码示例我们看以下代码:package com.test;public class TestGCLog01 { private static final int _1MB = 1024*1024; /** * VM参数: * -Xms20M -Xmx20M -Xmn10M -XX:+UseParallelGC -XX:+PrintGCDetails -XX:SurvivorRatio=8 */

2022-01-15 13:51:33 69

原创 RabbitMQ实战(一)——RabbitMQ安装

RabbitMQ 简介RabbitMQ,俗称“兔子MQ”(可见其轻巧,敏捷),是目前非常热门的一款开源消息中间件,不管是互联网行业还是传统行业都广泛使用(最早是为了解决电信行业系统之间的可靠通信而设计)。RabbitMQ的特点如下:高可靠性、易扩展、高可用、功能丰富等支持大多数(甚至冷门)的编程语言客户端。RabbitMQ遵循AMQP协议,自身采用Erlang(一种由爱立信开发的通用面向并发编程的语言)编写。RabbitMQ也支持MQTT等其他协议。本文主要来介绍RabbitMQ的安装步

2022-01-15 13:47:49 135

原创 JVM如何判断一个对象是否存活?

前言在 深入浅出Java虚拟机(三)——初识JVM的垃圾回收机制 中我们介绍了如何判断对象已死的两种算法,分别是引用计数法和可达性分析法。本文我们再来详细说明一下JVM中判断对象是否、存活的相关细节。finalize()方法的执行条件即使在可达性分析算法中判定为不可达的对象, 也不是“非死不可”的, 这时候它们暂时还处于“缓刑”阶段, 要真正宣告一个对象死亡, 至少要经历两次标记过程:第一次标记:如果对象在进行可达性分析后发现没有与GC Roots相连接的引用链, 那它将会被第一次标记, 随后进

2022-01-15 10:30:00 549

原创 手把手教你如何自定义一个类加载器

前言前面 认识类加载器及双亲委派模型/ 中我们认识了类加载器,本文我们来自定义一个类加载器。为什么需要自定义类加载器?既然JDK已经有类加载器了,为什么还需要自定义类加载器呢?大概有以下几个原因:隔离加载类模块隔离,将类加载到不同的应用程序中。比如Tomcat这类web应用服务器,内部定义了好几种类加载器,用于隔离web应用服务器上不同的应用程序。扩展加载源​ 还可以从数据库、网络或其他终端上加载类防止源码泄露​ Java代码容易被编译和篡改,可以进

2022-01-14 14:12:27 3277 1

原创 认识类加载器及双亲委派模型

类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。>注意:JVM主要在程序第一次主动使用类的时候,才会去加载该类,也就是说,JVM并不是在一开始就把一个>程序就所有的类都加载到内存中,而是到不得不用的时候才把它加载进来,而且只加载一次。

2022-01-14 14:09:41 275

原创 JVM常用指令实战(值得收藏即用即查)

前言本文我们来学习下JVM中的一些常用的指令。jps介绍jps 是(java process Status Tool), Java版的ps命令,查看java进程及其相关的信息,如果你想找到一个java进程的pid,那可以用jps命令替代linux中的ps命令了,简单而方便。命令格式:jps [options] [hostid]options参数解释:-l : 显示进程id,显示主类全名或jar路径-q : 显示进程id-m : 显示进程id, 显示JVM启动时传递给main()

2022-01-14 13:56:49 645

原创 最近的状态,很不好

最近太浮躁了,整个2021年都很浮躁。把我最近几个月的状态理了一下,人云亦云,没有坚定的价值观;不够专注;24岁的年纪有性欲,外界有很多诱惑,很浮躁,2021年浮躁了一整年;把工作没有当成自己的事业来做,只是想着赶紧下班回家,混吃等死;内心的空虚,早上起来的那种无力感,经常半夜惊醒;感觉人生没有意义,找不到活着的理由;知道自己应该怎样努力,去学什么,但就是放在那儿不想学习,不想动弹;什么道理都懂,但就是不想去做,并不觉得他们努力的人有什么高尚的,觉得干什么都一样,最终都是死,众生皆苦;我

2022-01-13 19:21:54 115

原创 JVM中类加载的过程详解

类从被加载到虚拟机内存中开始,到卸载出内存,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initiallization)、使用(Using)和卸载(Unloading)这7个阶段。其中验证、准备、解析3个部分统称为连接(Linking)

2022-01-13 19:10:32 552

原创 Java虚拟机栈的出栈入栈流程及栈内存大小设置

Java虚拟机栈(Java Virtual Machine Stacks)是线程私有的,即生命周期和线程相同。Java虚拟机栈和线程同时创建,用于存储栈帧。每个方法在执行时都会创建一个栈帧(Stack Frame),用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直到执行完成的过程就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。

2022-01-13 19:07:52 2513 2

原创 Java虚拟机(三)——初识JVM的垃圾回收机制

前言对于程序计数器、虚拟机栈、本地方法栈这三个部分而言,其生命周期与相关线程有关,随线程而生,随线程而灭。并且这三个区域的内存分配与回收具有确定性,因为当方法结束或者线程结束时,内存就自然跟着线程回收了。因此本篇文章所讲的有关内存分配和回收关注的是Java堆与方法区这两个区域。如何判断对象已死?1. 引用计数法简介给对象增加一个引用计数器,每当有一个地方引用它时,计数器就+1;当引用失效时,计数器就-1;任何时刻计数器为0的对象就是不能再被使用的,即对象已“死”。引用计数法实现简单,判定效率也比

2022-01-12 19:39:21 289

原创 深入浅出Java虚拟机(二)——Java内存模型

前言我们从一个问题入手来进行对JVM的深入理解。JVM的内存区域是怎么高效划分的?为什么要问到 JVM 的内存区域划分呢?因为 Java 引以为豪的就是它的自动内存管理机制。相比于 C++的手动内存管理、复杂难以理解的指针等,Java 程序写起来就方便的多。然而这种呼之即来挥之即去的内存申请和释放方式,自然也有它的代价。为了管理这些快速的内存申请释放操作,就必须引入一个池子来延迟这些内存区域的回收操作。我们常说的内存回收,就是针对这个池子的操作。我们把上面说的这个池子,叫作堆,可以暂时把它看成一个

2022-01-12 19:37:55 275

原创 深入浅出Java虚拟机(一)——初识JVM

什么是JVMJVM 全称 Java Virtual Machine,也就是我们耳熟能详的 Java 虚拟机。它能识别 .class后缀的文件,并且能够解析它的指令,最终调用操作系统上的函数,完成我们想要的操作。一般情况下,使用 C++ 开发的程序,编译成二进制文件后,就可以直接执行了,操作系统能够识别它;但是 Java 程序不一样,使用 javac 编译成 .class 文件之后,还需要使用 Java 命令去主动执行它,操作系统并不认识这些 .class 文件。Java 程序和我们通常使用的 C++

2022-01-12 19:34:21 282

原创 java并发编程(三十八)——“死锁“的发生及修复策略

前言锁是我们之前常使用的并发工具,但有时候也会有一些问题,比如死锁。本文我们来了解下死锁相关的知识。简介死锁一定发生在并发场景中。我们为了保证线程安全,有时会给程序使用各种能保证并发安全的工具,尤其是锁,但是如果在使用过程中处理不得当,就有可能会导致发生死锁的情况。死锁是一种状态,当两个(或多个)线程(或进程)相互持有对方所需要的资源,却又都不主动释放自己手中所持有的资源,导致大家都获取不到自己想要的资源,所有相关的线程(或进程)都无法继续往下执行,在未改变这种状态之前都不能向前推进,我们就把这种状

2022-01-12 19:31:15 254

原创 java并发编程(三十七)——什么是自旋锁?

“自旋”可以理解为“自我旋转”,这里的“旋转”指“循环”,比如 while 循环或者 for 循环。“自旋”就是自己在这里不停地循环,直到目标达成。而不像普通的锁那样,如果获取不到锁就进入阻塞。

2022-01-09 12:29:02 319

原创 java并发编程(三十六)——初识读写锁

前言在没有读写锁之前,我们假设使用普通的 ReentrantLock,那么虽然我们保证了线程安全,但是也浪费了一定的资源,因为如果多个读操作同时进行,其实并没有线程安全问题,我们可以允许让多个读操作并行,以便提高程序效率。但是写操作不是线程安全的,如果多个线程同时写,或者在写的同时进行读操作,便会造成线程安全问题。我们的读写锁就解决了这样的问题,它设定了一套规则,既可以保证多个线程同时读的效率,同时又可以保证有写入操作时的线程安全。我们来学习下读写锁的规则及用法。读写锁简介读写锁的整体思路是它

2022-01-09 12:23:45 416

原创 java并发编程(三十五)——公平与非公平锁实战

前言在 java并发编程(十六)——锁的七大分类及特点 一文中我们对锁有各个维度的分类,其中有一个维度是公平/非公平,本文我们来探讨下公平与非公平锁。公平|非公平首先,我们来看下什么是公平锁和非公平锁,公平锁指的是按照线程请求的顺序,来分配锁;而非公平锁指的是不完全按照请求的顺序,在一定情况下,可以允许插队。但需要注意这里的非公平并不是指完全的随机,不是说线程可以任意插队,而是仅仅“在合适的时机”插队。那么什么时候是合适的时机呢?假设当前线程在请求获取锁的时候,恰巧前一个持有锁的线程释放了这把锁,那

2022-01-09 12:21:27 367

mybatis-log-plugin插件idea.zip

小伙伴们在使用mybatis的时候有时候会出现一些sql异常,这个时候就需要对执行的sql语句进行检查。 这个时候如果sql语句比较长比较复杂的话再手动拼接起来就会比较复杂,万一再手抖一下还原sql的过程中弄点什么差错出来的话就会很麻烦,浪费时间还解决不了问题,导致开发效率大打折扣,这个时候我们的一款优秀的IDEA插件Mybatis Log Plugin就闪亮登场了. 可以打印完整sql

2020-05-15

elasticsearch-7.4.0-linux-x86_64.tar.gz

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

2020-05-15

HosptialOA.zip

(1) 患者模块:预约挂号、医院公告、就诊指南、医生介绍、科室导航等功能; 预约挂号模块,患者可以选择相应的科室,选择要预约的日期和时间,提交系统审核之后,系统经过后台查询对应时间的科室及医生信息之后,反馈给患者是否预约成功的信息。 (2) 员工模块:新闻公告、个人信息、联系人管理、工作日志、人事管理、病人管理等功能; 新闻公告模块,定期发布一些医院内部的人事调度信息及医院内部的重大新闻。 个人信息模块,提供对个人信息的查看和修改。 联系人管理模块,员工可以增加自己的通讯录信息、删除通讯录信息,修改通讯录信息,查询通讯录信息,导出通讯录信息。 工作日志模块,员工可以增加工作日志,删除工作日志,修改工作日志,查询工作日志,导出工作日志。 (3) 管理员模块:用户管理、数据维护、权限管理等功能。 用户管理,管理员可以增加用户信息,删除用户,修改用户信息,查询用户信息。 数据维护,包括对数据定期进行备份,保证数据的安全性。 权限管理,本系统一共有医生,普通员工,病人,管理员等4种用户角色,不同的角色所对应的权限是不一样的,应当给他们赋予不同的权限。

2019-11-28

Rufus+v3.8+Build+1580.zip

rufus是一款实用的自启动u盘制作工具。用户可以通过该软件快速制作linux系统或者win启动u盘,不过在这之前你需要把重要资料备份到电脑中,因为格式化后什么都找不回来了。如果身边没有系统安装盘或者刻录光盘,那么使用rufus就可以帮你安装系统了。 完美取代微软系统自带的闪存盘格式化功能组件,支持多个分区方案和目标系统类型以及 UDF 通用光盘文件系统,针对常常制作优盘启动盘的技术人员或系统爱好者们来说真可谓得心应手。   在需要将一些可引导 ISO 格式镜像创建成可引导启动优盘系统的时候,当需要使用一台尚未安装操作系统的计算机的时候,亦或者需要从 DOS 系统刷新 BIOS 或者其他固件的时候,亦或者在需要运行一个非常底层的工具的时候,Rufus 的可便携化使用特性毫不逊色于 UltraISO 软碟通,拥有 Rufus 这款可靠的 USB 闪存工具准没错。

2019-11-13

Navicat Premium.zip

Navicat是一套快速、可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。 Navicat适用于三种平台 - Microsoft Windows、Mac OS X 及Linux。它可以让用户连接到任何本机或远程服务器、提供一些实用的数据库工具如数据模型、数据传输、数据同步、结构同步、导入、导出、备份、还原、报表创建工具及计划以协助管理数据。 它可以用来对本机或远程的 MySQL、SQL Server、SQLite、Oracle 及 PostgreSQL 数据库进行管理及开发。

2019-11-13

计算机系课程设计管理系统

计算机系课程设计管理系统,使用Java web开发技术,基于eclipse开发平台和MySQL数据库,涉及jsp,servlet,ajax,jQuery,css等技术,使用了easyui开源框架,整个系统,分为教师登陆和学生登陆,可以实现文件的上传和下载,实现了分页功能,还有基于java的邮箱验证。资源中附有sql文件和系统的说明文档。

2018-07-13

睡觉的理发师

多线程操作,使用Qt开发,界面良好,直观感受多线程的同步与互斥。

2018-07-07

操作系统课程设计 模拟页面置换算法的实现 基于Qt

基于Qt开发的,模拟操作系统的内存页面置换算法的实现。该项目主要是模拟操作系统的内存管理中的页面置换算法,对比几种算法的优劣,并将结果以动态的形式展示出来。选择了四种置换算法:先来先服务(FIFO)、最近最少使用(LRU)、最佳置换(OPT)、随机置换(RAN)。 该系统使用的程序设计语言是C++,采用Qt框架开发,其中算法实现时使用了QList、QMap、QQueue等类,借助于QThread类来实现四个线程的同步,对线程的挂起等操作使用了QMutex、QWaitCondition等类。系统中还涉及对音视频的操作及对文件的处理等技术。

2018-07-07

基于Qt开发的12306汽车售票系统

基于Qt平台的简易互联网汽车售票系统,使用MySql数据库开发,编程语言是c++,图形库是Qt,界面良好,因为是初学者,所以程序可能有累赘之处,希望和大家一起交流,欢迎指正,共同进步。文件中附有sql文件。

2018-07-07

空空如也

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

TA关注的人

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