自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (2)
  • 收藏
  • 关注

原创 搞懂Ecc算法,2种方法生成Ecc公钥、私钥

对ECC算法、ECC优点、ECC应用进行了介绍,并通过代码示例展示了如何生成ECC的公钥、私钥

2023-02-26 17:01:41 3951 1

原创 NL2SQL深度学习方法总结

NL2SQL任务,各方法最新准确率统计。

2021-12-27 17:25:03 2387

原创 # FastJSON # List转化为JSONArray

详细代码演示如何将List复杂对象转化为JSONArray,附带FastJSON下载链接。

2021-12-17 10:13:13 3501

原创 #案例+源码分析# Comparator.compare方法,-1,0,1是升序还是降序?

通过实际案例和源码的分析,帮助大家搞清楚compare方法返回1,是升序还是降序。文末超强总结!

2021-12-09 11:35:50 2122

原创 #NLP# Constituency Parsing解析树不正确--无法处理特殊字符、语言

自然语言处理:StanfordCoreNLP加载英文模型后,无法正确处理其它特殊语言,得到的解析树结果不正确

2021-12-08 11:33:24 612 1

原创 #优质代码# Map按Value降序排序,Value相同时按Key排序

Map按照value和key,同时进行排序,并结合Stream流式操作

2021-12-01 15:55:40 4124 1

原创 阿里FastJson下载

阿里FastJson下载地址

2021-12-01 11:57:22 1411

原创 Idea:枚举类,黄色警告,如何解决?

idea中,枚举类界面整体呈现为黄色,解决方案,超简单!!!

2021-11-27 22:48:11 5887 3

原创 #保姆级# StanfordCoreNLP -- 句法分析 + 可视化

介绍了什么是句法分析,如何获取句法分析的可视化结果,如果通过代码来获取句法分析结果

2021-11-24 00:15:14 3408 1

原创 #火爆# Git是什么?Git基本操作+文件状态介绍

Git是什么、文件在Git中的状态、Git的基本操作命令

2021-11-19 11:33:50 1581

原创 Java8新特性(案例分析)-- Optional接口妙用:避免嵌套if

Optional接口介绍,实际案例讲解如何通过Optional接口优雅地解决if判空、嵌套if判空以及与Stream的结合操作!!

2021-11-17 14:27:54 2970 2

原创 如何查看当前分支基于哪个分支创建--Git

git reflog show 当前要查询的分支名

2021-10-22 14:54:13 3610

原创 什么是同步、异步?什么是阻塞与非阻塞?

同步与异步:同步与异步讲的是,用户线程与内核的交互方式。在同步的情况下,用户线程将需要由内核完成的操作交付给内核线程后,需要一直等待内核线程完成,才能返回到用户线程;异步情况下,用户线程将任务交付给内核后,即可返回至自己的运行空间。阻塞与非阻塞:阻塞与非阻塞讲的是用户线程与内核IO操作的交互方式。阻塞模式下,当内核执行IO操作时,用户线程将一直处于阻塞状态,无法执行其它代码,无法回到用户空间;非阻塞模式下,当IO操作交付至内核空间后,整个工作流程可以直接返回至用户空间,进行下一步操作。...

2021-10-12 14:55:49 182

原创 【 超赞 】清晰认识ThreadFactory

学习JUC框架时,线程池是无法避免的话题。通常情况下,我们会采用默认的ThreadFactory构建线程池。那么,在线程池中,ThreadFactory的作用到底是什么呢?

2021-10-11 15:18:51 5140 3

原创 为什么划分内核态、用户态?

为了保证系统的稳定性、安全性,需要在系统中划分内核态、用户态。所有涉及IO操作、内存操作等,均在内核态中完成,因为当这些操作出现差错时,可能会导致整个计算机系统的崩溃。用户写的程序可能是含有导致这些操作出现差错的bug的,所以,用户编写的不涉及IO、内存等操作的程序在用户态中完成,而涉及这些操作时,则需要进行用户态到内核态的切换。将实际操作交付给内核态,内核态完成操作后,将结果传递至用户态。注意,用户态、内核态之间的切换是十分耗费性能资源的。...

2021-09-30 20:33:30 2231

原创 自然语言处理:StanfordCoreNLP,启动CoreNLP服务器

