软件开发----Java基础每日刷题(转载于牛客)

news2025/4/12 9:36:56

1.        对抽象类的描述正确的是()

       抽象类的方法都是抽象方法

B        一个类可以继承多个抽象类

C        抽象类不能有构造方法

D        抽象类不能被实例化

正确答案:D

解析:

A.抽象类可以有非抽象的方法,而接口中的方法都是抽象方法

B.java中类只能单继承,接口可以‘继承’多个接口

C.抽象类必须有构造方法,接口一定没有构造方法

D.实例化一般指new一个对象,所以抽象类不能实例化


2.        以下程序的执行结果是:

static boolean foo(char c){
     System.out.print(c);
     return true;
 }
 public static void main(String[] args) {
     int i =0;
     for(foo('A');foo('B')&&(i<2);foo('C')){
         i++;
         foo('D');
     }
 }

       ABDCBDCB

       ABCDABCD

C        编译时出错

D        运行时抛出异常

正确答案:A

解析:

循环开始条件只执行一次

for(循环开始条件;判断条件;循环后条件)

按照执行顺序依次执行


3.        下面代码的输出结果是什么?

public class ZeroTest {
    public static void main(String[] args) {
     try{
       int i = 100 / 0;
       System.out.print(i);
      }catch(Exception e){
       System.out.print(1);
       throw new RuntimeException();
      }finally{
       System.out.print(2);
      }
      System.out.print(3);
     }
 }

A        3

B        123

       1

       12

正确答案:D

解析:

首先执行try,遇到算术异常,抛出,执行catch,打印1,然后抛出RuntimeException,缓存异常,执行finally,打印2,然后抛出RuntimeException。

如果catch中没有抛出RuntimeException,则执行结果为123。


4.        如果希望监听TCP端口9000,服务器端应该怎样创建socket?

A        new Socket("localhost",9000);

       new ServerSocket(9000);

       new Socket(9000);

       new ServerSocket("localhost",9000);

正确答案:B

解析:

ServerSocket(int port) 是服务端绑定port端口,调accept()监听等待客户端连接,它返回一个连接队列中的一个socket。

Socket(InetAddress address , int port)是创建客户端连接主机的socket流,其中InetAddress是用来记录主机的类,port指定端口。

socket和servletSocket的交互如下图所示

详细了解,大家可以看此博客:http://www.cnblogs.com/rond/p/3565113.html


5.        以下代码的运行结果是什么(  )

class Supper{     
 public int get()    
  {          
System.out.println("Supper");         
 return 5;     
 }    
 }     
public class Sub{     
 public int get()    
 {         
 System.out.println("Sub");        
 return new Integer("5");          }      
 public static void main(String args[]) {          
 new Supper().get();        
   new Sub().get();          }   
  }

       Supper Sub

       Supper 5 Sub

       Supper 5 5 Sub

D        Supper Sub 5 5

正确答案:A

解析:

newSupper().get()和newSub().get()只调用了get()方法,又没有打印输出get()返回的数值,所以肯定没有5


6.        以下关于 abstract 关键字的说法,正确的是()

       abstract 可以与final 并列修饰同一个类。

B        abstract 类中不可以有private的成员。

       abstract 类中必须全部是abstract方法。

D        abstract 方法必须在abstract类或接口中。

正确答案:D

解析:

1abstract类不能与final,static使用。final修饰方法,子类可以调用,但不能覆盖。

2最好不要有private因为私有和抽象放在一起,子类如果想重写父类的私有方法根本继承不过来,也就无法重写

3抽象类中可以有非抽象方法

4抽象类中可以都是非抽象的,但是抽象方法一定要在类和接口中。


7.        如下代码的输出结果是什么?

public class Test {

    public int aMethod(){

        static int i = 0;

        i++;

        return i;

    }

public static void main(String args[]){

    Test test = new Test();

    test.aMethod();

    int j = test.aMethod();

    System.out.println(j);

    }

}

A        0

B        1

