自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 安装VastBase G100 v2.2 Build 12

9.3.9、设置数据库安装路径(输入步骤2创建的数据库安装路径(/soft/vb),或者输入使用默认路径(默认路径:/home/vastbase/local/vastbase))。注:为避免影响数据库性能,生产环境建议采用deadline策略,若检查出非deadline策略,可按提示进行修改,再重新安装,也可以直接跳过继续安装。数据库安装后会自动生成临时许可文件,当没有license文件时,无需配置postgresql.conf,可直接启动数据库。9.3.13、安装数据库(提示安装完成)。

2023-06-12 10:13:21 3652 3

原创 发布订阅模式

【代码】发布订阅模式。

2023-04-20 10:18:59 163 1

原创 SpringBoot 多数据源配置

*** 多数据源属性*/

2023-04-12 15:37:09 486

原创 多线程读取文件,并统计文件中每种字母出现的频率

【代码】多线程读取文件,并统计文件中每种字母出现的频率。

2023-03-24 10:10:30 130

原创 自定义线程池

【代码】自定义线程池。

2023-03-23 13:46:41 79

原创 Java WebService

Java WebService

2022-10-24 11:01:57 3414

原创 JVM-第四章 程序计数器

JVM-第四章 程序计数器

2022-08-05 13:44:15 145

原创 JVM-第三章 运行时数据区概述及线程

JVM-第三章 运行时数据区概述及线程

2022-08-04 15:25:25 177

原创 设计模式——行为型

设计模式——行为型

2022-08-03 14:22:05 193

原创 设计模式——结构型

设计模式——结构型

2022-08-01 16:07:24 214

原创 设计模式——创建型

设计模式——创建型

2022-07-29 15:53:47 236

原创 设计模式——七大设计原则

设计模式——七大设计原则

2022-07-29 13:54:24 277

原创 JVM-第二章 类加载器子系统

尚硅谷JVM-第二章 类加载器子系统

2022-07-13 14:10:16 266

转载 类加载的五个过程:加载、验证、准备、解析、初始化

类加载的五个过程:加载、验证、准备、解析、初始化

2022-07-11 11:17:30 19653 3

原创 JVM-第一章 类加载子系统

尚硅谷JVM-第一章 类加载子系统

2022-07-06 16:24:57 109

原创 jvisualvm 监控远程jvm

jvisualvm 监控远程jvm3、启动远程jstatd服务4、打开客户端jvisualvm

2022-06-13 15:04:51 710

原创 Java 反射机制

视频连接 1、已知一个类的全类名,且该类在类路径下,可通过Class类的静态方法Class.forName()来获取。多用于配置文件,读取类全路径,加载类2、若已知具体的类,通过类的class获取,该方式最为安全可靠,程序性能最高。例:Class clazz = Cat.class; 多用于参数传递,比如通过反射得到对应构造器对象3、已知某个类的实例,调用该实例的getClass()方法获取Class对象。例:Class clazz = 对象.getClass(); 多用于通过创建好的对象,获取Class

2022-06-01 14:24:03 190

原创 MongoDb 高级篇

视频链接1、MongoDB 副本集(Replica Sets)1.1、简介MongoDB 中的副本集(Replica Set)是一组维护相同数据集的 mongod 服务。 副本集可提供冗余和高可用性,是所有生产部署的基础。也可以说,副本集类似于有自动故障恢复功能的主从集群。通俗的讲就是用多台机器进行同一数据的异步同步,从而使多台机器拥有同一数据的多个副本,并且当主库宕机时不需要用户干预就可以自动切换其他备份服务器做主库。而且还可以利用副本服务器做只读服务器,实现读写分离,提高负载。

2022-05-30 15:20:58 437

原创 MongoDb 入门详解

1、MongoDb相关概念1.1 MongoDb 简介MongoDb是一个开源,高性能,无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种,是最像关系型数据库(MySQL)的非关系型数据库,它支持的数据库结构非常松散,是一种类似于JSON的格式叫BSON,所以它既可以存储非常复杂的数据类型,又相当灵活。MongoDb记录的是一个文档,它是由字段和值对(filed:value)组成的数据结构,MongoDb文档类似于JSON对象,即一个文档认为就是一个对象,字

2022-05-26 17:57:12 1828

原创 网络编程之Netty

原文链接概述Netty 是一个高性能、异步事件驱动的 NIO 框架优点1、高性能、高吞吐量、低延迟2、使用方便,详细的Javadoc,用户指南和示例3、社区活跃,版本迭代周期短4、设计优雅,适用于各种传输类型的统一API阻塞和非阻塞Socket;基于灵活且可扩展的事件模型线程模型介绍目前的线程模型有:传统阻塞I/O服务模型、Reactor模型;根据Reactor数量和处理资源线程的的数量不同,有3种形式:1、单Reactor2、单Reactor多线程3、主从Reactor多线程

2022-05-23 11:21:13 980

原创 网络编程之NIO

