自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

三方

痴情、专注

  • 博客(123)
  • 资源 (5)
  • 收藏
  • 关注

转载 处理项目开发中 .git/objects/pack 文件臃肿庞大问题

首先来看下.git目录:├── HEAD├── branches├── index├── logs│ ├── HEAD│ └── refs│ └── heads│ └── master├── objects│ ├── 88│ │ └── 23efd7fa394844ef4af3c649823fa4aedefec5│ ├── 91│ │ └── 0fc16f5cc5a91e6712c33aed4aad2cfffccb73

2022-04-18 12:49:32 7006 1

原创 centos中将未使用的磁盘空间进行逻辑分区并扩展到根目录

1.查看磁盘分区情况 可以发现此批大小为322G,但cl-root+cl-swap+cl-home的大小远小于322,所以存在磁盘空间未使用的情况。 发现一块硬盘:/dev/sda 322。1G. 分了两个分区 sda1、sda2。 /dev/mapper/XXXX 为分区下的逻辑分区 2.查看各个分区挂在情况。df –lh第一列为 各个分区的标识 最后一列为挂载目录。将各个已挂载大小相加小于总硬盘大小。说明硬盘中还有空间没有分区使用。3.将未分区空间进

2021-12-29 20:16:11 2731

转载 FTP与SFTP两者有什么区别

在实际项目开发中最常使用的文件传输的方式有ftp和sftp两种,但是这两个传输方式各有什么特点呢?本文接下来将讨论SFTP、FTP的区别。一、FTP协议FTP是TCP/IP协议组中的协议之一,TP协议由两个部分组成:FTP服务器(用来存储文件) FTP客户端(用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源)默认情况下FTP协议使用TCP端口中的20和21这两个端口。21端口用于传输控制信息,而是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用被动...

2021-03-24 17:22:54 1630

转载 网络IP,子网掩码,网段

从前有一个地主,有256间房子,地主家的门牌号码是“192.168.1”,那么他家第一间房子的门牌号码是192.168.1.0,第二间是192.168.1.1,…第256间的编号是192.168.1.255。地主老了,需要把256间房子分给4个儿子,平均分配,每个儿子可以分64间。请来一位先生主持公道,先生这么来操作:192.168.1.0-192.168.1.63 分给大儿子192.168.1.64-192.168.1.127 分给二儿子192.168.1.128 -192.168.1.19

2021-03-12 09:21:03 684 2

转载 webservice关于入参掉用各种报错信息及解决方法汇总org.apache.cxf.interceptor.Fault: Unmarshalling Error: 意外的元素

