程序员面试的几个常见的问题(1)

1.什么是面向对象?

对于面向对象,它是java程序的一种编程思想。

那么它有四种基本特征:

抽象、封装、继承、多态

抽象:抽象可以分为抽象类和抽象方法;抽象类①使用abstract关键字来定义抽象类②抽象类能被继承③抽象类不能实例化(即不能创建抽象类的实例,但是可以先实例化抽象类的子类,然后将子类对象赋值给抽象类的对象)抽象方法:①抽象方法没有方法体②抽象方法必须定义在抽象类中,在其他类中不能定义抽象方法。

封装:封装就是有private访问修饰符修饰的属性或者是方法,不能直接被外部类的实例化对象访问,这就是一个很好的封装。

class Car{
  private String CarName;//属性被封装
//get set 方法可以访问
}

继承:一般是子类去继承一个父类,那么子类拥有父类一切非私有化的属性和方法。使用继承是为了减少代码的冗余性,增强了代码的可扩展性。

它的特性:①传递性:子类可以调用父类以及父类以上所有父类的属性和方法②单根性:一个子类不能同时继承两个或两个以上的父类。

多态:同一种事物的不同种表现形式。java中实现多态的机制是重写、重载、父类的声明指向子类的对象。

2.谈谈你对接口的理解?

接口(interface)是一种规范,一种约束,而实现类必须去遵守这些规范编写方法;接口本身不继承Object;接口相比抽象类,接口更加纯抽象;接口无法实例化被使用,但是可以被普通的类所实现;在我们编程的过程中,一个类可以通过implements关键字去实现一个接口,类如果实现了一个接口,就必须实现接口中所有的方法。优点:①接口为了让设计与实现分离②使用接口为了能够达到方便更换实现的目的,更好的开发时屏蔽不同实现。

3.什么是IOC、AOP?

IOC和AOP都是spring轻量级框架的编程思想,IOC是spring的核心,是用来管理控制对象的生命周期和对象之间的关系,通过配置文件进行注入,很好的实现了对象与对象之间解耦。IOC工作原理:IOC实现了工厂模式,通过读取application.xml配置文件中的<bean>标签的类,注入到IOC容器中,通过构造器或set方法注入,产生BeanFactory,BeanFactory通过getBean方法获取对象;AOP称为面向切面编程,可以动态的将主线业务逻辑代码与实现功能代码分离,并且方便记录日志、异常的处理。层次清晰,方便后期的维护。

4.什么是ORM?

ORM 是对象关系映射,类对应着表,属性对应着表中的列,对象对应着表中的每一条数据,对象关系映射是为了解决面向对象与关系数据库之间互不匹配现象的技术。优点:使我们编程的思想更加面向对象了,不用去考虑关系数据库。

5.谈谈你对转发和重定向的理解?

转发:request.getRequestDispatcher(地址).forward(request,response)

转发会把参数继续传递到下一个被转发的页面,可以无限传递下去,直到产生一个新的请求;

转发不会改变URL地址栏,显示的是被请求的路径位置,不会显示转发后的路径;

转发只发出一次请求,得到一次响应,效率更高。

重定向:response.sendRedirect(地址)

重定向不会把上一次的请求的参数传递到下一个页面中,但是重定向可以通过get方式,也就拼接URL的形式拼接参数传递;

重定向会改变地址栏,显示重定向后的页面的路径;

重定向多次请求,多次响应,效率低。


 


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈说技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值