我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java日常练习题,每天进步一点点(62)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java日常练习题,每天进步一点点(62)

承蒙各位厚爱,我们一起每天进步一点点!(鼠标选中空白处查看答案)

1、Java Application 源程序的主类是指包含有( )方法的类。

正确答案:A

A public static void main方法

B toString方法

C init方法

D actionPerfromed方法

题解:
1、java程序种类: 1.内嵌于web文件中,有浏览器观看的applet 2.可独立运行的application 3.服务器端的servlets
2、 一个类的内部可以有多个方法名为main的方法啊,是有定义为 public static void的main方法才是主类吧
3、 已经看了解释

2、如果定义一种表达式结构:(+ 6 3)的值为9,(- 6 3)的值为3,( * 6 3)的值为18,( / 6 3)的值为2;那么对于表达式( * (- 16 (* 3 2 2 )) (+ 5 (/ 6 (- 5 3))))输出的结果为____。

正确答案:D

A 44

B 40

C 40

D 32

E 24

F 21

题解:
1、 这个和学过数据结构没有太大关系,当然做过这类题的人一瞬间就懂了,我数据结构已经很多年没看了。有的人之所以没看懂,我也是看了好久才明白,是因为没看懂题目的逻辑关系。下面我来通俗的讲一下: 题目中规定(+6 3)=9何解?其真实含义就是往栈中存了三个值,符号为加,于是6+3就等于9了。以此类推( *6 3)自然就是18了。

3、给出以下代码


public class TestObj{
public static void main(String args){
Object o=new Object(){
public boolean equals(Object obj){
return true;
}
};
System.out.println(o.equals(“Fred”));
}
}

请给出结果:()

正确答案:B

A 运行时抛出异常

B true

C Fred

D 第三行编译错误

题解:
1、 这是匿名类 格式是:new 父类/接口 () {定义成员或覆盖方法} 使用场景:只使用一次时。

4、当编译并运行下面程序时会发生什么结果()


public class Bground extends Thread{
public static void main(String argv){
Bground b = new Bground();
b.run();
}
public void start(){
for(int i=0;i<10;i++){
System.out.println("Value of i = "+i);
}
}
}

正确答案:D

A 编译错误,指明run方法没有定义

B 运行错误,只鞥呢run方法没有定义

C 编译通过并输出0到9

D 编译通过,但无输出

题解:
1、选D 对于线程而言,start是让线程从new变成runnable。run方法才是执行体的入口。 但是在Thread中,run方法是个空方法,没有具体实现。 Bground继承了Thread,但是没有重写run方法,那么调用run方法肯定是无输出。

5、对于文件的描述正确的是( )

正确答案:D

A 文本文件是以“.txt”为后缀名的文件,其他后缀名的文件是二进制文件。

B File类是Java中对文件进行读写操作的基本类。

C 无论文本文件还是二进制文件,读到文件末尾都会抛出EOFException异常。

D Java中对于文本文件和二进制文件,都可以当作二进制文件进行操作。

题解:
1、A.文件分为文本文件和二进制文件,计算机只认识二进制,所以实际上都是二进制的不同解释方式。文本文件是以不同编码格式显示的字符,例如Ascii、Unicode等,window中文本文件的后缀名有".txt"
2、".log"
3、各种编程语言的源码文件等;二进制文件就是用文本文档打开是看不懂乱码,只要能用文本打开的文件都可以算是文本文件,只是显示的结果不是你想要的,二进制文件只有用特殊的应用才能读懂的文件,例如".png"
4、".bmp"等,计算机中大部分的文件还是二进制文件。 B.File类是对文件整体或者文件属性操作的类,例如创建文件、删除文件、查看文件是否存在等功能,不能操作文件内容;文件内容是用IO流操作的。 C.当输入过程中意外到达文件或流的末尾时,抛出EOFException异常
5、正常情况下读取到文件末尾时,返回一个特殊值表示文件读取完成,例如read()返回-1表示文件读取完成。 D.上面A选项已经说了,不论是文本文件还是二进制文件,在计算机中都是以二进制形式存储的,所以都当做二进制文件读取。
6、 File类是 文件和目录路径名的抽象表示形式。
7、 D:正确 B:File类是java中文件和目录路径名的抽象表示形式。Java中对文件进行读写操作的基本类是IO类。 C:读到文件末尾不会抛出异常。EOFException:当输入过程中意外到达文件或流的末尾时,抛出此异常。

6、以下代码执行的结果显示是多少( )?


 public class Demo {
  class Super {
    int flag = 1;
    Super() {
      test();
    }
    void test() {
      System.out.println("Super.test() flag=" + flag);
    }
  }
  class Sub extends Super {
    Sub(int i) {
      flag = i;
      System.out.println("Sub.Sub()flag=" + flag);
    }
    void test() {
      System.out.println("Sub.test()flag=" + flag);
    }
  }
  public static void main(String args) {
    new Demo().new Sub(5);
  }
}

正确答案:A

A Sub.test() flag=1

Sub.Sub() flag=5

B Sub.Sub() flag=5

Sub.test() flag=5

C Sub.test() flag=0

Sub.Sub() flag=5

