刷笔试题错误和易混点总结
1. 下面哪些机制可以用于进程间通信?
- Socket
- Named pipe
- Named event
- Critical Section
- Shared memory
- Virtual memory
Linux进程间通信:管道、信号、消息队列、共享内存、信号量、套接字(socket)
Linux线程间通信:互斥量(mutex),信号量,条件变量
Windows进程间通信:管道、消息队列、共享内存、信号量(semaphore)、套接字(socket)
Windows线程间通信:互斥量(mutex),信号量(semaphore)、临界区(critical section)、事件(event)
- 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
- 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。
- 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
- 消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
- 信号 ( signal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
- 共享内存( shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。
- 套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。
2. Linux系统中的wc (Word Count) 命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出
1.命令格式:
wc [选项]文件…
2.命令功能:
统计指定文件中的字节数、字数、行数,并将统计结果显示输出。该命令统计指定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的***计数。
3.命令参数:
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-L 打印最长行的长度。
-help 显示帮助信息
–version 显示版本信息
4.使用实例:
实例1:查看文件的字节数、字数、行数
命令:
1 | wc test.txt |
输出:
1 | [root@localhost test] # cat test.txt |
说明:
1 | 7 8 70 test.txt |
3. Cookie可以用于验证用户,并且可以在无状态的HTTP上建立一个用户会话层
正确
当浏览器访问服务器时,服务器会创建一个session对象(该对象有一个唯一的id号,称之为sessionId)服务器在默认的情况下,会将sessionId以cookie的方式,发送给浏览器,浏览器会将sessionId保存到内存中。当浏览器再次访问服务器时,会将sessionId发送给服务器,服务器依据sessionId就可以找到之间创建的session对象
4. 定义字符串 String str = “用户1|用户2|用户3|用户4”,现在想要对字符串根据字符“|”进行分割解析,下面哪种分割方式是正确的?
1 | str.split(“\\|”) |
|
属于正则表达式中的字符,转义字符前面加\\
5. ATM 既可以用于广域网,又可以用于局域网,这是因为它的工作原理与 Ethernet 基本上是相同的
错误
ATM可以用于广域网,也可以用于广域网,一般用于广域网比较多。
ATM的原理是采用面向连接的传输方式,将数据分割成固定长度的信元,通过虚连接进行交换。
ATM的原理和以太网的原理是不一样的。
ATM是一种为了多种业务设计的通用的面向连接的传输模式。它适用于局域网和广域网,它具有高速数据传输率和支持许多种类型如声音、数据、传真、实时视频、CD质量音频和图像的通信。
ATM采用面向连接的传输方式,将数据分割成固定长度的信元,通过虚连接进行交换。ATM集交换、复用、传输为一体,在复用上采用的是异步时分复用方式,通过信息的首部或标头来区分不同信道。
6. 如果一个接口Glass有个方法setColor(),有个类BlueGlass实现接口Glass,则在类BlueGlass中正确的是
- protected void setColor() {…}
- void setColor() {…}
- public void setColor() {…}
- 以上语句都可以用在类BlueGlass中
JAVA 子类重写继承的方法时,不可以降低方法的访问权限,子类继承父类的访问修饰符要比父类的更大,也就是更加开放,假如我父类是protected修饰的,其子类只能是protected或者public,绝对不能是friendly(默认的访问范围)或者private,当然使用private就不是继承了。还要注意的是,继承当中子类抛出的异常必须是父类抛出的异常的子异常,或者子类抛出的异常要比父类抛出的异常要少。
接口中属性为public static final,方法为public abstract.
7. 以下哪些命令可以查看当前系统的启动时间
- w
- top
- ps
- uptime
w
: 查看当前登录到系统中的用户,并查看该用户正在运行的进程top
: 查看Linux中的资源信息,第一行开始部分显示了系统当前时间,并显示已经运行了多长时间,两者相减就是系统启动时间uptime
: 查看系统启动时间who -b
: 查看登录到系统中的用户什么时候登录的
8. 关于Nginx的安全加固,以下说法正确的是
- nginx的master进程不能以root权限启动
- nginx的Worker进程不能以root权限启动
- 图片等静态资源目录不能给脚本执行权限
- 禁止访问.git、.svn和.sql目录,可以防止因运维操作不当造成的代码或数据泄漏