校招选择题汇总【JavaSE(1)】含答案解析

2024-05-08 18:18

本文主要是介绍校招选择题汇总【JavaSE(1)】含答案解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目1

答案:D

java常见修饰符

权限修饰符:

private :        修饰私有变量

默认修饰符default(不用把default写出来): 比private限制更少,但比protected限制更多

protected:    修饰受保护变量

public :         修饰公有变量

状态修饰符:

final 最终变量(final修饰类,该类不能被继承,final修饰方法,该方法不能被重写,final修饰变量,该变量不能被重新赋值(相当于常量))

static 静态变量(随着类的加载而加载,优先于对象存在,被所有对象所共享,可以通过类名调用)

抽象修饰符:

abstract 抽象类&抽象方法(抽象类不能被实例化,抽象类中不一定有抽象方法,但有抽象方法的类必须定义为抽象类)

题目2

答案A

在Java7之前,switch只能支持 byte、short、char、int或者其对应的封装类以及Enum类型。在Java7中,呼吁很久的String支持也终于被加上了。

在switch语句中,表达式的值不能是null,否则会在运行时抛出NullPointerException。在case子句中也不能使用null,否则会出现编译错误。

同时,case字句的值是不能重复的。对于字符串类型的也一样,但是字符串中可以包含Unicode转义字符。重复值的检查是在Java编译器对Java源代码进行相关的词法转换之后才进行的。也就是说,有些case字句的值虽然在源代码中看起来是不同的,但是经词法转换之后是一样的,就会在成编译错误。比如:“男”和“\u7537”就是一个意思。

題目3

答案:B

c1 = new Cat(10L);
c2 = new Cat(10L);

A c1和c2是两个参数相同的不同对象,c1!=c2,返回false

B c2和c3指向同一个引用,所以c2==c3,返回true

C m与c1是不同类型,不相等,返回false

D c1没有定义equals方法,默认调用Object类的equals方法,返回false

题目4

答案:A

A是静态方法,可以直接用如下形式调用 Test.method(); 

B是普通public方法,必须实例化类,Test test = new Test(); test.method(); 

C是protected方法,用法同B,只是对于其他的外部class,protected就变成private; 

D是抽象方法,必须被子类继承并重写,然后调用的方式同B。 

题目5

答案:D

for(i=1;i<=5;i++) 这样理解就好了,sum是1+2+3+4+5;

题目6

答案:D

数组初始化有三种方式:

  1. 动态初始化:数组定义与为数组分配空间和赋值的操作分开进行;
  2. 静态初始化:在定义数字的同时就为数组元素分配空间并赋值;
  3. 默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    public class Test {

     public static void main(String[] args) {

         //动态初始化

         int[] a;//int a[];两者都可以

         a = new int[10];

         a[0] = 0;

         a[1] = 1;

         a[2] = 2;

         //静态初始化

         int[] b = {0, 1, 2};//int b[] = {0, 1, 2};两者都可以

         //默认初始化

         int[] c = new int[10];//int c[] = new int[10];两者都可以

     }

    }

题目7

答案:C

B、D不是线程的方法。

A、线程开启的方法,线程状态从new变成了runnable。下图是线程的状态转换图。

 

题目8

答案:B

this(x),这种形式的调用就ok

题目9

答案:B

JVM是Java Virtual Machine(Java 虚拟机 )的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

简单来看,虚拟机本质就是一个进程。模拟平台操作的一个进程。

题目10

答案:A

构造方法 必须满足以下语法规则:
(1)方法名必须与类名相同;
(2)不要声明返回类型;
(3)不能被static、final、synchronized、abstract和native修饰;
(4)构造方法用final和abstract修饰没有意义。

题目11

答案:D

继承具有传递性,子类可以无条件向上转型!

题目12

答案:B

在接口里面的变量默认都是public static final 的,它们是公共的,静态的,最终的常量.相当于全局常量,可以直接省略修饰符。

实现类可以直接访问接口中的变量

题目13

答案:B

字符用单引号,字符串用双引号,与引号中的内容无关

题目14

答案:A

这道题考的不是知识掌握能力,而是审题!!!!

题目15

答案:A

这题目C选项其实是if(i>10) throw new Exception e("something’swrong!"); 考察的点是是否需要给Exception起名字 而不是楼上那些说题目故意加个e的

题目16

答案:D

1)不论有什么运算,小括号的优先级都是最高的,先计算小括号中的运算,得到x+y +""+25+y

2)任何字符与字符串相加都是字符串,但是是有顺序的,字符串前面的按原来的格式相加,字符串后面的都按字符串相加,得到25+“”+25+5

3)上面的结果按字符串相加得到25255

题目17

答案:E

i++是先取值再加,所以第一个括号里表达式值为5,出了括号后i的值为6

++i 是先加再取值,所以第二个括号里表达式的值相当于6+1之后取值为7,出了括号后i的值为7

i--是先取值再减,所以第三个括号里表达式值为7,出了括号后i的值为6

