JAVA基础

1.java和c++的区别 编译形语言和解释形语言 

像C、C++ 他们经过一次编译之后直接可以编译成操作系统了解的类型,可以直接执行的,所以他们是编译型的语言。没有经过第二次的处理。而Java不一样,他首先由编译器编译成.class类型的文件,这个是java自己类型的文件 然后在通过虚拟机(JVM)从.class文件中读一行解释执行一行,所以他是解释型的语言,而由于java对于多种不同的操作系统有不同的JVM,所以,Java实现了真正意义上的跨平台! 

2.正则表达式的作用

在编写处理字符串的程序时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码

第一题

一次I/O操作的结束,有可能导致()。

一个进程由睡眠变就绪 为什么不是运行?因为等到时间片到来
子进程获得父进程的数据空间,堆和栈的复制品
线程可以与同进程的其他线程共享数据,但是它拥有自己的栈空间且拥有独立的执行序列
线程执行开销小,但是不利于资源管理和保护
进程适合在SMP机器上进行,而线程则可以跨机器迁移 错误 SMP:Symmetrical Multi-Processing,对称性多核处理器,多进程可以在不同的核上运行,但是线程不可以跨机器迁移,因为线程是存在于单一的进程之中,只能在一个核上运行

数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。

代码段:代码段(code segment/text segment)通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读, 某些架构也允许代码段为可写,即允许修改程序。在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。

堆(heap):堆是用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。当进程调用malloc等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张);当利用free等函数释放内存时,被释放的内存从堆中被剔除(堆被缩减)

栈(stack):栈又称堆栈, 是用户存放程序临时创建的局部变量,也就是说我们函数括弧“{}”中定义的变量(但不包括static声明的变量,static意味着在数据段中存放变量)。除此以外,在函数被调用时,其参数也会被压入发起调用的进程栈中,并且待到调用结束后,函数的返回值也会被存放回栈中。由于栈的先进后出特点,所以栈特别方便用来保存/恢复调用现场。从这个意义上讲,我们可以把堆栈看成一个寄存、交换临时数据的内存区。
 

 

 

第二题:

1. 首适应算法:当接到内存申请时,查找分区说明表,找到第一个满足申请长度的空闲区,将其分割并分配。此算法简单,可以快速做出分配决定,空闲区首地址递增顺序形成空闲分区链。

2. 最佳适应算法:当接到内存申请时,查找分区说明表,找到第一个能满足申请长度的最小空闲区,将其进行分割并分配。此算法最节约空间,因为它尽量不分割到大的空闲区,其缺点是可能会形成很多很小的空闲分区,称为“碎片”,空闲区大小递增顺序形成空闲分区链。

3. 最坏适应算法:当接到内存申请时,查找分区说明表,找到能满足申请要求的最大的空闲区。该算法的优点是避免形成碎片,而缺点是分割了大的空闲区后,在遇到较大的程序申请内存时,无法满足的可能性较大,空闲区大小递减顺序形成空闲分区链。

 

第三题:什么是程序的定位?

把指令和数据中的逻辑地址转换成主存储器物理地址的过程

第四题:

下列哪些选项描述的时间属于响应时间的一部分()。

从键盘输入的请求信息传送到处理机的时间
处理机对请求信息进行处理的时间
所形成的响应回送到终端显示器的时间

第五题

单道程序系统中程序的执行也需要同步和互斥。错误

1. 资源独占性

任何时候,位于内存中的程序可以使用系统中的一切资源,不可能有其他程序与之竞争

2. 执行的顺序性

内存中只有一个程序,各个程序是按次序执行的。在做完一个程序的过程中,不可能夹杂进另一个程序执行

3. 结果的可再现性

只要执行环境和初始条件相同,重复执行一个程序,获得的结果总是一样的

4. 运行结果的无关性

程序的运行结果与程序执行的速度无关。系统中的作业以串行的方式被处理,无法提高CPU、内存的利用率

 

第六题

在多道程序系统,进程需要等待某种事件的发生时,进程一定进入阻塞状态。错误

如果进程是在等待CPU的调度执行,此时进程处于就绪状态。
如果进程是在等待请求I/O事件,此时进程处于活动阻塞状态

第七题

计算机资源指计算机硬件、软件与数据。

第八题:

SPOOLing技术:利用高速共享设备(通常是磁鼓或者是磁带)将低速的独享设备模拟为高速的共享设备。可能很多程序需要输入输出,然后操作系统不需要每一个程序都去给他们一个输入输出的进程,而是弄一个类似输入队列的东西,把每一个程序的输入按照时序放进去,然后在输出队列 也是按照这个顺序输出。