C        2

       编译失败

正确答案:D

解析:

静态变量只能定义在类中,不能定义在方法中。因为被static修饰的变量在类加载时候就已经被加载了,它属于整个类,被这个类的所有对象共享。而成员方法属于对象(类的实例),每个对象都有自己的一份拷贝。


8.        下面代码输出结果是?

class C {

    C() {

        System.out.print("C");

    }

}



class A {

    C c = new C();



    A() {

        this("A");

        System.out.print("A");

    }



    A(String s) {

        System.out.print(s);

    }

}



class Test extends A {

    Test() {

        super("B");

        System.out.print("B");

    }



    public static void main(String[] args) {

        new Test();

    }

}

       BB

B        CBB

C        BAB

       None of the above

正确答案:B

解析:

考察类的加载顺序:

父类静态成员变量、静态块>子类静态成员变量、 静态块>父类普通成员变量、非静态块>父类构造函数>子类 普通成员变量、非静态块>子类构造函数

这题最大的坑在于,会不会调用父类(A)的无参构造。

因为Test已经显式调用了super("B"),所以会直接调用A的有参构造。

如果删除super("B"),系统才会默认调用父类无参构造,此时答案为:CAAB。


9.        实现或继承了Collection接口的是()

       Map

       List

C        Vector

       Iterator

E        Set

正确答案:BCE

解析:


10.        关于下面代码 int[] x=new int[25]; 描述正确的是()

A        x[25]存放了数据“\0”。

B        x[24] 存放了数据“\0”。

C        若访问x[25],程序将抛出异常。

D        x[1]访问此数组的第一个元素。

正确答案:C

解析:

A、x不存在第25个下标,不存放数据“\0”;
B、x[24]不存放数据“\0”,初始值为0;
C、若访问x[25],程序将抛出异常——数组越界。
D、x[0]访问此数组的第一个元素。


11.        关于ASCII码和ANSI码,以下说法不正确的是()

A        标准ASCII只使用7个bit

B        在简体中文的Windows系统中,ANSI就是GB2312

C        ASCII码是ANSI码的子集

D        ASCII码都是可打印字符

正确答案:D

解析:

A、标准ASCII只使用7个bit,扩展的ASCII使用8个bit。

B、ANSI通常使用 0x00~0x7f 范围的1 个字节来表示 1 个英文字符。超出此范围的使用0x80~0xFFFF来编码,即扩展的ASCII编码。不同 ANSI 编码之间互不兼容。在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码;在繁体中文Windows操作系统中,ANSI编码代表Big5;在日文Windows操作系统中,ANSI 编码代表 Shift_JIS 编码。

C、ANSI通常使用 0x00~0x7f 范围的1 个字节来表示 1 个英文字符,即ASCII码

D、ASCII码包含一些特殊空字符


12.        检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果。

package algorithms.com.guan.javajicu; 

public class Inc { 

    public static void main(String[] args) { 

       Inc inc = new Inc(); 

       int i = 0; 

       inc.fermin(i); 

       i= i ++; 

       System.out.println(i);

    

    } 

    void fermin(int i){ 

       i++; 

    } 

}

A        0

B        1

C        2

D        3

正确答案:A

解析:

本人的讲解比较简单明了(初学者也可以看懂),如有不对的地方请各路大神指点。

i++      先赋值在计算结果;

++i      先计算结果再赋值。

int i = 0;  
       i = i ++;  // 左边这个i其实是障眼法,就是一个中间变量,可以和下行的i合并;
       System.out.println(i);   这里等价于:

int i = 0;

       System.out.println(i++);   这下再看,先赋值(先将i传给println函数打印出来,在计算表达式结果)

所以打印出来的是0,实际上整个表达式的结果已经是1了,只是没有打印出整个表达式的结果。

所以我们知道如下结论:

1、无论怎么变,i++和++i的整个表达式的结果都是1.

2、有时我们打印的是表达式的结果(System.out.println(++i)),

      有时我们打印的只是一个中间变量(System.out.println(i++))。

