2022-4总结

Linux下七种文件类型

文件类型标识文件类型
- 普通文件
d 目录
l 符号链接
s(伪文件) 套接字
b(伪文件) 块设备
c(伪文件) 字符设备
p(伪文件) 管道

占用存储空间的类型:文件、目录、符号链接。符号链接记录的是路径,路径不长时存在innode里面。其他四种:套接字、块设备、字符设备、管道是伪文件,不占用磁盘空间。

linux线程调度

https://www.cnblogs.com/leisure_chn/p/10393707.html

linux调试

https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/index.html

ldd 查看依赖

lsof

lsof -i :3306 //列出谁在使用某个端口
lsof -u test -c mysql //列出某个用户以及某个进程所打开的文件信息

pstack 命令必须由相应进程的属主或 root 运行。可以使用 pstack 来确定进程挂起的位置。此命令允许使用的唯一选项是要检查的进程的 PID。

strace 跟踪进程中的系统调用

ipcs是Linux下显示进程间通信设施状态的工具。可以显示消息队列、共享内存和信号量的信息。对于程序员非常有用,普通的系统管理员一般用不到此指令。

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况

free工具用来查看系统可用内存

vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可实时动态监视操作系统的虚拟内存、进程、CPU活动。

iostat是I/O statistics(输入/输出统计)的缩写,用来动态监视系统的磁盘操作活动。

Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。

线程池技术

https://www.cnblogs.com/yougewe/p/12267274.html

线程池包含3个部分:

  1. 线程:核心线程和工作线程。

  2. 阻塞队列:用于待执行任务排队。

  3. 被拒绝时的处理器。

锁头

https://blog.csdn.net/Saintyyu/article/details/108295657

Lock 同步锁是基于 Java 实现的,而 Synchronized 是基于底层操作系统的 Mutex Lock 实现的,每次获取和释放锁操作都会带来用户态和内核态的切换,从而增加系统性能开销。因此,在锁竞争激烈的情况下,Synchronized同步锁在性能上就表现得非常糟糕,它也常被大家称为重量级锁。

c的宏

https://blog.csdn.net/USB_ABC/article/details/73702310

JDK/Dubbo/Spring 三种 SPI 机制

https://segmentfault.com/a/1190000039812642#item-2

序列化之tlv

https://www.cnblogs.com/binarylei/p/10991550.html

shell特殊字符

https://blog.csdn.net/K346K346/article/details/51819236

springmvc 异步处理

https://blog.csdn.net/weixin_35974321/article/details/114276076?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0.pc_relevant_default&spm=1001.2101.3001.4242.1&utm_relevant_index=3

延迟和吞吐量

https://zhuanlan.zhihu.com/p/111914041

延迟(latency) = 请求响应出入系统的时间

响应时间(ResponseTime)= 客户端请求开始,一直到收到响应的时间 = 延迟 + 网络耗时

理想状态下,延迟越低,吞吐越高,当然这是对单机单线程而言的,在分布式下就不成立了,举个反例:

比如从密云水库,拉一个水管到国贸,水流到国贸,需要1小时;如果再拉一个水管到顺义,20分钟就可以。如果你在国贸用水龙头接水,你可以单位时间接到非常多的水,这个数量跟你在过国贸还是顺义,没有关系,只跟水库单位时间输入的水量/水压有关系。但是如果你在水管里放一个小球,它从密云到国贸的时间是到顺义的时间的三倍,这样对于到国贸的这个水管系统,延迟很高,但是系统的吞吐量跟到顺义的是一样的。

zgc

https://tech.meituan.com/2020/08/06/new-zgc-practice-in-meituan.html

cookie、session

https://www.jianshu.com/p/b5efddc433f5

会话跟踪

http头:Set-Cookie、Cookie

Cookie具有不可跨域名性

生成:

Set-Cookie响应头字段(Response header)是服务器发送到浏览器或者其他客户端的一些信息,一般用于登陆成功的情况下返回给客户端的凭证信息,然后下次请求时会带上这个cookie,这样服务器端就能知道是来自哪个用户的请求了。

浏览器在响应头中发现Set-Cookie字段,就会将该字段的值保存在内存或者硬盘中。Set-Cookie字段的值可以是很多项Cookie,每一项都可以指定过期时间Expires。 默认的过期时间是用户关闭浏览器时。

存储:

存在客户端,浏览器规定的,磁盘上有一个文件叫Cookies

Session是服务器端使用的一种记录客户端状态的机制,使用上比Cookie简单一些,相应的也增加了服务器的存储压力。

一个登录场景,也不必往 session 存太多东西,那为什么不直接打包到 cookie 中呢?这样服务端不用存了,每次只要核验 cookie 带的「证件」有效性就可以了,也可以携带一些轻量的信息。这种方式通常被叫做 token。

前端鉴权

https://segmentfault.com/a/1190000040524090

tomcat加载spring和springmvc及servlet相关知识

https://www.cnblogs.com/top-housekeeper/p/14105297.html

tomcat启动了之后会在操作系统中生成一个Jvm(Java虚拟机)的进程,从配置监听端口(默认8080)监听发来的HTTP/1.1协议的消息

Class.forName(className)与ClassLoader().loadClass(className)区别

  • ClassLoader.loadClass(className)方法,内部实际调用的方法是 ClassLoader.loadClass(className,false);

  • 第2个 boolean参数,表示目标对象是否进行链接,false表示不进行链接,由上面介绍可以,不进行链接意味着不进行包括初始化等一些列步骤,那么静态块和静态对象就不会得到执行。

  • ----------------------------------------------------------------------------------->

  • Class.forName(className)方法,内部实际调用的方法是 Class.forName(className,true,classloader);

  • 第2个boolean参数表示类是否需要初始化, Class.forName(className)默认是需要初始化。

  • 一旦初始化,就会触发目标对象的 static块代码执行,static参数也也会被再次初始化。

posted @ 2022-04-11 15:42  wqkant  阅读(32)  评论(0编辑  收藏  举报