原文链接基本介绍1、NIO(non-blocking IO)是JDK提供的新API,从JDK1.4开始,Java提供了一系列改进的输入/输出新特性,被统称为NIO(即 New IO), 是同步非阻塞的2、NIO 有三大核心部分:Channel(通道)、Buffer(缓冲区)、Selector(选择器)3、 NIO 是面向缓冲区,或者面向块编程的。数据读取到一个它稍后处理的缓冲区,需要时可在缓冲区中前后移动,这就增加了处理过程中的灵活性,使用它可以提供非阻塞式的高伸缩性网络4、NIO的非阻塞模式,

2022-05-09 16:57:47 488

原创 网络编程之BIO

原文连接介绍BIO(blocking I/O)就是传统的 java io 编程,BIO是同步阻塞模型,服务器端实现模式为一个连接只有一个线程处理,如果这个连接不做任何事情,会造成不必要的线程开销,可以通过线程池机制改善(实现多个客户连接服务器)。BIO模型适用于连接数较小且固定的架构,这种方式对服务器资源要求比较高,JDK1.4以前的唯一选择,优点是程序简单易理解。工作原理1、服务端启动一个ServerSocket2、客户端启动Socket对服务器进行通讯,默认情况下服务器端需要对每个客户

2022-05-06 11:02:23 331

原创 Bean的生命周期

描述Bean 的生命周期,就是一个 Bean 从创建到销毁,所经历的各种方法调用。 简单的来说,一个Bean的生命周期分为四个阶段:实例化(Instantiation)、 属性设置(populate)、初始化(Initialization)、销毁(Destruction)实例化程序启动后,Spring把注解或者配置文件定义好的Bean对象转换成一个BeanDefination对象,然后完成整个BeanDefination的解析和加载的过程。Spring获取到这些完整的对象之后,会对整个Bean

2022-03-22 15:18:41 6233 3

原创 事件模型的一点理解

监听模式事件模型实现了监听模式,监听模式简单来说就是事件源经过事件的封装传给监听器,当事件源触发事件后,监听器接收到事件对象可以回调事件的方法。参与的角色事件模型有三种角色参与,分别是:事件源、事件、事件监听器。事件事件继承自java.util.EventObject类,封装了事件源对象及跟事件相关的信息,代码可以说是很简单了。public class EventObject implements java.io.Serializable { /** * 事件源 */

2022-03-16 17:53:56 829

原创 网络编程之UDP

介绍TCP是一种面向连接的传输层协议,而UDP是传输层中面向无连接的协议,故传送的数据包不能保证有序和不丢失,实现UDP通信主要用到了两个类:DatagramPacket和DatagramSocket原理UDP没有明确的服务端和发送端,只有一个发送端和接收端,接收数据和发送数据是通过DatagramSocket对象完成,发送数据时需要将数据封装到DatagramPacket,即装包过程;接收数据时,对DatagramPacket对象进行拆包示例发送端向接收端发送消息,接收端收到消息回复消息接

2022-02-17 16:08:08 1543 1

原创 网络编程之socket

简介socket编程也叫套接字编程,应用程序可以通过它发送或者接受数据。网络通信其实就是socket通信,通信的两端都要有socket,一般发起通信的一端叫客户端,等待通信的一端属于服务端。原理1、服务端新建一个socket,绑定地址和开启端口的监听,此时服务端进入阻塞状态,等待客户端的连接2、客户端新建一个socket,实例化socket时关联服务端的ip,端口,连接服务端3、服务端和客户端建立连接后就可以收/发数据4、关闭连接案例1客户端给服务端发送消息服务端package c

2022-02-16 15:10:57 1805

原创 linux中netstat命令的用法

介绍Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。参数选项描述-a显示所有选项,默认不显示LISTEN相关-t仅显示tcp相关选项-u仅显示udp相关选项-n拒绝显示别名,能显示数字的全部转化成数字-l仅列出有在 Listen (监听) 的服务

2022-02-15 10:59:58 485

原创 linux中route命令的用法

route命令route命令用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。语法route(选项)(参数)选项选项描述-A设置地址类型;-C打印将Linux核心的路由缓存;-v详细信息模式;-n直接显示数字形式的IP地址;-enetstat格式显示路由表;-net到一个网络的路由表;-host到一个主机的路由表。参数参数描述add增加指定的路由记录;d

2022-02-14 15:12:07 5477

原创 合并K个升序链表——优先级队列

描述给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4, 2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6示例 2:输入:lists = []输出:[]分析

2022-02-09 15:44:32 167

原创 括号生成——递归+剪枝

描述数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]分析看到所有组合,首先想到递归来解决,每次递归都尝试添加左括号,然后添加右括号,当左括号大于0的时候可以继续分支,退出的条件是左右括号都相等且都为0,需要注意的是,当左括号剩余数量大于右括号时,不符合题目要求,说明需要剪枝。

2022-02-09 10:51:02 297

原创 合并两个有序链表-递归

描述将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = [0]输出:[0]代码public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if (l1 == null) { return l2; } else if

2022-02-09 09:42:15 483