Ps:

int i = 0;  

i++;

System.out.println(i);  //值为1    打印的是表达式的结果

int i = 0;  

++i;

System.out.println(i);  //值为1     打印的是表达式的结果 

int i = 0;  

i = i++;

System.out.println(i);  //值为0      打印的是中间变量(JVM中间缓存变量机制)

int i = 0;  

i = ++i;

System.out.println(i);  //值为1    打印的是表达式的结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2214470.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flythings学习(三)界面交互

文章目录 1 界面切换1.1 打开界面1.2 关闭界面 2 界面活动周期2.1 打开不存在页面的活动流程2.2 打开已存在界面&#xff08;被隐藏的界面&#xff09;2.3 关闭界面的流程 1 界面切换 界面切换的相关函数如下 1.1 打开界面 如果需要打开一个界面&#xff0c;在其他界面的控件…

WebSocket状态码及异常报错1006

文章目录 1.WebSocket协议简介2.WebSocket状态码的作用&#xff1a;3.WebSocket状态码1006详解1.问题原因2.解决方案 1.WebSocket协议简介 WebSocket协议是一种基于TCP的协议&#xff0c;它通过在浏览器和服务器之间建立一条持久的双向通信通道&#xff0c;实现了实时的数据传…

【论文阅读】SAM 2: 分割一切图像和视频

导言 继SAM模型发布以来&#xff0c;Meta公司于2024年8月发布第二个图像分割大模型SAM2。相较于第一代SAM模型&#xff0c;论文提出了第二代“分割任意物体模型” (SAM 2)&#xff0c;旨在解决视频中的可提示视觉分割任务&#xff08;Promptable Visual Segmentation, PVS&…

TVS常规过压保护

一、前言 上一篇文章 TVS选型-CSDN博客https://blog.csdn.net/qq_39543984/article/details/142825929?spm=1001.2014.3001.5501我们介绍了如何通过理论计算选择合适的TVS,TVS主要是防止瞬间过压,因为他的名字就叫瞬态二极管(Transient Voltage Suppressor)。本文就通过理…

自动化检查网页的TDK,python+selenium自动化测试web的网页源代码中的title,Description,Keywords

首先&#xff0c;TDK是什么&#xff1f;对于新手小白来说&#xff0c;可能是懵逼的&#xff0c;所以这里给出一个官方的解说‌网页的TDK是指标题&#xff08;Title&#xff09;、描述&#xff08;Description&#xff09;和关键词&#xff08;Keywords&#xff09;的集合‌。这…

智慧船舶物联网实训室建设方案

第一章 建设背景 随着全球海洋经济的蓬勃发展与智能化技术的日新月异&#xff0c;数字船舶物联网&#xff08;Internet of Things for Maritime, IoT-Maritime&#xff09;与人工智能&#xff08;Artificial Intelligence, AI&#xff09;的结合已成为推动航运业转型升级的关键…

企业资源枯竭时,数字化转型能否带来新资源?

​在商业竞争激烈的当下&#xff0c;企业发展依赖各类资源。然而&#xff0c;资源可能面临枯竭&#xff0c;如原材料短缺、市场份额下降、人才流失等。此时&#xff0c;数字化转型成为企业突破困境的重要途径&#xff0c;那么它能否带来新资源呢&#xff1f; 先看企业资源分类。…

C++,STL 031(24.10.14)

内容 stack容器&#xff08;栈&#xff09;的常用接口。 代码 #include <iostream> #include <stack> // 注意包含stack容器&#xff08;栈&#xff09;的头文件using namespace std;void test01() {stack<int> s1; // here01&#xff0c;默认构造stack<…

5g工业路由器最新案例:高原气象站网络升级项目

背景&#xff1a; 某省气象局决定在高原地区升级其气象观测网络&#xff0c;以提高天气预报的准确性和及时性&#xff0c;同时为气候变化研究提供更可靠的数据支持。该项目面临以下挑战&#xff1a; 需要在高原广袤且地形复杂的区域部署大量自动气象站&#xff0c;要求网络覆…

