2022.11.24线上笔试题

2022.11.24线上笔试题及答案


JSP几个作用域通信对象:

session application 和 pageContext ,request


JDBC中,用于表示数据库连接的对象是:

Connection


case中允许存在的的值有:

int ,short,char,byte


jvm堆空间有几个区:

新生代和老生代


同一个java文件中是否可以有两个public类:

不可以


jsp中的注释:

1、html注释:<!-- -->
2、java注释,仅在有关脚本中使用://或者多行注释/**/
3、jsp注释:<%----%>


servlet处理请求的方式:

1、直接处理 request.getAttribute();
2、请求转发 request.getRequestDispatcher().forward()
3、重定向 response.sendRedirect (“xxx”)


thread类的方法:

currentThread()
返回对当前正在执行的线程对象的引用

   public static void main(String[] args) {
        System.out.println(Thread.currentThread().getName());
    }

结果:

main

static void yield()
提示调度程序,当前线程愿意放弃当前对处理器的使用。调度程序可以忽略这个提示。

sleep
导致当前正在执行的线程休眠(暂时停止执行)指定的毫秒数,具体取决于系统计时器和调度程序的精度和准确性。 该线程不会失去任何监视器的所有权。

void start()
一个线程的开始,执行之后java虚拟机调用该线程的run方法

 public static void main(String[] args) throws InterruptedException {
        Runnable a = new MyRunnable();
        Thread t = new Thread(a);
        t.start();
        Thread.sleep(1000);

        System.out.println(Thread.currentThread().getName());
    }

以上代码最后输出的内容会延迟1s出现,其中MyRunnable是一个Runnable的实现类

void run()
如果线程使用Runnable构造的,则它的调用run方法,否则不执行任何操作并返回

public static void main(String[] args) throws InterruptedException {
        Runnable a = new MyRunnable();
        Thread t = new Thread(a);
        t.run();
       // t.start();
        Thread.sleep(1000);

        System.out.println(Thread.currentThread().getName());
    }

没有t.start();这一句,程序依然会执行

void interrupt()
中断调用方法的进程

public static void main(String[] args) {
        //线程中断
        //一个线程是一个独立的执行路径,他是否结束,应该由其自身决定
        //给线程打标记 来实现中断
        Thread t1 = new Thread(new MyRunnable2());
        t1.start();
        for (int i = 0;i<5;i++) {
            System.out.println(Thread.currentThread().getName() + ":" + i);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

        //给线程t1添加中断标记,告诉他人t1没了进而进入catch块 之后程序员决定是否死亡
        t1.interrupt();
    }

    static class MyRunnable2 implements Runnable{

        @Override
        public void run() {
            for (int i = 0;i<10;i++){
                System.out.println(Thread.currentThread().getName() + ":" + i);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    System.out.println("线程死亡");
                    return;
                }
            }
        }
    }

void setPriority(int newPriority)
其作用是:更改该线程的优先级
源码如下 先检查是否能改这个线程 之后设置优先级

public final void setPriority(int newPriority) {
        ThreadGroup g;
        checkAccess();
        if (newPriority > MAX_PRIORITY || newPriority < MIN_PRIORITY) {
            throw new IllegalArgumentException();
        }
        if((g = getThreadGroup()) != null) {
            if (newPriority > g.getMaxPriority()) {
                newPriority = g.getMaxPriority();
            }
            setPriority0(priority = newPriority);
        }
    }

int getPriority()
获取这个线程的优先级

void setName(String name)
命名调用该方法的线程

String getName()
返回此线程的名称

boolean isDaemon()
判断线程是否是守护线程

void setDaemon(boolean on)
将线程设置为守护线程

void join()
join()
join(x)
join(x,y)
三种形式 第二种是等待x毫秒后醒来或者被唤醒后醒来 ,第三种是x毫秒y纳秒之后 如果x为0相当于一直沉睡,第一种方式就等于join(0)
join的底层源码可以发现是通过使用Object类中的wait()方法来实现的


Object类方法

Object是所有类的父类,任何类都默认继承Object。Object类实现了哪些方法?

(1)clone方法
保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。

(2)getClass方法
final方法,获得运行时类型。

(3)toString方法
该方法用得比较多,一般子类都有覆盖。