--i是先减再取值,所以第四个括号里表达式的值相当于6-1之后取值为5,出了括号后i的值为5

综上s=5+7+7+5=24,答案为E

题目18

答案:D

同步是害怕在操作过程的时候被其他线程也进行读取操作,一旦是原子性的操作就不会发生这种情况。

因为一步到位的操作,其他线程不可能在中间干涉。另外三项都有读取、操作两个步骤,而X=1则是原子性操作。

题目19

答案:B

考察值传递和引用传递。对于值传递,拷贝的值用完之后就会被释放,对原值没有任何影响,但是对于引用传递,拷贝的是对象的引用,和原值指向的同一块地址,即操作的是同一个对象,所以操作之间会相互影响

所以对于String str是值传递,操作之间互不影响,原值保持不变。而ch是数组,拷贝的是对象的引用,值发生了改变,因此选择B

题目20

答案:B

java丢弃了指针。

java的立即回收不是程序结束后回收垃圾,在程序过程中就会,如对象呗赋值NULL,该对象就成为可回收对象。

题目21

答案:A

forward和redirect是最常问的两个问题

forward,服务器获取跳转页面内容传给用户,用户地址栏不变

redirect,是服务器向用户发送转向的地址,redirect后地址栏变成新的地址

因此这个题是A

题目22

答案:B

 

private

default

protected

public

同一个类中

同一个包中

 

子类中

 

 

全局范围内

 

 

 

( 1 )对于外部类而言,它也可以使用访问控制符修饰,但外部类只能有两种访问控制级别: public 和默认。因为外部类没有处于任何类的内部,也就没有其所在类的内部、所在类的子类两个范围,因此 private 和 protected 访问控制符对外部类没有意义。

( 2 )内部类的上一级程序单元是外部类,它具有 4 个作用域:同一个类( private )、同一个包( protected )和任何位置( public )。

( 3 ) 因为局部成员的作用域是所在方法,其他程序单元永远不可能访问另一个方法中的局部变量,所以所有的局部成员都不能使用访问控制修饰符修饰。

题目23

答案:A

short类型转为byte类型出错

a1*a2结果为int类型,转为byte类型出错

题目24

答案:C

枚举类有三个实例,故调用三次构造方法,打印三次It is a account type

题目25

答案:B

执行obj.wait();时已释放了锁,所以t2可以再次获得锁,然后发消息通知t1执行,但这时t2还没有释放锁,所以肯定是执行t2,然后释放锁,之后t1才有机会执行。

题目26

答案:ABCD

 
1、加载JDBC驱动程序:
2、提供JDBC连接的URL   
3、创建数据库的连接   
4、创建一个Statement   
5、执行SQL语句   
6、处理结果   
7关闭JDBC对象    

题目27

答案:CD

简单记忆线程安全的集合类: 喂!SHE!  喂是指  vector,S是指 stack, H是指    hashtable,E是指:Eenumeration

题目28

答案:CDE

1

2

3

4

Integer a = 1000, b = 1000; 

System.out.println(a == b);//1 false

Integer c = 100, d = 100; 

System.out.println(c == d);//2 true


Integer a = 1000  它的内部就是这样的:   Integer i = Integer.valueOf(100);

而valueOf方法内部会去取缓存(默认范围 [-128, 127]) ,不会创建新对象。

题目29

答案:CD

A错,调用Base这个构造方法应该这样  new Base(a,b)
B错,和C相比应该是分号不是逗号,帅的一塌糊涂
C正常赋值操作
D调用本类的构造方法

题目30

答案:ABD

1、自旋锁 ,自旋,jvm默认是10次吧,有jvm自己控制。for去争取锁

2、阻塞锁 被阻塞的线程,不会争夺锁。

3、可重入锁 多次进入改锁的域

4、读写锁

5、互斥锁 锁本身就是互斥的

6、悲观锁 不相信,这里会是安全的,必须全部上锁

7、乐观锁 相信,这里是安全的。

8、公平锁 有优先级的锁

9、非公平锁 无优先级的锁

10、偏向锁 无竞争不锁,有竞争挂起,转为轻量锁

11、对象锁 锁住对象

12、线程锁

13、锁粗化 多锁变成一个,自己处理

14、轻量级锁 CAS 实现

15、锁消除 偏向锁就是锁消除的一种

16、锁膨胀 jvm实现,锁粗化

17、信号量 使用阻塞锁 实现的一种策略

18、排它锁:X锁,若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。这就保证了其他事务在T释放A上的锁之前不能再读取和修改A。

这篇关于校招选择题汇总【JavaSE(1)】含答案解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/971067

相关文章

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

全面解析Golang 中的 Gorilla CORS 中间件正确用法

《全面解析Golang中的GorillaCORS中间件正确用法》Golang中使用gorilla/mux路由器配合rs/cors中间件库可以优雅地解决这个问题,然而,很多人刚开始使用时会遇到配... 目录如何让 golang 中的 Gorilla CORS 中间件正确工作一、基础依赖二、错误用法(很多人一开

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与