1. 为什么函数不能根据返回类型来区分重载?
在Java中,重载的概念是:在同一个类中,方法名相同,参数列表完全不同的方法。如果我们声明返回值不同、参数列表完全相同的两个方法,那么程序将不知道该调用哪个方法,所以我们不能根据返回值类型区分重载。
2. 在开发中遇到过内存溢出么?原因有哪些?解决方法有哪些?
引起内存溢出的原因有很多种,常见的有以下几种:
- 内存中加载的数据量多于庞大,如一次从数据库中取出过多的数据。
- 集合类中有对象的引用,并且使用完后未清空,这样使得JVM不能回收。
- 代码中存在死循环或循环产生过多重复的对象实体。
- 所设置的启动参数过小。
内存溢出的解决方法:
- 修改JVM启动参数,直接增加内存。
- 检查错误日志。
- 对代码进行分析,找出内存溢出的位置。
3. 说下原生 jdbc 操作数据库流程?
- 通过Class.forName()加载JDBC驱动程序。
- 获取数据库连接。
- 通过Statement或ProparedStatement执行SQL语句。
- 获取返回的结果。
- 关闭数据库连接。
4. 什么要使用 PreparedStatement?
PreparedStatment是预编译SQL执行对象,它会将SQL参数转换成?
,这样可以有效地避免SQL注入的问题。
5. Cookie 和 Session 的区别是什么?
保存位置上:Cookie保存在客户端浏览器上,Session保存在服务器中。
性能上:使用Cookie性能会比较好,因为它不占用服务器端内存。
安全性上:使用Session会比较好,因为Cookie保存在客户端多以可能会被其他人劫持Cookie。