java笔试练习题笔记(10)

news2024/11/18 6:24:16
关于继承和实现说法正确的 是 ? (    )

A.类可以实现多个接口,接口可以继承(或扩展)多个接口
B.类可以实现多个接口,接口不能继承(或扩展)多个接口
C.类和接口都可以实现多个接口
D.类和接口都不可以实现多个接口

答案解析:1.类与类之间的关系为继承,只能单继承,但可以多层继承。 2.类与接口之间的关系为实现,既可以单实现,也可以多实现。 3.接口与接口之间的关系为继承,既可以单继承,也可以多继承。



以下JAVA程序的输出是什么()
public class HelloSogou{
     public static synchronized void main(String[] a){
         Thread t=new Thread(){
             public void run(){Sogou();}
     };
     t.run();
     System.out.print("Hello");
     }
     static synchronized void Sogou(){
     System.out.print("Sogou");
    }
}
A.HelloSogou
B.SogouHello
C.Hello
D.结果不确定

答案解析:这里调用 t.run(); 并没有启动一个新的线程,启动一个新线程要用t.start(); 所以执行顺序是先执行run(),再执行 System.out.print("HELLO");


建立Statement对象的作用是?
A.连接数据库
B.声明数据库
C.执行SQL语句
D.保存查询结果

答案解析:

Class.forName("com.mysql.cj.jdbc.Driver"); // 加载JDBC驱动,注意驱动类名可能已经更新

Connection con = DriverManager.getConnection(url, user, password); // 建立连接

Statement stmt = con.createStatement(); // 创建语句执行者
int updateCount = stmt.executeUpdate("sql语句"); // 执行SQL语句,比如创建、更新、删除等
ResultSet rs = stmt.executeQuery("sql查询语句"); // 执行查询SQL语句


下面哪些Java中的流对象是字节流?

A.FileInputStream
B.BufferedInputStream
C.PushbackInputStream
D.ByteArrayInputStream

答案解析:stream结尾都是字节流,reader和writer结尾都是字符流 两者的区别就是读写的时候一个是按字节读写,一个是按字符。 实际使用通常差不多。 在读写文件需要对内容按行处理,比如比较特定字符,处理某一行数据的时候一般会选择字符流。 只是读写文件,和文件内容无关的,一般选择字节流


有一个二维数组A[10][5],每个数据元素占1个字节,且A[0][0]的存储地址是1000,则A[i][j]的地址是多少 ?
A.1000+10i+j
B.1000+i+j
C.1000+5i+j
D.1000+10i+5j

答案解析:A[5][5]的地址为:5*100*2+5*2+10=1020,千万不要忘记基址是10,不是0


以下哪一项正则能正确的匹配网址: http://www.bilibili.com/video/av21061574 ()
A./^(https?:\/\/)?([a-zA-Z\d]+).bilibili.com\/?video\/av(\D{1,8})\/?$/
B./^(http:\/\/)?(\w+)\.bilibili\.com\/?video\/av(\d{1,8})\/?$/
C./^(https?:\/\/)?(\w+)\.bilibili\.com\/?\w*$/
D./^(http:\/\/)?([a-zA-Z\d]+).bilibili.com\/?video\/av\w*\/+$/

答案解析:

首先,^表示匹配输入的开始$表示匹配输入的结束

每个选项从前向后看,http都能够严格匹配

?表示匹配某元素0次或1次,这里四个选项都没有问题,能够匹配0次或1次字符s

接下来:严格匹配,\/\/严格匹配两个//

接着往下看,[]表示字符集合,它用在正则表达式中表示匹配集合中的任一字符

A D 选项中的 [a-zA-Z\d] 表示匹配一个小写字母 或者 大写字母 或者 数字

B C 选项中的 \w 表示匹配字母数字或下划线(注意这里比A D中能多匹配下划线类型)

+表示匹配某元素1次或多次,到这里四个选项都能够完美匹配字符www

.可以匹配除了换行符\n \r外的任何字符

