- 博客(169)
- 资源 (13)
- 收藏
- 关注
原创 解决yum命令报错
1.在检查DNS的时候,不要用国外的,找国内的DNS比如101.226.4.6。2.如果yum的问题的话,直接跑这个命令,用腾讯的镜像。按照这个博主的思路往下做。
2024-08-08 22:14:09
432
原创 基于宝塔部署SSL证书
注意:因为这个文档中提供的是Jenkens的war包,所以默认端口是8080,但是我服务器防火墙没有开8080,所以在项目端口这一栏我们还是要填写8080,但是在项目执行命令这一栏我做了如下修改。解决:然后我就在宝塔Jenkens这个站点找到了相关的映射配置,最终将8080改成8083就可以访问了。总结:归根结底,是宝塔没有考虑到你项目使用的实际端口和你想要暴露出去的端口不一致导致的。背景:我使用的是腾讯云的服务器,安装的linux版的宝塔镜像。问题:前期部署都很顺利,可以通过ip+端口号的方式访问项目。
2023-03-25 15:04:03
330
原创 word转pdf或者打印后题注编号变成大写
最近在写毕业论文,遇到了这样一个问题:我的题注编号是由章节号和题注顺序决定的,比如 图2.3代表了这是第二章的第三张图,本来一切顺利,但是在转换为pdf后发现2.3变成了二.3。解决方法:首先CTRL+A选中全文,之后CTRL+F11锁定域,之后再转换为pdf,就不会出现编号问题了。如果论文后续还需要修改再CTRL+SHITF+F11解锁域。...
2022-04-18 12:54:24
6253
8
原创 主机是动态IP重启后不能与vmware虚拟机通信
背景:之前我在电脑上配置了几台虚拟机,这几台虚拟机可以和本机ping通,也可以ping通互联网上的域名。但是重启后,我主机的ip动态改变了,这时候虚拟机不能和主机以及互联网通信了。原因:主机是动态IP,重启后IP重新分配了。这时候主机和虚拟机不在一个网段,所以无法通信。解决方法:将vmware设置为net模式,这时候你本地会多出一个网卡,为这个网卡的ip、vmware的网关、虚拟机的ip都在一个网段。这样虚拟机就可以通过这个网卡与本地进行通信。vmnet8的配置vmware网关设置
2022-02-26 20:26:28
2580
原创 论文写作图表编号出现大写序号改成小写
论文写作过程中,一级标题我们一般会用大写,如:这个时候,我们插入图片并给图片插入题注时,会出现以下这种情况:这个时候我们都知道这是第四章节的第一张图,但是我们习惯上用4.1,而不是四.1,所以这一情况要怎么解决呢?首先我们将一级标题改成阿拉伯数字,方法如下(这一步的时候光标要放在第一章上面):这个时候第一章就变成了第1章,如图:这个时候我们再去插入题注:效果是这样的:现在我们再去把一级标题 第1章改成第一章(这个时候光标要放在第一章上面):...
2021-12-18 21:09:11
5092
1
原创 reentrantlock公平锁与非公平锁对比
先说结论:非公平锁加锁时先参与锁竞争,如果state为0,则获取到锁。如果不为0,分三种情况。第一种情况,state为0(距离刚刚判断已经过去一会儿了,刚刚不为零,现在可能为零),获取到锁。第二种情况,state不为0,但是持有锁的线程是自己,也就是二次加锁,此时state会加一。第三种情况,state不为0并且持有锁的线程也不是自身,则将当前线程加入到一个双向链表队列中。公平锁加锁时,分三种情况。第一如果state为0,判断队列中是否有线程比自己先来,如果有,则将自己加入队尾,如果没有则获取到锁。第二
2021-09-15 18:53:09
317
原创 抽象类和接口的区别
1.抽象类和接口都不能实例化,如果要实例化,抽象类变量必须指向继承该抽象类的非抽象类对象,接口变量必须指向实现该接口的类对象(否则抽象类和接口只能以匿名内部类的形式实例化)。2.抽象类中可以有声明(抽象方法),也可以有实现(非抽象方法)。接口中只能有方法声明(JDK1.8中允许接口实现默认方法)。3.接口里定义的变量默认时public static final 常量。抽象类中的变量和普通类中的变量没有区别。4.抽象类中的抽象方法必须全部被子类实现,如果子类不能全部实现,子类只能是抽象类。同样一个
2021-09-13 18:04:38
128
原创 线程的五种状态及状态的切换
线程状态示意图首先看下这张图,这张图标注了线程的五种状态,以及进程间的切换。简述线程状态新建状态:新建了一个线程对象,该对象就处于新建状态。就绪状态:线程对象创建后,其他线程调用了该对象的start方法。该状态的线程位于可运行线程池中,变得可以运行,只等待获取cpu的使用权。运行状态:就绪状态的线程获取了CPU,执行程序代码。阻塞状态:阻塞状态时线程因为某种原因放弃CPU使用权,暂时停止运行,直到线程进入就绪状态,才有机会转为运行状态。阻塞的情况分三种:等待阻塞...
2021-09-06 15:53:17
8680
2
原创 索引失效的情况
1. like以%开头,索引失效。2.or语句前后没有同时使用索引。3.组合索引,不是使用第一列索引。(个人使用经验,有特殊情况,如下)创建索引:create index i on test(a,b,c);执行查询:select b from test where c='p';此时索引是生效的4.数据类型出现隐式转换。5.索引字段使用not,<>,!=6.where 部分用索引字段进行计算操作,或索引字段使用函数。...
2021-09-02 12:19:27
148
原创 InnoDB引擎和MyISAM引擎
先说一下InnoDB引擎InnoDB主索引下图为InnoDB主索引示意图,可以通过主键找到行数据辅索引辅索引的查找时通过字段查询到主键,再通过主键查询行数据MYiSAM主索引先通过主键查询到地址,再通过地址查询行数据辅索引跟主索引的逻辑时一样的,通过索引字段查到地址,再通过地址查询行数据InnoDB与MYiSAM的区别InnoDB1.聚集索引2.支持行锁表锁3.count会遍历整个表4.不支持全文索引(新版本支持...
2021-08-27 16:02:53
116
原创 数据库隔离级别
如果没有数据库隔离级别会出现什么问题?1.脏读:一个事务在处理事务时,查询到了另一个事务未提交的数据。2.不可重复读:一个事务的多次查询结果不同。因为另一个事务提交了数据。3.幻读:脏读和不可重复读时针对行数据的,幻读时针对表数据的,指多次查询的行数不同。言归正传,数据库隔离级别有哪些:1.读未提交此时select语句没有加锁,可能出现脏读,不可重复读,幻读的问题。2.读已提交可以避免脏读,不能避免不可重复读,幻读。3.可重复读为mysql默认的隔离级别,可以避免
2021-08-27 15:37:37
118
原创 Java设计模式
设计模式太多了,先看几个吧单例模式这是问得最多的模式,这种模式在内存中只有一个实例,节约了内存空间。//饿汉式class SingleTon1{ private static SingleTon1 s = new SingleTon1(); public static SingleTon1 getInstance(){ return s; }}//懒汉式class SingleTon2{ private static SingleTon2 s; public static
2021-08-27 15:32:12
125
原创 Dubbo简介
dubbo是一个分布式服务框架,用于提供RPC(remote procedure call)远程服务调用。简单地说,dubbo就是一个服务框架。分布式才用得上,单机就用不上了。dubbo的作用1.透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需要简单配置。2.软负载均衡及容错机制,可以代替硬负载均衡,即消除了单点又降低了成本。3.服务自助注册于发现,不需要写死服务提供方的地址。注册中心基于接口名查询服务提供者的IP地址,并能平滑添加或删除服务提供者。...
2021-08-25 17:16:55
134
原创 UDP和TCP的区别
UDP(user data protocol)用户数据包协议:是传输层的协议,不提供数据包分组、组装并且不能对数据排序。数据发送后无法得知其是否安全完整地到达。TCP(transmission control protocol)传输控制协议:传输前建立连接,按顺序传说,不丢失数据。UDP的特点1.面向无连接的(不需要三次握手,四次挥手)2.有单播、多播、广播的功能3.面向报文的4.不可靠传输(首先因为是无连接的,其次是因为没有拥塞控制)5.头部开销小,传输效率高TCP
2021-08-25 17:11:05
95
原创 死锁面试题
死锁就是所有两个或多个线程都在请求被对方占用的资源,而陷入的一种僵局。产生死锁的四个必要条件:1.互斥条件(在某一个时刻,某一个资源仅能被一个线程占有)2.请求和保持条件(某一进程占据部分资源不释放,同时请求其他资源)3.不可剥夺条件(被占据的资源被释放前,不能被其他线程获取)4.循环等待条件(两个或多个线程都在等待对方占据的资源)预防死锁的方法1.资源一次性分配(破坏了请求和保持条件)2.当一个资源得不到的时候,释放占用的资源(破坏不可剥夺条件)3.为资源编号,按编
2021-08-25 17:03:33
259
原创 ThreadLocal实现原理
ThreadLocal有这样几个作用:代替参数的显示传递、全局存储用户信息、解决线程安全问题。https://cloud.tencent.com/developer/article/1636025那它具体是怎么样实现的呢?我们看一下源码Thread类中有一个threadLocals对象。public class Thread implements Runnable { ThreadLocal.ThreadLocalMap threadLocals = null;}
2021-08-20 10:16:41
105
原创 JZ46孩子们的游戏、约瑟夫环
题目:https://www.nowcoder.com/practice/f78a359491e64a50bce2d89cff857eb6?tpId=13&tqId=11198&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking下面是我的代码,效率比较低,看别人的答案,总结自己的经验。public class Solution { public
2021-08-17 15:02:26
99
原创 Java垃圾收集算法
一共有4中垃圾收集算法:标记清除算法、复制算法、标记整理算法、分代收集算法。标记清除算法:这是最基础的收集算法。分为标记和清除两个阶段。首先需要标记出需要回收的对象,标记完成后统一回收。不足:1.标记和清除两个阶段效率都不高。2.会产生大量不连续的内存碎片。复制算法:为了解决效率问题,复制算法将内存划分为大小相等的两块,每次只使用其中的一块,这块用完后将活着的对象复制到另一块上,再把使用过的内存空间一次清除掉。不足:老年代存活率高,大批量地复制效率就低了,而且将老年代分成两块,实际使
2021-08-14 14:22:03
185
原创 jvm内存区域划分
jvm的内存主要分为:程序计数器、虚拟机栈、本地方法栈、、方法区、堆。程序计数器:字节码解释器负责执行class文件中的指令。程序计数器就是用来指向所执行指令地址的。每个线程都有一个独立的程序计数器,当CPU时间片轮转调度算法切换线程时,线程可以快速恢复到上次执行的位置。虚拟机栈:对应java方法执行的内存模型,方法执行的同时会创建一个栈帧用于存储方法中的局部变量表、操作数栈、返回地址等信息。栈是每个线程私有的内存空间。每个方法从调用到完成就对应着一个栈帧在虚拟机中入栈到出栈的过程。.
2021-08-14 14:11:41
299
原创 get和post的区别
1.get一般用于请求获取数据,post一般用作给后台发送数据。2.get请求也可以给后端传参,单数在url栏可见,所以不安全,参数长度有限制。post请求传递的参数放在request body中,不会再url中展示,比get安全。3.get请求刷新浏览器或者回退时没有影响的,post请求回退时会重写提交请求。4.get请求可以被缓存,post请求不会被缓存。5.get请求可以被收藏为书签,post请求不能。6.get请求只能进行url编码(application/a-www-form-
2021-08-13 20:13:40
148
原创 http返回值状态详解
分类2开头:成功3开头:重定向4开头:客户机中出现的错误5开头:服务器中出现的错误常见的返回值200:成功访问,网站可以正常访问时的状态。301:当网站更换域名时可将原域名作301永久重定向到新域名。302:临时重定向,比如response.redirect()跳转、js跳转、或静态http跳转400:域名绑定错误。一般是服务器上域名未绑定成功、未备案等情况。403:没有权限访问此网站。你的ip被列入黑名单,连接的用户过多。404:文件或目录不存在。500:服
2021-08-13 19:58:09
135
原创 java中重写和重载
重写重写:子类对父类允许访问的方法的实现过程进行重新编写,返回值和形参都不能改变。规则1.参数列表与被重写方法的参数列表必须完全相同。2.返回值类型可以不同,但必须是被重写方法返回类型的子类。3.访问权限不能比父类中被重写方法的返回权限低。4.声明为final的方法不能被重写。5.声明为static的方法不能被重写,但是可以被再次声明。6.子类和父类在同一个包下,子类不能重写父类的private方法。7.子类和父类不在同一个包下,只能重写public和protected方
2021-08-13 19:51:59
803
原创 继承、封装、多态
java的三大特性:继承、封装和多态。继承继承就是子类继承父类的特性和行为,使得子类对象具有父类的属性和方法,使得子类具有父类相同的行为,java是单继承多实现。java中最能体现继承的就是子类继承父类封装封装可以被认为是一种保护屏障,必须通过严格的接口控制。封装最主要的功能在于我们能修改自己的实现代码而不用修改那些调用我们代码的程序。适当的封装可以让代码更容易理解与维护,也加强了安全性。java中最能体现封装的就是类中封装了属性和方法。多态多态是同一个行为具有不同表现形式或
2021-08-13 19:44:17
70
原创 JDK,JRE,JVM关系和区别
先解释一下都是什么意思吧JDK(Java Development Kit),Java开发工具包,JDK是整个java开发的核心,为什么呢,因为jvm是jre的一部分,jre又是jdk的一部分。JRE(Java Runtime Environment),也叫做Java运行时环境。它主要包含两个部分:jvm的标准实现和Java基本类库。它相对于jvm来说,多出来的一部分是java类库。JVM(Java Virtual Machine)也叫做Java虚拟机。它只能识别class字节码文件。通过识别..
2021-08-13 15:11:02
329
原创 java锁的升级:偏向锁、轻量级锁、重量级锁
偏向锁当一个线程要访问一个对象时,会在这个java对象头中写下自己的threadID,因为偏向锁不会主动释放,所以这个线程下次还要访问这个对象时就比较一下对象头中的threadID,如果是自己的就直接访问,如果不是自己的分两种情况1.如果这个线程已经不存活,就置为无锁。2.如果这个线程还存活,就要看这个线程还用不用,如果还用的话就升级轻量级锁,如果不用了,就置为无锁。轻量级锁轻量级锁就是通过CAS将锁对象头重的markword替换成自己栈帧重的锁记录,如果成功了就获取到该锁,如果失败了就存在锁竞
2021-08-12 21:34:48
177
原创 java IO流总结
首先我们把java中的io流分为三类:字符流、字节流、转换流字符流以字符的形式对文件进行处理,我们写一段复制文件的代码,主要用到两个类FileReader(读文件到内存),FileWriter(将内存中的数据写到文件)public class Main { public static void main(String args[]) throws IOException{ //字符流 File file1 =new File("d:\\yll.txt");
2021-08-12 16:34:50
95
原创 int、Integer、new Integer判等
首先说一下==和equals两者的区别我们比较相等都是比较值是不是相等。对于基本类型(byte,short,char,int,long,float,double,boolean)的判等,统一用==,因为他们用不了equals,编译器都不同意。equals方法只针对于类(Integer,String,Long,Float)判等,因为new出来的两个对象,地址永远时不相等的,用==结果只能时false,只有用equals才能判断值是不是相等。int vs int、Integer、new Intege
2021-08-08 14:58:17
279
原创 JAVA集合总结
介绍java的集合平时在工作中我们用得很多,有list,set,map。那么什么情况用哪个,以及他们都是怎么实现的,我想给自己总结一下,比较花了一天把源码看了一遍,过几天忘了就不划算了。
2021-08-07 09:42:36
151
原创 Lambda之美
首先普及一下函数式接口:只有一个方法的接口称为函数式接口。我们定义一个接口,定义一个实现类(与所在文件的类平级),如下图,我们可以实现这个接口:package com.sxj;public class TestLambda { public static void main(String args[]){ Like like = new Like(); like.lambda(); }}// 1.定义一个函数式接口interface ILike { void lambda(
2021-08-06 21:38:50
70
原创 多线程三种方法实现以及多线程传参的方法
这里将多线程三种实现方法:1.继承Thread类。2.实现runnable方法。3.线程池。先说第一种:继承Thread类为了便于理解,我们假设这样一个场景:我有两只猫,我要给他们同时喂食。这是猫的类,这个类继承了Thread类package com.sxj;public class MyCat extends Thread{ //名字 private String name; //食物 private String food; MyCat(String name,Str
2021-08-06 19:43:18
1238
原创 linux搭建mysql集群
背景:有三台服务器master,slaver1,slaver2,想要搭建一个mysql数据库集群。具体步骤:1.首先要在三台服务器上安装好单机版的mysql,版本什么的都随意。2.编辑/etc/my.cnf文件,这是mysql最重要的配置文件在[mysqld]下面添加如下两行log-bin=mysql-binserver-id=18其中需要注意的时server-id三台服务器不能相同3.登录mysql命令行,执行如下命令grant replication slave on *
2021-07-01 14:06:32
2301
原创 虚拟机nat模式突然不能联网
情况有很多种,我只说一下网络上不怎么搜索得到的这个情况。背景:前台配置的nat模式下的虚拟机集群,今天来开机发现。主机和虚拟机可以相互ping通,但是虚拟机不能联网。原因:路由表里没有默认路由,当你要去访问百度的时候路由器不知道把你送到那儿去。解决方法:执行如下命令,这里的这个ip是你nat模式的网关,大家不一样,不要照抄。route add default gw 192.168.211.2具体情况看下图...
2021-03-17 11:17:32
650
原创 linux定时任务crontab
crontab语法参数说明:-e : 编辑定时任务 -r : 删除 -l : 列出当前定时任务时间格式如下:* * * * *- - - - -| | | | || | | | +----- 星期中星期几 (0 - 6) (星期天 为0)| | | +---------- 月份 (1 - 12) | | +--------------- 一个月中的第几天
2021-03-16 12:34:59
116
原创 Linux服务器ssh免密登录
1.进入根目录找到.ssh文件夹,进入该文件夹。[root@hadoop102 /]# cd[root@hadoop102 ~]# ls -al2.执行如下命令生成公钥和私钥[root@hadoop102 .ssh]# ssh-keygen -t rsa3.执行如下命令,将公钥拷贝到需要免密访问的服务器上。(我需要免密访问103和104)[root@hadoop103 .ssh]# ssh-copy-id 192.168.211.103[root@hadoop103 .ss
2021-03-15 19:47:46
120
原创 nat模式下主机、局域网内的其它主机访问虚拟机的端口
背景:我本机电脑上用VMware安装了一台虚拟机,用的nat模式。桥接模式,nat模式,仅主机模式有什么区别虚拟机的ip为:192.168.211.101,我想要在本地浏览器和局域网内其他的浏览器中访问http://192.168.211.101:50070/,但是不通。也就是ping192.168.211.101是通的,telnet192.168.211.101 50070不通。目的一:本地主机访问nat模式下,理论上虚拟机和本机是互通的。之所以不通是因为防火墙没有关。目的二:局域..
2021-03-15 12:49:06
1144
1
w3school_5.0.chm
2016-12-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人