自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

炎溟墨的博客

IT菜鸟的学习之路

  • 博客(111)
  • 资源 (3)
  • 收藏
  • 关注

原创 垃圾收集器知识点4:Java中垃圾收集器的实现

目录java8垃圾收集器组合一览serial GC(串行GC)的实现串行gc日志分析Minor GC(小型GC)Full GC(完全GC)Parallel GC(并行GC)的实现并行GC日志分析Minor GC(小型GC)Full GCCMS(Concurrent Mark and Sweep) GC的实现(重点GC)CMS GC日志分析Minor GCFull GCG1(Garbage First) GC的实现(重点)java8垃圾收集器组合一览我们知道,针对年轻代和年老代的垃圾回收需要采取不同的gc

2021-11-17 23:15:28 509 1

原创 垃圾收集器知识点汇总3:GC算法基础

目录GC算法基础标记可达对象(Marking Reachable Objects)删除不可达对象清除操作整理操作复制操作GC算法基础标记可达对象(Marking Reachable Objects)首先重温一下GCROOTS,GCROOTS为Garbage Collection Roots的缩写,被指定为GCROOTS的对象包括:当前 正在执行的方法里 的 局部变量和输入参数活动线程(Active threads)内存中所有类的静态字段JNI引用GC遍历内存中的整体对象关系图,从GC根元

2021-11-06 15:46:04 173

原创 垃圾收集器知识点汇总2:Java中的垃圾收集

Java中的垃圾收集碎片整理上篇文章提到,标记清除法会导致内存碎片,内存碎片会使写入操作越来越耗时,因为寻找一块足够大的空闲空间会变得非常麻烦,并且在创建对象时JVM需要在连续的块中分配内存,内存碎片很容易导致没有足够连续的块创建对象导致内存分配错误(allocation error)。要避免这种问题,就需要对内存进行碎片整理。方法就是对可达对象依次排序。图例:分代假设为了避免垃圾回收的对象过多而导致STW(STOP THE WORLD PAUSE,全线暂停)时间过长,我们需要想办法实现每次进

2021-10-28 00:26:33 178

原创 垃圾收集器知识点汇总1:早期垃圾回收方案