接下来我们看选项A,bilibili com video av都严格匹配,而 \D 表示匹配一个非数字字符而非数字字符,av后的数字是无法匹配成功的,A错误

B选项,\d匹配数字,{m,n}表示最少匹配m次,最多匹配n次,\/?能匹配末尾的0个或1个/字符,B正确

C选项,*表示匹配某元素0次或多次,但 \w 并不能匹配字符 /,C错误

D选项,前面都对,错在最后的\/+至少要匹配一个/,而原字符串最后并没有/


ServletConfig接口默认是哪里实现的?
A.Servlet
B.GenericServlet
C.HttpServlet
D.用户自定义servlet

 答案解析:


下面关于面向对象的一些理解哪些是错误的(    )
A.面向对象的最重要的特性是支持继承、封装和多态
B.系统设计应该遵循开闭原则,系统应该稳定不可修改,但应支持通过继承、组合等方式进行扩展
C.函数式的语言必然是面向对象的语言
D.面向对象设计时,每个类的职责应该单一,不要再一个类中引入过多的接口
E.过程式语言和面向对象的语言各有其优势,过程式语言更加灵活,面向对象语言更加强调抽象和封装
F.Java和C++都是静态类型的面向对象编程语言

答案解析:开闭原则确实要求系统对扩展开放,对修改关闭,意味着系统设计应该允许通过继承、组合等方式进行扩展,而不是通过修改已有代码来实现。但“系统应该稳定不可修改”这个表述容易引起误解,因为开闭原则并不反对修改,而是反对对已有代码的直接修改。

函数式编程语言和面向对象编程语言是两种不同的编程范式,它们可以独立存在,也可以结合在一起。有些语言是纯粹的函数式语言,如Haskell,而有些语言是纯粹的面向对象语言,如Smalltalk。还有一些语言,如Scala,结合了函数式和面向对象的特性。


关于 Socket 通信编程,以下描述错误的是:( )

A.服务器端通过new ServerSocket()创建TCP连接对象
B.服务器端通过TCP连接对象调用accept()方法创建通信的Socket对象
C.客户端通过new Socket()方法创建通信的Socket对象
D.客户端通过new ServerSocket()创建TCP连接对象

答案解析:

Socket套接字 

就是源Ip地址,目标IP地址,源端口号和目标端口号的组合

服务器端:ServerSocket提供的实例

ServerSocket server= new ServerSocket(端口号)

客户端:Socket提供的实例

Socket soc=new Socket(ip地址,端口号)


public interface IService {String NAME="default";}
默认类型等价表示是哪一项:
A.public String NAME="default";
B.public static String NAME="default";
C.public static final String NAME="default";
D.private String NAME="default";

答案解析:接口中的变量默认是public static final 的,方法默认是public abstract 的


在Java中,关于HashMap类的描述,以下错误的是()?
A.HashMap能够保证其中元素的顺序
B.HashMap允许将null用作值
C.HashMap允许将null用作键
D.HashMap使用键/值得形式保存数据

答案解析:HashMap是基于哈希算法来确定元素的位置(槽)的,当我们向集合中存入数据时,它会计算传入的Key的哈希值,并利用哈希值取余来确定槽的位置,与存入的先后顺序无关,所以可以认定为HashMap是无序的。


关于下面的程序,说法正确的是:

1. class StaticStuff
2 {
3.     static int x = 10;
4.
5.     static { x += 5; }
6.
7. public static void main(String args[])
8. {
9.     System.out.println(“x = ” + StaticStuff .x);
10. }
11.    static
12.     {x /= 3; }
13.}

A.第5行和12行不能编译,因为该方法没有方法名和返回值。
B.第12 行不能编译,因为只能有一个static初始化块。
C.代码编译并执行,输出结果x = 10.
D.代码编译并执行,输出结果 x = 5.
E.代码编译并执行,输出结果 x = 15.

答案解析:

执行顺序为:

  • 父类静态代码块、静态变量 ps:按声明顺序执行

  • 子类静态代码块、静态变量 ps:按声明顺序执行

  • 父类局部代码块、成员变量 ps:按声明顺序执行

  • 父类构造函数

  • 子类局部代码块、成员变量 ps:按声明顺序执行


下面代码的运行结果是()

public static void main(String[] args){
    String s;
    System.out.println("s="+s);
}

A.代码编程成功,并输出”s=”
B.代码编译成功,并输出”s=null”
C.由于String s没有初始化,代码不能编译通过。
D.代码编译成功,但捕获到NullPointException异常

答案解析:类中实例变量可以不用初始化,使用相应类型的默认值即可;方法中的定义的局部变量必须初始化,否则编译不通过。


下列哪些语句关于 java 内存回收的说明是正确的?

A.程序员必须创建一个线程来释放内存
B.内存回收程序负责释放无用内存
C.内存回收程序允许程序员直接释放内存
D.内存回收程序可以在指定的时间释放内存对象

答案解析:程序回收,一般在堆不够内存时,会调用gc释放内存。程序不能在指定时间释放。程序员不需要也不能主动释放内存,程序员不能直接释放内存,只能调用gc运行,但这是间接释放内存,也就是告诉程序要释放内存但什么时候释放是不能控制的。


下列代码的执行结果是:( )

public class Test3{
 public static void main(String args[]){
    System.out.println(100%3);
    System.out.println(100%3.0);
 }
}

A.1和1
B.1和1.0
C.1.0和1
D.1.0和1.0

答案解析:与整除符号 / 类似,在做算术运算时,若该运算符的两个元素都为整型时,结果为整型;有一个是 float 或者 double 类型时,为保留精度,系统( jvm )会对原有元素做转换,结果也会是 float 或者 double


静态内部类不可以直接访问外围类的非静态数据,而非静态内部类可以直接访问外围类的数据,包括私有数据。( )


A.正确
B.错误

答案解析:

  1. 静态内部类:

    • 静态内部类可以访问外部类的静态成员(包括静态变量和静态方法),但不能直接访问外部类的非静态成员。
    • 静态内部类不需要外部类的实例就可以被实例化,即它们不依赖于外部类的实例。
  2. 成员内部类:

    • 成员内部类可以访问外部类的所有成员,包括私有成员和私有方法。
    • 成员内部类可以定义静态成员。
    • 成员内部类依赖于外部类的实例,它们需要外部类的实例来创建。
  3. 局部内部类:

    • 局部内部类定义在方法内部,它们不能有访问修饰符(如public、private等)。
    • 局部内部类只能访问其所在的方法中定义为final的局部变量。
    • 局部内部类主要用于方法内部,不能有静态成员或方法。
  4. 匿名内部类:

    • 匿名内部类没有类名,它们是在使用时直接创建的。
    • 匿名内部类不能使用class关键字,也不能继承多个类(但可以实现多个接口)。
    • 匿名内部类不能定义静态成员或方法,因为它们没有类名来引用这些静态成员。
    • 匿名内部类只能创建一个实例,因为它们没有类名来定义多个实例。
    • 匿名内部类必须在表达式中创建,通常是在new关键字后面,并且它们必须继承一个类或实现一个接口。
    • 匿名内部类是局部内部类的一种特殊形式,因此局部内部类的所有限制同样适用于匿名内部类。


以下哪一个正则表达式不能与字符串“https://www.tensorflow.org/”(不含引号)匹配?()