D Super.test() flag=1

Sub.Sub() flag=5

题解:
1、在继承中代码的执行顺序为:1.父类静态对象,父类静态代码块 2.子类静态对象,子类静态代码块 3.父类非静态对象,父类非静态代码块 4.父类构造函数 5.子类非静态对象,子类非静态代码块 6.子类构造函数 对于本题来说:在只想new Sub(5)的时候,父类先初始化了 int flag = 1,然后执行父类的构造函数Super(),父类构造函数中执行的test()方法,因子类是重写了test()方法的,因此父类构造函数中的test()方法实际执行的是子类的test()方法,所以输出为Sub.test() flag=1,接着执行子类构造函数Sub(5) 将flag赋值为5,因此输出结果Sub.Sub() flag=5。最终选择了A。
3、 1.首先调用父类构造方法,即super() 2.调用test()方法。 3.由于在子类sub()中重写了test()方法,所以调用子类test() 4.输出Sub.test() flag=1 5.调用sub的有参构造方法 6.输出Sub.Sub() flag=5 重点在于要时刻记得子类重写父类方法,调用时会调用子类重写之后的方法 当然,这一切的前提都是 实例化子类对象

7、以下哪几个是java中的集合类型?

正确答案:ABD

A Vector

B Set

C String

D List

题解:
1、 Java中的集合类型:Vector、Set、List

8、Java 多线程有几种实现方法?( )

正确答案:AB

A 继承Thread类

B 实现Runnable接口

C 实现Thread接口

D 以上都不正确

题解:
1、实现多线程的方法: 1.继承Thread类 2.实现Runnable接口 3.实现Callable接口
2、 实现多线程的方法: 1.继承Thread类 2.实现Runnable接口 3.实现Callable接口
3、然后使用 FutureTask包装,因为Callable接口没有实现Runnable接口不能做为Thread的target,而FutureTask是在Java程序中可以取消的异步运算,有可以开始,取消运算,查询运算是否结束,获得查询结果的功能,特别注意的是,如果查询结果时,运算还没完成则会阻塞线程。 4.使用,java.util.current.ThreadPoolExecutor来获取线程,执行多线程
4、 Java多线程实现方式主要有四种:继承Thread类、实现Runnable接口、实现Callable接口通过FutureTask包装器来创建Thread线程、使用ExecutorService、Callable、Future实现有返回结果的多线程。 其中前两种方式线程执行完后都没有返回值,后两种是带返回值的。

9、下面哪些具体实现类可以用于存储键,值对,并且方法调用提供了基本的多线程安全支持:()

正确答案:AE

A java.util.ConcurrentHashMap

B java.util.Map

C java.util.TreeMap

D java.util.SortMap

E java.util.Hashtable

F java.util.HashMap

题解:
1、Hashtable的方法都是synchrnized修饰的线程安全,ConcurrentHashMap并发容器,JDK7采用分段锁,JDK8采用CAS算法,线程安全,建议使用,Connections工具类提供了一个方法synchrnizedMap可以把Map同步,本质就是给每一个方法加上synchrnized关键字进行同步
2、 Hashtable是线程安全的哈希表,它是通过synchronized来保证线程安全的;即,多线程通过同一个“对象的同步锁”来实现并发控制。Hashtable在线程竞争激烈时,效率比较低(此时建议使用ConcurrentHashMap)。当一个线程访问Hashtable的同步方法时,其它线程如果也在访问Hashtable的同步方法时,可能会进入阻塞状态。 Collections.synchronizedMap()使用了synchronized同步关键字来保证对Map的操作是线程安全的。 ConcurrentHashMap是线程安全的哈希表。在JDK1.7中它是通过“锁分段”来保证线程安全的,本质上也是一个“可重入的互斥锁”(ReentrantLock)。多线程对同一个片段的访问,是互斥的;但是,对于不同片段的访问,却是可以同步进行的。在JDK1.8中是通过使用CAS原子更新、volatile关键字、synchronized可重入锁实现的。
3、 完美的避开了正确答案

10、以下关于对象序列化描述正确的是

正确答案:CD

A 使用FileOutputStream可以将对象进行传输

B 使用PrintWriter可以将对象进行传输

C 使用transient修饰的变量不会被序列化

D 对象序列化的所属类需要实现Serializable接口

题解:
1、 1、答案应该是C、D。 2、能够对对象进行传输的貌似只有ObjectOutputStream和ObjectInputStream这些以Object开头的流对象。 3、D项继承Seriallizable接口是经常见到的,这毋庸置疑。 4、transient 修饰的变量在对象串化的时侯并不会将所赋值的值保存到传中,串化的对象从磁盘读取出来仍然是null。 5、这值得说下Volatile这个修饰符,它是针对多线程情况下出现的。当线程读取它修饰的变量时,都会强迫从主存中重新读取。

答案汇总:

1、正确答案:A

2、正确答案:D

3、正确答案:B

4、正确答案:D

5、正确答案:D

6、正确答案:A

7、正确答案:ABD

8、正确答案:AB

9、正确答案:AE

10、正确答案:CD

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注编程网的更多内容!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java日常练习题,每天进步一点点(62)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录