原创 删除链表的倒数第 N 个结点

描述给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1,2], n = 1输出:[1]思路1、本题的本质是删除链表中某个位置的结点,通过循环将指针移到待删除指针的前一个指针,涉及到浅拷贝以及头节点不能移动的问题,所以用临时变量temp储存。2、遍历链表,得到有效的链表长度,链表长度-n 就是待删除位置的前一个节点3、考虑到可能删除的是头节点,所以

2022-02-08 16:34:28 465

原创 电话号码的字母组合-回溯(递归)

描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = “23”输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]示例 2输入:digits = “2”输出:[“a”,“b”,“c”]分析当题目中出现 “所有组合” 等类似字眼时,我们第一感觉就要想到用回溯。import java.util.A

2022-02-08 14:57:34 98

原创 盛最多水的容器-双指针

描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例 2输入:height = [1,1]输出:1分析

2022-02-08 10:21:17 108

原创 最长回文子串-中心扩散法

描述给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”示例 3:**输入:**s = “a”输出:“a”分析本题采用的方法是 中心扩散法。从每一个位置出发,向两边扩散即可。首先往左寻找与当期位置相同的字符,直到遇到不相等为止。然后往右寻找与当期位置相同的字符,直到遇到不相等为止。最后左右双向扩散,直到左和右不相等。每个位置向两边扩散

2022-02-07 10:51:43 638

原创 常用的十大算法-弗洛伊德算法

介绍和Dijkstra算法一样,弗洛伊德(Floyd)算法也是一种用于寻找给定的加权图中顶点最短路径的算法,即计算各个顶点之间的最短路径,而迪杰斯特拉算法用于计算某一顶点到其他顶点的最短路径。弗洛伊德算法每一个顶点都是出发访问点,所以需要将每一个顶点都看作被访问的顶点,求出每一个顶点到其他顶点的最短路径。算法分析1、设置顶点vi到vk的最短路径已知为Lik,顶点vk到vj的最短路径为Lkj,顶点vi到vj的路径为Lij,则vi到vj的最短路径为:min(Lik+Lkj),vk的取值为所有顶点,则可获得

2022-01-28 10:19:46 5825

原创 常用的十大算法-迪杰斯特拉算法

介绍迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径,它的主要特点是以起始点为中心向外层扩展(广度优先思想),直到扩展到终点为止。算法过程设置出发顶点为v,顶点集合V{v1,v1,vi…},v到V中各顶点的距离构成集合Dis,Dis(d1,d2,di),Dis集合记录v到图中各顶点的距离(自身可以看作0,v到vi的距离对应di)1、从Dis中选择值最小的di并移出Dis集合,同时移出V集合中对应的顶点vi,此时,v到vi即为最短路径2、更新Dis集合,更

2022-01-27 14:27:41 842

原创 常用的十大算法-克鲁斯卡尔算法(最小生成树问题、公交车站问题)

克鲁斯卡尔算法介绍克鲁斯卡尔算法(kruskal),是用来求加权连通图的最小生成树的算法。基本思想是,按照权值从小到大的顺序选择n-1条边,并保证这n-1条边不构成回路。具体做法是,首先构造一个只含n个顶点的森林,然偶依权值从小到大从连通图中选择边加入到森林中,并使森林不产生回路,直到森林变成一棵树为止。应用场景-公交车站问题某城市新增7个站点(A,B,C,D,E,F,G),现在需要把7个站点连通,各个站点的距离用边表示(权),如何修路保证各个站点能够连通,并且总的修建公路总里程最短?算法分析

2022-01-26 11:41:12 1152

原创 常用的十大算法-普利姆算法

普利姆算法介绍普利姆算法求最小生成树,也就是在包含n个顶点的连通图中,找出只有(n-1)条边包含所有n个顶点的连通子图,也就是极小连通子图普利姆算法步骤1、设G=(V,E)是连通图,T=(U,D)是最小生成树,U,V是顶点集合,E,D是边的集合。2、若从顶点u开始构造最小生成树,则从集合V中取出顶点u放入集合U中,顶点标记v的visit[u]=13、若集合U中顶点ui与集合V-U中的顶点vj之间存在边,则寻找这些边中权值最小的边,但不能构成回路,将顶点vj加入集合U中,将边(ui,vj)加入集合

2022-01-25 15:38:57 581

原创 常用的十大算法-贪心算法

介绍1、贪心算法是指在对问题进行求解时,在每一步选择中都采取最好或者最优的选择,从而希望能够导致结果是最好或者最优的算法。2、贪心算法所得到的结果不一定是最优的结果,但是都是相对近似最优解的结果。应用假设存在下面需要付费的广播台,以及广播台信号可以覆盖的地区。如何选择最少的广播台,让所有的地区都可以接收到信号。广播台覆盖地区K1北京、上海、天津K2广州、北京、深圳K3成都、上海、杭州K4上海、天津K5杭州、大连思路分析1、遍历所有的广播

2022-01-24 17:53:23 514

空空如也

空空如也

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

TA关注的人

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