pytorh学习笔记——手写数字识别mnist

pytorh学习第二站&#xff1a;手写数字识别 一、训练程序 1、创建脚本框架mnist_demo.py&#xff1a; import torch import torchvision.datasets as dataset# data # 定义数据# net # 定义网络# loss # 损失# optimizer # 优化# training # 训练# test # 测试# save# 保…

uniapp onPageScroll

子组件有onPageScroll, 首页也要引入onPageScroll, eg: 主页面 sell/detail/index 《子组件》 <script setup> 引入onPageScroll </script> 组件&#xff1a; 引入onPageScroll 别人的比较

智能健康顾问:基于SpringBoot的系统

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

Pytorch——pip下载安装pytorch慢的解决办法

一、找到需要下载的pytorch链接 运行&#xff1a;pip install torch1.11.0cu113 torchvision0.12.0cu113 torchaudio0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113。然后得到&#xff1a; 我这里为&#xff1a;https://download.pytorch.org/whl/cu113/t…

Odin插件基本使用

介绍 Odin Inspector是Unity的一个插件&#xff0c;让您可以享受拥有强大&#xff0c;自定义和用户友好编辑器的所有工作流程优势&#xff0c;而无需编写任何自定义编辑器代码。 安装 需要有对应的unity包或者去官网或者资源商店下载 官方网址 Odin Inspector and Seriali…

DAY47WEB 攻防-PHP 应用文件上传函数缺陷条件竞争二次渲染黑白名单JS 绕过

1、PHP-原生态-文件上传-检测后缀&黑白名单2、PHP-原生态-文件上传-检测信息&类型内容3、PHP-原生态-文件上传-函数缺陷&逻辑缺陷4、PHP-原生态-文件上传-版本缺陷&配置缺陷 文件上传安全指的是攻击者通过利用上传实现后门的写入连接后门进行权限控制的安全问题…

接口中的静态常量在项目中的使用,以及固长列表和变长列表

先来看一段代码 public interface WrapIgnoreList {List<String> KNIFE4J Arrays.asList("/doc.html","/swagger-resources","/swagger-resources/configuration","/v3/api-docs","/v2/api-docs","/webjars/**…

ApplicationContext获取对象时注解丢失问题及 Arthas 验证方法

引言 在使用 Spring 框架时遇到的一个常见问题&#xff1a;通过 ApplicationContext 获取到的对象无法获取到注解。 本文的目的&#xff1a;探讨这个问题的原因&#xff0c;并展示如何使用 Arthas 工具来验证和解决问题。 问题描述 描述具体的问题场景&#xff1a;通过 Appli…

MySQL—关于数据库的CRUD—(增删改查)

文章目录 关于数据库的使用&#xff1a;1. 数据库的背景知识&#xff1a;2. MYSQL数据库软件的使用&#xff08;MYSQL安装的问题在另一篇博客中讲解&#xff09;。&#xff08;1&#xff09;启动MYSQL数据库软件&#xff08;2&#xff09;开始使用数据库程序&#xff1a;1&…

【微信小程序_13_页面配置与网络数据请】

摘要:本文介绍了微信小程序的页面配置与网络数据请求。页面配置文件可对单个页面进行个性化设置,与全局配置冲突时以页面配置为准。网络数据请求有严格限制,包括只能用 HTTPS 接口并添加到信任列表。可通过wx.request()发起 GET 和 POST 请求,能在页面加载时自动请求数据。…

机器学习-决策树详解

决策树 决策树简介 学习目标 1.理解决策树算法的基本思想 2.知道构建决策树的步骤 【理解】决策树例子 决策树算法是一种监督学习算法&#xff0c;英文是Decision tree。 决策树思想的来源非常朴素&#xff0c;试想每个人的大脑都有类似于if-else这样的逻辑判断&#xff…