(4)finalize方法
该方法用于释放资源。因为无法确定该方法什么时候被调用,很少使用。

(5)equals方法
该方法是非常重要的一个方法。一般equals和==是不一样的,但是在Object中两者是一样的。子类一般都要重写这个方法。

(6)hashCode方法
该方法用于哈希查找,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到。

一般必须满足obj1.equals(obj2)==true。可以推出obj1.hash- Code()==obj2.hashCode(),但是hashCode相等不一定就满足equals。不过为了提高效率,应该尽量使上面两个条件接近等价。

(7)wait方法
wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait()方法一直等待,直到获得锁或者被中断。wait(long timeout)设定一个超时间隔,如果在规定时间内没有获得锁就返回。

调用该方法后当前线程进入睡眠状态,直到以下事件发生。

(1)其他线程调用了该对象的notify方法。

(2)其他线程调用了该对象的notifyAll方法。

(3)其他线程调用了interrupt中断该线程。

(4)时间间隔到了。

此时该线程就可以被调度了,如果是被中断的话就抛出一个InterruptedException异常。

(8)notify方法
该方法唤醒在该对象上等待的某个线程。

(9)notifyAll方法
该方法唤醒在该对象上等待的所有线程。


题源来自:

上海RR信息技术服务有限公司(信息敏感,只用公司名字的缩写)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 浙江宇视科技是一家技术领先且充满活力的企业,在c语言嵌入式软件开发领域具备一定的实力。对于这次线上笔试题,我认真思考后进行了尝试。 首先,笔试题集中在c语言方面,并且要求熟练掌握各种数据类型、条件语句、循环语句等基础知识。我按照题目要求,使用gcc编译器对代码进行编译、执行和调试,确保代码的正确性和高效性。 其次,笔试题中设计到了实际问题的解决方式,如时间戳、计算机网络和数据加密等。我通过查阅相关资料和借鉴以往的项目经验,积累了相应的经验和技巧,并对问题进行深入思考和分析。最终,我逐一解答出所有的问题,并给出了我自己的思路和解决方案。 最后,通过这次线上笔试题,我对c语言嵌入式软件开发有了更熟练的掌握,加深了对实际应用场景的理解和应用能力。同时,也更加深刻地认识到c语言在嵌入式领域中的重要性和应用价值。 ### 回答2: 浙江宇视科技的C语言嵌入式软件开发线上笔试题包含了基本的C语言知识、嵌入式系统概念和底层编程相关知识。这次笔试总题目数量较多,需要考生有较好的代码编写和调试能力。 这份笔试中有大量的编程题目,如遍历链表、字符串反转、冒泡排序等。同时也包含了一些与嵌入式系统开发相关的问题,如常用的MCU架构、硬件外设驱动、SPI通信等。 除此之外,笔试还要求考生具备解决实际问题的能力。例如给出一张简单的布线图,要求考生按照要求,使用Arduino和相关硬件搭建出一个简单的车载OBD系统。这要求考生具备一定的硬件知识,对于嵌入式系统的整体架构和流程有着较为完整的了解。 另外,在这份笔试中,还有一些具有挑战性的算法题目,如求解斐波那契数列的第n项、判断图形是否为回文等等。这要求考生在代码编写和调试上具有出色的能力。 总的来说,这份笔试要求考生具备扎实的编程基础和一定的嵌入式系统开发能力。在此基础上,具备解决实际问题的能力和挑战性的算法解题能力将成为加分项。 ### 回答3: 浙江宇视科技c语言嵌入式软件开发的线上笔试题主要涉及C语言的基本语法、数据类型、控制结构、函数、指针等方面内容。以下是具体题目: 1. C语言中基本数据类型有几种?分别是什么? 2. 请写出C语言中常见的控制结构及其作用。 3. 请写出C语言中常见的数据类型转换方式。 4. 请写出C语言中常见的函数调用方式。 5. 请解释C语言中指针的含义及其作用。 这些题目涉及的内容涵盖了C语言嵌入式软件开发的基础知识,在实际开发中都是必不可少的。需要注意的是,除了理论知识之外,实际编写代码的能力同样重要。因此,在做这些题目的同时,还要注意练习编写相关的代码,加深对知识的实际应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值