面试必问

方法重载 :不属于多态
方法重写 :属于多态
构造器: 构造器名称跟类名一样
面向对象思想的三大特点:多态、封装、继承

static能修饰:

1、属性:多个对象所共用的一块内存空间;
2、方法:静态方法中只允许使用静态属性;
3、静态块:静态块中只允许使用静态属性,在类被加载时调用。

this特点 this.当前类的属性:

this关键字特点,代表当前对象的引用。(谁来调用我,我就代表谁)
1.调用本类属性
2.调用本类方法(基本、构造)
3.表示当前对象(相对概念)

super特点:

super关键字代表了父类空间的引用,而不是父类对象的引用。
super关键字的作用:
1)子父类存在着同名的成员时,在子类中默认是访问子类的成员,可以通过super关键字指定访问父类的成员。
2)创建子类对象时,默认会先调用父类无参的构造方法,可以通过super关键字指定调用父类的构造方法。

父类声明,子类实例化的特点:

多态 父类的对象变量可以引用子类的对象

抽象类特点:

可以有属性、方法、抽象方法,不能被实例化,用一个类去继承抽象类,继承时所有方法重写抽象类中的抽象方法
A:类或者方法都必须用abstract修饰。
B:具体类的在继承抽象类的时候
要么:本身也是抽象类。
要么:重写抽象类中的所有抽象方法。
C:抽象类不能实例化。要想使用,必须按照多态的方式

接口:

用intfce 接口不能被实例化

什么时候使用抽象类或什么时候使用接口:

继承时使用抽象类

集合:

List、Set、 Map (key键相当于Set集合 值相当于List集合)
Hash算法第一种解释乱序存储、另一种解释空间换时间

MVC: M是指业务模型,V是指用户界面,C则是控制器

什么是Spring 框架

Spring 的特点 IOC控制反转、 DI 即依赖注入、 AOP

SpringMVC框架;

1、是一个实现MVC思想的框架 2、主要实现负责MVC思想中控制器部分 3、是通过Listener来启动的 4、采用无是侵入式的设计方式 5、SpringMVC好处返回值非常丰富 1、ModelAndView:
2、String(包含传入参数是Model,Map,ModelMap)
3、实体类
4、void

Spring和SpringMVC的区别

Mybatis框架:

1、是一个实现MVC思想的框架 2、主要实现数据持久层的框架 3、优点:节省DAO层代码的书写、myp.xml 文件替换了DAO文件的书写、提供映射标签,支持对象与数据库的orm字段关系映射 、提供xml标签,支持编写动态sql。

$和#的区别:

都是传参、#预编译的传参方式,防止sql注入,、${}方式无法防止sql注入; mybaties排序时使用order by 动态参数时需要注意,使用${}而不用#{};

怎么介绍SSM:1、是一个实现MVC思想框架的组合 2、Spring是接口 、

SpringMVC主要实现负责MVC思想中控制器部分、Mybatis主要实现数据持久层的框架

过滤器和拦截器的区别(重点):过滤器和拦截器触发时机不一样

①拦截器是基于java的反射机制的,而过滤器是基于函数回调。
②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
⑥拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。

oracle什么是外连接:外联接可以是左向外联接、右向外联接或完整外部联接。

mysql里只有左外联接、右外联接没有

自连接:

层次模型转换到关系模型时用到自连接,

oracle里的序列 (sequence):

是oacle提供的用于产生一系列唯一数字的数据库对象。

序列有什么作用?

  1. 自动提供唯一的数值
  2. 共享对象
  3. 主要用于提供主键值
  4. 将序列值装入内存可以提高访问效率

oracle里的约束:外键、主键、唯一、检查、非空、

oracle里视图:

视图是一个虚拟表、可以进行增删改查,建议进行查的操作,不建议进行增删改操作。

oracle什么是事务(必考内容):

在数据库中事务是工作的逻辑单元,一个事务是由一个或多个完成一组的相关行为的SQL语句组成,通过事务机制确保这一组SQL语句所作的操作要么都成功执行,完成整个工作单元操作,要么一个也不执行。
oracle事务特性:原子性、一致性、隔离性、持久性

oracle索引:

自动索引 主键和唯一约束时会自动创建、手动索引经常查询时会创建索引,数据量很大查询结果很小时创建索引

分组函数:

HAVING:什么时候用
group by:有重复时要带着主键查询

单例模式(必备)为了得到同一个实例化对象

