自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天才战士的博客

致力于研究快速开发的适用架构

  • 博客(127)
  • 问答 (2)
  • 收藏
  • 关注

原创 yum安装mongodb4.4

1 创建文件 vim /etc/yum.repos.d/mongodb-org-4.4.repo1.1 写入内容[mongodb-org-4.4]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/gpgcheck=1enabled=1gpgkey=https://www.mongodb.org/static/pgp/server-4..

2021-05-08 22:24:22 434

原创 top命令各个参数意思的详细说明

top命令的输出可以分为两部分,前半部分是系统统计信息,后半部分是进程信息。在统计信息中,第一行是任务队列信息 ,它的结果等同于uptime命令。从左到右依次表示:系统当前时间、系统运行时间、当前登录用户数。最后的load adverage表示系统的平均负载,即任务队列的平均长度,这三个值分别表示1分支、5分钟、15分钟到现在的平均值。第二行是进程统计信息,分别有总进程数、正在运行的进程数、睡眠进程数、停止的进程数、僵尸进程数。第三行是CPU统计信息,us表示用户空间cpu占用率、sy表示内核空间c..

2021-04-26 15:43:32 2538

原创 随便说说JVM

去看JVM?没病吧,又不是去面试。哇,又要去面试了,又得重新去背JVM了。这就是我两年前的状态。最近又翻了翻JVM,发现有点理解了。java是一门高级语言,是由C编写的。现在想象如果你会C语言,要你设计java语言,你会如何设计?这个话题可能太长了啊,那就如何运行java类吧。给你一个经过校验,并且成功编译了的类,你该怎么用C语言设计这个类的运行功能?首先,我们是不是要有个地方存储这个类的信息?类名啊,类的方法啊等一些元数据,还有类级别的静态数据,我们就把存在方法区吧。然后呢,我运行类的方法

2021-04-24 13:08:10 190

转载 yum安装mysql5.7

