天天看点

Java开发校招面试考点汇总

1、jsp有哪些内置对象?作用分别是什么?

答:JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):

request 用户端请求,此请求会包含来自GET/POST请求的参数

response 网页传回用户端的回应

pageContext 网页的属性是在这里管理

session 与请求有关的会话期

application servlet 正在执行的内容

out 用来传送回应的输出

config servlet的构架部件

page JSP网页本身

exception 针对错误网页,未捕捉的例外

2.Servlet的生命周期

1.创建Servlet对象,通过服务器反射机制创建Servlet对象,第一次请

求时才会创建。(默认)

2,调用Servlet对象的init()方法,初始化Servlet的信息,init()方法只会在创建后被调用一次;

3,响应请求,调用service()或者是doGet(),doPost()方法来处理请求,这些方法是运行的在多线程状态下的。

4,  在长时间没有被调用或者是服务器关闭时,会调用destroy()方法来销毁Servlet对象。

Struts2和springmvc的区别

     1.springmvc入口是一个servlet前端控制器(DispatcherServlet),struts2入口是一filter过滤器(StrutsPrepareAndExecuteFilter).

        2.struts2通过在action类中定义成员变量接收参数,(属性驱动和模型驱动),它只能使用多例模式管理action.

 springmvc通过在coontroller方法中定义形参接收参数,springmvc可以使用单例模式管理controller.      

        3.springmvc是基于方法开发的,注解开发中使用requestMapping将url和方法进行 映射,如果根据url找到controller类的方法生成一个handler处理器对象(只包括一个method).

struts2是基于类开发的,每个请求过来创建一个action实例,实例对象中有若干个方法.

开发中建议使用springmvc,springmvc方法更类似service业务方法.

        4.struts2采用值栈存储请求和相应的数据,通过OGNL存取数据,springmvc通过参数绑定期将request请求内容解析,并给方法形参赋值.

        5.struts2和springmvc的速度是相当的,由于struts2的漏洞较多,跟多企业使用springmvc

1.== 比较的是什么?

对于对象引用类型:“==”比较的是对象的内存地址。

public static void main(String[] args){

    String a = new String("aw");

    String b = new String("aw");

    String c= "aa";

    String d= "aa";

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

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

}

2.Java支持的数据类型有哪些?什么是拆装箱?

Java中有八种基本数据类型以及引用类型

基本数据类型:

byte(1字节),short(2字节),int(4字节),long(8字节),char(2字节),boolean(不确定,取值是true/false),float(4字节),double(8字节)        一个字节8位

引用数据类型:

包括string、数组,集合,字符串,接口以及类等       

自动装箱/自动拆箱

就是指基本数据类型可以和其对应包装类之间自动转换

3. 值传递与引用传递

值传递:方法调用时,实际参数把它的值的副本传递给对应的形式参数。特点:此时内存中存在两个相等的基本类型,即实际参数和形式参数,后面方法中的操作都是对形参这个值的修改,不影响实际参数的值。

引用传递:方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,函数接收的是原始值的内存地址;特点:在方法执行中,形参和实参内容相同,指向同一块内存地址,方法执行中对引用的操作将会影响到实际对象。 

4.String是基本的数据类型吗?

String不是基本的数据类型,是final修饰的java类,是引用数据类型。

5.Java中的abstract(抽象的方法和类),final ,不能被继承的类,static修饰的方法和属性

用abstract修饰的类称为抽象类:

  加abstract的方法称为抽象的方法

  抽象的类只能被继承,不能被实例化

Java开发校招面试考点汇总

  抽象的类中,方法是抽象的,不写方法体

Java开发校招面试考点汇总

       抽象的方法必须定义在抽象类中

  抽象类中的方法不一定都是抽象的方法(比如set get 方法)

  抽象类的子类必须重写父类的抽象方法,除非子类也是抽象类

  如果子类也是抽象类,可以不去实现父类的抽象方法

final:

  用final修饰的方法不能被子类重写

  用final修饰的属性可以被继承,不能被修改,称为常量属性

  用final修饰的类不能被继承,称为常量类

不能被继承的类:

  String StringBuffer  Scanner

static(用static修饰的方法和属性是类的属性和方法):

       静态方法只能访问静态数据成员; 

  在static方法中不能调用对象的属性和方法(因为对象的属性和方法在直接调用时还没有初始化,但static修饰的属性和方法不需要初始化)

Java开发校招面试考点汇总

  对象的方法可以调用static修饰的属性和方法

Java开发校招面试考点汇总

6.

public static void main(String[] args) {

    int i=1;

    System.out.println(i++);   //i=1,i++,i=2

    System.out.println(++i);   //i=3

}

7.我们在 web 应用开发过程中经常遇到输出某种编码的字 符, 如 iso8859-1 等, 如何输出一个某种编码的字符串?

public String translate (String str) {        

        String tempStr = ""; 

        try {

            tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");

            tempStr = tempStr.trim();

        }catch (Exception e) {

            System.err.println(e.getMessage());

        }

        return tempStr;

        }

8.Java中&和&&的区别

这两者都是表示逻辑与,只有当两边都是true时,返回true,只要有一个false则结果返回false。 

&&还具有短路的功能,即如果第一个表达式为 false,则不再计算第二个表达式,

&还可以用作位运算符,当&操作符两边的表达式不是 boolean 类型时, &表示按位与操作,

上一篇: JDK-面试考点
下一篇: GC-面试考点

继续阅读