2018/12/24  每日嵌入式面试笔试题分享,欢迎互相交流讨论。

1. 某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限,则该八进制数为多少,该文件属性是什么?

2. 一个参数既可以是const还可以是volatile吗?解释为什么。

3. 一个指针可以是volatile 吗?解释为什么。

4. 下面的函数有什么错误:int square(volatile int *ptr){return *ptr * *ptr;}

  1. insmod 一个驱动模块,会执行模块中的哪个函数?rmmod呢?这两个函数在设计上要 注意哪些?遇到过卸载驱动出现异常没?是什么问题引起的?

2018/12/21  每日Java面试笔试题分享,欢迎互相交流讨论。

1.  java 中有几种类型的流?JDK 为每种类型的流提供了一些抽象类以供继承,请说出

他们分别是哪些类?

2.  启动一个线程是用 run()还是 start()

3.  线程的基本概念、线程的基本状态以及状态之间的关系/

4.  sleep() 和 wait() 有什么区别?

5.  当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此对象的其它方法?

答案:

1.    嵌入式

(1)   某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限,则该八进制数为: 644 ,该文件属性是 目录 。

(2)   是的。一个例子是只读的状态寄存器。它是volatile因为它可能被意想不到地改变。它是const因为程序不应该试图去修改它。

(3)   是的。尽管这并不很常见。一个例子是当一个中断服务子程序修改一个指向一个buffer的指针时。

(4)   这段代码的目的是用来返回指针*ptr指向值的平方,但是,由于*ptr指向一个volatile型参数,编译器将产生类似下面的代码: 

大华成都Java面试流程 大华java笔试题_java

1.png (1.82 KB, 下载次数: 71)

2018-12-24 09:53 上传

由于*ptr的值可能被意想不到地该变,因此a和b可能是不同的。结果,这段代码可能返不是你所期望的平方值!正确的代码如下:

大华成都Java面试流程 大华java笔试题_java

2.png (1.55 KB, 下载次数: 72)

2018-12-24 09:53 上传

(5)会执行init函数,rmmod会执行exit函数。卸载模块时曾出现卸载失败的情形,原因是存在进程正在使用模块,检查代码后发现产生了死锁的问题。

要注意在init函数中申请的资源在exit函数中要释放,包括存储,ioremap,定时器 ,工作队列等等。也就是一个模块注册进内核,退出内核时要清理所带来的影响,带走一切不留下一点痕迹。

2.    Java

(1)   字节流,字符流。字节流继承于 InputStreamOutputStream,字符流继承于 ReaderWriter。在 java.io 包中还有许多其他的流,低层流与调层流,高层流主要是为了提高性能和使用方便。

(2)   启动一个线程是调用 start()方法,启动线程并调用 run 方法。

(3)   线程是进程内的并发,没有自已内存空间,共享进程的,线程间的通信成本较低。Java中的线程有四种状态分别是:运行、就绪、挂起、结束。

(4)Sleep 是指休眠给定的时间,当这个时间达到之后,线程会再次醒来。

Wait是等待状态,多长时间不清楚,由另一个线程将其唤醒。

(5)如只其它方法是同步方法,不可以进入。如果不是可以进入。