自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(292)
  • 资源 (10)
  • 收藏
  • 关注

转载 计算机系统基础---浮点数

简单回顾一下,简单来说,用定点数表示数字时,会约定小数点的位置固定不变,整数部分和小数部分分别转换为二进制,就是定点数的结果。但用定点数表示小数时,存在数值范围、精度范围有限的缺点,所以在计算机中,我们一般使用「浮点数」来表示小数。这篇文章,我们就来详细看一下浮点数到底是如何表示小数的,以及浮点数的的范围和精度有多大。什么是浮点数?首先,我们需要理解什么是浮点数?之前我们学习了定点数,其中「定点」指的是约定小数点位置固定不变。那浮点数的「浮点」就是指,其小数点的位置是可以是漂浮不定的。这怎么理解

2022-04-07 16:51:26 5370 1

原创 Java注解

定义Annontation (注解) 是Java5 开始引入的新特性,可以看作是一种特殊的注释,主要用于修饰类、方法或者变量。通过@interface关键字定义注解,并配合@Target、@Retention等必要的元注解,对注解进行描述;注解本质是一个继承了Annotation 的特殊接口:@Target(ElementType.METHOD)@Retention(RetentionPolicy.SOURCE)public @interface Override {}//等同于publi

2022-03-31 15:33:26 542

原创 【力扣】172. 阶乘后的零

解题思路因为13!的值就会超过整形范围造成溢出,所以不能对阶乘求解;因只有2 * 5可得到0,其他数相乘不能得到0,题目转换为求n!中含有多少个2*5;因为2的数量明显高于5,题目转为求n!中含有多少5;5!= 1 * 2 * 3 * 4 * (1 * 5); 10!=1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * (2 * 5); 可发现:n和5出现的次数是有关系的,n/5就是n!中5出现的次数;但经试验n>=25时并不适用;25!=1 * …* (1 * 5)…

2022-03-25 17:50:08 469

原创 CentOS替代者RockyLinux

起因2020年,CenOS宣布:CentOS 计划将重心从CentOS Linux 转移到 CentOS Stream。参见:CentOS 计划将焦点转移到 CentOS Stream终结时间CentOS Linux 7 停产:2024-06-30CentOS Linux 8 停产:2021-12-31CentOS Stream 8 停产:2024-05-31CentOS Stream 9 EOL:预计 2027 年,取决于“全面支持阶段”的 RHEL9 结束所以本文发布时,CentOS

2022-03-21 17:46:11 4959

原创 Maven父子项目单独构建子项目

单独构建子项目mvn clean package -pl module_name -am多模块工程的打包命令参考:-pl --projects <arg> 构建指定模块,模块间用逗号分隔;-am --also-make 同时构建所列模块的依赖模块;-amd -also-make-dependents 同时构建依赖于所列模块的模块;...

2022-03-18 10:52:03 608

原创 Spring Boot集成Shiro导致代理失效

现象最近在写单元测试的时候,发现注入的UserService竟然不是Spring生成的代理类,这意味着没有切面,@Transactional注解在UserService内失效,瞬间慌了,赶紧试下其他Service,发现代理成功,没有问题。这就奇怪了……问题经过多方排查,断点跟踪,询问度娘,终于发现是因为Shiro的问题,而且在项目启动时,spring也打出了当前那些类没有被代理,只是因为info输出没有注意。原因没有详细去撸源码,大概原因是Apache提供的shiro-spring-boot-w

2022-03-03 16:01:46 606

转载 Java线程池实现原理及其在业务中的实践

