校招选择题汇总【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 + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Java中StopWatch的使用示例详解

《Java中StopWatch的使用示例详解》stopWatch是org.springframework.util包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比,这篇文章主要介绍... 目录stopWatch 是org.springframework.util 包下的一个工具类,使用它

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一