$# 是传递给脚本的参数个数;
$0 是脚本本身的名字;
$1 是传递给该shell脚本的第一个参数;
$2 是传递给该shell脚本的第二个参数;
$@ 是传递给脚本的所有参数的列表(是多个字符串,每个参数为1个字符串);
$* 是传递给脚本的所有参数的列表(以一个单字符串显示所有参数),与位置变量不同,参数可超过9个;
$$ 是运行脚本的当前进程ID号;
$? 是显示执行上一条Shell命令的返回值,0表示没有错误,其他表示有错误
需求文档的测试,是在以下哪个阶段进行? 系统测试
该关键字是一种同步锁,保证在同一时刻最多只有一个线程执行该段代码,它修饰的对象有以下几种:
一、修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象;
二、修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;
三、修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象;
四、修改一个类,其作用的范围是synchronized后面括号括起来的部分,作用主的对象是这个类的所有对象。
总结:
1.硬链接原文件/链接文件公用一个inode号,说明他们是同一个文件,而软链接原文件/链接文件拥有不同的inode号,表明他们是两个不同的文件;
2.在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;
3.链接数目是不一样的,软链接的链接数目不会增加;
4.文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的。而这里软链接显示的大小与原文件就不同了,BBB大小是95B,而BBBsoft是3B。因为BBB共有3个字符
5.软链接没有任何文件系统的限制,任何用户可以创建指向目录的符号链接
总之,建立软链接就是建立了一个新文件。当访问链接文件时,系统就会发现他是个链接文件,它读取链接文件找到真正要访问的文件。
当然软链接也有(硬链接没有的)缺点:因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。
https://www.cnblogs.com/ylan2009/p/4287929.html(参考链接)
需要经过以下三个步骤:编译器、汇编器、链接器;源代码-->预处理-->编译-->优化-->汇编-->链接-->可执行文件
编译器:读取源程序,进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,中间还进行优化等处理;公共子表达式合并、尾递归优化常量、不变式预计算
汇编器:把汇编语言代码翻译成目标机器指令,关键是目标代码的分段处理;
链接器:将有关的目标文件彼此相连接生成可加载、可执行的目标文件。
详见:http://www.cnblogs.com/oubo/archive/2011/12/06/2394631.html
LRU的cache长度为3,初始为空。依次访问元素A,A,B,C,A,D,C,E后,cache里的内容是:
缓存命中后,这个数据缓存项要移动到最前端,依次变化为A ;B,A; C,B,A; A,C,B; D,A,C; C,D,A; E,C,D
被2整除个数+被3整除个数+被5整除个数-被6整除-被15整除-被10整除+被30整除
被2整除的有:1001/2 =500个(取整)
被3整除的有:1001/3 = 333个(取整)
被5整除的有:1001/5 = 200个(取整)
被6整除的有:1001/6 = 166(取整)
被10整除的有: 1001/10 = 100(取整)
被15整除的有:1001/15 = 66(取整)
被30整除的有: 1001/30 = 33(取整)
所以总共有:500+333+200-166-100-66+33 = 734个
5个盒子每个里面各有一个球,把球全拿出来打乱再放回去,每个球都不在自己原来的盒子里,有 ?种可能
排除法。包括球在原来自己的盒子的可能一共是5的阶乘=120种。
1、有五个球都在自己的盒子里,1种。
2、有四个球在自己的盒子里,不存在,0种。
3、有三个球在自己的盒子里,只有两个对调了,5×4/2,10种。
4、有二个球在自己的盒子里,5×4/2×2,20种。
5、有一个球在自己的盒子里,5×(24-1-6-4×2),45种。(递归)
120-45-20-10-1=44种。
I/O系统硬件结构分为四级:1。设备控制器,2。I/O设备,3。处理机,4。I/O通道,按级别由高到低的顺序是
3412
处理机(CPU)控制设备(比如,打印机)进行某些操作。这样,处理机是最高层、实际的IO设备是最底层。设备控制器是紧贴在硬件IO设备之上,驱动IO设备正常运转。IO通道负责在处理机跟设备之间传输指令命令数据什么的。
通道是一个独立于 CPU的专管输入/输出控制的处理机,它控制设备与内存直接进行数据交换。所以通道是第二,通道控制设备控制器,设备控制器控制设备。
下列Linux命令中,哪些可以显示文本文件内容?
less tail cat
解放物理空间的存储管理, 使得数据被分配的地址与逻辑上程序执行的上下文解耦。
提供进程之间的地址空间隔离,防止进程访问地址越界或非法。
简化在链接阶段分配地址空间。
public class InterviewDemo {
public static void main(String[] args) {
Integer a = new Integer(8);
Integer b = 8;
int c = 8;
System.out.println(a == b);
System.out.println(b == c);
}
}
判断输出结果是:
false true
Integer b = 8; 自动调用Integer.valueOf(8) 返回一个Integer的对象。 这个对象存放到cache中的(上面一段代码分析)。 而 Integer a = new Integer(8);这里创建了一个新的对象Integer 所以 a == b 返回的是false
一个Integer 与 int比较,先将Integer转换成int类型,再做值比较,所以返回的是true。