自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 2021-06-14

error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory起因在服务器centos编译glibc-2.18后,发现使用vim、ls这些命令后都会报这个类似的错误,缺少libgcc_s.so.1或libgcc_s.so.5,怀疑是编译升级导致的,网上查找到的解决思路大都是复制对应的文件到服务器上面,或者是使用ldconf重新加载。解决思路1.

2021-06-14 18:19:42 496 1

原创 java 通过注解处理器修改编译期的语法树

参考的文章Java中的屠龙之术——如何修改语法树Java抽象语法树AST,JCTree 分析java使用AbstractProcessor、编译时注解和JCTree实现自动修改class文件并实现Debug自己的Processor和编译后的代码JCTree方法说明java注解处理器——在编译期修改语法树...

2020-12-08 00:52:58 612

原创 redis 过期策略、穿透、击穿和雪崩问题

Redis 的过期策略Redis是用内存作缓存,所以只是起到暂时储存数据的作用,提高访问速度和并发量,内存有限,所以需要制定过期策略,过期的数据清除腾出空间给新的数据1.定期删除所谓定期删除,指的是 redis 默认是每隔 100ms 就随机抽取一些设置了过期时间的 key,检查其是否过期,如果过期就删除。假如你放了10w个数据,如果每次都去遍历它们是否过期,那会造成很大的cpu负载的,所以定期删除,只是随机检查一些,但这样会导致本来过期的key没能被及时检查到过期了,所以有了惰性删除。2.惰性删

2020-12-02 00:40:56 213

原创 字节抖音面试复盘

B+树的优势矮胖,io次数少。tcp和udp的区别进程,线程,协程物理内存,虚拟内存redis 分布式锁10m,2的32次方个数找没有存在的

2020-07-13 21:44:33 166

原创 Docker之初次使用

