“一句话”面试题——java基础

引言

    该面试题都是我个人的理解,如果有理解偏差的,欢迎大家指出来,一起相互探讨。

面试题

1、面向对象的特征

继承、封装、多态。
继承:一个类继承它的父类,这个类就拥有它父类的方法和属性,增加了类的复用性。
封装:一个类可以把自己的方法和属性选择性的进行暴露和隐藏。
多态:就是允许将子类类型的指针赋值给父类类型的指针。

2、finnal、finally、finalize的区别
final:final用于声明属性、方法和类,分别表示属性不可变,方法不可修改,类不可继承。
finally:是异常处理语句结构的一部分,表示语句总是执行。
finalize:是object类的一个方法,垃圾收集器收集此对象的时候会调用对象的此方法,可以覆盖此方法提供资源回收,jvm不保证此方法总是被调用。

3、int 和 Integer的区别
int是基本类型,Integer是int的包装类,int的默认值是0,而Integer的默认值是null,是引用类型。

4、重载和重写的区别
重载:同一个类有多个名称相同的方法,但是方法的参数列表各不相同。
重写:子类覆盖父类的方法。如果父类方法是private修饰,那么子类就不存在覆盖,而是新增了一个全新的方法。

5、抽象类和接口的区别
抽象类:1、可以有默认实现、构造器、main方法,2、子类实现用extends,3、访问修饰符有public、protected、default
接口:1、无默认实现、构造器、main方法,2、子类实现用implents,3、只能使用默认是public

6、说说反射的用途及实现
用途:通过反射,我们可以在运行期间获取对象的类型信息。利用这一点,我们可以实现工厂模式和代理模式等。
实现:1、Class.forName() 2、this.getClass() 3、类.class() 4、通过类加载器实现this.getClassLoader()

7、说说自定义注解的场景及实现
场景:登录、权限拦截、日志处理、以及各种java框架
实现:利用反射来获取方法包含的注解,来进行相应的操作。

8、HTTP请求的GET和POST方式的区别
1、根据HTTP规范,get表示获取信息,post表示可能修改服务器资源的请求。
2、GET方式提交的数据最多是1024个字节,POST提交的数据是没有大小限制的

9、session和cookie的区别
1、cookie的数据存放在客户端的浏览器上,session数据则存放在服务器上面。
2、cookie的数据不是很安全,仅考虑安全应该使用session
3、session会在一定时间存放在服务器上,访问增多时会占用服务器性能,考虑性能方面应该使用cookie
4、单个cookie保存的数据不能超过4k,很多浏览器限制单个站点保存的cookie不超过20个。

10、jdbc流程
1、向DriverManage类注册驱动
2、调用DriverManage.getConnection方法,通过url,用户名,密码获取Connection
3、获取Connection后,通过createStatement创建Statement用以执行sql语句
4、执行语句
5、关闭数据库连接

11、equals 与 == 的区别
主要区别:==比较的是原生类型(8种基本类型),equals()比较的是两个对象中的地址是否相同。
另一个需要讲的是:当使用==和equals()比较两个对象时,如果两个对象的引用地址相同,==比较的返回true,equals比较返回true或者false,主要取决于重写的实现。

猜你喜欢

转载自blog.csdn.net/cool_summer_moon/article/details/80832713