java面试题,每日一总结(4) 青旅半醒 2022-04-15 02:21 187阅读 0赞 **1. jsp有哪些内置对象?作用分别是什么?** 答:首先jsp中有 9大内置对象:request、response、session、application、out、pagecontext、config、page、exception 四大作用域: page -> 页面级别,显然只有在一个页面内可用。 request -> 请求级别 服务器跳转,一次请求之后消失。 session -> 会话级别 客户端跳转(服务器跳转),与浏览器有关,ie是在重新打开ie时才会不同。 application = 应用级别,当重启服务器时才会消失 具体参考:[Jsp九大内置对象和四种作用域][Jsp] **2.说一下session和cookie的区别?你在项目中都有哪些地方使用了?** 答:Sessi on和cookie都是会话(Seesion)跟踪技术。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。但是Session的实现依赖于Cookie, sessionid(session的唯一标识需要存放在客户端). cookie和session的区别: 1、cookie数据存放在客户的浏览器上,session 数据放在服务器上。 2、cookie 不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session. 3、session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考中到减轻服务器性能方面,应当使用COOKIE。 4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie. 5、所以个人建议 将登陆信息等重要信息存放为SESSION 其他信息如果需要保留,可以放在COOKE中,如加入购物车 购物车最好使用cookie.但是cookie是可以在客户端禁用的,这时候我们要使用cookie+数据库的方式实现,当从cookie中不能取出数据时,就从数据库获取。 ## **关于数据库方面的:** ## **1.数据库的分类以及常用的数据库** 数据库分为:关系型数据库和非关系型数据库 关系型数据库:mysql,oracle,sqlServer 非关系型数据库:NoSql,mogodb,hadoop等 **2.事务的四个基本特征或ACID特性** 事务是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。一个转账必须A账号扣钱成功,B账号加钱成功,才算正真的转账成功。 事务必须满足四大特征:原子性,一致性,隔高性,持久性/持续性 原子性:表示事务内操作不可分割。要么都成功、要么都是失败。 一致性:要么都成功、要么都是失败,后面的失败了要对前面的操作进行回滚。 隔高性:一个事务开始后,不能后其他事务干扰。 持久性/持续性:表示事务开始了,就不能终止了 **3.说一下mysql的分页? Oracle的分页**? **4.关于数据库的基本语句** **5.简单说一下你对jdbc的理解?** 答:jdbc:java database connection 即:java数据库连接。 数据库管理系统(mysql,oracle)很多,不同的数据库管理系统支持的命令不同。 java只定义接口,而把接口的实现给数据库厂商。我们在开发时只需要导入对应的数据库驱动架包,然后以接口的方式进行调用(mysql+mysql驱动+jdbc) **6.写一个简单的jdbc的程序。写一个访问oracle数据的jdbc程序?** **答:**首先要了解jdbc连接数据库的六步 1.加载驱动或注册驱动 2.获取连接对象(Connection) 3.获取preparestatement或statement对象 4.执行SQL语句 5.处理结果集 6.关闭资源 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class JDBCTest { public static void main(String[] args) throws Exception { //1.加载驱动 //Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //Class.forName("com.mysql.jdbc.Driver"); Class.forName("oracle.jdbc.driver.OracleDriver"); //2.创建数据库连接对象 //Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=db","sa","sqlpass"); //Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8","root","123456"); Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","Oracle123"); //3.创建数据库命令执行对象 Statement stmt = conn.createStatement(); // PreparedStatement ps = conn.prepareStatement("select * from t_user"); //4.执行数据库命令 ResultSet rs = stmt.executeQuery("select * from t_user"); // ResultSet rs = ps.executeQuery(); //5.处理执行结果 while (rs.next()) { int id = rs.getInt("id"); String username = rs.getString("username"); String password = rs.getString("password"); System.out.println(id + "\t" + username + "\t" + password); } //6.释放数据库资源 if (rs != null) { rs.close(); } // if (ps != null) { // ps.close(); // } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } } **7.JDBC中的PreparedStatement相比Statement的好处** [JDBC中使用preparedStatement相比statement的优势][JDBC_preparedStatement_statement] **8.数据库连接池作用** **9.简单说一下html,ss,javascript在网页开发中的定位?** HTML:超文本标记语言,定义网页的结构 CSS:层叠样式表,用来美化页面 JavaScript:主要用来验证表单,做动态交互(其中AJAX) **10.简单介绍一下Ajax?** 什么是AJAX? \--》异步的JavaScript和XML 作用是什么? \--》通过AJAX与服务器进行数据交换,AJAX可以使用网页实现局部更新,这意味着可以在不刷新整个网页的情况下,对网页的某部分进行更新。 怎么来实现AJAX? \--》使用XmlHttpRequest这个对象可以异步向服务器发送请求,获取响应,完成局部更新, Open send responseText/responseXML局部响应。 使用场景? \--》登录失败时不跳转页面,注册时提示用户名是否存在,二级联动等等使用场景 **具体参考:**[Java前端面试题总结][Java](这篇博客总结的很详细,前端部分的试题就不转了,直接阅读即可) **11.js和jQuery的关系?** JQuery是一个JS框架,封装了JS的属性和方法,并且增强了JS的功能,让用户使用起来更加方便, 原来使用js是要处理很多兼容性的问题(注册事件),由于Jquery封装了底层,就不用处理兼容性问题(注册事件等)。 原生的js的dom和事件绑定Ajax等操作非常麻烦,JQuery等装以后非常方便。 **12.bootstrap是什么** bootstrap是一个移动设备优先的UI框架,我们可以不用写任何css、js代码就能实现比较漂亮的有交互性的页面,我们程序员对页面的编写是有硬伤的,所有要自己写页面的话就要使用类似于bootstrap这样的UI框架 [Jsp]: https://blog.csdn.net/yu799225625/article/details/50982409 [JDBC_preparedStatement_statement]: https://blog.csdn.net/byy8023/article/details/78393142 [Java]: https://blog.csdn.net/belvine/article/details/79384960
还没有评论,来说两句吧...