个人整理JAVA笔试错题——语法基础部分

目录

文章目录

##java面试错题总结

以下是我的错题总结:

1.类A1和类A2在同一包中,类A2有个protected的方法testA2,类A1不是类A2的子类(或子类的子类),类A1可以访问类A2的方法testA2。( )
正确答案: A 你的答案: A (正确)
: A. 正确
: B. 错误

  • 解析
    这里写图片描述

2.Java中equal和==的区别是什么?

public class Test1{
    public static void main(String args[]){
            String a="1234";
            String b="1234";
            String c = new String("1234");
            System.out.println(a==b);
            System.out.println(a==c);
            System.out.println(a.equals(c));
    }
}
正确答案: A 你的答案: A (正确)
A.true,false,true
:B.true,true,false
:C.true,false,false
😄.true,true,true
- 解析:
A.第一次String a="1234"时,会在常量池中创建一个常量1234,String b=1234时,常量池中已经有了该常量,所以直接取,a和b的地址一样,所以地址值相等;String c = newString(“1234”)重新new了对象,在堆内存中开辟了新的空间,所以地址值不想等,而equals方法比较的是值是否相等

3.ArrayList和Vector主要区别是什么?

正确答案: A 你的答案: C (错误)
A.Vector与ArrayList一样,也是通过数组实现的,不同的是Vector支持: 线程的同步
B.Vector与ArrayList一样,也是通过数组实现的,不同的是ArrayList支持线程的同步
C.Vector是通过链表结构存储数据,ArrayList是通过数组存储数据
D.上述说法都不正确
  • 解析:
    Vector & ArrayList 的主要区别
    1) 同步性:Vector是线程安全的,也就是说是同步的 ,而ArrayList 是线程序不安全的,不是同步的 数2。
    2)数据增长:当需要增长时,Vector默认增长为原来一倍 ,而ArrayList却是原来的50% ,这样,ArrayList就有利于节约内存空间。
    如果涉及到堆栈,队列等操作,应该考虑用Vector,如果需要快速随机访问元素,应该使用ArrayList 。

  • 扩展知识:

  1. Hashtable & HashMap
    Hashtable和HashMap它们的性能方面的比较类似 Vector和ArrayList,比如Hashtable的方法是同步的,而HashMap的不是。

  2. ArrayList & LinkedList
    ArrayList的内部实现是基于内部数组Object[],所以从概念上讲,它更象数组,但LinkedList的内部实现是基于一组连接的记录,所以,它更象一个链表结构,所以,它们在性能上有很大的差别:
    从上面的分析可知,在ArrayList的前面或中间插入数据时,你必须将其后的所有数据相应的后移,这样必然要花费较多时间,所以,当你的操作是在一列数据的后面添加数据而不是在前面或中间,并且需要随机地访问其中的元素时,使用ArrayList会提供比较好的性能; 而访问链表中的某个元素时,就必须从链表的一端开始沿着连接方向一个一个元素地去查找,直到找到所需的元素为止,所以,当你的操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用LinkedList了。


4.关于下列程序段的输出结果,说法正确的是:( )

public class MyClass{
	static int i;
public static void main(String argv[]){
	System.out.println(i);
	}
}
正确答案: D 你的答案: A (错误)
A.有错误,变量i没有初始化。
B.null
C.1
D.0
  • 解析:
    类变量在不设置初始值时,会进行默认值赋值,而局部方法中声明的变量则必须进行初始化,他不会进行默认值赋值。

5.下列语句正确的是:
正确答案: D 你的答案: C (错误)
: A.形式参数可被字段修饰符修饰
: B.形式参数不可以是对象
: C.形式参数为方法被调用时真正被传递的参数
: D.形式参数可被视为local variable

  • 解析:
    在Java中修饰符总共有一下几种:
    1.访问控制修饰符
    分别有:public private protected,缺省
    2.其它修饰符
    分别有:abstract,final,static,native,synchronized,transient,volatile等 对于形式参数只能用final修饰符,其它任何修饰符都会引起编译器错误 。但是用这个修饰符也有一定的限制,就是在方法中不能对参数做任何修改。不过一般情况下,一个方法的形参不用final修饰。只有在特殊情况下,那就是:方法内部类。 一个方法内的内部类如果使用了这个方法的参数或者局部变量的话,这个参数或局部变量应该是final。
    通过以上分析,你应该知道答案了吧。因为字段修饰符包括很多(上面写的),但是方法修饰符只能用final这一个修饰符。所以说这句话不对。
    参数可以是值也可以是对象,且实参才是真正被传递的参数,形参就像局部变量

6.下面属于JSP内置对象的是?

正确答案: A B C D 你的答案: B C D (错误)
A.out对象
B.response对象
C.application对象
D.page对象
  • 解析:
    一共有9个内置对象
    pageContext javax.servlet.jsp.PageContext
    request javax.servlet.http.HttpServletRequest
    response javax.servlet.http.HttpServletResponse
    session javax.servlet.http.HttpSession
    application javax.servlet.ServletContext
    config javax.serlvet.ServletConfig
    exception java.lang.Throwable
    page java.lang.Object
    out javax.servlet.jsp.JspWriter
    作用:
    1、pageContext 表示页容器 EL表达式、 标签 、上传
    2、request 服务器端取得客户端的信息:头信息 、Cookie 、请求参数 ,最大用处在MVC设计模式上
    3、response 服务器端回应客户端信息:Cookie、重定向
    4、session 表示每一个用户,用于登录验证上
    5、application 表示整个服务器
    6、config 取得初始化参数,初始化参数在web.xml文件中配置
    7、exception 表示的是错误页的处理操作
    8、page 如同this一样,代表整个jsp页面自身
    9、out 输出 ,但是尽量使用表达式输出

7.Model-View-Controller(MVC) is an architectural pattern that frequently used in web applications. Which of the following statement(s) is(are) correct?
正确答案: A B C 你的答案: B C (错误)
: A.Models often represent data and the business logics needed to manipulate the data in the application
B.A view is a (visual) representation of its model. It renders the model into a form suitable for interaction, typically a user interface element
C.A controller is the link between a user and the system. It accepts input from the user and instructs the model and a view to perform actions based on that input
D.The common practice of MVC in web applications is, the model receives GET or POST input from user and decides what to do with it, handing over to controller and which hand control to views(HTML-generating components)
E.None of the above

  • 解析:
    模型(model)它是应用程序的主体部分,主要包括业务逻辑模块(web项目中的Action,dao类)和数据模块(pojo类)。模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性
    视图(view) 用户与之交互的界面、在web中视图一般由jsp,html组成
    控制器(controller)接收来自界面的请求 并交给模型进行处理 在这个过程中控制器不做任何处理只是起到了一个连接的作用。 本题中显然D错误,应该是控制器接收请求,并将其交给模型进行处理,正确答案为A,B,C.

8.下面选项中,哪些是interface中合法方法定义?()
正确答案: A C D 你的答案: A C D (正确)
: A.public void main(String [] args);
B.private int getSum();
C.boolean setFlag(Boolean [] test);
D.public float get(int x);

  • 解析:
    interface中的方法默认为public abstract 的 ,变量默认为public static final
    java程序的入口必须是static类型的,接口中不允许有static类型的方法。A项没有static修饰符,可以作为普通的方法。而且接口中的方法必须是public的。想想借口就是为了让别人实现的,相当于标准,标准不允许别人使用是不合理的,所以接口中的方法必须是public。C项中,接口中的方法默认是public的。D项属于正常的方法。所以答案是:ACD

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值