1.什么是Docker百度百科上:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。Docker和虚拟机的区别就是Docker的虚拟化是基于Linux内核的虚拟化,提供的是轻量级的进程和资源隔离。单机上虚拟机上限是十几台(...

2020-04-29 23:04:40 156

原创 TCP time_wait 过多如何解决

(非原创,侵删)通过 vim /etc/sysctl.conf修改或添加以下参数来优化1.net.ipv4.tcp_syncookies=1设置当syn等待队列溢出时,使用cookies应对,可防范少量syn攻击,默认关闭为0;2.net.ipv4.tcp_tw_reuse=1重复使用time_wait的sockets,默认关闭为0。3.net.ipv4.tcp_tw_recyc...

2020-04-13 13:46:08 847

原创 Redis 过期策略和缓存雪崩,穿透,击穿问题

Redis 的过期策略Redis是用内存作缓存,所以只是起到暂时储存数据的作用,提高访问速度和并发量,内存有限,所以需要制定过期策略,过期的数据清除腾出空间给新的数据1.定期删除所谓定期删除,指的是 redis 默认是每隔 100ms 就随机抽取一些设置了过期时间的 key,检查其是否过期,如果过期就删除。假如你放了10w个数据,如果每次都去遍历它们是否过期,那会造成很大的cpu负载的,所...

2020-04-03 13:53:54 165

原创 tomcat 配置项目默认访问

实现默认访问项目有两个方法。(博主是基于ubuntu的服务器)1.将项目名修改为root这种方法简单粗暴,但并不推荐,因为可扩展性差,并且tomcat的默认项目root需要删除,如果以后需要用到就莫得了。(其实我也不知道它有什么用)2.修改server。xml的配置文件打开tomcat目录下的conf文件夹,里面有个server.xml配置文件,用vim打开后vi server.xml...

2020-04-01 15:59:18 569

原创 java 垃圾回收算法

1.垃圾回收机制的意义java区别C/C++语言的原因就在于它的垃圾自动回收机制。我们都知道C/C++开发时有个经常发生的问题就是内存泄漏,程序员需要手动释放内存才能避免内存泄漏,但是Bug总是无处不在的,而java则为了有效避免这个问题,不允许程序员手动释放内存,改为设计一个垃圾回收器进行内存回收。(即使如此,还是有较少的情况可能会发生内存泄漏的 )。2.垃圾回收算法分类垃圾回收分为两个步...

2020-03-21 00:28:07 85

原创 java 虚拟机(JVM) 内存模型

虚拟机内存分区线程私有的程序计数器每一个线程都会维护一个程序计数器,内存空间较小,JVM工作的原理就是通过改变程序计算器内的值然后去找到下一条需要执行的字节码指令的地址,分支循环异常等功能都是依赖于它实现的。如果是Native方法则值是underfine。虚拟机规范中唯一一个没有OutOfMemoryError的地方。虚拟机栈线程私有的,生命周期与线程相同,用来描述一个线程方法执...

2020-03-20 21:11:51 115 1

原创 mysql 聚簇索引和非聚簇索引的区别

1.什么是索引索引是一种高效查询数据的手段,分为普通索引,唯一索引,主键索引和组合索引。普通索引:没有限制CREATE INDEX indexName ON tablename(column1[,column2,……])唯一索引:不允许重复,允许空值CREATE UNIQUE INDEX indName ON tablename(column1[,column2,……])主键索引:...

2020-03-16 23:23:59 560

原创 java synchronized理解

1.synchronized有什么用?synchronized是java的一个关键字,用于多线程同步,可以用来修饰代码块和方法,作用都是标识该部分代码只能被一个线程进入执行。(也就是线程在代码里面能一直占用到cpu的时间片)2.synchronized的用法修饰代码块synchronized(锁){//代码块}修饰方法(也可以是静态方法)public synchronized v...

2020-03-12 22:27:19 291

原创 进程、线程、协程的区别?

进程:进程是操作系统中进行资源分配的最小单元。线程:是轻量级进程,是进程的一个实体,一个进程可以拥有多个线程,线程的上下文切换是在内核态完成的,线程是cpu调度的最小单元。协程:协程与进程和线程不同,并不是进程和线程这种操作系统中支持并存在的,它更像是一个概念,我的理解是它是一个子程序或是函数,存在于线程中,就像在线程中调用函数一样,但是协程可以切换,一个协程运行到一半可以切换到另一个协程,这...

2020-03-10 20:39:22 59

原创 java 异常总结

1.什么是异常java异常是java提供一种识别和响应错误的一致性机制。Throwable类是所有异常的父类Throwable类以下分为两大异常类型:Error和exceptionError类:程序无法处理的错误,表面运行应用程序中出现了严重的错误。Exception:程序本身可以捕获并且可以处理的异常。Exception 这种异常又分为两类:运行时异常和编译时异常。运行时异常:Run...

2020-03-08 23:18:44 92

原创 Java 集合知识点的面试问题

1.Java中的集合分类集合框架由Collection接口和Map接口组成。其中Colelection接口中有两个子接口Set接口和List接口主要的实现类有以下Map接口:HashMap,TreeMap,HashTable,ConcurrentHashMap等Set接口:HashSet,TreeSet,LinkHashSet等List接口:ArrayList,LinkList,Vec...

2020-03-07 19:31:59 92

原创 java 基础知识点

1.覆盖和重载覆盖是子类对父类方法的重写,访问权限不能比父类小,只能抛出更少的异常。重载,是同一方法的多样性,构成重载的条件可以有三种参数个数,参数类型,参数顺序。返回值无法构成重载,因为有时候使用一个方法我们并不关心它的返回值例如有两个方法 int f() ,string f(), f();编译器无法确定使用哪个方法。2.抽象类和接口的区别抽象类可以没有抽象方法,接口只能...

2020-03-05 19:09:55 149

原创 java 多线程 volatile关键字

volatile adj.易变的;无定性的C语言、C++、C#和Java语言中都有volatile,它被用来解决多线程环境下共享变量的不一致性。JDK1.2 之前线程是直接在主存(即共享内存)中读取变量的,所以不存在变量的不一致性,但当前的java内存模型,经过优化,每一个线程都会持有一个工作内存用来存放主存的变量副本,加快速度,这样回导致一个线程对变量进行修改(还未写回内存),但另一个...

2020-03-02 18:27:27 73

原创 java 多线程 并发篇

1.什么是并发与并发相近的一个概念是并行。1.并行是在同一时间同时进行。2.并发是在连续的间隔时间内连续发生。多线程在宏观上看起来是同一时间发生的,但实际上是在操作系统的调度下分配不同的时间片进行的。所以java多线程在一般情况下运行顺序是并发且无法预测的。例子public class SynTest implements Callable<String>{ static...

2020-03-02 17:28:06 92

原创 java 多线程基础篇

备战大厂暑器实习面试,java多线程知识的学习与回顾,主要内容是基础知识。

2020-02-28 22:06:40 111

原创 搭建服务器的一些问题记录

1.本地数据库到服务器的数据迁移使用navicat,mysql默认无法被外部连接(除了ssh)所以使用ssh连接。报了2013的错误vim /etc/mysql/mysql.conf.d/mysqld.cnf注释掉bind-address 127.0.0.0 这一行网上查到的大部分都是vim /etc/mysql/mysql.cnf,但是我这个路径下的文件里面没有相关的配置信息,可能是...

2020-02-27 01:17:59 185

原创 ubuntu 常用命令

rm -rf 文件夹的名字 删除文件夹cd ~ 进入目录 只有~ 表示根目录(不知道是不是叫根目录)sudo apt-get install/remove 软件名sudo tar zxvf 文件名 解压tar压缩文件...

2020-02-26 18:47:33 84

原创 git pull无效

出现这种情况的原因应该是有修改但是没有保存git stash 将本地修改储存起来,然后再git pull 就可以了。亲测有效参考 https://blog.csdn.net/XxiaLn/article/details/80835353...

2020-02-26 18:44:27 1793

原创 github git配置和简单的常用命令

ubuntu安装git的命令sudo apt-get install git关联本地仓库和github仓库第一步 :在github创建一个仓库(用本来就有的也可以)登录github网站右上角用户→your respositories →点击绿色按钮new创建创建后如上图https://github.com/TwotoTwoTwo/myWebSite 就是我这个仓库的链接(后...

2020-02-26 18:33:21 190

原创 java static和final关键字

在java中,final和static是两个常用的重要关键字。final修饰变量表示变量是常量,不可更改,并且需要初始化(即需要给定一个具体的值或者实例)。例如,final int i=1;i=2;//这一句会编译不通过,因为常量不可更改。final 修饰具体类时,表示该类无法被继承final修饰Test类,导致FinalTest无法继承Testfinal修饰方法是,方法无法被子类继...

2019-10-09 17:40:58 98

原创 java lambad表达式

jdk8新特性 ——Lambada表达式java在jdk8之前是没有Lambada函数式编程,只有匿名类,jdk8出现了Lambada表达式,简化了编写匿名类的代码。Lambada只能用在单一抽象方法的接口。使用方式如下,以Runnable接口为例。Lambada表达式写法 Runnable r=()->{run detail}匿名类写法Runnable r=ne...

2019-09-21 21:26:21 207

空空如也

空空如也

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

TA关注的人

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