文件类型标识 | 文件类型 |
---|---|
- | 普通文件 |
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个部分:
-
线程:核心线程和工作线程。
-
阻塞队列:用于待执行任务排队。
-
被拒绝时的处理器。
锁头
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://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)默认是需要初始化。
-