国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > php教程 > 程序员易混淆的10个基础概念

程序员易混淆的10个基础概念

来源:程序员人生   发布时间:2016-11-14 09:57:30 阅读次数:2048次

1.java初始化进程:

  1. 初始化父类中的静态成员变量和静态代码块 ;

  2. 初始化子类中的静态成员变量和静态代码块 ;

3.初始化父类的普通成员变量和代码块,再履行父类的构造方法;

4.初始化子类的普通成员变量和代码块,再履行子类的构造方法;

2.instance是java的2元运算符,用来判断他左侧的对象是不是为右面类(接口,抽象类,父类)的实例

3.linux的启动进程文件

/sbin/init在核心完全的加载后,开始运行系统的第1支程序,主要的功能就是准备软件运行的环境,包括系统的主机名称、网络配置、语系处理、文件系统格式及其他服务的启动等。

/bin/sh解释脚本的shell命令,开机后运行

/etc/sysvinit就是 system V 风格的 init 系统,顾名思义,它源于 System V 系列 UNIX。sysvinit 中运行模式描写了系统各种预订的运行模式。

/etc/inittab定义了系统引导时的运行级别, 进入或切换到1个运行级别时做甚么。

1,启动init进程的配置文件是/etc/inittab

2,/etc/sysvinit是系统初始化用的

4.linux重启命令

在linux命令中reboot是重新启动,shutdown -r now是立即停止然后重新启动,都说他们两个是1样的,实际上是有1定的区分的。

shutdown命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示1条正告信息。该命令还允许用户指定1个时间参数,可以是1个精确的时间,也能够是从现在开始的1个时间段。
精确时间的格式是hh:mm,表示小时和分钟,时间段由+ 和分钟数表示。系统履行该命令后会自动进行数据同步的工作。
该命令的1般格式: shutdown [选项] [时间] [正告信息]
命令中各选项的含义为:
- k 其实不真正关机而只是发出正告信息给所有用户
- r 关机后立即重新启动
- h 关机后不重新启动
- f 快速关机重启动时跳过fsck
- n 快速关机不经过init 程序
- c 取消1个已运行的shutdown
需要特别说明的是该命令只能由超级用户使用。
例1,系统在10分钟后关机并且马上重新启动: # shutdown –r +10
例2,系统马上关机并且不重新启动:# shutdown –h now
halt是最简单的关机命令,其实际上是调用shutdown -h命令。halt履行时,杀死利用进程,文件系统写操作完成后就会停止内核。
halt命令的部份参数以下:
[-f] 没有调用shutdown而强迫关机或重启
[-i] 关机或重新启动之前,关掉所有的网络接口
[-p] 关机时调用poweroff,此选项为缺省选项

reboot的工作进程与halt类似,其作用是重新启动,而halt是关机。其参数也与halt类似。reboot命令重启动系统时是删除所有的进程,而不是安稳地终止它们。因此,使用reboot命令可以快速地关闭系统,但如果还有其它用户在该系统上工作时,就会引发数据的丢失。所以使用reboot命令的场合主要是在单用户模式。

init是所有进程的先人,其进程号始终为1。init用于切换系统的运行级别,切换的工作是立即完成的。init 0命令用于立行将系统运行级别切换为0,即关机;init 6命令用于将系统运行级别切换为6,即重新启动

5.进程和进程控制块

进程是指1个具有1定独立功能的程序关于某个数据集合的1次运动活动。简单地说进程是可以并发履行的程序的履行进程,它是控制程序管理下的基本的多道程序单位。
进程控制块(PCB )是由系统为每一个进程分别建立的,用以记录对应进程的程序和数据的存储情况,记录进程的动态信息。
PCB是1个进程存在的标志。系统根据PCB而感知进程的存在,根据PCB中的信息对进程实行控制管理,当进程结束时,系统回收对应的PCB,进程随之灭亡。
进程控制块中包括1系列信息,其中进程名即进程标识符唯1标识对应进程,系统根据该标识符来辨认1个进程。
1个进程只有唯1的进程控制块,不可和其他进程共用1个进程控制块。

6.编译基本概念

编译:进行语法检查、函数分配空间,将各个函数编译成2进制码,依照特定目标文件格式生成目标文件。
连接:把程序中各个文件编译生成的目标文件连接起来,同时还要同系统提供的资源(如函数库)连接成为1个整体,得到可履行文件。
运行:履行连接好的程序。
重定位:把程序的逻辑地址空间变换成内存中的实际物理地址空间的进程,也就是说在装入时对目标程序中指令和数据的修改进程。

7.程序实现链接的方式有3种(链接时间不同):

1.静态链接
2.动态链接(装入时)
3.动态链接(运行时)

8.如果在1个建立了TCP连接的socket上调用recv函数

<0 出错
=0 连接关闭

0 接收到数据大小

9.有关http keep-alive

在HTTP1.0和HTTP1.1协议中都有对KeepAlive的支持。其中HTTP1.0需要在request中增加“Connection: keep-alive” header才能够支持,而HTTP1.1默许支持

当使用Keep-Alive模式时,Keep-Alive功能使客户端到服 务器真个连接延续有效,当出现对服务器的后继要求时,Keep-Alive功能避免了建立或重新建立连接

可以在服务器端设置是不是支持keep-alive
server为多为静态内容时,开启keep-alive,增加传输效力。动态要求,已占用的资源得不到释放,效力低下。

10.硬链接和软链接

LINUX的硬链接不能链接到目录是由于引入了对目录的硬连接就有可能在目录中引入循环,在目录遍历的时候系统就会堕入无穷循环当中,这样致使没法定位到访问目录。
硬链接:为原文件创建1个新的文件名,但本质中只增加了1个目录项,并使用与原来相等的inode,指向
原文件的区域。数据区为两个名字同享。
使用限制:源文件和链接文件必须在同1个文件系统内,且目录文件不能创建硬链接。
命令:ln a b // 给a创建链接文件b
可使用ls -i查看两个inode是完全1样的。
同时注意连接计数count。count的意义对文件来讲是硬链接的个数,对目录,1般(count⑵)为目录包括的子文件个数。
注意:二者的权限也是完全1样的。对其中1个进行读写操作,另外1个也会更新。但删除其中1个,只会删除目录项,不会删除存储区数据。另外1个文件的使用和操作完全不受影响。除非count⑴结果0,才将数据区删除。作用:节省空间,两个文件能同步更新,避免重要文件被“误删”。

软链接:也叫符号链接。本质是创建1个新的文件,保存源文件的路径名。因此inode和源文件的inode是不1样的。使用没有文件系统的限制,也没有文件和目录的限制。 命令:ln -s a b 注意:产生的文件权限和源文件是不1样的。由于软链接使用比较灵活,可能断链,也能够自循环,常常需要屡次查找增加文件操作的步骤而下降效力。尽可能少用,并避免出现循环。

我的微信2维码以下,欢迎交换讨论

这里写图片描述

欢迎关注《IT面试题汇总》微信定阅号。每天推送经典面试题和面试心得技能

微信定阅号2维码以下:

这里写图片描述

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生