webservice关于入参掉用各种报错信息及解决方法汇总org.apache.cxf.interceptor.Fault: Unmarshalling Error: 意外的元素......  凡是遇到org.apache.cxf.interceptor.Fault: Unmarshalling Error:意外的元素......就代表是入参除了问题,后面会有详细的报错解释:  首先贴出请求报文,每一种出错对应的代码回在后面贴出:  第一种:(uri:"......", local:"Ve.

2021-02-02 20:25:09 3597

转载 Jetbrains系列产品重置试用方法

本站惯例:本文假定你知道Jetbrains家的产品。不知道可以问问搜索引擎。没错,jetbrains-agent这个项目停止了。市面上漫天飞的各种最新都是其他大神的魔改版本。[/斜眼]我不是要专门写个博文来说明jetbrains-agent项目已经停止,然后缅怀感叹一番。这篇文章是想和大家聊聊另一种思路。0x0. 项目背景Jetbrains家的产品有一个很良心的地方,他会允许你试用30天(这个数字写死在代码里了)以评估是否你真的需要为它而付费。但很多时候会出现一种情况:IDE并不能按照我

2021-01-04 17:59:38 894

转载 Virtualbox配置centos7网络

方法一:1.安装centos7的时候注意选择两个网卡(配置CentOS7虚拟机里面能上外网,而主机与CentOS7虚拟机也能连通)两个网卡分别为:nat(虚拟机访问互联网,使用10.0.2.x段)host-only(虚拟机和主机互相通信,使用192.168.56.x段)在偏好设置里面设置网络。如下图配置:2.接下来对CentOS7虚拟机网络设置,添加网卡1和网卡2,分别选择连接方式和对应的网卡:注意需要记下两个网卡的mac地址,后面需要在网络配置中使用到(如果第一步..

2020-07-02 16:38:35 715

转载 深入浅出一致性Hash原理

一、前言在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息),起到负载均衡的作用。但是普通的余数hash(hash(比如用户id)%服务器机器数)算法伸缩性很差,当新增或者下线服务器机器时候,用户id与服务器的映射关系会大量失效。一致性hash则利用hash环对其进行了改进。二、一致性Hash概述为了能直观的理解一致性hash原理,这里结合一个简单的例子来讲解,假设有4台服务器,地址为ip1,i

2020-06-20 20:04:16 165

转载 图解LinkedHashMap原理

1 前言LinkedHashMap继承于HashMap,如果对HashMap原理还不清楚的同学,请先看上一篇:图解HashMap原理2 LinkedHashMap使用与实现先来一张LinkedHashMap的结构图,不要虚,看完文章再来看这个图,就秒懂了,先混个面熟:LinkedHashMap结构.png2.1 应用场景HashMap是无序的,当我们希望有顺序地去存储key-value时,就需要使用LinkedHashMap了。 Map<St..

2020-06-20 17:23:20 237

转载 String对象不可变剖析

何为不可变 如何理解String类型值的不可变,首先需要理解何为不可变。 对于Java而言,除了primitive type值(即int, long, double等),其余的都是对象。提炼一下,更普遍的问题是:如何理解不可变对象? 对于何为不可变对象,JLS并没有给出一个明确定义。《java concurrency in practice》一书给出了一个粗略的定义:对象一旦创建后,其状态不可修改,则该对象为不可变对象。一般一个对象满足以下三点,则可以称为...

2020-06-20 10:50:26 246

转载 Springboot自动配置原理

Springboot自动配置原理举个可能不是很恰当的例子,SpringBoot的自动配置原理,跟餐厅的机制很类似。以我最近很喜欢的探鱼来说,如果将SpringBoot比喻成探鱼,把吃饭比做我们的应用,我们来到探鱼吃饭的时候(相当于在应用中加入了@SpringBootApplication),服务员会引导我们开始在菜单点餐纸上点餐(菜单点餐纸是预先定义好的,就相当于spring.factories文件,预先定义了我们可以使用的自动配置信息),探鱼既可以自行搭配烤鱼口味,也可以直接点店家为我们搭配好的口味(

2020-06-19 14:54:16 241

转载 基于atomic包分析CAS原理

大家都知道,多线程下操作共享变量,会出现所谓的“线程安全问题”从而不能得到我们预期的结果,为了解决这种问题,在早期的JDK版本中,提供的synchronized关键字来解决这种线程安全问题,而在JDK1.5以后的java.util.concurrent包中,里面大量使用了一种叫CAS的技术,提供了一种不用synchronized的前提下解决线程安全问题的方案。本文将从AtomicInteger包...

2020-03-31 13:57:00 158

原创 Lambda表达式效率低

一、验证废话不多说,先上验证代码: List<Integer> list = new ArrayList<>(); for (int i = 0; i < 1000000; i++) { list.add(i); } long lambdaStart = System.cu...

2020-03-31 12:12:33 2458

原创 NIO实现简易的多人聊天室

一、基本概念1.Selector 选择器,常用方法有: Selector selector.open() 创建选择器; int selector.select() 监听客户端事件; Set<SelectionKey> selector.selectKeys() 返回选择器中已出触发事件的选择键; 4中Sel...

2020-03-27 14:25:37 181

转载 lambda表达式

lambda 表达式是 java 8th 给我们带来的几个重量级新特性之一,借用 lambda 表达式可以让我们的程序设计更加简洁。一. 行为参数化行为参数化简单的说就是将方法的逻辑以参数的形式传递到方法中,方法主体仅包含模板类通用代码,而一些会随着业务场景而变化的逻辑则以参数的形式传递到方法之中,采用行为参数化可以让程序更加的通用,以应对频繁变更的需求。这里我们以 java 8 in...

2020-03-23 19:29:19 154

转载 MySql性能优化之参数优化

1、目的:通过根据服务器目前状况,修改Mysql的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能。2、服务器参数:32G内存、4个CPU,每个CPU8核。3、MySQL目前安装状况。MySQL目前安装,用的是MySQL默认的最大支持配置。拷贝的是my-huge.cnf.编码已修改为UTF-8.具体修改及安装MySQL,可以参考<<Lin...

2020-03-20 21:16:33 267

转载 使用Spring Data JPA进行分页与排序

一、导读如果一次性加载成千上万的列表数据,在网页上显示将十分的耗时,用户体验不好。所以处理较大数据查询结果展现的时候,分页查询是必不可少的。分页查询必然伴随着一定的排序规则,否则分页数据的状态很难控制,导致用户可能在不同的页看到同一条数据。那么,本文的主要内容就是给大家介绍一下,如何使用Spring Data JPA进行分页与排序。二、实体定义我们使用一个简单的实体定义:Article...

2020-03-20 11:43:36 316

原创 笔试题(持续更新)

一,两个栈实现一个队列。 解题思路:栈的特点是先进后出,队列的特点是先进后出,所以可以把队列1中的元素pop到队列2中,队列2再次取出的时候就可以了。/** * 两个栈实现一个队列: * 思路:先将数据存到第一个栈里,再将第一个栈里的元素全部出栈到第二个栈,第二个栈出栈,即可达到先进先出 * 扩展:栈是Vector的一个子类,它实现了一个标准的后进先出的栈。 * 栈只...

2020-03-20 11:12:07 365

原创 智力题

一、小明一家人过河问题。 小明过河需要1s,弟弟过河需要3s,爸爸过河6s,妈妈过河8s,爷爷过河12s;天黑了,过河必须要灯,灯还可以使用30s。方案:去:小明+弟弟 3s,妈妈+爷爷12s,小明+爸爸6s,小明跟弟弟3s 回:弟弟3s,小明1s,小明1s; 共29s。 解题思路...

2020-03-19 20:38:36 367

转载 squirrel-foundation java状态机

介绍squirrel-foundation:轻量级java有限状态机状态机的要素状态机可归纳为4个要素,即现态、条件、动作、次态。“现态”和“条件”是因,“动作”和“次态”是果。现态:是指当前所处的状态。条件:又称为事件。当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需...

2020-03-16 21:11:24 852

转载 SpringBoot项目不同环境的打包方案

分两个场景进行阐述:一、单工程通常分为开发环境(dev)和生产环境(prod)。让我们开始吧!1、在src/main/resources/下面创建两个文件application-dev.yml,application-prod.yml。两个文件里面分别写开发和生产环境的配置参数,如:2、所有程序需要的配置参数已经写到配置文件里面了,那么原来的application.yml就不能...

2020-03-16 17:41:26 1615 1

转载 Spring循环依赖问题

什么是循环依赖?循环依赖就是循环引用,指两个或多个bean互相持有对方,比如说TestA引用TestB、TestB引用TestA,最终形成一个闭环。注意:循环依赖不是指循环调用。循环调用:指方法之间的环调用,循环调用是无解的,除非有终结条件,否则就是死循环,最终会导致内存溢出异常。两种Spring容器循环依赖:构造器循环依赖 setter方法循环依赖Spring是如何解...

2020-03-16 14:50:38 209 1

转载 spring 启动过程

1.首先,对于一个web应用,其部署在web容器中,web容器提供其一个全局的上下文环境,这个上下文就是ServletContext,其为后面的spring IoC容器提供宿主环境; 其次,在web.xml中会提供有contextLoaderListener。在web容器启动时,会触发容器初始化事件,此时contextLoaderListener会监听到这个事件,其contextIni...

2020-03-16 11:33:33 87

转载 mysql数据库的索引类型

MySQL索引类型:1、普通索引最基本的索引,它没有任何限制,用于加速查询。创建方法:a. 建表的时候一起创建CREATE TABLE mytable (name VARCHAR(32) ,INDEX index_mytable_name (name));b. 建表后,直接创建索引CREATE INDEX index_mytable_name ON mytable(na...

2020-03-12 13:52:07 111

转载 Nginx服务器之负载均衡策略(6种)

一、关于Nginx的负载均衡  在服务器集群中,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器。二、Nginx负载均衡策略  负载均衡用于从“upstream”模块定义的后端服务器列表中选取一台服务器接受用户的请求。一个最基本的upstream模块是这样的,模块内的server是服务器列表: #动态服务器...

2020-03-12 13:35:16 208

转载 Java内存模型

java内存模型(Java Memory Model,JMM)是java虚拟机规范定义的,用来屏蔽掉java程序在各种不同的硬件和操作系统对内存的访问的差异,这样就可以实现java程序在各种不同的平台上都能达到内存访问的一致性。可以避免像c++等直接使用物理硬件和操作系统的内存模型在不同操作系统和硬件平台下表现不同,比如有些c/c++程序可能在windows平台运行正常,而在linux平台却运行有...

2020-02-01 22:58:07 114

转载 Tomcat组成与工作原理

Tomcat是什么开源的Java Web应用服务器,实现了Java EE(Java Platform Enterprise Edition)的部分技术规范,比如 Java Servlet、Java Server Page、JSTL、Java WebSocket。Java EE 是 Sun公司为企业级应用推出的标准平台,定义了一系列用于企业级开发的技术规范,除了上述的之外,还有 EJB、Jav...

2020-01-30 15:51:32 329

转载 布隆过滤器BloomFilter

问题引出1.如何在亿级黑名单中快速定位URL地址是否在黑名单中?(每条URL平均64字节)2.目前有10亿数量的自然数,乱序排列,需要对其排序,在32位机器上完成,内存限制为2G?什么是布隆过滤器本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存...

2020-01-12 11:37:00 145

转载 BitMap的简单实现

Bitmap介绍bitmap是很有用的结构。所谓的bitmap就是用一个bit位来标记某个元素,而数组下标是该元素。bitmap优势bitmap经常用在大数据的题中,比如10亿个int类型的数,如果用int数组存储的话,那么需要大约4G内存,浪费内存。如果用bitmap解决,就比较方便。bitmap可以用int来模拟,也可以用byte来模拟,它只是逻辑上的概念,在java语言中写不出来...

2020-01-12 11:15:56 621

原创 virtualBox+vagrant+centos.box搭建linux开发环境

Vagrant 简介Vagrant 是一款用来构建虚拟开发环境的工具,非常适合 php/python/ruby/java 这类语言开发 web 应用,“代码在我机子上运行没有问题”这种说辞将成为历史。我们可以通过 Vagrant 封装一个 Linux 的开发环境,分发给团队成员。成员可以在自己喜欢的桌面系统(Mac/Windows/Linux)上开发程序,代码却能统一在封装好的环境里运行,...

2019-12-11 14:17:17 266

转载 模板方法模式

概念Define the skeleton of an algorithm in an operation,deferring some steps to subclasses.Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm's stru...

2019-10-29 15:29:37 443

转载 合成复用原则

一、什么是合成/聚合复用原则?合成/聚合复用原则是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。简述为:要尽量使用合成/聚合,尽量不要使用继承。二、合成和聚合的区别;依赖和关联合成(Composition)和聚合(Aggregation)都是关联(Association)的特殊种类。用C语言来讲,合成是值的聚合(A...

2019-10-28 15:30:16 1298

转载 里氏替换原则

里氏替换原则(Liskov Substitution Principle ,LSP):指的是任何基类可以出现的地方,子类一定可以出现。定义1如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都替换成o2时,程序p的行为没有发生变化,那么类型T2是类型T1的子类型。定义2所有引用基类的地方必须能透明地使用其子类对象。问题由来...

2019-10-28 15:01:07 160

原创 迪米特法则(最少知识原则)

定义如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个应用。迪米特法则强调:在类的结构设计上,每一个类都应该尽量降低成员变量的访问权限。也就是说一个类应该包装好自己的private状态,不需要让别的类知道的字段或行为就不要公开; 迪米特法则的根本思想是:强调类之间的松耦合; 类之间的耦合越弱,越有利...

2019-10-28 14:24:27 994

转载 接口隔离原则

什么是接口隔离原则(Interface Segregation Principle, ISP)接口对于Java开发者来说都不陌生,它几乎存在于每一个Java程序中,是抽象的代名词。在讲接口隔离原则之前,先说说接口,接口分为以下两种:实例接口(Object Interface): 在Java中声明一个类,然后用new关键字产生一个实例,是对一个类型的事物的描述,这就是一种接口。或许我们乍一看...

2019-10-28 13:47:15 155

转载 单一职责原则

定义单一职责原则,就一个类而言,应该仅有一个引起它变化的原因。应用范围单一职责原则适用的范围有接口、方法、类。按大家的说法,接口和方法必须保证单一职责,类就不必保证,只要符合业务就行。方法设想一下这个场景:假设我们要做一个用户修改名字以及修改密码的功能,可以有多种实现方案,比如下面列举 2 种实现方式代码:第一种实现方式第二种实现方式2种实现有什么区...

2019-10-28 11:37:38 967

转载 依赖倒置原则

High level modules should not depend upon low level modules,Both should depend upon abstractions.Abstractions should not depend upon details.Details should depend upon abstracts.

2019-10-28 11:27:57 194

转载 开闭原则

1、定义开闭原则,对于扩展是开放的,对于修改是关闭。OCP_Diagram.png2、实现(1)创建书籍接口interface IBook { String getName(); int getPrice(); String getAuthor();}(2)创建计算机书籍接口interface IComputerBook ext...

2019-10-28 10:02:25 121

转载 状态机引擎选型

状态机引擎选型概念有限状态机是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。在电商场景(订单、物流、售后)、社交(IM消息投递)、分布式集群管理(分布式计算平台任务编排)等场景都有大规模的使用。状态机的要素状态机可归纳为4个要素,即现态、条件、动作、次态。“现态”和“条件”是因,“动作”和“次态”是果。详解如下...

2019-10-23 17:03:25 2319

原创 深入理解ElasticSearch—顶层索引控制

一、改变lucene评分公式1、可用的相似度模型Okapi BM25模型:基于概率模型的相似度模型,可用于估算文档与给定查询匹配的概率。 随机偏离模型:基于同名概率模型的相似度模型。 基于信息的模型:与偏离概率模型类似。2、为每个字段配置相似度模型二、相似度模型配置1、选择默认的相似度模型2、配置被选用的相似度模型三、使用编码解码器1、...

2019-08-15 14:10:11 212

ibatis代码生成工具code.jar

这是一个简单易用的ibatis代码生成工具,非常的好用有效。

2019-07-10

ibatis代码生成工具

ibatis代码生成工具。iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目。于2010年6月16号被谷歌托管,改名为MyBatis。是一个基于SQL映射支持Java和.NET的持久层框架。

2019-03-12

深入理解Java虚拟机_JVM高级特性与最佳实践pdf 第2版

深入理解Java虚拟机_JVM高级特性与最佳实践pdf 第2版 周志明著

2018-11-06

Java技能图谱

java技能图谱是作为一个合格的java程序员必须掌握的技能,需注意点亮。

2018-09-29

apache-tomcat8.0.39.rar

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

2018-09-12

空空如也

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

TA关注的人

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