公司面试总结
某家公司的面试题目:
1.说一下redis的集群的安装过程
首先,将redis的安装包传到服务器上
2.为每个实例创建配置文件,比方说设置端口号,连接的超时时间,日志的启用模式等等
3.启动每个redis实例
4.使用redis-cli --cluster命令创建集群
5.我们可以使用redis-cli命令连接到某台机子上,使用cluster info或者是cluster nodes查看集群是否创建成功。
2.怎样进行sql优化,其中如果要死非得在where子句中书写计算条件的话,那应该怎么办?
原本的sql
SELECT * FROM orders WHERE price * 0.9 < 100;
改造之后的sql
SELECT * FROM orders WHERE price < 100 / 0.9;
3.aglajs用的是几版本的?
AngularJS、 Angular 2、Angular 4
4.图片轮播图是怎样做出来的
就说自己当时用到了一个定时函数setInterval()
5.jdk1.8的新特性都有哪些?
Lambda表达式
函数式接口
*方法引用和构造器调用
Stream API
接口中的默认方法和静态方法
新时间日期API
6.怎样解析json字符串
使用第三方类库如Jackson、Gson、还可以使用java自带的JSONObject,当然还有hutool包下面的工具类。
7.很重要的笔试选择题
面试:https://www.jianshu.com/p/995225b257ef 中科软
8.jsp中的九大内置对象(这题基本上不考了)
- request 对象:类型为
javax.servlet.http.HttpServletRequest
,代表客户端的请求信息,用于获取客户端提交的数据,如 GET 或 POST 请求参数、请求头、请求方法等,还可获取客户端 IP 地址等信息。作用域为一次请求,请求结束其生命周期结束。例如在处理用户登录、表单提交场景中接收用户输入数据 ,通过request.getParameter("参数名")
获取表单参数值。 - response 对象:类型是
javax.servlet.http.HttpServletResponse
,用于封装服务器对客户端的响应信息。可控制发送给客户端的数据,如设置响应头、状态码,进行重定向(response.sendRedirect("目标路径")
)、设置自动刷新时间等操作,作用域在 JSP 页面内。 - pageContext 对象:类型为
javax.servlet.jsp.PageContext
,提供对 JSP 页面所有对象及命名空间的访问,能获取其他内置对象,如pageContext.getRequest()
获取 request 对象等。可用于在 JSP 页面间共享数据,通过setAttribute("key", "value")
设置属性,getAttribute("key")
获取属性,作用域为当前页面。 - session 对象:类型是
javax.servlet.http.HttpSession
,由服务器自动创建,用于存储用户会话信息,跟踪用户状态,如登录状态、购物车信息等。以键值对形式保存数据,内部用 Map 类实现。作用域为一次会话,从用户打开浏览器连接服务器到关闭浏览器离开服务器结束。例如用session.setAttribute("userName", "张三")
存储信息 ,session.getAttribute("userName")
获取信息。 - application 对象:类型为
javax.servlet.ServletContext
,代表整个 Web 应用程序的上下文环境。可访问 Web 应用初始化参数,实现跨用户的数据共享,比如统计在线用户数、设置系统公告等。服务器启动时创建,关闭时销毁,所有用户共享这一个对象。 - out 对象:类型是
javax.servlet.jsp.JspWriter
,是输出流,用于向客户端发送数据,管理应用服务器上的输出缓冲区。JSP 页面中 HTML 标签、文本等输出都通过它实现,如out.write("<h1>Hello World!</h1>")
。 - config 对象:类型为
javax.servlet.ServletConfig
,封装了 Web 应用的配置信息,可获取 Servlet 初始化参数等。当 Servlet 初始化时,容器通过它传递某些信息给 Servlet,开发者可在web.xml
中为其提供初始化参数。 - page 对象:类型是
java.lang.Object
,实际上代表 JSP 页面本身,相当于 Java 程序中的this
关键字,代表当前 JSP 页面的实例,作用域在当前 JSP 页面。 - exception 对象:类型为
java.lang.Exception
,用于封装 JSP 页面抛出的异常信息。只有在isErrorPage="true"
的页面中才可使用,在一般 JSP 页面使用会导致无法编译。
String abc=new String("hhaha");一共创建了几个对象
分两种情况:
- 常量池中不存在 “hhaha” :会创建 2 个对象。JVM 首先会在字符串常量池中创建一个内容为 “hhaha” 的字符串对象,然后通过
new
关键字在堆内存中又创建一个String
对象 ,这个对象的内容也为 “hhaha” 。 - 常量池中存在 “hhaha” :仅创建 1 个对象。因为常量池中已有 “hhaha”,
new
关键字只会在堆内存中创建一个String
对象 。
Java 引入字符串常量池是为了提高内存使用效率,避免重复创建相同内容的字符串对象。使用new
创建字符串对象时,不管常量池情况如何,都会在堆上创建新对象 。