Java基础笔试练习(十四)

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

C.this()和super()可以同时出现在一个构造函数中

D.this()和super()可以在static环境中使用,包括static方法和static语句块

答案:

A

解析:

使用super()或者this()方法是必须放在构造函数的第一行

由于this函数指向的构造函数默认有super()方法,所以规定this()和super()不能同时出现在一个构造函数中。

因为staic方法或者语句块没有实例时可以使用,而此时不需要构造实例,所以不能用this()和super()

6. 不考虑反射,String类型变量所指向内存空间中的内容是不能被改变的( )


A.正确

B.错误

答案:

A

解析:

7. 如果一个接口Glass有个方法setColor(),有个类BlueGlass实现接口Glass,则在类BlueGlass中正确的是? ( )


A.protected void setColor() { …}

B.void setColor() { …}

C.public void setColor() { …}

D.以上语句都可以用在类BlueGlass中

答案:

C

解析:

JAVA 子类重写继承的方法时,不可以降低方法的访问权限,子类继承父类的访问修饰符要比父类的更大,也就是更加开放,假如我父类是protected修饰的,其子类只能是protected或者public,绝对不能是friendly(默认的访问范围)或者private,当然使用private就不是继承了。还要注意的是,继承当中子类抛出的异常必须是父类抛出的异常的子异常,或者子类抛出的异常要比父类抛出的异常要少。

8.下列命令中,用来运行 Java 程序的是()


A.java

B.javadoc

C.jar

D.javac

答案:

A

解析:

A.java用来运行一个.class文件

B.javadoc用来生成api文档

C.jar用来生成jar包

D.javac用来把.java文件编译为.class文件

9. java 语言使用的字符码集是


A.ASCII

B.BCD

C.DCB

D.Unicode

答案:

D

解析:

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

10. 如果要建立一个java.scut.computer的包,叙述正确的是?( )


A.只需在代码中加入“package java.scut.computer;”一个语句,并且必须放在代码的第一行

B.只需在代码中加入“package java.scut;”一个语句

C.必须在代码中加入“package java.scut;”和“package java.scut.computer;”两个语句

D.在代码中,不一定是第一句,只要是类定义前,加入package语句即可

答案:

A

解析:

实际上在Java语言规范中,不允许package name以“java”开头,不然会报一个java.lang.SecurityException 的错误。因为假如我们允许包名以java开头,那么我们完全可以编写和jdk标准包下一模一样的类,如Java.lang.Integer。因此在虚拟机进行类或接口解析时可能会发生冲突。一句话总结就是:假如允许包名以java开头,可能会导致命名空间污染的问题。

11. 如下代码的 结果是什么 ?


class Base {

Base() {

System.out.print(“Base”);

}

}

public class Alpha extends Base {

public static void main( String[] args ) {

new Alpha();

//调用父类无参的构造方法

new Base();

}

}

A.Base

B.BaseBase

C.编译失败

D.代码运行但没有输出

E.运行时抛出异常

答案:

B

解析:

12.假设有以下代码,下列选项中返回false的语句是:()?


String s=”hello”;

String t=”hello”;

char c[] ={‘h’,’e’,’l’,’l’,’o’};

A.s.equals(t);

B.t.equals©;

C.s==t;

D.t.equals(new String(“hello”));

答案:

B

解析:

String s=”hello”;//首先会在字符串缓冲区找找有没有hello,结果没有找到,就创建了一个hello,然后引用是s

String t=”hello”;//会在字符串缓冲区找hello,结果找到了,就返回了引用,也就是s;所以这句话等同于t=s;所以两个引用一样;所以t==s是true

Char c[] ={‘h’,’e’,’l’,’l’,o’’};//这就是一个数组,而且数组在堆上

equlse函数可以看源码!比较值相等之前会先比较类型是不是一样;如果类型一样才会比较值;如果类型不一致就直接return false;

所以综上所述:ACD返回true Bfalse

13.下列哪个说法是正确的()


A.ConcurrentHashMap使用synchronized关键字保证线程安全

B.HashMap实现了Collection接口

C.Array.asList方法返回java.util.ArrayList对象

D.SimpleDateFormat是线程不安全的

答案:

D

解析:

A、ConcurrentHashMap实际上时 HashTable的升级版,使用segment来分段和管理锁,并不是synchronized;

B、HashMap实现的接口有:Serializable, Cloneable, Map<K,V> ,没有实现Collection

C、Arrays.asList()方法返回的列表是Arrays.ArrayList类型的,并不是java.util.ArrayList;

D、正确

14. 假定Base b = new Derived(); 调用执行b.methodOne()后,输出结果是什么?


