- 博客(13)
- 收藏
- 关注
原创 Linux
Linux权限每个文件都可以针对这三个属组(粒度),设置不同的rwx(读写执行)权限。通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。权限对应的数字意义r4(对应二进制100)读w2(对应二进制010)写x1(对应二进制001)执行-0(对应二进制000)没有权限属组对应的字母所有者u群组g其他组o如
2022-04-19 13:36:24
141
原创 DubboDubbo
什么是RPC远程过程调用,用于多个服务之间的通信。为什么有http还需要rpc框架rpc可以用http来传输,也可以基于tcp协议传输。http协议比较冗余(http安全、请求头内容繁多等),大部分rpc都是基于tcp的协议。dubbo结构图发布-订阅过程:0)启动容器并加载,运行服务提供者。1)服务提供者在启动时,在注册中心发布注册自己提供的服务。2)服务消费者在启动时,在注册中心订阅自己所需的服务。3)注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心.
2021-01-10 23:58:51
408
原创 计算机网络
一、http状态码2xx:成功200:请求成功。一般用于GET与POST请求。201:已创建。成功请求并创建了新的资源。202:已接受。已经接受请求,但未处理完成。3xx:重定向300:多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择。301:永久重定向。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替。302:临时重定向。但资源只是临时被移动
2020-12-18 21:17:59
442
1
原创 jvmjvmjvm
一、jvm内存结构https://www.hollischuang.com/archives/2333二、类加载器启动类加载器:又称为引导类加载器,由C++编写,无法通过程序得到。主要负责加载JAVA中的一些核心类库,主要是位于<JAVA_HOME>/lib/rt.jar中。 扩展类加载器:主要加载JAVA中的一些拓展类,位于<JAVA_HOME>/lib/ext中。 应用程序类加载器:又称为系统类加载器,主要用于加载CLASSPATH路径下我们自己写的类。双.
2020-12-17 20:58:14
218
原创 框架框架框架
一、spring AOP、IOC1、AOP:动态代理+反射实现的。通过动态代理在一个方法前后加上相应的逻辑代码,通过反射调用该方法。动态代理的方法:jdk动态代理:基于接口的代理,被代理的类必须实现一个接口。(参数:被代理类的classloader,被代理类的interface,代理invokehandle) cglib动态代理:基于子类的代理,为被代理的类创建一个子类继承父类,子类重写父类的方法来实现。(参数:被代理的类,methodInterceptor)Joinpoint:连接点。业务
2020-12-17 20:46:41
236
原创 redisredis
1、数据类型:string实现方式整数值,添加字符串自动转成raw简单动态字符串。 embstr编码,是只读的,修改时自动转成动态字符串。 SDS简单动态字符串。list实现方式ziplist压缩列表,保存的所有字符串元素的长度都小于64字节,保存的元素数量小于512个。 双端链表。hash实现方式ziplist压缩列表,保存的所有键和值长度都小于64字节,保存的键值对数量小于512个。 字典set的实现方式intset整数集合,保存的所有元素都是整数,保存的元素数量小于.
2020-12-17 18:02:17
193
原创 其他其他其他
1、集合快速失败机制http://www.hollischuang.com/archives/35422、volatile实现原理http://www.hollischuang.com/archives/26733、RPC(远程过程调用)执行过程
2020-04-08 20:22:55
346
原创 线程线程线程
一、现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行?使用join。在T1线程中调用T2.join(),在T2线程中调用T3.join()。join讲解参考博客https://www.iteye.com/blog/uule-1101994...
2020-03-08 22:16:46
1488
2
原创 数据库总结
数据库索引(https://www.hollischuang.com/archives/4110)一、B+树的阶数是等于键值的数量的,如果我们的B+树一个节点可以存储1000个键值,那么3层B+树可以存储1000×1000×1000=10亿个数据。一般根节点是常驻内存的,所以一般我们查找10亿数据,只需要2次磁盘IO。二、B+树和B树区别:B+树非叶子节点上是不存储数据的,仅存储键值;...
2020-01-30 15:35:48
370
原创 集合集合总结
一、Hashmap1.7和1.8有哪些区别1、JDK1.7使用的是数组+ 单链表的数据结构。而JDK1.8数组+链表+红黑树的数据结构(当链表的深度达到8的时候,也就是默认阈值,就会自动扩容把链表转成红黑树的数据结构来把时间复杂度从O(n)变成O(logN)提高了效率)。2、解决冲突时往链表中添加节点时,JDK1.7用的是头插法,而JDK1.8及之后使用的都是尾插法。原因:尾插法需要遍...
2020-01-30 15:35:30
423
转载 Java中只有值传递
为什么说Java中只有值传递辟谣时间在开始深入讲解之前,有必要纠正一下大家以前的那些错误看法了。如果你有以下想法,那么你有必要好好阅读本文。错误理解一:值传递和引用传递,区分的条件是传递的内容,如果是个值,就是值传递。如果是个引用,就是引用传递。错误理解二:Java是引用传递。错误理解三:传递的参数如果是普通类型,那就是值传递,如果是对象,那就是引用传递。实参与形参...
2019-08-23 17:59:48
182
转载 spring注解注入context:component-scan详解
spring注解注入:<context:component-scan>详解spring从2.5版本开始支持注解注入,注解注入可以省去很多的xml配置工作。由于注解是写入java代码中的,所以注解注入会失去一定的灵活性,我们要根据需要来选择是否启用注解注入。我们首先看一个注解注入的实际例子,然后再详细介绍context:component-scan的使用。如果你已经在用spr...
2019-08-20 17:39:25
887
原创 maven常用命令和maven的生命周期
一、maven常用命令1、clean:清理:删掉编译后的.class文件。①、项目根目录中有一个target的文件夹,里面存放的是编译后的.class文件。②、在执行clean命令后,调用maven-clean-plugin的jar包删掉target文件夹。此时target文件夹消失。2、validate 验证:验证项目是否正确,所有需要的资源是否可用。①执行v...
2019-06-10 17:17:18
423
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人