正文 在CentOS7中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。1. 下载并安装MySQL官方的Yum Repository [root@BrianZhu /]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm [root@Brian...

2021-04-17 14:03:52 177

原创 linuxshell函数,数组,遍历,字符串,随机数拼接组成一个简单的脚本

#!/bin/bashzimu=(a b c d e f g h i j k n m l o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9)function rand(){ min=$1 max=$(($2-$min+1)) num=$(date +%s%N) echo $(($num%$max+$min))}function getto(){ o="c" k=0 while(( $k<7 )) do let "k.

2021-04-13 22:34:56 398

原创 SharpZipLib文件名乱码

ZipEntry entry = new ZipEntry(file.Replace(rootMark, string.Empty)); entry.IsUnicodeText = true; //添加这行我的问题解决了

2021-04-05 14:12:56 290

原创 C#总是报未能加载文件或程序集

脑子一热,想用没学过的C#语言搞两个桌面应用程序。弄了两个C#软件,开发机器上运行的好好的,但是打包成可用软件,总是报未能加载文件或程序集。我查看是版本不对,已有的程序集和要的程序集的版本号匹配不对,因此找不到程序集。网上查了各种资料都不管用,C#社区也太小了吧,我看了有很多这样的问题,但没一个有用。耗了我几天,彻底崩溃了。玛德,你不是版本号不对,我强行改的你的版本号一样。对已有的程序集开刀,用dnSpy软件强行修改它的版本号和要的版本号一致。这下爽了吧,可以用了吧。...

2021-04-04 12:09:01 526

原创 推荐几本书给java程序员

读书不是一蹴而就的,不是说你一看完你就功力大增。个人感觉它只是起到一个潜移默化的效果,给你留下一点印象,留下一个种子。在你写代码的时候,当你碰到这种场景,你脑海会突然灵光一闪,好像看过,你接下来要怎么做,要注意什么,它会给你思路,给你思想。1.从java入门到精通我大学的时候新手时期就是看这本,比较浅显,引用的例子也比较简单,适合新手结合视频,边敲边学。新手如何学习?跟着敲就行了,我也兼职网上辅导,可私聊我。2.java疯狂讲义这本书应该很多人听过,我觉得它不适合刚接触java的人。它太详细了,从小

2021-03-31 01:56:37 186 2

原创 跨域怎么设置都不起作用

跨域,很常见,网上一搜一大把,不介绍怎么解决但我踩了一个估计独一无二的坑把。以前也设置过几次跨域了,随便在网上找了个看上去熟悉的设置了一遍,觉得没什么问题了。设置完成,接口可以被访问了,浏览器F12的控制台也没报错,但是请求地址一直爆红,显示 Cross-Origin Resource Sharing error: MissingAllowOriginHeader于是网上又看了看,按着设置了一下,还是没用。冷静想想,接口都访问成功了,页面都加载出数据了,只是F12查看这个接口显示连.

2021-03-29 23:03:54 1121

原创 java项目上传到gitlab仓库

首先在gitlab新建一个仓库,以前新建好他就会有一套命令教你怎么把你的项目代码上传到这个仓库,不知道现在怎么没有了,随手记一下前提本地安装了git1.切换到项目目录,直接在此位置右键打开git bash2.vim .gitignore 添加忽略文件,忽略哪些文件不要上传3.git config --global user.name"name"4.git config --global user.email"email"5.git init6.git add . (后面有个点,.

2021-03-22 15:55:19 1018

原创 linux日志打包

日志太多了,按年月打包一下,简单脚本,手动执行#!/bin/bashn=2021m=01tar -cvzf info.log.$n-$m.tar.gz info.log.$n-$m-{01..31} rm -f info.log.$n-$m-{01..31}

2021-03-20 13:02:03 710

原创 错误记录2

1.我突然想到一个问题,执行一个java方法,如果它上半部分执行成功,下半部分报错异常了,那么上半部分执行结果保存还是回滚呢?public class MainTest { public static final ArrayList<String> list = new ArrayList<>(); public void save(String name){ list.add(name); int i = 1/0; }

2021-03-16 12:56:02 64

原创 买服务器记的一次坑--网速问题

我自己的一个网站http://www.tczs93.com/,里面的下载速度太慢了。本地测试是很快的,推理是服务器的网速太慢。yum install nload安装nload来查看网速,发现最大出网速才100KB/s,论证成功。找客服问为什么我的出网速这么慢,于是他给了一个换算过程:这边查看您的服务器 的公网带宽 是购买的 1Mbps ,后续您可以参考一下这个算法规则来 换算一下 哈,1Mbps=1024Kbps=1024/8KBps=128KB/s这边查看这个 节点是 江苏那边的, 按照 1

2021-03-09 13:42:38 82

原创 写一个划词自动翻译软件

话说某一天,我正在看tomcat官网,对于英语不怎么好的我,时不时就要去寻找翻译,这是很麻烦的,也很容易消极我学习的心。本来我想去下一个有道词典,用它的自动划词翻译功能。就是直接在英语文档上,看到不会的单词,语句,选中就可以直接翻译处理,不要各个页面切换去翻译了,学习起来比较顺畅。但看到它的大小,想想我就用一个这么简单的功能,我就要下载很多不用的功能,太对不起我的电脑了。于是自己实现了一个,下载地址:简单易...

2021-01-08 23:44:51 537

转载 VS2019项目打包生成.exe文件与Setup

对于Visual Studio Installer ,我们通常称为:setup项目,是一个用于自定义安装部署的项目方案。但是在VS2019中不见了,微软是有意废除安装项目的,合作了一个第三方的安装项目单独使用。我们可以从官网上把Visual Studio Installer 项目扩展下载下来。地址:https://marketplace.visualstudio.com/items?itemName=VisualStudioClient.MicrosoftVisualStudio2017Installe

2021-01-06 18:35:22 625

转载 代理模式

Java的三种代理模式1.代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的经纪人,来达到同样的目的.明星就是一个目标对象,他只要负责活动中的节目,而其他琐碎

2021-01-04 16:46:39 48

转载 什么是I/O,你真的懂了吗?

在计算机系统中I/O就是输入(Input)和输出(Output)的意思,针对不同的操作对象,可以划分为磁盘I/O模型,网络I/O模型,内存映射I/O, Direct I/O、数据库I/O等,只要具有输入输出类型的交互系统都可以认为是I/O系统,也可以说I/O是整个操作系统数据交换与人机交互的通道,这个概念与选用的开发语言没有关系,是一个通用的概念。在如今的系统中I/O却拥有很重要的位置,现在系统都有可能处理大量文件,大量数据库操作,而这些操作都依赖于系统的I/O性能,也就造成了现在系统的瓶颈往往都是由于

2021-01-03 17:36:23 609 1

原创 错误记录

1.多线程同时写一个文件会出现乱序问题要不加锁,要不写文本的操作集中一次写完

2021-01-03 14:21:13 160

转载 Tomcat的原理及架构

转自:https://zhuanlan.zhihu.com/p/35398064俗话说,站在巨人的肩膀上看世界,一般学习的时候也是先总览一下整体,然后逐个部分个个击破,最后形成思路,了解具体细节,Tomcat的结构很复杂,但是 Tomcat 非常的模块化,找到了 Tomcat最核心的模块,问题才可以游刃而解,了解了Tomcat的整体架构对以后深入了解Tomcat来说至关重要!一、Tomcat顶层架构先上一张Tomcat的顶层结构图(图A),如下:Tomcat中最顶层的容器是Serve.

2021-01-01 19:42:56 66

转载 计算机网络之七层网络模型

七层网络模型是ISO(InternationalOrganization For Standrad -- 国际组织标准)划分的标准分层。TCP/IP协议是最基本的,没有它是不可能有网络连接。TCP/IP也划分了一个自己的分层模型,但是这是在七层网络模型基础上建立的。各个分层都有自己的专属协议,分层之间相互协调工作,最终实现网络的联通。从下往上介绍各层之间的作用:物理层:该层提供网络传输的物理媒体,为网络之间的传输提供最基础的支持。重要的设备有中继器和集线器。数据链路层:该层将源网络.

2020-12-27 21:50:30 1571

原创 什么是粘包

什么是粘包:包是一个一个独立的包,每个包的数据都是独立的。但有可能多个包的数据在一些原因下存在同一个包下了,就是粘包了。粘包的原因及解决方法:发送方:可能采用了Nagle算法,某个用户想发送一个英文字符"q",只有1个字节,但要能发送得组成包,它就用有额外的数据(报头,Ip等),可能额外的数据达到了30子节,而我想发送的数据只有1子节,这就消耗了很多资源。为了解决这个问题,就设计了Nagle算法。用户发送字符q只有一个子节,Tcp它不会立马发送给对方,它会先发送成缓存空间先存储起来,等用户继续.

2020-12-26 16:22:57 1381

原创 算法--排序总结篇

样例 [1,5,3,6,7,3,9,10,2],以下都是以从小到大排序1.冒泡排序思想:从数组上第0位开始,和第1位比较,比第一位大则交换值,然后第1位和第2位比较,大则交换,依次类推到n-1和n比较,通过不断的比较相邻的位置上的,大的值不断往后交换,最后最大的值被交换到数组最后的位置,这就完成了第一趟。第二趟还是从第0位开始,但结束位置是n-2和n-1比较,n的位置已经确定最大了,不需要比较了。依次类推完成n-1趟。时间复杂度: O(n^2)public Integer[] sor...

2020-12-10 16:57:27 86

转载 MySQL的预编译功能

预编译的好处大家平时都使用过JDBC中的PreparedStatement接口,它有预编译功能。什么是预编译功能呢?它有什么好处呢?当客户发送一条SQL语句给服务器后,服务器总是需要校验SQL语句的语法格式是否正确,然后把SQL语句编译成可执行的函数,最后才是执行SQL语句。其中校验语法,和编译所花的时间可能比执行SQL语句花的时间还要多。如果我们需要执行多次insert语句,但只是每次插入的值不同,MySQL服务器也是需要每次都去校验SQL语句的语法格式,以及编译,这就浪费了太多的时间。如果使

2020-12-07 12:33:33 136

原创 手写数据结构之优先有序队列

前面我用堆写了一个优先队列,可以保证优先级高的先执行,但不能保证同等优先级的有序。java JDK的PriorityBlockingQueue也是用堆实现的优先队列。场景:如果有1~9个会员等级进行排队购买,首先保证高等级的进行优先购买,同等级的有序排队。那么这个场景采用普通的优先队列就不能满足了。理论方案:靠普通堆是实现不了的,除非你在构建堆的时候进行额外处理,强行保证它同等级的有序,那这个还不如写排序来的实在。还是以堆数据结构作为基础,实现优先功能,接下来就是要保证同等级别的有序了,这个功能交给

2020-11-03 15:12:48 177

原创 ReentrantLock实现思路分析

ReentrantLock是依赖CAS机制写的。CAS全名Compare And Swap,比较如果相同就交换,全名更容易记住,并且具有意义。CAS在ReentrantLock中的实现,样例1: //同步器状态,如果是0,同步器中没有线程在运行,也就是lock释放状态 //如果是1,则代表同步器中有线程在运行,lock没有被释放 private volatile int state; //获取state变量在当前对象所占内存里的偏移量(就是state的位置)

2020-10-29 18:55:22 236

原创 手写数据结构二叉堆

package com.tczs.heap;import java.util.Arrays;import java.util.Comparator;public class BinaryHeap<T> { private Object[] array; private int capacity = 16; private int length; private int index; private Comparator<? super .

2020-10-25 00:19:28 202

原创 手写数据结构之红黑树

红黑树的作用:前面我写了一个普通查找二叉树,普通查找二叉树有一个弊端,就是可能会有极坏的情况(节点一边倒,分布不完全)。那么红黑树就是一种特殊的查找二叉树,能让节点尽可能完全分布的情况。红黑树的定义:红黑树是具有以下着色性质的二叉查找树:1.每一个节点不是黑色就是红色2.根是黑色3.如果一个节点是红色的,那么它的子节点必须是黑色的4.任意一个节点到每一个叶子节点的路径都有相同数目的黑色节点(任意节点不好理解,理解成根节点就好了)备注:看完定义可能会一脸蒙圈,如果已经熟悉了二叉

2020-10-18 23:59:42 250

原创 手写数据结构之普通查找二叉树

前段时间去面试,不是算法就是源码,被问到崩溃,这是今年程序员多了,还是我要个22k以上的工资必问条件了。算法还好吧,状态好还能写两个简单的,源码说实话我都不主动去看了,都是系统出问题了我再来以这个为切入点去看看。面试机会很多,但结果都是等通知或者薪资压榨太多,不上班就不上班把,再怎么也不能走倒退路。哪里不会就学哪里吧,没有撤退可言。查找二叉树的定义:所有的左子树都比节点小,所有的右子树都比节点大。(数据结构与算法分析上定义的,其实反过来定义也可以吧,左子树大右子树小)示例图:可以看到查找

2020-10-06 16:01:22 228

原创 netty在服务器端设置超时时间

设置很简单,直接官网上抄就行,然后把它放在第一位或者尽量靠前吧public class MyChannelInitializer extends ChannelInitializer<Channel> { @Override public void initChannel(Channel channel) { channel.pipeline().addLast("idleStateHandler", new IdleStateHandler(60,

2020-09-05 15:47:53 6516

原创 搭建ELK查看springboot日志

最近写了一个springcloud的开发脚手架,看日志即使用了链路追踪,在多个服务看日志文件还是有点繁琐,特别是上线了你要跟踪一个已执行的接口,即使上家公司就是这样过来的。虽然听过ELK的大名,但没从没搭建过,就来玩一玩。如果要解决日志查看分析及存储问题,可以去了解一下阿里云的日志服务,在电商公司的时候用过。1.搭建elasticsearch1.1 直接执行 rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsear.

2020-08-19 04:28:45 516

原创 手写框架三 之 分布式事务处理

插入我的框架,以maven依赖形式插入适用框架: KAFKA , Mybatis使用期请在当前服务中创建一个事件表CREATE TABLE `tc_mq_message` ( `id` int(11) NOT NULL AUTO_INCREMENT, `try_times` tinyint(4) NOT NULL DEFAULT '0', `status` varchar(255) NOT NULL, `topic` varchar(255) NOT NULL, ...

2020-08-10 00:00:14 305

原创 手写框架 二 之 springmvc

回想大学时期写web项目,各种逻辑一通脑的就往servlet的doGet(),doPost()方法里写,最麻烦的应该就是配置映射路径了,现在各种框架用起来,对于初学者上手容易多了。项目地址:https://gitlab.com/yykxsn/myspringmvc手写springmvc框架功能* 简单模仿springmvc框架请求分发功能* @RestController: 注解在类上,标明这个类是请求映射类* @RequestMapping: 注解在方法上,为这个方法添加请求映射地址

2020-08-05 16:02:07 253

原创 手写框架 一 之 spring-ioc

本来想看下它的源码,看了半天,被它的层层调用给绕晕了。突然冒出个想法,还不如自己尝试写一下玩一下。项目地址:https://gitlab.com/yykxsn/myioc手写spring-ioc框架功能* 只简单的模仿ioc的控制反转功能,写了三个注解* @Component: 添加在类上,标明这个类交由容器创建* @Autowired: 添加在成员变量上,这个变量必须是已交给容器的bean* @BeanScan: 你希望扫描哪些包下的bean使用说明* 框架核心代码.

2020-08-04 21:39:19 149

原创 写MD的格式

<href a="www.baidu.com"/>

2020-08-01 11:01:44 504

转载 ElasticSearch教程----索引,类型,文档

ElasticSearch汇总请查看:ElasticSearch教程——汇总篇介绍索引是ElasticSearch存放数据的地方,可以理解为关系型数据库中的一个数据库。事实上,我们的数据被存储和索引在分片(shards)中,索引只是一个把一个或多个分片分组在一起的逻辑空间。然而,这只是一些内部细节——我们的程序完全不用关心分片。对于我们的程序而言,文档存储在索引(index)中。剩下的细节...

2020-08-01 10:08:20 537

原创 后端实现验证码功能

摘抄于 咕泡学院 的项目 gpmall1.生成验证码图片和验证码package com.gpmall.user.utils;import com.gpmall.user.dal.entitys.ImageResult;import sun.misc.BASE64Encoder;import javax.imageio.ImageIO;import java.awt.*;import java.awt.geom.AffineTransform;import java.awt.imag

2020-08-01 02:07:13 1450

原创 github下拉代码太慢

好不容易兴致来了想看个源码来玩玩,却发现现在的github慢成狗。1.先从github找到你想看的源码代码,复制好git下载地址2.登录OSCHINA,也就开源中国,进入里面的码云3.左下角找 仓库 ,里面有一项从 github导入4.将github的项目导入到码云,再从码云下载,ok...

2020-08-01 00:42:49 251

转载 搭建springcloud2 admin

Spring Boot Admin 2.1.0 全攻略方志朋2019-01-08 23:07:5633480收藏29分类专栏:springcloudspringboot史上最简单的 Spring Cloud 教程版权转载请标明出处:http://blog.csdn.net/forezp/article/details/86105850本文出自方志朋的博客个人博客纯净版:https://www.fangzhipeng.com/springcloud/2019/...

2020-07-29 21:36:51 463

原创 springboot启动命令

nohup java -jar -Xmx300m -Dspring.profiles.active=prod -Dserver.port=9802 user-service-0.0.1-SNAPSHOT.jar >nohup2.out 2>&1 &

2020-07-25 13:32:19 596

原创 IDEA将多个项目放入同一个窗口

1.首先多个项目最好是统一放在同一个目录空间下2.idea导入这个目录,如上,导入到idea这层目录,下面的项目则会都存放在同一个窗口3.这时候你会发现我的项目怎么没用,没有识别成maven项目。选中你的maven项目的pom文件,右键选择修改成maven项目...

2020-07-24 13:25:57 6013

空空如也

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

TA关注的人

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