第九题:

如果资源分配图中存在回路,则系统一定存在死锁,这种说法正确吗?错误

应该是简化以后存在回路→发生了死锁。

根据死锁定理:S为死锁状态的条件是——S状态的资源分配图不可完全简化。

第十题:

下列选项中,能缩短程序执行时间的措施是()。

Ⅰ.提高CPU时钟频率

Ⅱ.优化数据通路结构

Ⅲ.对程序进行编译优化

CPU时钟频率(主频)越高,完成指令的一个执行步骤所用的时间就越短,执行指令的速度越快,Ⅰ正确。数据通路的功能是实现CPU内部的运算器和寄存器以及寄存器之间的数据交换,优化数据通路结构,可以有效提高计算机系统的吞吐量,从而加快程序的执行,Ⅱ正确。计算机程序需要先转化成机器指令序列才能最终得到执行,通过对程序进行编译优化可以得到更优的指令序列,从而使得程序的执行时间也越短,Ⅲ正确。

第十一题:

链接:https://www.nowcoder.com/questionTerminal/f49bfd1b32a142a287a931326f8fd00c?source=relative
来源:牛客网
 

死锁的发生必须具备以下四个必要条件

1)互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。

2)请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。

3)不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。

4)环路等待条件:指在发生死锁时,必然存在一个进程——资源的环形链,即进程集合{P0,P1,P2,···,Pn}中的P0正在等待一个P1占用的资源;P1正在等待P2占用的资源,……,Pn正在等待已被P0占用的资源。

第十二题:

在 Windows 中,可以用“创建快捷方式”命令创建快捷方式图标的是 ________ 。

任何文件或文件夹

第十三题:

虚存容量 = min(内存+外存, 2N)  

第十四题: JAVA多线程的实现方式:

方式1:继承Thread类,并重写run()方法

方式2:实现Runnable接口,实现run()方法

方式3:实现Callable接口,线程结束后可以有返回值,但是该方式是依赖于线程池的。

第十五题:

动态重定位过程依赖于()。

重定位寄存器
地址变换机构
目标程序

 将 指令中的有效地址 与 重定位寄存器中的基址 相加得到 访问地址

第十六题

进程间通信的方式

1) 文件和记录锁定。

为避免两个进程间同时要求访问同一共享资源而引起访问和操作的混乱,在进程对

共享资源进行访问前必须对其进行锁定,该进程访问完后再释放。这是UNIX为共享

资源提供的互斥性保障。

  2 )管道。

管道一般用于两个不同进程之间的通信。当一个进程创建一个管道,并调用fork创

建自己的一个子进程后,父进程关闭读管道端,子进程关闭写管道端,这样 提供了

两个进程之间数据流动的一种方式。

  3 ) FIFO 。

FIFO是一种先进先出的队列。它类似于一个管道,只允许数据的单向流动。每个

FIFO都有一个名字,允许不相关的进程访问同一个FIFO。因此也成为命名管。

 4)消息队列。

UNIX下不同进程之间可实现共享资源的一种机制;UNIX允许不同进程将格式化的数

据流以消息形式发送给任意进程。对消息队列具有操作权限的进程都可以使用msget完成对消息队列的操作控制

。通过使用消息类型,进程可以按任何顺序读消息,或为消息安排优先级顺序。

  5 )信号灯。

作为进程间通讯的一种方法,它不是用于交换大批数据,而用于多进程之间的同步

(协调对共享存储段的存取)。

  6 )共享内存。

通过信号灯实现存储共享(类似“红灯停、绿灯行”)

第十七题

 

现代操作系统中,代码可以在系统态或用户态运行,则下列选项在用户态执行的是()

正确答案: A  

命令解释程序
进程创建原语
进程调度程序
时钟中断处理程序
  • 命令解释程序属于命令接口,是操作系统提供给用户使用的接口,因此可以在用户态执行,所以A正确
  • 进程操作原语是操作系统核心(不是由进程,而是由一组程序模块组成)的一个组成部分,并且常驻内存,通常在管态下执行,原语一旦开始执行,就要连续执行完。所以B错误
  • 进程调度属于系统的一部分,也只能在系统态执行,所以C错误
  • 时钟中断处理程序处理不当不会对系统造成不良影响,因此只能在系统态执行,所以D错误

第十八题

线程占有的都是不共享的:栈   、 寄存器、 状态、 程序计数器

第十九题

指令一般由两部分组成:

操作码:该指令完成操作的类型或性质

地址码:操作对象的地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值