02
2018
04

java常问面试题

  1. 全局变量和局部变量的存储区域?

    全局变量保存在内存的全局存储区中,占用静态的存储单元;局部变量保存在栈中,只有在所在函数被调用时才动态地为变量分配存储单元。


    (1)栈(stack):由编译器进行管理,自动分配和释放,存放函数调用过程中的各种参数、局部变量、返回值以及函数返回地址。操作方式类似数据结构中的栈。
    (2)堆(heap):用于程序动态申请分配和释放空间。C语言中的malloc和free,C++中的new和delete均是在堆中进行的。正常情况下,程序员申请的空间在使用结束后应该释放,若程序员没有释放空间,则程序结束时系统自动回收。注意:这里的“堆”并不是数据结构中的“堆”。
    (3)全局(静态)存储区:分为DATA段和BSS段。DATA段(全局初始化区)存放初始化的全局变量和静态变量;BSS段(全局未初始化区)存放未初始化的全局变量和静态变量。程序运行结束时自动释放。其中BBS段在程序执行之前会被系统自动清0,所以未初始化的全局变量和静态变量在程序执行之前已经为0。
    (4)文字常量区:存放常量字符串。程序结束后由系统释放。
    (5)程序代码区:存放程序的二进制代码。

  2. 实时操作系统的特征

           1)多任务;
            2)有线程优先级
            3)多种中断级别

3. 进程三个状态和转换关系图

https://blog.csdn.net/hyqsong/article/details/51592992

image.png

(1)运行:当一个进程在处理机上运行时,则称该进程处于运行状态。处于此状态的进程的数目小于等于处理器的数目,对于单处理机系统,处于运行状态的进程只有一个。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。

(2)就绪:当一个进程获得了除处理机以外的一切所需资源,一旦得到处理机即可运行,则称此进程处于就绪状态。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。

(3)阻塞:也称为等待或睡眠状态,一个进程正在等待某一事件发生(例如请求I/O而等待I/O完成等)而暂时停止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。



4.  java排序

/** * 冒泡排序的第一种实现, 没有任何优化 * @param a * @param n */public static void bubbleSort1(int [] a, int n){    int i, j;    for(i=0; i<n; i++){//表示n次排序过程。        for(j=1; j<n-i; j++){            if(a[j-1] > a[j]){//前面的数字大于后面的数字就交换                //交换a[j-1]和a[j]                int temp;                temp = a[j-1];                a[j-1] = a[j];                a[j]=temp;            }        }    } }// end



« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。