java c 刷题_Java刷题日记,20201208

Java刷题日记,20201208

虽然我什么都不会,但不妨碍我在比赛中抱着大佬的大腿躺~

开篇语

因为试题量

题目

1.第一题

阅读下列利用递归来求n!的程序class FactorialTest{

static long Factorial(int n){//定义Factorial( )方法

if (n==1)

return 1;

else

return n* Factorial(______);

}

public static void main(String a[]){//main( )方法

int n=8;

System.out.println(n+ "!="+Factorial(n));

}

}

为保证程序正确运行,在下划线处应该填入的参数是______。

A、n-1

B、n-2

C、n

D、n+1

所谓递归就是用自身的结构来描述自身。一个使用递归技术的方法将直接或间接地调用自身的方法。

根据阶乘的概念,可以写出其递归定义:

Factorial(n=1) n=1

n*Factorial(n-1) n>1

递归结构主要包括两部分:定义递归头和定义当前问题的同一性质的简化。例如n!这个问题被划分为求(n-1)!与n相乘两个步骤;同理,求(n-1)!的问题被简化为求(n-2)!与(n-1)相乘两个步骤的问题,依此类推,直到求Fac(1),再逐级返回,依次求得Fac(1)、Fac(2)…Fac(n)。

2.第二题

下列能表示字符串sl长度的是______。

A、sl.length()

B、sl.length

C、sl.size

D、sl.size()

String类包括的方法有:length()、charAt()、indexOf()、lastIndexOf()、getChars()、getBytes()、toCharArray()等,其中,提取字符串长度的方法是"length()",调用方法如下:

String greeting="Hello";

int n=greeting.length(); //返回字符串的字符个数n=5

3.第三题

下列方法中与Applet显示无关的是______。

A、update()

B、draw()

C、repaint()

D、paint()

Applet显示相关的3个方法:

1、paint()方法:Applet的paint()方法具体执行Applet的绘制,该方法定义如下:

public void paint(Graphics g)

paint()方法有一个参数g是Graphics类的实例,该实例对象由浏览器生成,它包含了Applet的图形上下文信息,通过它向Applet中显示信息,该对象相当于Applet的画笔。在调用paint()方法时,由浏览器将该对象传递给paint()方法。

2、update()方法:

public void update(Graphics g)

用于更新Applet的显示。该方法将首先清除背景,再调用paint()方法完成Applet的具体绘制。

3、repaint()方法:

public void repaint()

repaint()方法主要用于Applet的重新显示,它调用update()方法实现对Applet的更新。

4.第四题

阅读下列一个支持多线程并发操作的堆栈类代码段

public class MyStack{

private int idx=0;

private int[] data=new int[8];

public ______ void push(int i){

data[idx]=i;

idx++;

}

……

}

在下划线处应填入的是______。

A、synchronized

B、wait

C、blocked

D、interrupt

Java中对共享数据操作的并发控制是采用传统的封锁技术。一个程序中单独的、并发的线程对同一个对象进行访问的代码段,称为临界区(Critical Sections)。在Java语言中,临界区可以是一个语句块或是一个方法,并且用"synchronized"关键字标识。Java平台将每个由synchronized(Object)语句指定的对象设置一个锁,成为对象锁(monitor),其是一种独占的排他锁(exclusive locks),这种锁的含义是,当一个线程获得了对象锁后,便拥有该对象的操作权,其他任何线程不能对该对象进行任何操作。

5.第五题

下列方法能够用来实现线程之间通信的是______。

A、notify()

B、run()

C、sleep()

D、join()

Java引入的wait()和notify(),是Java.lang.object类的方法,是实现线程通信的两个方法。

6.第六题

Java虚拟机(JVM)运行Java代码时,不会进行的操作是______。

A、加载代码

B、校验代码

C、编译代码

D、执行代码

Java语言的执行模式是半编译和半解释型。Java编写好的程序首先由编译器转换为标准字节代码,然后由Java虚拟机去解释执行。

Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。

字节代码也是一种二进制文件,但不能直接在操作系统上运行,它可看作虚拟机的机器码。运行JVM字节码的工作是由解释器来完成的。解释执行过程分三步进行:代码的装入、代码的校验和代码的执行。

7.第七题

当浏览器重新返回到包含Applet的页面时调用的方法是______。

A、start()

B、init()

C、stop()

D、destroy()

当浏览器重新返回Applet所在页面时,Applet类的start()方法将被调用

题目总览

总题目数量

错误数量

错误率

30

07

23.33%

错题分析

错误题目涵盖知识点

数量

Applet

2

JVM

1

多线程

2

String

1

算法

1

今日小结/刷题总结

今天总共错了七道题,目前来看是比昨天要好了的,但实际刷题过程中感受到了是自己会的题目占比数量较多,因此错误题目数量有所减少

同时,一直常错的知识点也仍然是有的,例如上表(错题分析)中展示出来的内容,多线程,Applet,一直都是在错的。

所以说,不能光刷,看完一遍就不看了,还是很需要重温的。

试题量--主要为Java语言特点和实现机制 ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值