第一种形式:懒汉式,也是常用的形式。

    private static SingletonClass instance=null;
    public static synchronized SingletonClass getInstance(){
        if(instance==null){
               instance=new SingletonClass();
        }
        return instance;
    }
    private SingletonClass(){
    }
}

第二种形式:饿汉式

// java允许我们在一个类里面定义静态类。比如内部类(nested class)。
//把nested class封闭起来的类叫外部类。
//在java中,我们不能用static修饰顶级类(top level class)。
//只有内部类可以为static。
public class Singleton{
    //在自己内部定义自己的一个实例,只供内部调用
    private static final Singleton instance = new Singleton();
    private Singleton(){
        //do something
    }
    //这里提供了一个供外部访问本class的静态方法,可以直接访问
    public static Singleton getInstance(){
        return instance;
    }
}

JSP和servlet的区别:

1、JSP就是一个servlet;
2、各自的特点:
Servlet能够很好地组织业务逻辑代码,但是在Java源文件中通过字符串拼接的方式生成动态HTML内容会导致代码维护困难、可读性差
JSP虽然规避了Servlet在生成HTML内容方面的劣势,但是在HTML中混入大量、复杂的业务逻辑同样也是不可取的

什么是servlet:

是一个java类能运行在服务器上,处理客户端发送过来的请求

什么是Cookie:

Cookie就是Cookie;客户端浏览器的文本文件;是以键值对的形式存储的文本文件;它的键和值都是字符串;response.addCookie(cookie);(调用response的一个方法把Cookie传给客户端)
它是一个数据包,每次访问网站的时候浏览器都会将该网站的Cookie发回给网站服务器,同时网站也可以随意更改你机器上对应的Cookie。Cookie不是只有一个,而是一个网站一个,所以把它比喻成网络身份证的说法是不准确的。它不是你在网络中的唯一标识,只是你在某个网站的唯一标识。

什么是Session:

Session就是会话、Session可以理解是一个作用域、Session存在服务器端、实现Session有两种方式:1、依托于Cookie的形式(默认的),2、url重写的形式(当系统禁用Cookie时必须应用url重写的形式)、url重写(a href =/myServelet;jsessionid/=123)

怎么判断多个页面是否是同一个会话(Session):

如何关闭Session:关服务器端、主动销毁Session、
Session的典型应用:1、权限管理(登录、防盗连接(请登录后评论)); 2、购物车;

请求转发和重定向的区别:

请求转发,即request.getRequestDispatcher().forward(),是一种服务器的行为,客户端只有一次请求,服务器端转发后会将请求对象保存,地址栏中的URL地址不会改变,得到响应后服务器端再将响应发给客户端;
请求重定向,即response.sendRedirect(),是一种客户端行文,从本质上讲等同于两次请求,前一次请求对象不会保存,地址栏的URL地址会改变。

get请求和post请求的区别:

get请求:表单、超链接、数据传输量255个字符、不能传中文、不能文件上传
post请求:提交、数据传输量没有大小限制、可以传中文、可以文件上传

标准答案
GET在浏览器回退时是无害的,而POST会再次提交请求。
GET产生的URL地址可以被Bookmark,而POST不可以。
GET请求会被浏览器主动cache,而POST不会,除非手动设置。
GET请求只能进行url编码,而POST支持多种编码方式。
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
GET请求在URL中传送的参数是有长度限制的,而POST没有。
对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
GET参数通过URL传递,POST放在Request body中。

JSP隐式对象:

9个、输入输出对象:1.request、2.response 、3.out作用域通用对象:4.session,5.application,6.pageContext .Servlet对象:提供有关页面环境的信息(7.page,8.config) 异常类对象:处理页面中的错误(9.exception)

EL表达式隐式对象:

1、applicationScope应用程序范围内的scoped变量组成的集合
2、requestScope所有请求范围的对象的集合
3、sessionScope所有会话范围的对象的集合
4、param所有请求参数字符串组成的集合
5、paramValues所有作为字符串集合的请求参数

EL表达式的读取顺序:

el表达式取值的时候是按page,request,session,application这个顺序取值的,只要有一个有就会显示
EL表达式怎么判断name是否为空

filter过滤器:例子:中文处理

chain.dofilter:

如果有下一个filter执行下一个filter,没有下一个filter执行原请求
filter过滤器缺点:a跳转到b Servelet 的以ferword形式跳转到C filter过滤不了C

你可能感兴趣的:(面试必问)