自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux-部署WebService服务,启动报错BindException: Cannot assign requested address

解决WebService服务部署的URL路径问题,引起的服务无法启动

2022-08-24 16:30:14 764 1

原创 深入理解java虚拟机关于运行常量池的描述有错误?

深入理解java虚拟机关于运行常量池的描述有错误?问题起因近日前公司技术群突然引发了一个问题的讨论,这个问题是关于周志明老师的深入理解java虚拟机第三版2.2.6章节关于运行时常量池的一段描述**(运行时常量池相对于Class文件常量池的另外一个重要特征是具备动态性,Java语言并不要求常量一定只有编译期才能产生,也就是说,并非预置入Class文件中常量池的内容才能进入方法区运行时常量池,运行期间也可以将新的常量放入池中,这种特性被开发人员利用得比较多的便是String类的intern()方法。**)

2022-01-10 10:57:27 509

原创 Docker容器基础(cGroups、namespace)(一)

标题Docker容器技术基础进程隔离与限制容器技术的兴起起源于PaaS技术的普及,Docker项目对此具有里程碑式的意义,Docker项目通过容器镜像解决应用打包这个根本性难题。 接下来通过Linux操作系统层面的知识简要介绍一下Docker的实现进程容器其实就是一个沙盒技术,顾名思义,沙盒就像是集装箱,可以将我们的应用装起来的技术。这样,应用与应用之间,就因为有了边界而可以相互之间不干扰,这样被装进集装箱的应用就可以被随意的搬来搬去,而不受外界所影响。说起来容易,但是实现起来可能就无从下手

2022-01-10 10:43:25 445

原创 CentOs8.x安装Docker

标题CentOs8.x安装Dockeryum -y updateyum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpmyum install -y yum-utils device-mapper-persistent-data lvm2yum install -y yum-utils device-mapper-pers

2022-01-10 10:36:12 411

原创 如何使用Mybatis拦截器