public class Base{

public void methodOne(){

System.out.print(“A”);

methodTwo();

}

public void methodTwo(){

System.out.print(“B”);

}

}

public class Derived extends Base{

public void methodOne(){

super.methodOne();

System.out.print(“C”);

}

public void methodTwo(){

System.out.print(“D”);

super.methodTwo();

}

}

A.ABDC

B.AB

C.ABCD

D.ABC

答案:

A

解析:

程序开始执行,Base b = new Derived();new了一个子类

调用执行b.methodOne()后,

第一步:因为子类重写了methodOne()方法,故调用的方法是子类的methodOne()方法

第二步:进入methodOne()方法后,执行super.methodOne();调用父类methodOne()方法 输出:A

第三步:继续执行父类methodOne()方法中的methodTwo()方法

第四步:因为子类重写了methodOne()方法,故调用的方法是子类的methodTwo()方法

第五步:调用子类methodTwo()方法,执行super.methodTwo();回到父类methodTwo()方法中 输出B

第六步:输出B后,执行子类methodTwo()中的System.out.print(“D”); 输出D

第七步:回到子类methodOne(),继续往下执行,System.out.print(“C”); 输出C

所以结果为:ABDC

15.对于子类的构造函数说明,下列叙述中错误的是( )。


A.子类不能继承父类的无参构造函数。

B.子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句。

C.在创建子类的对象时,若不含带参构造函数,将先执行父类的无参构造函数,然后再执行自己的无参构造函数。

D.子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。

答案:

D

解析:

构造函数不能被继承,构造方法只能被显式或隐式的调用。 如果说有参构造可以被继承,那么在子类中有参构造就可以被重写;那么就无法通过父类的有参构造创建对象了;所以有参构造不能被继承。

16.下面有关JSP内置对象的描述,说法错误的是?


A.session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止

B.request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应

C.application对象:多个application对象实现了用户间数据的共享,可存放全局变量

D.response对象:response对象包含了响应客户请求的有关信息

答案:

C

解析:

application对象是共享的,多个用户共享一个,以此实现数据共享和通信

JSP内置对象和属性列举如下:

1.request对象

客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。

2.response对象

response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。

3.session对象

session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例.

4.out对象

out对象是JspWriter类的实例,是向客户端输出内容常用的对象

5.page对象

page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例

6.application对象

application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。

7.exception对象

exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象

8.pageContext对象

pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本 类名也叫pageContext。

9.config对象

config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)

17.表达式(short)10/10.2*2运算后结果是什么类型?


A.short

B.int

C.double

D.float

答案:

C

解析:

强制类型转换的优先级高于+ - * /

java 黙认浮点类型为double

float数据类型有一个后缀为" f “或” F “。

long类型有一个后缀,为” l " 或者" L "。

18.下列代码执行结果为()


public static void main(String args[])throws InterruptedException{

Thread t=new Thread(new Runnable() {

public void run() {

try {

Thread.sleep(2000);

} catch (InterruptedException e) {

throw new RuntimeException(e);

}

System.out.print(“2”);

}

});

Ending

Tip:由于文章篇幅有限制,下面还有20个关于MySQL的问题,我都复盘整理成一份pdf文档了,后面的内容我就把剩下的问题的目录展示给大家看一下

如果觉得有帮助不妨【转发+点赞+关注】支持我,后续会为大家带来更多的技术类文章以及学习类文章!(阿里对MySQL底层实现以及索引实现问的很多)

吃透后这份pdf,你同样可以跟面试官侃侃而谈MySQL。其实像阿里p7岗位的需求也没那么难(但也不简单),扎实的Java基础+无短板知识面+对某几个开源技术有深度学习+阅读过源码+算法刷题,这一套下来p7岗差不多没什么问题,还是希望大家都能拿到高薪offer吧。

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
eption e) {

throw new RuntimeException(e);

}

System.out.print(“2”);

}

});

Ending

Tip:由于文章篇幅有限制,下面还有20个关于MySQL的问题,我都复盘整理成一份pdf文档了,后面的内容我就把剩下的问题的目录展示给大家看一下

如果觉得有帮助不妨【转发+点赞+关注】支持我,后续会为大家带来更多的技术类文章以及学习类文章!(阿里对MySQL底层实现以及索引实现问的很多)

[外链图片转存中…(img-d5ESzH3W-1714682067564)]

[外链图片转存中…(img-y2RVre9t-1714682067564)]

吃透后这份pdf,你同样可以跟面试官侃侃而谈MySQL。其实像阿里p7岗位的需求也没那么难(但也不简单),扎实的Java基础+无短板知识面+对某几个开源技术有深度学习+阅读过源码+算法刷题,这一套下来p7岗差不多没什么问题,还是希望大家都能拿到高薪offer吧。

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值