word转pdf或者打印后题注编号变成大写 最近在写毕业论文,遇到了这样一个问题:我的题注编号是由章节号和题注顺序决定的,比如 图2.3代表了这是第二章的第三张图,本来一切顺利,但是在转换为pdf后发现2.3变成了二.3。解决方法:首先CTRL+A选中全文,之后CTRL+F11锁定域,之后再转换为pdf,就不会出现编号问题了。如果论文后续还需要修改再CTRL+SHITF+F11解锁域。...
主机是动态IP重启后不能与vmware虚拟机通信 背景:之前我在电脑上配置了几台虚拟机,这几台虚拟机可以和本机ping通,也可以ping通互联网上的域名。但是重启后,我主机的ip动态改变了,这时候虚拟机不能和主机以及互联网通信了。原因:主机是动态IP,重启后IP重新分配了。这时候主机和虚拟机不在一个网段,所以无法通信。解决方法:将vmware设置为net模式,这时候你本地会多出一个网卡,为这个网卡的ip、vmware的网关、虚拟机的ip都在一个网段。这样虚拟机就可以通过这个网卡与本地进行通信。vmnet8的配置vmware网关设置
论文写作图表编号出现大写序号改成小写 论文写作过程中,一级标题我们一般会用大写,如:这个时候,我们插入图片并给图片插入题注时,会出现以下这种情况:这个时候我们都知道这是第四章节的第一张图,但是我们习惯上用4.1,而不是四.1,所以这一情况要怎么解决呢?首先我们将一级标题改成阿拉伯数字,方法如下(这一步的时候光标要放在第一章上面):这个时候第一章就变成了第1章,如图:这个时候我们再去插入题注:效果是这样的:现在我们再去把一级标题 第1章改成第一章(这个时候光标要放在第一章上面):...
reentrantlock公平锁与非公平锁对比 先说结论:非公平锁加锁时先参与锁竞争,如果state为0,则获取到锁。如果不为0,分三种情况。第一种情况,state为0(距离刚刚判断已经过去一会儿了,刚刚不为零,现在可能为零),获取到锁。第二种情况,state不为0,但是持有锁的线程是自己,也就是二次加锁,此时state会加一。第三种情况,state不为0并且持有锁的线程也不是自身,则将当前线程加入到一个双向链表队列中。公平锁加锁时,分三种情况。第一如果state为0,判断队列中是否有线程比自己先来,如果有,则将自己加入队尾,如果没有则获取到锁。第二
抽象类和接口的区别 1.抽象类和接口都不能实例化,如果要实例化,抽象类变量必须指向继承该抽象类的非抽象类对象,接口变量必须指向实现该接口的类对象(否则抽象类和接口只能以匿名内部类的形式实例化)。2.抽象类中可以有声明(抽象方法),也可以有实现(非抽象方法)。接口中只能有方法声明(JDK1.8中允许接口实现默认方法)。3.接口里定义的变量默认时public static final 常量。抽象类中的变量和普通类中的变量没有区别。4.抽象类中的抽象方法必须全部被子类实现,如果子类不能全部实现,子类只能是抽象类。同样一个
线程的五种状态及状态的切换 线程状态示意图首先看下这张图,这张图标注了线程的五种状态,以及进程间的切换。简述线程状态新建状态:新建了一个线程对象,该对象就处于新建状态。就绪状态:线程对象创建后,其他线程调用了该对象的start方法。该状态的线程位于可运行线程池中,变得可以运行,只等待获取cpu的使用权。运行状态:就绪状态的线程获取了CPU,执行程序代码。阻塞状态:阻塞状态时线程因为某种原因放弃CPU使用权,暂时停止运行,直到线程进入就绪状态,才有机会转为运行状态。阻塞的情况分三种:等待阻塞...
索引失效的情况 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 部分用索引字段进行计算操作,或索引字段使用函数。...
InnoDB引擎和MyISAM引擎 先说一下InnoDB引擎InnoDB主索引下图为InnoDB主索引示意图,可以通过主键找到行数据辅索引辅索引的查找时通过字段查询到主键,再通过主键查询行数据MYiSAM主索引先通过主键查询到地址,再通过地址查询行数据辅索引跟主索引的逻辑时一样的,通过索引字段查到地址,再通过地址查询行数据InnoDB与MYiSAM的区别InnoDB1.聚集索引2.支持行锁表锁3.count会遍历整个表4.不支持全文索引(新版本支持...
数据库隔离级别 如果没有数据库隔离级别会出现什么问题?1.脏读:一个事务在处理事务时,查询到了另一个事务未提交的数据。2.不可重复读:一个事务的多次查询结果不同。因为另一个事务提交了数据。3.幻读:脏读和不可重复读时针对行数据的,幻读时针对表数据的,指多次查询的行数不同。言归正传,数据库隔离级别有哪些:1.读未提交此时select语句没有加锁,可能出现脏读,不可重复读,幻读的问题。2.读已提交可以避免脏读,不能避免不可重复读,幻读。3.可重复读为mysql默认的隔离级别,可以避免
Java设计模式 设计模式太多了,先看几个吧单例模式这是问得最多的模式,这种模式在内存中只有一个实例,节约了内存空间。//饿汉式class SingleTon1{ private static SingleTon1 s = new SingleTon1(); public static SingleTon1 getInstance(){ return s; }}//懒汉式class SingleTon2{ private static SingleTon2 s; public static
Dubbo简介 dubbo是一个分布式服务框架,用于提供RPC(remote procedure call)远程服务调用。简单地说,dubbo就是一个服务框架。分布式才用得上,单机就用不上了。dubbo的作用1.透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需要简单配置。2.软负载均衡及容错机制,可以代替硬负载均衡,即消除了单点又降低了成本。3.服务自助注册于发现,不需要写死服务提供方的地址。注册中心基于接口名查询服务提供者的IP地址,并能平滑添加或删除服务提供者。...
UDP和TCP的区别 UDP(user data protocol)用户数据包协议:是传输层的协议,不提供数据包分组、组装并且不能对数据排序。数据发送后无法得知其是否安全完整地到达。TCP(transmission control protocol)传输控制协议:传输前建立连接,按顺序传说,不丢失数据。UDP的特点1.面向无连接的(不需要三次握手,四次挥手)2.有单播、多播、广播的功能3.面向报文的4.不可靠传输(首先因为是无连接的,其次是因为没有拥塞控制)5.头部开销小,传输效率高TCP
死锁面试题 死锁就是所有两个或多个线程都在请求被对方占用的资源,而陷入的一种僵局。产生死锁的四个必要条件:1.互斥条件(在某一个时刻,某一个资源仅能被一个线程占有)2.请求和保持条件(某一进程占据部分资源不释放,同时请求其他资源)3.不可剥夺条件(被占据的资源被释放前,不能被其他线程获取)4.循环等待条件(两个或多个线程都在等待对方占据的资源)预防死锁的方法1.资源一次性分配(破坏了请求和保持条件)2.当一个资源得不到的时候,释放占用的资源(破坏不可剥夺条件)3.为资源编号,按编
ThreadLocal实现原理 ThreadLocal有这样几个作用:代替参数的显示传递、全局存储用户信息、解决线程安全问题。https://cloud.tencent.com/developer/article/1636025那它具体是怎么样实现的呢?我们看一下源码Thread类中有一个threadLocals对象。public class Thread implements Runnable { ThreadLocal.ThreadLocalMap threadLocals = null;}
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
Java垃圾收集算法 一共有4中垃圾收集算法:标记清除算法、复制算法、标记整理算法、分代收集算法。标记清除算法:这是最基础的收集算法。分为标记和清除两个阶段。首先需要标记出需要回收的对象,标记完成后统一回收。不足:1.标记和清除两个阶段效率都不高。2.会产生大量不连续的内存碎片。复制算法:为了解决效率问题,复制算法将内存划分为大小相等的两块,每次只使用其中的一块,这块用完后将活着的对象复制到另一块上,再把使用过的内存空间一次清除掉。不足:老年代存活率高,大批量地复制效率就低了,而且将老年代分成两块,实际使
jvm内存区域划分 jvm的内存主要分为:程序计数器、虚拟机栈、本地方法栈、、方法区、堆。程序计数器:字节码解释器负责执行class文件中的指令。程序计数器就是用来指向所执行指令地址的。每个线程都有一个独立的程序计数器,当CPU时间片轮转调度算法切换线程时,线程可以快速恢复到上次执行的位置。虚拟机栈:对应java方法执行的内存模型,方法执行的同时会创建一个栈帧用于存储方法中的局部变量表、操作数栈、返回地址等信息。栈是每个线程私有的内存空间。每个方法从调用到完成就对应着一个栈帧在虚拟机中入栈到出栈的过程。.
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-
http返回值状态详解 分类2开头:成功3开头:重定向4开头:客户机中出现的错误5开头:服务器中出现的错误常见的返回值200:成功访问,网站可以正常访问时的状态。301:当网站更换域名时可将原域名作301永久重定向到新域名。302:临时重定向,比如response.redirect()跳转、js跳转、或静态http跳转400:域名绑定错误。一般是服务器上域名未绑定成功、未备案等情况。403:没有权限访问此网站。你的ip被列入黑名单,连接的用户过多。404:文件或目录不存在。500:服