A.[a-z]+://[a-z.]+/
B.https[://]www[.]tensorflow[.]org[/]
C.[https]+://www.tensorflow.org/
D.[a-zA-Z.:/]+

 答案解析:[]只能匹配一个既定字符

正则表达式的规则

1. 任意一个字符表示匹配任意对应的字符,如a匹配a,7匹配7,-匹配-。

2. []代表匹配中括号中其中任一个字符,如[abc]匹配a或b或c。

3. -在中括号里面和外面代表含义不同,如在外时,就匹配-,如果在中括号内[a-b]表示匹配26个小写字母中的任一个;[a-zA-Z]匹配大小写共52个字母中任一个;[0-9]匹配十个数字中任一个。

4. ^在中括号里面和外面含义不同,如在外时,就表示开头,如^7[0-9]表示匹配开头是7的,且第二位是任一数字的字符串;如果在中括号里面,表示除了这个字符之外的任意字符(包括数字,特殊字符),如[^abc]表示匹配出去abc之外的其他任一字符。

5. .表示匹配任意的字符。

6. \d表示数字。

7. \D表示非数字。

8. \s表示由空字符组成,[ \t\n\r\x\f]。

9. \S表示由非空字符组成,[^\s]。

10. \w表示字母、数字、下划线,[a-zA-Z0-9_]。

11. \W表示不是由字母、数字、下划线组成。

12. ?: 表示出现0次或1次。

13. +表示出现1次或多次。

14. *表示出现0次、1次或多次。

15. {n}表示出现n次。

16. {n,m}表示出现n~m次。

17. {n,}表示出现n次或n次以上。

18. XY表示X后面跟着Y,这里X和Y分别是正则表达式的一部分。

19. X|Y表示X或Y,比如"food|f"匹配的是foo(d或f),而"(food)|f"匹配的是food或f。

20. (X)子表达式,将X看做是一个整体


面向对象程序设计方法的优点包含:
A.可重用性
B.可扩展性
C.易于管理和维护
D.简单易懂

答案解析:面向对象的三大特性 A.多态 B.继承 C.封装,但不简单哦,选简单的都是什么大佬。


类声明中,声明抽象类的关键字是 ( )
A.public
B.abstract
C.final
D.class

答案解析:

public 共有类,可以在包外使用,此时,源文件名必须和类名相同。 abstract 抽象类,抽象类位于继承树的抽象层,抽象类不能被实例化。 final 不能被继承,没有子类,final类中的方法默认是final的。 class 只能在包内使用的类


关于final说法正确的是?  ( )


A.final类的方法肯定不能被同一个包的类访问
B.final类的方法能否被同一个包的类访问不是由final决定
C.final方法等同于private方法
D.final对象本身的引用和值都不能改变

答案解析:

final 修饰符

final 变量:

final 变量能被显式地初始化并且只能初始化一次。被声明为 final 的对象的引用不能指向不同的对象。但是 final 对象里的数据可以被改变。也就是说 final 对象的引用不能改变,但是里面的值可以改变。

final 修饰符通常和 static 修饰符一起使用来创建类常量。

final 方法

类中的 final 方法可以被子类继承,但是不能被子类修改。

声明 final 方法的主要目的是防止该方法的内容被修改。

final 类

final 类不能被继承,没有类能够继承 final 类的任何特性。



java 语言使用的字符码集是

A.ASCII
B.BCD
C.DCB
D.Unicode

答案解析:Java语言使用的是Unicode字符集。而ASCII是国际上使用最广泛的字符编码;BCD是一种数字压缩存储编码方法。


表达式(short)10/10.2*2运算后结果类型是()
A.short
B.int
C.double
D.float

答案解析:要注意是(short)10/10.2*2,而不是(short) (10/10.2*2),前者只是把10强转为short,又由于式子中存在浮点数,所以会对结果值进行一个自动类型的提升,浮点数默认为double,所以答案是double;后者是把计算完之后值强转short。


下面有关java的引用类型,说法正确的有?
A.被GCroot强引用=Gcroot对象来说,只要有强引用的存在,它就会一直存在于内存中
B.如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收器回收。
C.如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存
D.一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的空间

答案解析:强引用不回收,软引用内存不足时回收,弱引用JVMGC时回收,虚引用随时会被回收。

1、强引用:一个对象赋给一个引用就是强引用,比如new一个对象,一个对象被赋值一个对象。

2、软引用:用SoftReference类实现,一般不会轻易回收,只有内存不够才会回收。

3、弱引用:用WeekReference类实现,一旦垃圾回收已启动,就会回收。

4、虚引用:不能单独存在,必须和引用队列联合使用。主要作用是跟踪对象被回收的状态。

Java中四种引用详解以及对比区别_softreference-CSDN博客

图解Java 垃圾回收机制_java垃圾回收思想图解-CSDN博客

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

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

相关文章

前端开发之打印功的使用和实例(vue-print-nb)

通过插件来进行实现 前言效果图1、安装插件vue2vue32、 引入Vue项目2、 使用2.1、在项目中创建按钮并且使用v-print绑定绑定打印事件2.2、编写要打印的内容,给内容附加唯一的id2.3、绑定的时间的方法和参数3、整体代码(此代码是通过vue3来进行实现的但是逻辑都是一样的)前言…

NavVis VLX3的精度怎么去进行验证?【上海沪敖3D】

01、精度评价现状 三维捕捉行业还没有建立一个用于估算或验证移动激光扫描系统精度的统一标准。因此,需要高精度交付成果的专业人士很难相信设备所标注的精度规格,也就很难知道基于SLAM的移动激光扫描系统是否适合当前的项目。 NavVis将通过展示一种严格…

Java | Leetcode Java题解之第564题寻找最近的回文数

题目&#xff1a; 题解&#xff1a; class Solution {public String nearestPalindromic(String n) {long selfNumber Long.parseLong(n), ans -1;List<Long> candidates getCandidates(n);for (long candidate : candidates) {if (candidate ! selfNumber) {if (ans…

ES6标准-Promise对象

目录 Promise对象的含义 Promise对象的特点 Promise对象的缺点 Promise对象的基本用法 Promise对象的简单例子 Promise新建后就会立即执行 Promise对象回调函数的参数 Promise参数不会中断运行 Promise对象的then方法 Promise对象的catch()方法 Promise状态为resolv…

如何利用CSS制作导航菜单

1.利用CSS技术&#xff0c;结合链接和列表&#xff0c;设计并实现“山水之间”页面 示例代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>山水之间</title><style>.all{width:900px;}.top{width:900px;h…

Github 2024-11-17 php开源项目日报 Top10

根据Github Trendings的统计,今日(2024-11-17统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目10JavaScript项目2Nextcloud服务器:安全的数据之家 创建周期:2796 天开发语言:PHP, JavaScript协议类型:GNU Affero General Public…

【工具变量】2024-2025年地级市异质性数据、城市分组异质性数据(老工业、环境保护、人口流入、沿海等)

一、数据范围&#xff1a; &#xff08;1&#xff09;南北方城市 &#xff08;2&#xff09;东中西城市 &#xff08;3&#xff09;七大地理区、八大综合经济区 &#xff08;4&#xff09;城市群&#xff0c;长三角珠三角京津冀等 &#xff08;5&#xff09;长江流域沿岸、黄河…

响应式网页设计--css

CSS&#xff08;Cascading Style Sheets&#xff0c;层叠样式表&#xff09;是用来控制网页的外观和布局的语言。它与 HTML 一起工作&#xff0c;通过样式定义网页元素的显示方式。CSS 可以控制多种视觉效果&#xff0c;如字体、颜色、布局、间距等。 基本语法&#xff1a; C…

定时器的小应用

第一个项目 第一步&#xff0c;RCC开启时钟&#xff0c;这个基本上每个代码都是第一步&#xff0c;不用多想&#xff0c;在这里打开时钟后&#xff0c;定时器的基准时钟和整个外设的工作时钟就都会同时打开了 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);第二步&…

基于Hadoop、hive的数仓搭建实践

文章目录 架构图Hadoop搭建Hive 搭建MySQL搭建官网文档下载配置配置hive环境变量配置日志文件配置hive-site 复制mysql 驱动包删除日志包初始化元数据启动metastore服务使用hive CLI启动hiveServer2访问hiveserver2客户端连接beeline shell连接 Dbeaver连接经验 基于HDFS Hive…

跨平台WPF框架Avalonia教程 一

安装 安装 Avalonia UI 模板​ 开始使用 Avalonia 的最佳方式是使用模板创建一个应用程序。 要安装 Avalonia 模板&#xff0c;请运行以下命令&#xff1a; dotnet new install Avalonia.Templates 备注 对于 .NET 6.0 及更早版本&#xff0c;请将 install 替换为 --inst…

“fc-async”提供了基本的异步处理能力

在开发中,异步处理已经成为提升系统性能和用户体验的常用方式。然而,传统的@Async注解和基础的异步处理工具在面对复杂的任务场景时,存在局限性。这些局限性包括但不限于高并发环境下的稳定性、任务失败后的恢复机制、以及任务的监控和管理。 开源项目“fc-async”提供了基…

RGB与YCbCr转换算法

目录 RGB与YCbCr转换算法RGB与YCbCr色域介绍RGB模型YCbCr色域简介YCbCr的应用YUV 和 YCbCr 的区别 色彩转换公式 RGB 转 YCbCr 实现RGB 转 YCbCr 的 Matlab 实现RGB 转 YCbCr 的 FPGA 实现 YCbCr 转 RGB 实现YCbCr 转 RGB 的 Matlab 实现YCbCr 转 RGB 的 FPGA 实现 RGB与YCbCr转…

游戏引擎学习第八天

视频参考: https://www.bilibili.com/video/BV1ouUPYAErK/ 理解下面的代码 关于虚函数 代码分解 结构体 foo 的定义&#xff1a; struct foo {int32 X;int64 Y;virtual void Bar(int c); };foo 结构体有两个成员变量&#xff1a;X&#xff08;int32 类型&#xff09;和 Y&…

Vue2教程002:Vue指令

文章目录 2、Vue指令2.1 开发者工具2.2 v-html2.3 v-show和v-if2.4 v-else和v-else-if2.5 v-on2.5.1 内联语句2.5.2 methods 2、Vue指令 2.1 开发者工具 通过谷歌应用商店安装&#xff08;需要科学上网&#xff09;通过极简插件安装 2.2 v-html Vue会根据不同的指令&#x…

计算机视觉 ---图像模糊

1、图像模糊的作用&#xff1a; 减少噪声&#xff1a; 在图像获取过程中&#xff0c;例如通过相机拍摄或者传感器采集&#xff0c;可能会受到各种因素的干扰&#xff0c;从而引入噪声。这些噪声在图像上表现为一些孤立的、不符合图像主体内容的像素变化&#xff0c;如椒盐噪声&…

[JAVA]MyBatis框架—如何获取SqlSession对象实现数据交互(基础篇)

假设我们要查询数据库的用户信息&#xff0c;在MyBatis框架中&#xff0c;首先需要通过SqlSessionFactory创建SqlSession&#xff0c;然后才能使用SqlSession获取对应的Mapper接口&#xff0c;进而执行查询操作 在前一章我们学习了如何创建MyBatis的配置文件mybatis.config.xm…

node.js下载安装步骤整理

>> 进入node.js下载页面下载 | Node.js 中文网 >>点击 全部安装包 >>删除网址node后面部分&#xff0c;只保留如图所示部分&#xff0c;回车 >>点击进入v11.0.0/版本 >>点击下载node-v11.0.0-win-x64.zip(电脑是windows 64位操作系统适用) >…

解决IntelliJ IDEA的Plugins无法访问Marketplace去下载插件

勾选Auto-detect proxy setting并填入 https://plugins.jetbrains.com 代理URL&#xff0c;可以先做检查连接&#xff1a;

解决Jenkins使用 Git 参数插件拉取 commit 列表缓慢问题

Jenkins使用 Git 参数插件拉取 commit 列表缓慢问题 项目问题问题描述解决方案具体实现 项目问题 在 Jenkins 中使用 Git 参数插件 进行参数化构建&#xff0c;具有多方面的重要性和好处。这不仅提高了构建的灵活性和透明度&#xff0c;还能大大提升开发和运维效率。以下是使用…