笔试强训总结1

作者:爱塔居

专栏:笔试强训 JavaSE

作者简介:一个普普通通的大三学生,喜欢总结和分享知识。

文章简介:通过刷题和总结的方式,对自己的知识查缺补漏,增强自己对知识的了解,增强自己的编程水平。希望大家能一起进步。

选择题

1. 在 Java 中,存放字符串常量的对象属于( )类对象。

A Character
B String
C StringBuffer
D Vector

首先解释这道题:

Character是char的包装类类型,是字符类。

String明显可以存放字符串常量类:

StringBuffer是不能存放字符串常量的,会报错。

Vector 这是一个集合类。

🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀

拓展:

我又看了别人的几篇博客,顺便联系一下他们提到的经典面试题。

(1)

String s1 = new String(“hello”) ;
String s2 = new String(“hello”) ;
以上代码创建了几个对象?

(2)String s = new String(“A”+“B”) ; 创建多少个对象?

(3)String s = new String(“ABC”) + “ABC” ; 创建多少个对象?

     研究了一会儿,觉得没必要研究。

这个问题答案特别多,我能理解的就是会先看常量池,如果没有就创建一个对象在常量池。new String也会创建一个对象。然后,有争议的点,就是引用算不算创建一个对象。然后,最开始的时候,常量池中有没有这个字符串。

我们且当引用也算是创建对象。

题(2)中,常量池创建了三次对象,"A","B","AB"

在堆区创建一次对象,引用一次对象。一共五次。

(3)在常量区,“ABC","ABCABC",创建两次对象。

堆一次,引用一次。一共四次。


2.已知如下类定义:
class Base {
public Base (){
//...
}
public Base ( int m ){
//...
}
public void fun( int n ){
//...
}
}
public class Child extends Base{
// member methods
}
如下哪句可以正确地加入子类中?

A private void fun( int n ){ //...}
B void fun ( int n ){ //... }
C protected void fun ( int n ) { //... }
D public void fun ( int n ) { //... }

这题,我是这么看的,chlid是base的子类。在子类里面,就是重写。在同一个类,重载。父类子类的关系就是重写。对比了一下,返回值类型和参数类型和个数是一样的。然后,我们还有一点就是,子类的权限要大于等于父类。父类中是public,所以只能是public了。选D。

🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇🍇

  • public: 公有成员,在任何地方都可以被访问。
  • private: 私有成员,只能在类内部被访问。
  • protected: 保护成员,在类内部和派生类中可以被访问

3. 下列选项中属于面向对象编程主要特征的是()

A 继承
B 自顶向下
C 模块化
D 逐步求精

面向对象编程主要特征的是继承、封装、多态、组合。

结构化程序设计原则:模块化、自顶向下、逐步求精。

4.关于下列程序段的输出结果,说法正确的是:( )
public class MyClass{
static int i;
public static void main(String argv[]){
System.out.println(i);
}
}

A 有错误,变量i没有初始化。
B null
C 1
D 0

成员变量没有初始化,默认给0。

成员变量是独立于方法外的变量,局部变量是类的方法中的变量。i是方法外定义的变量,属于成员变量。

注意:成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及 static修饰。

成员变量未设置初始值时,默认值:

int:0

short:0

byte:0

long:0

double:0.0

float:0.0

boolean:false

String:null

5.不考虑反射,关于私有访问控制符 private 修饰的成员变量,以下说法正确的是()

A 可以三种类所引用:该类自身、与它在同一包中的其他类,在其他包中的该类的子类
B 可以被两种类访问和引用:该类本身、该类的所有子类
C 只能被该类自身所访问和修改
D 只能被同一个包中的类访问

public:允许跨类、跨包访问。

protect:允许类本身的方法和子类访问

private:只能被该类访问。

6. 类声明中,声明一个类不能再被继承的关键字是()

A public
B abstract
C final
D static
 

public肯定可以的。abstract是抽象类,可以被继承。static是静态类,也可以被继承。

final修饰的类是无法被继承的。

7.
假设 A 类有如下定义,设 a 是 A 类的一个实例,下列语句调用哪个是错误的?()
public class A
{
public int i;
static String s;
void method1(){}
static void method2(){}
}
A System.out.println(a.i);
B a.method1();
C A.method1();
D A.method2();

Java的Static关键字的作用_嘻嘻你好呀的博客-CSDN博客

可以通过上面这篇别人的博客,重温一下static。

考察的点:static修饰的成员可以直接被类名调用。

A用实例去调用i,肯定是可以的。B用实例a,去调用method1,肯定也是可以的。

重点就在于C、D。

method2被static修饰,所以可以直接被类名A调用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值