Mybatis拦截器/** * @description: 自定义实现Mybatis拦截器 .<br> * <p> * @DateTime: 2021-08-10 15:40 * </p> * @Author fengyan * @Version **/public class TestMybatisInterceptor implements Interceptor { @Override public Object interce

2021-08-10 15:48:16 135

原创 java策略模式的应用

策略模式简单来说就是告别代码中冗长的if/else,使不同的也不走不同的业务策略类,例如:电商支付场景等,有微信、支付宝、银联卡支付等等,不同的支付需要调用不同的SDK恰巧最近在做组织机构结构改造的业务,考虑到后续业务可能多变,所以写代码时使用的策略模式。接下来上代码:书写基类接口,具体实现类均实现该接口(OrganResultDataStrategy)组织机构策略类获取工厂(OrganSyncStructureFactory)其他细节,编写传输上下文(OrganContextDTO)也可以

2021-08-10 15:30:44 727

原创 线上Java项目服务器内存飙升如何排查?

服务器内存飙升如何排查内存飙升top命令内存飙升你好!接下来会有一些列的类似的文章(内存、JVM等等),喜欢记得关注点赞!!!top命令首先,执行top命令查看内存使用情况top命令,找到内存再飙升的PIDjmap命令,jmap -dump:format=b,file=heap.hprof 内存飙升的PID接下来下载heap.hprof文件到本地进行分析可以使用Eclipse Memory Analyzer 进行分析分析可参考其他文章,就不重复造轮子MAT内存分析...

2021-08-09 15:08:53 447

原创 线上Java项目服务器CPU突然100%如何排查?

如何快速排查CPU100%排查流程top + jstack命令总结排查流程你好!接下来会有一些列的类似的文章(内存、JVM等等),喜欢记得关注点赞!!!top + jstack命令首先执行top命令查看各个进程的CPU使用情况以及,变化情况:找到CPU使用非常高的PID;top -Hp 上面的PID可以看到当前进程下有非常多的线程,找到使用CPU非常高的线程,并记录下当前线程的PID;将上面的PID转换为16进制(printf ‘%x 线程PID’)jstack 2中的线程PID

2021-08-09 14:29:10 275

原创 Nginx 相关问题(持续更新一:Cookie问题)

业务场景一(前端设置cookie后,后端获取不到)业务介绍:两个单机系统A、B,A系统为主系统,B系统为子系统,启动A系统点击链接跳转至B系统,A、B系统均独立部署,统一由Nginx进行反向代理(由于以前不使用Nginx,Nginx是后续接入的所以在原有实现上出现了问题)问题描述:因为B系统虽然单独部署,但是其实是属于A系统的子系统,所以跳转后,需要实现登录状态同A系统保持一致,所以通过拦截器和A系统分发token的形式,自己实现了伪单点的功能,将A系统分发的token由前端存储到cookie中,然后

2021-06-20 16:52:19 1196 2

原创 排序算法-基数排序(Java)

基数排序基数排序属于“分配式排序”,又称“桶子法”,就是通过键值的各个位的值,将排序的元素分配至某些“桶中”,达到排序的目的基数排序属于稳定性排序,基数排序是效率高的稳定性排序法基数排序是稳定性排序的扩展基数排序是1887年赫尔曼·何乐礼发明的。它是这样实现的:将整数按照位数切割成不同的数字,然后按每个位数分别比较基数排序的基本思想将所有待比较数值统为同样的数位长度,数位较短的数前面补零。然后,从最低位来时,依次进行一次排序。这样从低位排序一直到最高位排序完成以后,数列就变成一个有序序列

2020-05-27 23:33:34 155

原创 Java设计模式-工厂模式

工厂模式工厂方法模式的定义:定义一个创建产品对象的工厂接口,将产品对象的市级创建工作推迟到具体子工厂类中。这满足创建型模式中所要求的创建与使用分离的特点。我们把被创建的对象成为产品,把创建产品的对象成为工厂。如果要创建的产品不多,只要一个工厂类就可以完成,这种模式叫"简单工厂模式",它不属于23种设计模式工厂方法模式主要优点:用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程在系统增加新的产品时只需要添加具体产品类和对应的具体工厂类,无须对原工厂进行任何修改,满足开闭原则

2020-05-27 23:03:59 145

原创 排序算法-归并排序(Java)

归并排序归并排序是利用归并的思想实现的排序方法,该算法采用经典的分治策略(分治法将问题分成一些小的问题然后递归求解,而治的阶段则将分的阶段得到的个答案修补在一起,即分而治之)简单图解再来看看治阶段,我们需要将连个已经有序的子序列合并成一个有序序列合并相邻有序子序列示意图(最后一次合并的示意图)代码如下 //分+合的方法 public static void mergeSort(int [] arr,int left,int right,int [] temp){ if(left &lt

2020-05-26 22:46:31 176

原创 Java设计模式-原型模式

原型模式原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。例如,Windows 操作系统的安装通常较耗时,如果复制就快了很多。在生活中复制的例子非常多,这里不一一列举了。模式的结构原型模式包含以下主要角色抽象原型类:规定了具体原型对象必须实现的接口具体原型类:实现抽象原型类的clone()方法,它是可被复制的对象访问类:使

2020-05-26 22:16:19 348

原创 排序算法-快速排序(Java)

快速排序快速排序是对冒泡排序的一种改进,基本思想是:通过一趟排序将要排序的数据分割成独立的两个部分,其中一部分的所有数据都比另一部分的所有数据都小,从而按照此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行快排示意图快排代码实现 public static void quickSort(int [] arr,int left,int right){ int l = left;//左下标 int r = right;//右下标 int pivot = arr[(left +

2020-05-26 00:01:58 251 1

原创 Java设计模式----设计原则

开闭原则开闭原则(Open Closed Principle,OCP)由勃兰特·梅耶(Bertrand Meyer)提出,他在 1988 年的著作《面向对象软件构造》(Object Oriented Software Construction)中提出:软件实体应对扩展开放,对修改关闭,这就是开闭原则的经典定义开闭原则的含义:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求开闭原则的作用:开闭原则是面向对象程序设计的终极目标,使软件实体拥有一定的

2020-05-25 23:34:36 169 1

原创 排序算法-希尔排序(Java)

希尔排序希尔排序也是一种插入排序,是插入排序的更高效率的版本,也称为缩小增量排序希尔排序的思想:把记录按照下标的一定增量分组对每组使用直接插入排序算法排序随着增量逐渐减少,每组包含的关键词越来越多当增量减至1时,整个恰好分成一组,算法终止,排序完成希尔排序示意图:最后直接进行微调即可,避免了像简单插入排序那样,当需要插入的数较小时,后移的次数明显增多,从而对效率有不好的影响接下来列举两种实现方式:替换法移位法 public static void shellSort(in

2020-05-23 22:58:24 224 2

原创 排序算法-插入排序(Java)

插入排序插入排序属于内部排序法,是对于想要排序的元素以插入的方式找到元素的适当位置,已达到排序的目的插入排序的思想:把n个待排序的元素看成为一个有序表和一个无序表开始时有序表中只包含一个元素,无序表中包含有n-1个元素每次从无序表中取出第一个元素把它的排序码依次与有序表元素的排序码进行比较最后将它插入到有序表中适当的位置,从而形成新的有序序列插入排序思路图Java代码实现: public static void insertSort(int [] arr){ int inse

2020-05-23 22:07:40 158

原创 排序算法-选择排序(Java)

选择排序选择排序也属于内部排序法,是从想要排序的数据中,按指定的规则选出某一个元素,在依据规定交换位置后达到排序的目的选择排序的基本思想是:第一次从arr[0]~arr[n-1]中选出最小值,与arr[0]交换位置第二次从arr[1]~arr{n-1}中选出最小值,与arr[1]交换位置第三次从arr[2]~arr[n-1]中选出最小值,与arr[2]交换位置以此类推下去进行交换位置总共通过n-1次交换,最后便得到一个有序序列选择排序的思维分析图:选择排序的思路图解假如原始的数组

2020-05-23 21:40:15 237

原创 排序算法-冒泡排序(Java)

冒泡排序冒泡排序的基本思想是:通过对待排序序列从前向后(从下标最小的元素开始),依次比较相邻元素的值,若发现逆序则交换(即如果左边元素大于右边则交换位置),目的是使较大的元素从前向后移动注意:依次比较每经过一次循环,当前循环内的最大的元素将被移动到最后,那么循环的条件就需要注意了,接下来上代码分析冒泡排序:假如原始数组为 3,9,-1,10,20接下来只列出方法 //arr:传入的需要排序的数组 public static void bubbleSort(int [] arr){ i

2020-05-23 21:09:06 159

原创 vmware workstation vmx进程结束不了如何解决?

本次博客用于解决如何关掉VMX进程(当然可能别的更好的解决办法)情景复现由于好久没有练习Linux操作系统了,所以今日心血来潮,重新安装了虚拟机,第一次安装后根本没有反应,就关掉了虚拟机,本以为重启后直接重新创建就好了,可是发现怎么也安装不了,后来打开任务管理器发现虚拟机进程没有关,准备结束进程,发现结束不了发现这几个大哥进程结束不了解决办法编辑—首选项—工作区—显示托盘图标—选择...

2020-02-23 14:06:56 31435 7

原创 Collection 接口

Collection 接口Collection 接口中声明的常用方法an add(E e)把元素放到集合中boolean addAll(Collection&amp;lt;? extends E&amp;gt; c)把另一个集合合并到当前集合中boolean remove(Object o)移除集合中的元素––boolean contains(Object o)...

2018-12-16 21:17:06 95

原创 Java 包装类、集合框架概述

==== 1 包装类基本数据类型 (原生类)byte Byteshort Shortint Integerlong Longfloat Floatdouble Doublechar Characterboolean Boolean//例子 取int 型的最大值 Integer.MAX_VALUE //例子 把一个字符变大写 ...

2018-12-16 20:49:50 136

原创 jQuery初步了解

jQuery是js的一个框架,是一个轻量级框架,比js用法简洁,能实现表单验证,页面动画,后台交互,游戏制作等需要导入jQuery插件导入方式1.语法1.$(document).ready(function(){//媒体文件之前加载})2.拒绝访问。(window).load(function(){//在所有文件之后加载})4.(function(){//在所有文件之前...

2018-12-16 20:37:52 237

原创 Java字符编码

字符编码1、ASCII2、GB2312和GBK3、ANSI4、本地字符集5、Unicode编码6、ISO-8859-1编码7、UTF-88、UTF-8和unicode编码之间的转换规则9、UTF-8的优点10、联通,联想和联ASCII美国(国家)信息交换标准(代)码计算机中只有数字,一切都是用数字表示,屏幕上显示的一个一个的字符也不例外一个字节可表示的数字为0-25...

2018-11-25 09:38:33 295

空空如也

空空如也

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

TA关注的人

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