垃圾收集器知识点汇总1:早期垃圾回收方案手动内存管理共享指针自动管理内存手动内存管理手动内存管理(Manual Mememory Management)是一种通过代码显式的分配内存并主动回收的方法,常见于早期的c/c++,通常会因为忘记回收而导致内存泄漏。例:int send_request() { size_t n = read_size();int *elements = malloc(n * sizeof(int));if(read_elements(n, elements) <

2021-10-24 15:31:07 78

原创 常见分布式限流方案

常见分布式限流方案常见分布式限流方案限流分类合法性验证限流容器限流服务端限流常见的6种限流方案1.Tomcat 使用 maxThreads 设置请求线程数来实现限流2.nginx通过 limit_req_zone 和 burst 来实现速率限流3.nginx通过 limit_conn_zone 和 limit_conn 两个指令控制并发连接的总数4.服务端使用时间窗口算法借助 Redis 的zset实现限流5.服务端使用漏桶算法借助 Redis-Cell 来实现限流6.服务端使用令牌算法借助Google 的

2021-05-29 17:44:36 333 2

原创 Java流(stream)复习

文章目录输出流输入流过滤器流阅读器和书写器输出流Java的基本输出流类是Java.io.OutputStream;这个类提供了写入数据的基本方法:它的子类FileOutputStream使用这些方法将数据写入文件.TelnetOutputStream使用这些方法将数据写入网络连接.ByteArrayOutputStream使用这些方法将数据写入可扩展的字节数组.输入流过滤器流...

2019-10-17 00:57:04 241

原创 MySQL的EXPLAIN命令详解(背就完事了)

文章目录语法各列详解keyrowspossible_keyskey_lentableselect_typesimpleprimaryderiveddependent subqueryunionunion resultpartitionsExtra解释EXPLAIN输出结果MySQL的EXPLAIN命令用于SQL语句的查询执行计划(QEP).这条命令的输出结果能够让我们了解MYSQL优化器是如何...

2019-10-13 14:05:29 547

原创 MySQL性能优化小技巧(必会)

文章目录索引管理优化整合DDL语句去除重复索引删除不用的索引监控无效的索引索引列的改进数据类型的优化BIGINT 和INT的区别DATETIME和TIMESTAMP的区别什么时候用ENUM什么时候使用NULL或NOT NULL隐含的变换列的类型IP地址MD5其他SQL优化减少SQL语句删除内容重复的SQL语句删除重复执行的SQL语句删除不必要的SQL语句缓存SQL结果MySQL缓存应用程序缓存简化...

2019-10-13 02:02:50 216 3

原创 SQL的生命周期

文章目录截取SQL语句全面查询日志慢查询日志二进制日志进程列表引擎状态MySQL连接器应用程序代码information——schemaperformance——schemaSQL语句统计插件MySQL ProxyTCP/IP识别有问题的语句慢查询日志分析TCP/IP分析确认语句执行环境时间统计优化SQL语句的生命周期涉及6个独立部分,包括如何截取SQL语句、识别有问题的SQL语句以及在开始分析...

2019-10-12 23:42:51 1778

原创 MySQL配置选项

文章目录内存相关的系统变量key_buffer_size内存相关的系统变量MySQL内存系统变量能够影响全局内存的使用,也能够影响到多线程的单一MySQL进程中会话的内存使用情况.很多MySQL变量是动态的,他们的值可以在运行时通过MySQL客户端的set命令更改.全局内存缓冲区:全局/会话内存缓冲区会话缓冲区:key_buffer_sizekey_buffer_size...

2019-10-11 12:01:22 488

原创 创建更好的MySQL索引

文章目录更好的索引覆盖索引存储引擎的含义局部索引在上一次中我们已经讨论过单列索引和多列索引,接下来我们来看看覆盖索引和局部列索引.更好的索引覆盖索引覆盖索引是多列索引中的一种如果我们想查询所有在1969年出道的艺人名字,可以运行下面的查询:这个表有大约500000行数据,在没有索引的情况下查询需要耗时190毫秒.我们给这个表加一个索引:加了单列索引后查询耗时减少到5.9毫秒,...

2019-10-11 00:11:49 89

原创 创建MySQL索引

文章目录我文章需要使用的表已有的索引单列索引创建单列索引的语法利用索引限制查询读取的行数使用索引连接表理解索引的基数使用索引进行模式匹配选择唯一的行结果排序多列索引确定使用何种索引多列索引的语法创建更好的索引多个列上的索引合并where和order by语句MySQL优化器的特性查询提示总查询提示索引提示添加索引造成的影响DML影响重复索引索引是否被使用DDL影响磁盘空间影响MySQL的限制和不足...

2019-10-10 15:40:31 184

原创 Java中的线程池

文章目录线程池的实现原理线程池的使用线程池的创建向线程池提交任务关闭线程池合理地配置线程池线程池的监控Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处:第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行...

2019-10-08 14:08:44 195

原创 Java中的并发工具类

文章目录等待多线程完成的CountDownLatch同步屏障CyclicBarrierCyclicBarrier的应用场景CyclicBarrier和CountDownLatch的区别控制并发线程数的Semaphore应用场景其他方法线程间交换数据的ExchangerCountDownLatch、CyclicBarrier和Semaphore工具类提供了一种并发流程控制的手段,Exchanger...

2019-10-08 11:30:23 94

原创 Java中的12个原子操作类

文章目录原子更新基本类型类原子更新数组原子更新引用类型原子更新字段类当程序更新一个变量时,如果多线程同时更新这个变量,可能得到期望之外的值,比如变量i=1,A线程更新i+1,B线程也更新i+1,经过两个线程操作之后可能i不等于3,而是等于2。因为A和B线程在更新变量i的时候拿到的i都是1,这就是线程不安全的更新操作,通常我们会使用synchronized来解决这个问题,synchronized会...

2019-10-08 09:50:09 131

原创 Java并发容器和框架

文章目录ConcurrentHashMap的实现原理与使用为什么要使用ConcurrentHashMapConcurrentHashMap的结构ConcurrentHashMap的初始化初始化segments数组初始化segmentShift和segmentMask初始化每个segment定位SegmentConcurrentHashMap的操作get操作put操作size操作Concurrent...

2019-10-07 01:49:24 201

原创 Java中的锁

文章目录Lock接口队列同步器(AQS)队列同步器的接口与示例队列同步器(AQS)的实现分析同步队列独占式同步状态获取与释放共享式同步状态获取与释放独占式超时获取同步状态自定义同步组件——TwinsLock重入锁(ReentrantLock)实现重进入公平与非公平获取锁的区别读写锁读写锁的接口与示例读写锁的实现分析读写状态的设计写锁的获取与释放读锁的获取与释放锁降级LockSupport工具Con...

2019-10-06 23:37:57 145

原创 并发编程基础

文章目录线程简介什么是线程为什么要使用多线程线程优先级线程的状态Daemon线程(守护线程)启动和终止线程构造线程启动线程理解中断过期的suspend()、resume()和stop()安全地终止线程线程间通信volatile和synchronized关键字等待/通知机制等待/通知的经典范式管道输入/输出流Thread.join()的使用ThreadLocal的使用线程应用实例等待超时模式一个简单...

2019-10-06 01:10:19 154

原创 Java内存模型

文章目录Java内存模型的基础并发编程模型的两个关键问题重排序顺序一致性volatile的内存语义锁的内存语义final域的内存语义happens-before双重检查锁定与延迟初始化Java内存模型综述Java内存模型的基础并发编程模型的两个关键问题重排序顺序一致性volatile的内存语义锁的内存语义final域的内存语义happens-before双重检查锁定与延迟初始化...

2019-10-03 00:24:30 74

原创 确保Web安全的HTTPS

文章目录HTTP的缺点通信使用明文可能会被窃听通信加密内容加密伪装证明身份无法证明报文的完整性接收的内容可能有误防止篡改HTTPSHTTPS是身披SSL外壳的HTTP相互交换密钥的公开密钥加密技术公共密钥加密的困境证明公开密钥正确性地证书HTTP的缺点通信使用明文,内容可能被窃听不验证通信方的身份,因此有可能遭遇伪装无法证明报文的完整性,所以有可能已遭篡改通信使用明文可能会被窃听按...

2019-09-30 21:05:05 195

原创 HTTP状态码(查询专用)

文章目录http协议用于客户端和服务器端之间的通信通过请求和响应的交换达成通信http是不保存状态的协议请求uri定位资源告知服务器意图的http方法使用方法下达命令持久连接节省通信量使用cookie的状态管理http协议用于客户端和服务器端之间的通信HTTP协议和TCP/IP协议族内的其他众多的协议相同,用于客户端和服务器之间的通信.通过请求和响应的交换达成通信http是不保存状态的协议...

2019-09-30 13:01:45 1028

原创 Java并发机制的底层实现原理

文章目录volatile的应用volatile的定义与实现原理volatile的使用优化synchronized的实现原理Java对象头锁的升级与对比偏向锁偏向锁的撤销关闭偏向锁轻量级锁轻量级锁加锁轻量级锁解锁锁的优缺点对比原子操作的实现原理处理器实现原子操作使用总线锁定保证原子性使用缓存锁保证原子性Java实现原子操作使用循环CAS实现原子操作CAS实现原子操作的三大问题ABA问题循环时间开销大...

2019-09-29 01:12:25 170

原创 并发编程常见问题及解决方案

文章目录上下文切换问题多线程不一定快如何测试上下文切换次数和时长如何减少上下文切换无锁并发编程CAS算法使用最少线程协程减少上下文切换的例子死锁问题资源限制什么是资源限制资源限制引发的问题解决资源限制的方案在资源限制情况下进行并发编程并发编程的目的是为了让程序运行得更快。但是,并不是启动更多的线程就能让程序最大限度地并发执行。上下文切换问题即使是单核处理器也支持多线程执行代码,CPU通过给...

2019-09-28 00:43:35 634

原创 Executor框架必会考点

文章目录Executor框架简介为什么需要使用Executor框架Executor框架的两级调度模型Executor框架的结构ThreadPoolExecutor详解ScheduledThreadPoolExecutor详解FutureTask详解Executor框架简介为什么需要使用Executor框架在Java中,使用线程来异步执行任务。Java线程的创建与销毁需要一定的开销,如果我们为...

2019-09-27 15:40:26 105

原创 字符串搜索算法与匹配算法的总结

DFS算法BFS算法Sunday匹配算法KMP算法BM算法

2019-09-26 18:10:31 615

原创 递归实现全排列组合(Java实现)

public class 递归实现排列组合 { static int len; public static void listAll(List list,String prefix) { if (prefix.length()==len) { System.out.println(prefix); } for (int i = 0; i < list.size(); i...

2019-09-23 22:29:08 1237

原创 七种查找算法(数据结构必会)

文章目录顺序查找二分查找(折半查找)插值查找斐波那契查找树表查找二叉排序树的定义二叉排序树的性质二叉排序树的插入二叉排序树的查找二叉排序树的删除二叉树的遍历分块查找(索引查找)哈希查找静态查找:查找过程中,查找的表中,没有插入或删除的动作动态查找:查找过程中,查找的表中,有插入或者删除的动作无序查找:查找的表是无序的表有序查找:查找的表是有序的表平均查找长度 ASL=sum(Pi*C...

2019-09-23 13:39:18 2627

原创 HTTP数据压缩算法(Java实现)

文章目录deflate算法gzip压缩包bzip2压缩算法LZO算法LZ4算法Snappy算法deflate算法deflate是同时使用了LZ77算法与哈夫曼编码的一个无损数据压缩算法,deflate压缩与解压的源代码可以在自由,通用的压缩库zlib上找到算法实现.jdk中对zlib压缩库提供了支持,压缩类deflate和解压类inflate.调用deflate压缩算法如下:publi...

2019-09-22 21:08:45 876

原创 JVM常用参数(考试常见)

文章目录XmsXmxXmnverboseXssXossXnoclassgcXX系列PermSizeMaxPermSizeTraceClassLoadingTraceClassUnLoadingNewRatioSurvivorRatioHeapDumpOnOutOfMemoryErrorUseG1GCPrintGCDetailsPrintGCPretenureSizeThresholdMaxTenu...

2019-09-22 17:58:41 695 1

原创 Nginx代理的玩法

文章目录nginx安装和基础代理配置nginx代理配置和代理缓存的用处HTTPS解析使用nginx部署HTTPS服务HTTP2的优势和nginx配置HTTP2的简单使用nginx安装和基础代理配置进入http://nginx.org下载nginx使用cmd或者gitbash进入文件夹运行nginx:如果你报了这样的错误:那你就跟着我一起修改下conf配置文件:然后运行就好了....

2019-09-20 21:14:14 107

原创 HTTP协议特性

文章目录认识HTTP客户端CORS跨域请求的限制与解决CORS跨域限制以及请求验证缓存头cache-control的含义与使用缓存验证Last-Modified和Etag的使用cookie和sessionHTTP长连接数据协商RedirectCSP认识HTTP客户端CORS跨域请求的限制与解决CORS跨域限制以及请求验证缓存头cache-control的含义与使用缓存验证Last-Mod...

2019-09-20 00:33:32 303

原创 操作系统9道经典PV操作

文章目录仓库存储放水果放水果2理发师理发吸烟者问题面包师问题写者优先的读者-写者问题交通问题共用缓冲区仓库存储问题描述:有一个仓库,可以存放A和B两种产品,仓库的存储空间足够大,但要求:一次只能存入一种产品(A或B)-N < (A产品数量-B产品数量) <M其中N和M是正整数.试用"存放A"和存放B"以及P,V操作描述产品A与产品B的入库过程.//互斥信号量Semap...

2019-09-19 11:23:41 5600 1

原创 经典调度问题:读者优先/写者优先算法

文章目录算法介绍读者优先:写者优先:多线程编程注意事项写者优先算法流程图算法介绍创建一个包含n 个线程的控制台进程。用这n 个线程来表示n个读者或写者。每个线程按相应测试数据文件的要求,进行读写操作。请用信号量机制分别实现读者优先和写者优先的读者-写者问题。读者优先:如果一个读者申请进行读操作时已有另一读者正在进行读操作,则该读者可直接开始读操作。写者优先:如果一个读者申请进行读操作时已有...

2019-09-19 10:15:29 8158 1

原创 HTTP协议基础

5层网络模型HTTP协议的发展历史HTTP的三次握手URI-URL和URNHTTP报文格式创建一个最简单的web服务

2019-09-16 15:22:35 124

原创 深入理解MySQL的索引

文章目录MySQL索引各种可能的用途数据完整性优化数据访问表连接结果排序聚合操作理解各种索引数据结构理论索引专业术语各种存储引擎的索引实现方式分区的MySQL索引创建合适的索引是SQL性能调优中最重要的技术之一.MySQL索引各种可能的用途索引不仅仅是在读取数据时优化mysql的性能.这些功能还包括:保持数据完整性优化数据访问性能改进表的连接操作对结果进行排序简化聚合数据操作...

2019-09-16 14:41:14 85

原创 字符串与二叉树操作与其他总结

文章目录不使用比较运算求出两个数的最大值与最小值不使用比较运算求出两个数的最大值与最小值根据数学公式,我们知道最大值Max(a,b)=(a+b+| a-b|)/2,最小值Min(a,b)=(a+b-|a-b|)/2.,如果使用这种方法求最大最小值,当a和b的值非常大时,它们的和可能会发生数据溢出的情况.把a和b变为长整型(long)可避免溢出. public static long max(...

2019-09-12 21:35:02 504

原创 Java垃圾回收机制(GC)

文章目录为什么需要垃圾回收哪些内存需要回收引用计数法可达性分析法四种引用状态强引用软引用弱引用虚引用方法区的垃圾回收垃圾收集算法(GC算法)Mark-Sweep(标记-清除)算法Copying(复制)算法Mark-Compact(标记-整理)算法分代收集算法垃圾收集器Serial收集器ParNew收集器Parallel Scavenge收集器CMS收集器G1收集器Serial Old收集器Para...

2019-09-10 21:04:28 501

原创 Java数组操作总结

文章目录寻找数组中的最大值与最小值找出数组中第二大的数寻找数组中的最大值与最小值最常用的方法就是遍历两次数组,一次找最大值,一次找最小值,比较2N次.或者遍历一次数组,声明两个变量保存最大值和最小值,每次取出一个数组先与最小值比较,再与最大值比较.,比较次数依旧是2N次算法优化:取双元素法:每次比较相邻的两个数,较大者与max比较,较小者与min比较,只需比较1.5N次.算法注意事项:...

2019-09-10 02:54:46 536

原创 栈,队列与位运算的总结

文章目录栈与队列的区别实现栈的方式如何用O(1)的时间复杂度求栈中最小元素如何实现队列如何用两个栈模拟队列操作判断一个数是否为2的n次方如何求二进制数中1的个数栈与队列的区别栈和队列是两种重要的线性数据结构.栈是后进先出,队列是先进先出.实现栈的方式方法1:使用java.util包下的Stack方法2:使用数组实现public class 数组实现栈<E> { priv...

2019-09-05 18:25:07 181 1

原创 链表操作总结

文章目录如何实现单链表的增删操作?单链表的定义单链表的插入操作(增)单链表的删除操作如何删除链表中重复的数据如何找出单链表中的倒数第K个元素如何实现链表的反转如何从尾到头输出单链表如何寻找单链表的中间结点如何检测链表是否有环怎么找环入口如何在不知道头指针的情况下删除指定节点如何判断两个链表相交如果两个链表相交,找出相交的第一个结点如何实现单链表的增删操作?单链表的定义//单链表结点clas...

2019-09-05 16:52:12 468

XSS脚本攻击使用方法初级教程

XSS跨站攻击介绍,解释XSS是如何进行攻击的以及执行攻击的实例

2018-11-27

linux后门用法教程

linux系统攻防教程,文件解压密码:shaoyu,我只是个群里的搬运工,原创是群里的少宇大佬,看了这个后我觉得很有收获,虽然这个技术可能过时了,但是只要掌握了原理,也许你也能创出新的后门方法。

2018-11-27

silenteye音频隐写及解密工具

针对CTF中有的音频隐写往往使用silenteye的现象,推荐大家面对这类题最好使用这款软件检查下

2017-11-04

空空如也

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

TA关注的人

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