打开stanfordcorenlp的目录,shfit+右击-->打开powershell,输入如下命令,即可启动core nlp服务器。注意,使用过程中,勿关闭powershell界面。java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 15000访问方式:启动corenlp服务器后,打开浏览器,输入localhost:9000即可访问。打开后,界面如下:Tex

2021-09-28 13:42:55 1156

原创 http1.0、http1.1、http2.0的区别

http1.0和http1.1区别1. 长连接:1.1默认开启长连接,1.0需要明确使用keep-alive参数来进行长连接;【长连接指的是TCP连接的时间的长短,长连接使得多个HTTP请求可以复用一个TCP连接,这样的话就减少了建立TCP连接和释放TCP连接的开销】2. 缓存处理:相对1.0,1.1版本引入了更多的缓存机制;3. 错误通知的管理:1.1新增了20多个错误状态响应码;4. 节省宽带:1.1支持只发送header信息,而不包含body信息;5. HOST域:1.0认为一个服务器只绑

2021-09-27 15:38:59 777

原创 JVM:详解CMS垃圾收集器,一篇搞定面试官

CMS,也即Concurrent Mark Sweep,基于标记-清除算法实现。CMS的目标在于缩短STW时间(stop the world),适用于网站应用以及B/S架构的服务器端。CMS垃圾回收器在进行垃圾回收时,主要经历以下步骤:1. 初始标记该阶段需要STW,工作线程需暂停。初始标记阶段的任务在于标记老年代、元空间中能够被GC Roots能够直接关联到的对象,老年代中可直接关联的对象可分为两种,被年轻代对象引用、被老年代对象引用。2. 并发标记...

2021-09-23 19:38:28 197

原创 StanfordCoreNLP实体识别NER、实体类型

StanfordCoreNLP中细分的实体类型包括:PERSON LOCATION ORGANIZATION MISC MONEY NUMBER ORDINAL PERCENT DATE TIME DURATION SET其中,1--4属于名称named类别,5--8属于数值numerical类别,9--10属于时间temporal类别。

2021-09-22 16:21:45 1251

原创 超详细:ReentrantLock非公平锁的Lock流程(代码含详细注释)

