Java 笔试选择题知识点记录【al·tt-0824】
中缀表达式->后缀表达式
(3 + 4) × 5 - 6 就是中缀表达式
- × + 3 4 5 6 前缀表达式【又称波兰式】
3 4 + 5 × 6 - 后缀表达式【又称逆波兰式】
问:a*b-(c/d+e*f)-g 的后缀表达式是什么?
解答:后缀表达式的转换原则如下:
- 操作符栈中
- 遍历到右括号要弹出栈里的操作符,直到遇到左括号
- 遍历到操作符 op,优先级比 op 低的或等于 op 的操作符都要弹出来
日志记录系统,每产生一条日志,就通知开发者。这属于设计模式中的什么模式?
观察者模式
Linux 进程优先级
- 在系统上我们最熟悉的优先级设置方式是nice和renice命令。
- nice值是反应一个进程“优先级”状态的值,其取值范围是-20至19,一共40个级别。这个值越小,表示进程”优先级”越高,而值越大“优先级”越低。
- 默认情况下,进程的优先级应该是从父进程继承来的,这个值一般是0。
- 越nice的人抢占资源的能力就越差,而越不nice的人抢占能力就越强。这就是nice值大小的含义,nice值越低,说明进程越不nice,抢占cpu的能力就越强,优先级就越高。
- 静态优先级:当nice值设定好了之后,除非我们用renice去改它,否则它是不变的。
- 动态优先级:priority的值在之前内核的O1调度器上表现是会变化的,所以也叫做动态优先级。
- Linux实际上实现了140个优先级范围,取值范围是从0-139,这个值越小,优先级越高。nice值的-20到19,映射到实际的优先级范围是100-139。
详细可看:https://linux.cn/article-7325-1.html
矩阵乘法(分治法)的时间复杂度
算法导论第28章的第2节介绍了这个问题:矩阵乘法的Strassen算法。介绍该算法的第一句话就是它优秀的时间复杂度。
银行家算法
详细参考:https://www.bilibili.com/video/BV1Nx411X7hT/
MySQL 的 CASE
CASE parent_id WHEN 0 THEN '00' WHEN 1 THEN '11' ELSE 'OTHERS' END
CASE WHEN parent_id < 3 THEN '<3' WHEN parent_id >= 3 AND parent_id < 5 THEN '>=3 && <5' ELSE '>=5' END
是否能构成折半查找中关键字比较序列
从来没听说过折半查找。。。
在计算机科学中,折半搜索(英语:half-interval search),也称二分搜索(英语:binary search)、对数搜索(英语:logarithmic search)。
类似的题目:https://www.nowcoder.com/questionTerminal/02261d222eb943d4b2db962dbc60a1bd
500 200 450 180 不能构成折半查找中关键字比较序列。
Linux 中的文件系统
- Linux文件系统可分为多个磁盘分区?可以。Linux文件系统可分为多个磁盘分区是指将硬盘分成不同的区域,每个区域都可以单独进行格式化、挂载和管理,从而更好地组织和管理文件。
- extc:
- extc并不是一个常见的Linux文件系统类型。通常,我们在Linux系统中会遇到的文件系统类型是ext2、ext3、ext4等。这些文件系统类型是用于组织和管理存储在磁盘上的数据的方法。以下是一些常见的Linux文件系统类型:
- ext2(第二扩展文件系统):是Linux上的早期文件系统之一,支持基本的文件和目录结构,但没有日志功能,容易在断电或崩溃时丢失数据。
- ext3(第三扩展文件系统):是ext2的升级版本,引入了日志功能(journaling),可以在系统崩溃时更好地恢复文件系统一致性。
- ext4(第四扩展文件系统):是ext3的进一步发展,具有更高的性能、更大的文件和分区大小支持,以及更多的特性,如延迟分配等。
- NTFS:为Windows 操作系统下常用的文件系统。
- Symbolic Links:
- 符号链接(Symbolic Links),也被称为软链接(Soft Links),是一种特殊类型的文件,用于创建文件或目录的引用。符号链接允许您在文件系统中创建一个指向另一个文件或目录的链接,类似于Windows系统中的快捷方式。
- 与硬链接(Hard Links)不同,符号链接是指向目标文件或目录路径的引用,而不是直接指向文件数据块。这意味着如果您删除目标文件,符号链接将失效。另外,符号链接可以跨越不同的文件系统,因为它们只是存储了一个路径字符串。
- Linux所有设备都被抽象成为一个文件,保存在/dev目录下。
操作系统的分页存储管理机制
理论详见 https://www.cnblogs.com/taking/p/15410279.html
1、考虑一个由8个页面,每页有1024个字节组成的逻辑空间,把它装入到有32个物理块的存储器中,问:(1)逻辑地址需要多少二进制位表示?(2)物理地址需要多少二进制位表示?
因为页面数为8=2^3,故需要3位二进制数表示页号。每页有1024个字节,1024=2^10,于是页内地址需要10位二进制数表示页内地址;32个物理块,需要5位二进制数表示块号(32=2^5)。
(1)页的逻辑地址由页号和页内地址组成,所以需要3+10=13位二进制数表示。
(2)页的物理地址由块号和页内地址的拼接,所以需要5+10=15位二进制数表示。
2、若在一分页存储管理系统中,某作业的页表如下所示。已知页面大小为1024字节,试将逻辑地址1011,2148,4000,5012转化为相应的物理地址。
(1)对于逻辑地址1011,p=int(1011/1024)=0,d=1011 mod 1024=1011。查页表第0页在第2块,所以物理地址为1024′2+1011=3059。
(2)对于逻辑地址2148,p=int(2148/1024)=2,d=2148 mod 1024=100。查页表第2页在第1块,所以物理地址为1024+100=1124。
(3)对于逻辑地址4000,p=int(4000/1024)=3,d=4000 mod 1024=928。查页表第3页在第6块,所以物理地址为1024′6+928=7072。
(4)对于逻辑地址5012,p=int(5012/1024)=4,d=5012 mod 1024=916。因页号超过页表长度,该逻辑地址非法。
3、某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下,问:逻辑地址0A5C(H)所对应的物理地址是?
由已知条件“用户编程空间共32个页面”,可知页号部分占5位;由“每页为1KB”,1K=2^10,可知内页地址占10位。由“内存为16KB”,可知有16块,块号为4位。
逻辑地址0A5C(H)所对应的二进制表示形式是:000 1010 0101 1100,根据上面的分析,10位页内地址,则编码“000 10”为页号,表示该逻辑地址对应的页号为2。查页表,得到物理块号是4(十进制),即物理块地址为:01 00 ,拼接块内地址10 0101 1100,得01 0010 0101 1100,即125C(H)。
解逻辑地址0A5C(H)所对应的物理地址是125C(H)。
Java 后端笔试经验