随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流。使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器。J.U.C提供的线程池ThreadPoolExecutor类,帮助开发人员管理线程并方便地执行并行任务。了解并合理使用线程池,是一个开发人员必修的基本功。本文开篇简述了线程池概念和用途,接着结合线程池的源码,帮助大家领略线程池的设计思路,最后回归实践,通过案例讲述使用线程池遇到的问题,并给出了一种动态化线程池解决方案。一、写在前面1.1 线程池是什么线程池(Thread P.

2022-02-11 18:54:19 426 1

原创 docker部署Jenkins

docker部署jenkins

2022-01-21 19:06:51 551

原创 Java 8 Optional 类--避免null判断

Java Optional使用讲解

2022-01-14 14:48:25 511

原创 POI填充Excel背景色

POI背景颜色大全

2022-01-13 14:41:31 6315

原创 Mybatis使用技巧汇总

这里的0如果写死,感觉硬编码,如果传参又感觉太多余,这个时候就可以用静态变量。在形成sql时,直接被替换成对应值, 拼接入sql, 如果。会拿到entry对象,其实不是;层级超过两层时,再使用@可能会报错,如果报错,改为。例子中因传入多个对象,因此需要带上对象名,否则报错。获取的值为用户输入,则有sql注入风险;即:great than缩写,同理,可通过此方式使用静态方法。传入%号时查询不正确,推荐使用。获取id,可以不设置,当替换量较大时,可以使用。替换,防止sql注入;

2022-01-11 19:15:58 514 1

翻译 GNU通用公共许可协议--GPLV3中文翻译

第三版,2007年6月29日版权所有 © 2007 自由软件基金会 http://fsf.org/任何人皆可复制和发布本协议的完整副本,但不得修改【译者声明】  This is an unofficial translation of the GNU General Public License into Chinese. It was not published by the Free Software Foundation, and does not legally state the dis.

2022-01-04 16:38:23 3093

原创 好用的开发工具推荐

前言最近有公司告我司使用了他们的破解软件,导致好用的破解软件都不能使用了,这里记录一些开源免费的软件,有相同需求的同学可以参考一、IDE开发离不开好用的IDE,目前免费又较好用IDEVS Code,微软开发,实属精品,支持主流操作系统,和几乎全部编程语言,前端后端开发人员都可使用Eclipse,由eclipse基金会开发,几十年的常青树,支持主流操作系统,主要用于Java开发,也有其他语言的版本,最近的几个版本好用了不少,目前仅能用于后端开发,前端项目基本不支持很难用对于我这个后端开发而言,

2021-12-17 15:43:11 3161

原创 k8s修改集群IP--不重置集群

背景公司产品基于k8s开发,到客户现场部署成为费时费力的工作,从安装机器、部署集群环境、安装k8s、拉取应用镜像、启动应用等;中间有任何一个环节出问题,都会导致最终应用跑不起来;为了减轻部署人员工作量,缩短部署时间,还是回到了虚拟机的老路上;k8s的节点部署为虚拟机,调试好后,导出为虚拟机镜像,到客户环境导入启动即可;大大降低工作量,缩减部署时间,降低部署人员技术门槛;问题客户环境部署集群后,一般需要修改k8s各个节点的IP地址为客户环境的IP,本文命令执行环境:CentOS 7.71. 修改

2021-11-13 23:32:32 8105 10

转载 HSSFworkbook,XSSFworkbook,SXSSFworkbook区别总结

用JavaPOI导出Excel时,我们需要考虑到Excel版本及数据量的问题。针对不同的Excel版本,要采用不同的工具类,如果使用错了,会出现错误信息。JavaPOI导出Excel有三种形式,他们分别是:HSSFWorkbook、XSSFWorkbook、 SXSSFWorkbook。HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xls;XSSFWorkbook:是操作Excel2007后的版本,扩展名是.xlsx;SXSSFWorkbook:是

2021-11-03 14:05:20 356

原创 JumpServer堡垒机介绍及安装

官网:https://www.jumpserver.org/一键安装:https://github.com/jumpserver/jumpserver/releases容器部署:https://jumpserver.readthedocs.io/zh/master/install/docker_install/安装比较简单,推荐一键安装快速入门:https://jumpserver.readthedocs.io/zh/master/admin-guide/quick_start/...

2021-10-20 18:22:11 470

原创 docker安装nginx

docker run --name nginx -v /some/content:/usr/share/nginx/html:ro -d nginxdocker run --name nginx -p 80:80 -p 443:443 -v /etc/docker-app/nginx/nginx.conf:/etc/nginx/nginx.conf -v /root/app/front:/usr/share/nginx -d nginx

2021-10-20 11:29:47 221

原创 docker 安装SqlServer 可在linux系统安装运行

官方地址docker官方镜像库镜像下载#下载最新版本docker pull mcr.microsoft.com/mssql/server#下载2019最新版本docker pull mcr.microsoft.com/mssql/server:2019-latest#下载2017最新版docker pull mcr.microsoft.com/mssql/server:2017-latest运行镜像docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWOR

2021-10-14 11:15:55 407

原创 SpringBoot 接收日期格式参数统一处理

一、接收java.util.Date作为参数,在yaml配置文件中统一配置spring: jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 mvc: format: date: yyyy-MM-dd date-time: yyyy-MM-dd HH:mm:ss time: HH:mm:ss二、接收java.time.LocalDateTime作为参数,在参数上加注解

2021-09-18 14:57:21 2356

原创 eclipse安装lombok插件

lombok官网:https://projectlombok.org/eclipse下lombok插件安装:方法一: 使用jar包安装下载官网jar,java -jar lombok.jar 运行,程序会自动查找本地IDE(编译器),查找完点安装即可;如果没有找到,可以自定义安装路径;方法二:使用eclipse插件管理器安装插件地址:https://projectlombok.org/p2eclipse重启后,clean下还报错的项目即可...

2021-08-03 17:59:23 276

原创 SonarQube与GitLab集成

前言通过此集成,您将能够:使用 GitLab 进行身份验证- 使用您的 GitLab 凭据登录 SonarQube。导入您的 GitLab 项目- 将您的 GitLab 项目导入 SonarQube 以轻松设置 SonarQube 项目。使用 GitLab CI/CD 分析项目- 将分析集成到您的构建管道中。从Developer Edition开始,在 GitLab CI/CD 作业中运行的 SonarScanners 可以自动检测正在构建的分支或合并请求,因此您无需专门将它们作为参数传递给扫描仪

2021-08-02 17:23:15 12058 3

原创 Linux禁用scp和sftp

​系统:centos 7.x一、禁止scp方法一:卸载openssh-clientsrpm -qa|grep openssh-*yum remove openssh-clients -y删除了openssh-clients后,再执行scp,就会报下面的错误:-bash: scp: command not found但删除该包也会导致其他ssh命令不可用方法二:移除scp执行权限whereis scp #查找scp所在目录cd /usr/binchmod -x scp #移除执行权限

2021-07-22 16:20:46 4537 1

原创 Helm介绍安装及简单入门

一、简单介绍Helm是CNCF毕业项目,是K8S的包管理器,就像apt/yum/homebrew这些作为linux的包管理器一样;官网:https://helm.sh/zh/github:https://github.com/helm/helmChart 是Helm的包。它包含了 在Kubernetes 集群内部,运行应用程序、工具或服务所需的所有资源定义。类似于Homebrew formula,Apt dpkg,或 Yum RPM;Repository(仓库) 是用来存放和共享 charts 的

2021-07-21 19:36:08 992 1

转载 k8s的持久化存储PV&&PVC

1.PV和PVC的引入Volume 提供了非常好的数据持久化方案,不过在可管理性上还有不足。拿前面 AWS EBS 的例子来说,要使用 Volume,Pod 必须事先知道如下信息: 当前 Volume 来自 AWS EBS。 EBS Volume 已经提前创建,并且知道确切的 volume-id。 Pod 通常是由应用的开发人员维护,而 Volume 则通常是由存储系统的管理员维护。开发人员要获得上面的信息: 要么询问管理员。 要么自己就是管理员。 这样就带来

2021-07-21 17:45:31 333

转载 什么是DevOps?

提到DevOps这个词,我相信很多人一定不会陌生。作为一个热门的概念,DevOps近年来频频出现在各大技术社区和媒体的文章中,备受行业大咖的追捧,也吸引了很多吃瓜群众的围观。那么,DevOps是什么呢?有人说它是一种方法,也有人说它是一种工具,还有人说它是一种思想。更有甚者,说它是一种哲学。越说越玄乎,感觉都要封神啦!DevOps这玩意真的有那么夸张吗?它到底是干嘛用的?为什么行业里都会对它趋之如骛呢?今天这篇文章,小枣君就和大家好好聊一聊这个DevOps。DevOps的

2021-07-12 18:00:43 428

原创 六大设计原则--依赖倒置(依赖反转)

定义在面向对象编程领域中,依赖倒置原则(Dependency inversion principle,DIP)是指一种特定的解耦(传统的依赖关系创建在高层次上,而具体的策略设置则应用在低层次的模块上)形式,使得高层次的模块不依赖于低层次的模块的实现细节,依赖关系被颠倒(反转),从而使得低层次模块依赖于高层次模块的需求抽象。规定该原则规定:高层次的模块不应该依赖于低层次的模块,两者都应该依赖于抽象接口。抽象接口不应该依赖于具体实现。而具体实现则应该依赖于抽象接口。图解图1中,高层对象A依赖

2021-07-08 17:35:48 493

原创 Java架构图

2021-06-23 19:04:28 148

原创 TCP协议及三路握手

TCP协议原文RFC793第一次A向B发送,B接收到;A不知道A-->B是否是通的,B收到A,B知道A-->B是通的;(SYN=1)第二次B向A发送响应,A接收到;A知道A-->B是通了,否则B不可能发回对应ack的响应,同时A也知道B-->A是通的;而B此时还停留在知道A-->B是通的,B-->A是否通B还不知道;第三次A向B发送确认,B收到;B知道B-->A是通的;(ACK=1)通过三步握手,A和B双方都确认了A-->B和B-->A两个链路的连通性;自此稳定连接建立,A开始向B发送真正数据;

2021-06-22 19:30:02 248 1

原创 docker push manifest invalid: manifest invalid

问题描述本地使用dockerfile制作镜像后,使用docker push命令推送到私有镜像仓库,报:manifest invalid: manifest invalid问题原因本地docker版本过高,制作出的镜像和仓库不匹配,到低版本docker环境下制作镜像,推送即可;或者升级registry到最新版本;...

2021-05-08 10:22:25 2369

原创 k8s高可用集群部署(二)部署实施

上篇文章:k8s高可用集群部署(一)方案对比 介绍了两种部署方案,从他们拓扑图中可以看出,方案一部署起来更容易些;因此选择方案一;高可用方案总体介绍k8s高可用方案和普通方案相比仅仅多了一个负载均衡器sudo kubeadm init --control-plane-endpoint "k8s-master:16443" --upload-certs --pod-network-cidr 10.244.0.0/16 --image-repository registry.cn-hangzhou.ali

2021-05-07 11:44:22 693 1

原创 Spring定时执行@Scheduled从配置文件获取定时

代码@Scheduled(cron = "${schedule.update-ldap-users.cron}" )配置文件schedule.update-ldap-users.cron=0 0/20 * * * *修改配置文件后,需重启代码才能生效

2021-05-06 10:55:49 1570

转载 Jenkins配置不同人不同项目权限

一、创建用户  方法百度二、安装插件  1.修改清华大学源(方法百度)  2.搜索并安装Role-Based Strategy插件三、修改授权策略四、修改安全规则  1.在设置界面打开Manage and Assign Roles,在系统设置 的下面,或者直接通过url访问ip+/role-strategy/ 比如我的是:http://192.168.80.12:8080/role-strategy/就这个傻屌按钮我找了半天- -!...

2021-04-28 17:41:32 249

原创 k8s高可用集群部署(一)方案对比

本页面介绍了配置高可用(HA) Kubernetes 集群拓扑的两个选项。您可以设置 HA 集群:使用堆叠(stacked)控制平面节点,其中 etcd 节点与控制平面节点共存 使用外部 etcd 节点,其中 etcd 在与控制平面不同的节点上运行在设置 HA 集群之前,您应该仔细考虑每种拓扑的优缺点。说明:kubeadm 静态引导 etcd 集群。 阅读 etcd集群指南以获得更多详细信息。堆叠(Stacked) etcd 拓扑堆叠(Stacked) HA 集群是一种这样的..

2021-04-23 16:34:49 886 1

原创 Spring Boot中RestTemplate使用

什么是RestTemplateRestTemplate和Spring中其他的Template类似,RestTemplate是用来访问Restful服务的,使用起来方便快捷;全局单例即可;一、配置1. pom文件 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </

2021-04-22 15:52:16 602

原创 Java中求集合交集、并集、差集

前言无论使用哪种方法都要重写equals方法,如果使用Set集合,还需要重写hashCode方法;public class User{ private Integer id; private String name; @Override public boolean equals(Object obj) { if(obj == null) { return false; } if(!(obj instanceof User)) { return false;

2021-04-21 20:04:34 5261

转载 语义化版本 2.0.0

语义化版本 2.0.0摘要版本格式:主版本号.次版本号.修订号,版本号递增规则如下:主版本号:当你做了不兼容的 API 修改, 次版本号:当你做了向下兼容的功能性新增, 修订号:当你做了向下兼容的问题修正。先行版本号及版本编译元数据可以加到“主版本号.次版本号.修订号”的后面,作为延伸。简介在软件管理的领域里存在着被称作“依赖地狱”的死亡之谷,系统规模越大,加入的包越多,你就越有可能在未来的某一天发现自己已深陷绝望之中。在依赖高的系统中发布新版本包可能很快会成为噩梦。如果依赖关

2021-04-21 16:40:15 112

转载 GitHub push超过100M文件处理方法

众所周知,github 会在你上传文件大于50M的时候,给予警告 ; 大于100M的时候给出 server reject(拒绝上传)解决方案1、维持单个文件在100M以内,保持原仓库,剔除单个文件大于100M的网上他人解决方案1:http://www.jianshu.com/p/09a2d9db861c 网上他人解决方案2:http://www.codeinterpreter.com/2015/01/solving-this-exceeds-githubs-file-size.h...

2021-04-02 16:43:03 1873

原创 LDAP介绍及使用

一、LDAP介绍目录服务(Directory Service)目录是专门为搜索和浏览而设计的专用数据库,支持基本的查找和更新功能。提供目录服务的方式有很多。不同的方法允许将不同类型的信息存储在目录中,对如何引用,查询和更新该信息,如何防止未经授权的访问等提出不同的要求(这些由LDAP定义)。一些目录服务是本地的,提供本地服务;一些目录服务是全球性的,向更广泛的环境(例如,整个Internet)提供服务。全局服务通常是分布式的,这意味着它们包含的数据分布在许多机器上,所有这些机器协作以提供目录服务。通常

2021-03-29 19:43:01 27160

原创 Nextcloud网盘安装

简介Nextcloud所有数据的安全之家。根据您的条件,可以通过任何设备访问并共享您的文件,日历,联系人,邮件及其他内容。类似于百度云盘,不光提供web访问,还提供手机app(安卓和IOS)已经电脑端应用。Nextcloud为开源软件,服务端使用php开发,使用GPL 3.0开源协议进行授权(不能用于盈利,二次开发需要开源)地址官网地址:Nextcloud试用地址:试用地址Github:开源服务端,其他部署官方提供了三种安装方式安装方法一: 下载安装包安装方法二:下载安装文件安装方法三:

2021-03-29 09:23:51 2063

转载 Linux--逻辑卷管理器(LVM)

一、什么是LVM?LVM(Logical Volume Manager)逻辑卷管理是在Linux2.4内核以上实现的磁盘管理技术。它是Linux环境下对磁盘分区进行管理的一种机制。现在不仅仅是Linux系统上可以使用LVM这种磁盘管理机制,对于其它的类UNIX操作系统,以及windows操作系统都有类似与LVM这种磁盘管理软件。LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物

2021-03-24 15:32:09 949

publish-over-ssh

publish-over-ssh

2022-01-21

阿里Java开发手册-2019华山版.pdf

《Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模 一线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与,共同打磨完善,系统化地 整理成册。现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点, 其它维度的知识点也会影响到软件的最终交付质量。比如:数据库的表结构和索引设计缺陷可能带 来软件上的架构缺陷或性能风险;工程结构混乱导致后续维护艰难;没有鉴权的漏洞代码易被黑客 攻击等等。所以本手册以 Java 开发者为中心视角,划分为编程规约、异常日志、 单元测试、 安全规 约、 MySQL 数据库、 工程结构、 设计规约七个维度,再根据内容特征,细分成若干二级子目录。 另外,依据约束力强弱及故障敏感性,规约依次分为强制、推荐、参考三大类。 在延伸信息中, “说明” 对规约做了适当扩展和解释;“正例”提倡什么样的编码和实现方式;“反例”说明需要 提防的雷区,以及真实的错误案例。

2019-10-22

Redis windows 64位

redis windows 64位版,解压即可使用

2017-08-23

Secure CRT

Secure CRT 注册机,拷贝到安装目录,运行选择path,打完补丁后,运行SecureCRT,选择手动填入(当然是英文),按注册机上的信息填入即可,亲测可用,

2017-08-20

Spring+Security中文帮助文档

Spring +Sercurity中文文档

2013-08-19

Extjs-4.1.1a

包含Extjs说明文档,实例,源码及样式统统有。

2013-05-22

feedback用于意见收集

feedback 意见收集 纯javascript 实现意见收集功能 页面引入js和css文件即可使用

2012-11-30

Tomcat服务器6.0

tomcat 服务器,小巧稳定,全面支持javaEE。

2012-09-11

java简易bbs

一个简单的java bbs论坛,论坛功能完整

2012-09-11

空空如也

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

TA关注的人

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