ReentrantLock.NonfairSync继承自内部类Sync。 static final class NonfairSync extends Sync { private static final long serialVersionUID = 7316153563782823691L; // 首先尝试立即获取锁,获取成功,则将自身设定为 独占模式的同步器 的拥有者 // 如果获取失败,则通过调用AQS.acquire(

2021-09-14 12:07:47 250

原创 排序算法:冒泡、选择、插入、希尔、快速、归并 -- Java版

冒泡排序 /** 冒泡排序,从小到大 进阶版可添加标志,判断是否已然有序 */ public static void bubbleSort(int[] nums) { int temp; for(int i=0;i<nums.length;i++) { for(int j=i+1;j<nums.length;j++) { if(nums[j]<nums[i]) { temp = nums[i];

2021-09-07 18:09:19 106

原创 经典实用算法:回溯算法(含例题)

回溯算法思想回溯算法究其思想而言,十分简单。大部分情况下,可以用于解决类似于搜索的问题。通过枚举所有的解空间,获取满足条件的解。搜索解空间时,如果当前路径满足条件,则继续向下搜索。如果当前路径已不再满足解的条件,可通过剪枝操作去除当前路径,从而避免无效的枚举。0-1背包、8皇后、图着色、全排列等问题,均可用回溯算法来解决。全排列问题给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案。题目来源:leetCode输入:nums = [1,...

2021-09-07 10:57:07 1006

原创 23种设计模式:适配器模式(最强解析!!!)

适配器模式是23种设计模式之一。适配器模式作用适配器模式的作用,在于将一个类的接口变换为客户端所期待的另一种接口,使得原本因为接口不匹配而无法一起工作的两个类能在一起工作。也就是说,适配器模式解决的是接口兼容性问题。适配器模式实现方式适配器模式依据实现方式的不同,可以划分为3种:类适配器、对象适配器和接口适配器。(一)类适配器类适配器类图如下:类适配器主要由三部分构成:Target:目标角色,也即被转换后的接口; Adaptee:源角色,需要被转换的接口; Ad.

2021-09-06 14:26:57 4262

原创 如何利用部分有序的特性进行二分查找

题目如下:整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为[4,5,6,7,0,1,2] 。给你 旋转后 的数组.

2021-09-06 11:41:08 128

原创 JVM GC 垃圾回收详解(更新中~)

一、GC作用区域GC垃圾回收作用区域集中于堆和方法区。栈由于先进后出的特性,所有存在于栈中的方法或者变量等,最后都会出栈。因此,栈中不存在可回收的垃圾。二、GC如何判定垃圾GC进行垃圾回收,前提是确认哪些对象为垃圾。只有确定了垃圾对象后,方可对垃圾对象进行回收。垃圾定位主要涉及两种方法:引用计数法、可达性分析法。1. 引用计数法Java对象头中分配了一个空间来记录对象被引用的次数,当对象引用次数为0时,可认定该对象可被回收、释放。引用计数法的优点在于实现简单,缺点在于无法应对循环

2021-09-05 15:43:06 329

原创 Java类加载器

一、类加载过程Java类加载过程如下图所示:加载 --> 链接 --> 初始化。(一)加载JVM在加载,需要完成3件事:1. 通过类的全限定名来获取此类的二进制字节流2. 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构3. 在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。(二)链接链接过程分为3步:验证 --> 准备 --> 解析。1. 验证确保Class文件中的字节流中包

2021-09-03 18:31:34 337

原创 LeetCode:删除链表倒数第N个节点,一趟扫描,2种解法

题目来源:leetcode题目描述:给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?这里,仅给出一趟扫描的两种解法 :缓存、双指针解法1:通过缓存,实现一趟扫描 public ListNode removeNthFromEnd(ListNode head, int n) { Map<Integer, ListNode> map = new HashMap(); int coun..

2021-09-03 13:52:27 185

原创 23种设计模式:代理模式--静态代理、JDK代理、CGLib代理

何为代理模式?“代理”这个关系,在生活中有很多例子,比如说最常见的房产中介,他们便是对房东的代理。房产中介会首先去从众多看房的人中最终定下一个,然后促成和房东的合同签订。那么,代理模式也就是通过代理类对某一个具体的类的访问提供一些控制,由代理对象控制对原对象的引用。(注意“控制”二字,这是和装饰器模式的区别)代理模式的种类代理模式的实现从大的方面分为两种:静态代理 动态代理:JDK代理、CGlib代理静态代理静态代理中,代理类和被代理对象需要实现相同的接口。保持接口相同时,即便客

2021-05-14 10:01:49 550

原创 LeetCode:链表系列

题1:删除排序链表中的重复元素 II存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中没有重复出现的数字。返回同样按升序排列的结果链表。链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii解法:思路写在注释里class Solution { public ListNode deleteDuplicates(Li..

2021-05-12 10:17:49 91

原创 ThreadLocal:原理 + get + set

每个线程内都绑定了ThreadLocal,如class Thread implements Runnable { // 省略了Thread类的其它代码 /* ThreadLocal values pertaining to this thread. This map is maintained * by the ThreadLocal class. */ ThreadLocal.ThreadLocalMap threadLocals = null;

2021-05-11 22:56:51 1694

原创 JVM系列:新生代对象何时进入老年代

在JVM中,对象被创建的时候,通常是在栈的新生代的。那么,新生代对象什么时候会进入到老年代呢?1. 达到晋升年龄:新生代对象在经历每次GC的时候,如果没有被回收,则对象的年龄+1。当年龄超过阈值的时候,便会进入老年代。默认情况下,阈值为15,可通过-XX:MaxTenuringThreshold参数来进行调节。那么,为什么默认是15呢?因为Mark Word中,每个对象头用一个4bit标志位来记录对象的年龄,而4bit标志位最大只能表示15。2. 如果创建的对象很大的时候,直接进入老年代。可以通过-

2021-05-11 22:52:14 3092 2

原创 leetcode:二叉树中的最大路径和

题目来源:leetcode路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和 。https://leetcode-cn.com/problems/binary-tree-maximum-path-sum解法:递归,还是要好好理解下递归啊class Solution {..

2021-05-11 22:33:56 213

原创 面试终极宝典:Springboot自动装配原理

Springboot的自动装配过程,网上大多都是罗列代码,即使看完了,也还存在很多的疑点。下面,这是我总结的在面试过程中介绍SpringBoot自动装配原理的话术,拿来即用就可。Springboot自动装配过程:(每个步骤后的括号是对应的操作)1. SpringBoot启动的时候会通过@EnableAutoConfiguration注解找到spring-boot-autoconfigure jar包下面的META-INF/spring.factories配置文件中的所有的EnableAutoConf

2021-05-10 21:01:25 2552

原创 可重入锁ReentrantLock !!!(逐步更新)

ReentrantLock和Synchronized关键字具有相同的基本行为和语义,但是,ReentrantLock具备更好的可扩展性。ReentrantLock实现了Lock接口:public class ReentrantLock implements Lock, java.io.Serializable底层操作其实是基于AQS(AbstractQueuedSynchronizer)实现的,ReentrantLock内部封装了一个继承AQS的静态抽象类Syncabstract sta

2021-05-05 22:42:05 90

原创 JUC高并发:线程池中的ArrayBlockingQueue和LinkedBlockingQueue

线程池的阻塞队列有多种实现可选,这里仅介绍ArrayBlockingQueue和LinkedBlockingQueue(鼓励大家多看源码的一些注释,讲的很清楚)目录ArrayBlockingQueueLinkedBlockingQueueArrayBlockingQueue部分源码LinkedBlockingQueue部分源码ArrayBlockingQueue有界,在创建的时候指定了大小,创建后,大小不可再更改 底层通过object数组存储 采用FIFO机制 队头是等待最

2021-05-04 23:21:27 1303

转载 MySQL有哪些索引?为什么用B+树?B+树高度如何计算?

转载自:https://blog.csdn.net/dl674756321/article/details/102987984目录谈谈对索引的理解B+树高度计算谈对索引的理解索引是存储引擎用于提高数据查询效率的一种数据结构,索引类似于字典里的目录。Mysql中的索引是在存储引擎层实现的,索引的数据结构和存储引擎有关,在MySQL中使用较多的索引有 Hash 索引、B树索引和 B+ 树索引。hash索引:底层就是 hash 表。进行查找时,根据 key 调用hash 函数获得对应的

2021-05-04 21:52:20 1024

原创 LeetCode:链表是否有环

题目来源:LeetCode给定一个链表,判断链表中是否有环。https://leetcode-cn.com/problems/linked-list-cycle/下面分别给出空间复杂度O(n)的解法和O(1)的解法。解法1:利用Hash表 public boolean hasCycle(ListNode head) { if(head==null || head.next==null) return false; ListNode slow,

2021-05-04 10:25:01 142

原创 一篇文章搞懂AQS!!!(持续更新)

AQS的核心思想如果当前共享资源是空闲的,那么便会将请求资源的这个线程设为工作线程,并把资源的状态设置为锁定状态;如果资源正在被占用,那么就将请求的线程加入到工作队列(CLH队列中),等待唤醒。CLH队列结构AQS类的一些重要的字段private volatile int state:同步状态(The synchronization state)(Exclusive和Share两种状态,分别来表明是独占的,还是共享的)private transient volatile Node h

2021-05-03 18:27:13 259

原创 LeetCode:树的子结构

输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。来自:leetcode网站剑指offer第26题 树的子结构下面给出两种解法,首先是自己的非递归解法,然后是leetcode一大佬的递归解法。非递归解法:public boolean isSubStructure(TreeNode A, TreeNode B) { if(A==null || B==null) return fal..

2021-05-01 23:46:51 197

原创 MySQL数据库:SQL执行顺序

MySQL数据库是我们常用的关系型数据库之一,对于MySQL,我们写的SQL语句大多包含以下部分:select 字段from 表join 连接类型on 连接字段where 条件group by 分组having 含聚合函数操作union 全连接order by 排序limit 分页那么,上面的SQL字段,是按照什么顺序执行的呢?SQL语句的执行顺序,是我们必须要掌握的,这关乎到我们写的SQL语句时候的思路以及写的SQL语

2021-04-30 10:54:42 450

CGLib代理模式用到的jar包

Spring AOP、动态代理中的CGLib代理依赖的所有jar包

2021-05-14

RabbitMQ_ErLang.zip

Rabbit和ErLang的配套,不会出现版本不兼容问题

2021-04-22

空空如也

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

TA关注的人

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