`

XX公司面试总结

阅读更多

1.final类型有什么作用

答:final可以修饰类、变量、方法,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、修饰变量表示该变量是一个常量不能被重新赋值。

 

2.两个对象比较要实现哪些方法。

答:要实现equels hashCode 方法

 

3.为什么要实现hashcode方法

答:hashCode 顾名思义是一个“散列值码”
散列值,并不能表现其唯一性,但是有离散性,其意义在于类似于进行hashMap等操作时,加快对象比较的速度,进而加快对象搜索的速度。

1hashCode()方法存在的主要目的就是提高对象比较效率。
2)在集合中判断两个对象相等的条件,其实无论是往集合中存数据,还是从集合中取数据,包括如果控制唯一性等,都是用这个条件判断的,条件如下:
    
首先判断两个对象的hashCode是否相等,如果不相等,就认为这两个对象不相等,就完成了。如果相等,才会判断两个对象的equals()是否相等,如果不相等,就认为这两个对象不相等,如果相等,那就认为这两个对象相等。

 

4.list有那几种遍历方式

 答:有两种(for, Iterator

5.list删除元素怎么删

  答:有三种删除方法

<!--[if !supportLists]-->          使用普通的for循环删除,内部调整索引

for (int i =0; i < datas.size(); i++){

 

    if (datas.get(i).isSelect()) {

 

        datas.remove(i);

 

        i--;

 

    }

 

}

<!--[if !supportLists]-->(2)使用倒序for循环删除

for (int i = datas.size() - 1; i >= 0; i--) {

 

    if (datas.get(i).isSelect()) {

 

        lists.remove(i);

 

    }

 

}

<!--[if !supportLists]-->(3)使用迭代器删除

Iterator<UserBean> iterator = datas.iterator();

while(iterator.hasNext()){   

UserBean user= iterator.next();   

if(user.isSelect()){       

// 注意: 不能用listremove方法.       

 // datas.remove(next);       

 // 使用迭代器中的remove()方法,可以删除元素.       

 iterator.remove();   

 }

 }

6.hashmap 的数据结构什么样的。(https://www.jianshu.com/p/adc3df4ae4ec

答:数组+链表。java8以后增加红黑二叉树,为了优化链表过长时的查找速度。(这里简单的介绍一下红黑二叉树的特点,及优点。链表转红黑树的时机就可以了)

 

7. HashMap怎么通过key判断索引位置的?

答:通过Hash算法,获取keyHash值,通过indexFor算法计算真实索引

   // 获取key对应的value

    public V get(Object key) {

       if (key == null)

            return getForNullKey();

     // 获取keyhash

       int hash = hash(key.hashCode());

       // 在“该hash值对应的链表”上查找“键值等于key”的元素

       for (Entry<K,V> e = table[indexFor(hash, table.length)];

            e != null;

            e = e.next) {

            Object k;

            if (e.hash == hash && ((k = e.key) == key || key.equals(k)))

               return e.value;

            }

        return null;

    }

 

indexFor算法的精髓

static int indexFor(int h, int length) {

    return h & (length-1);

}

8. servlet 多个filter 的执行顺序是怎么样的

之前我们控制多个filter的执行顺序是通过web.xml中控制filter的位置来控制的,放在上面的会比放在下面的先执行,如下用户登录检查过滤器会比接口日志过滤器先执行

但是当我们使用@WebFilter注解的时候发现注解里面没有提供可以控制执行顺序的参数。

通过实践发现如果想要控制filer的执行顺序可以通过控制filter的文件名来控制

比如:

       UserLoginFilter.java ApiLog.java 这两个文件里面分别是用户登录检查过滤器接口日志过滤器,因为这两个文件的首字母AU之前,导致每次执行的时候都是先执行接口日志过滤器再执行用户登录检查过滤器,所以我们现在修改两个文件的名称分别为

Filter0_UserLogin.java

Filter1_ApiLog.java

这样就能先执行用户登录检查过滤器再执行接口日志过滤器

 

9. servlet,过滤器,监听器,拦截器的区别https://www.cnblogs.com/ryelqy/p/10286216.html

答:(1servletservlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,

可以动态生成web页面它工作在客户端请求与服务器响应的中间层;

2filterfilter是一个可以复用的代码片段,可以用来转换HTTP请求,响应和头信息。

它不能产生一个请求或者响应,它只是修改对某一资源的请求或者响应;

3listener:监听器,通过listener可以坚挺web服务器中某一执行动作,并根据其要求作出相应的响应。

就是在applicationsessionrequest三个对象创建消亡或者往其中添加修改删除属性时自动执行代码的功能组件;

4interceptor:拦截器是对过滤器更加细化的应用,他不仅可以应用在service方法前后还可以应用到其他方法的前后

拦截器;

5servletfilterlistener是配置到web.xml中,interceptor不配置到web.xml中,struts的拦截器配置到strutsxml中。

spring的拦截器配置到spring.xml中;

 

10.http请求分为哪几部分.

答:(请求行、请求头、请求体)

请求行

            请求方法字段、URL字段和HTTP协议版本

            例如:GET /index.html HTTP/1.1

                get方法将数据拼接在url后面,传递参数受限

            请求方法:

                GETPOSTHEADPUTDELETEOPTIONSTRACECONNECT

        请求头(key value形式)

            User-Agent:产生请求的浏览器类型。

            Accept:客户端可识别的内容类型列表。

            Host:主机地址

        请求数据

            post方法中,会把数据以key value形式发送请求

11.http haerd 有哪些属性



 

 

12.http有哪些返回状态



 

2XX 成功

200 OK  表示请求被服务器正常处理

204 No Content 表示请求已成功处理,但是没有内容返回

206 Partial Content 表示服务器已经完成了部分GET请求

 

3XX 重定向

301 Moved Permanently 永久重定向,表示请求的资源已经永久的搬到了其他位置 就是说资源已经被分配了新的URI

302 Found 临时重定向,表示请求的资源临时搬到了其他位置  请求的资源暂时被配到到了新的URI

303 See Other 表示请求资源存在另一个URI,应使用GET定向获取请求资源

304 Not Modified 表示客户端发送附带条件的请求(GET方法请求报文中的IF…)时,条件不满足 返回304时,不包含任何响应主体

307 Temporary Redirect 临时重定向,和302有着相同含义 尽管302标准禁止POST变为GET,但没人听他的

 

4XX 客户端错误

400 Bad Request 表示请求报文存在语法错误或参数错误,服务器不理解

401 Unauthorized 表示发送的请求需要有HTTP认证信息或者是认证失败了

403 Forbidden 表示对请求资源的访问被服务器拒绝了

404 Not Found 表示服务器找不到你请求的资源

 

5XX 服务器错误

500 Internal Server Error 表示服务器执行请求的时候出错了

502  网关错误

503 Service Unavailable 表示服务器超负载或正停机维护,无法处理请求

 

13. http get  post  请求有哪些区别

答:

GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母或数字,则原样发送;如果是空格,转换为+;如果是中文或其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII码值。而与之对应的,POST把提交的数据放置在HTTP包的包体中,文章最下面将会有代码示例。

POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面GET提到的安全不是同个概念。上面安全的含义仅仅是不作数据修改,而这里安全的含义是真正的Security的含义。比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为:(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击(CSRF,跨站请求伪造,也被称为:one click attack/session riding)。

 

14.数据库left, right, inner,full是什么链接的

左链接 left join on (左集)

右链接 right join on (右集)

内链接  inner join (交集)

全链接 full join (并集)

 

15.sql语句怎么优化

1.字段类型选择:

A:尽量使用TINYINTSMALLINTMEDIUM_INT作为整数类型而非INT,如果非负则加上UNSIGNED

BVARCHAR的长度只分配真正需要的空间

C:使用枚举或整数代替字符串类型

D:尽量使用TIMESTAMP而非DATETIME

E:单表不要有太多字段,建议在20以内

F:避免使用NULL字段,很难查询优化且占用额外索引空间

 

2. 选择合适的索引列,选择在wheregroup byorder byon从句中出现的列作为索引项,对于离散度不大的列没有必要创建索引。

主键已经是索引了,所以primay key 的主键不用再设置unique唯一索引

索引类型

主键索引 PRIMARY KEY

唯一索引 UNIQUE

普通索引 INDEX

组合索引 INDEX

全文索引 FULLTE

16.介绍一下explain

EXPLAIN SELECT查询用来跟踪查看效果:

使用EXPLAIN关键字可以知道MySQL是如何处理SQL语句的。可以帮我们分析查询语句或是表结构的性能瓶颈。

EXPLAIN的查询结果还会显示索引主键被如何利用的,数据表是如何被搜索和排序的。

id:选择标识符
select_type:表示查询的类型。

table:输出结果集的表

partitions:匹配的分区

type:表示表的连接类型

possible_keys:表示查询时,可能使用的索引

key:表示实际使用的索引

key_len:索引字段的长度

ref:列与索引的比较

rows:扫描出的行数(估算的行数)

filtered:按表条件过滤的行百分比

Extra:执行情况的描述和说明

 

Type字段:

对表访问方式,表示MySQL在表中找到所需行的方式,又称“访问类型”。

常用的类型有: ALLindexrange refeq_refconstsystemNULL(从左到右,性能从差到好)

ALLFull Table Scan MySQL将遍历全表以找到匹配的行

index: Full Index ScanindexALL区别为index类型只遍历索引树

range:只检索给定范围的行,使用一个索引来选择行

ref: 表示上述表的连接匹配条件,即哪些列或常量被用于查找索引列上的值

eq_ref: 类似ref,区别就在使用的索引是唯一索引,对于每个索引键值,表中只有一条记录匹配,简单来说,就是多表连接中使用primary key或者 unique key作为关联条件

constsystem: MySQL对查询某部分进行优化,并转换为一个常量时,使用这些类型访问。如将主键置于where列表中,MySQL就能将该查询转换为一个常量,systemconst类型的特例,当查询的表只有一行的情况下,使用system

NULL: MySQL在优化过程中分解语句,执行时甚至不用访问表或索引,例如从一个索引列里选取最小值可以通过单独索引查找完成。

 

  • 大小: 304.3 KB
  • 大小: 309.5 KB
  • 大小: 14.9 KB
分享到:
评论

相关推荐

    面试北京XX数通总结

    面试北京XX数通总结 1 1 总括 1 1.1 面试时间 1 1.2 公司概况 1 1.3 老板疼点 1 2 如果入职 2 2.1 公共库 2 2.2 层次划分 2 2.3 设计与实现分离 2 3 关于外包 2 3.1 他们的期望 2 4 关于培训 3 5 建议 3 6 最后的...

    net面试题全面总结

    通过阅读“net面试.doc”、“NET笔试题.doc”、“XX公司.net机试题.doc”、“NET重点.doc”和“面试汇总.doc”这些文档,你可以系统性地复习和准备以上各个方面的知识,提升你的.NET面试成功率。同时,实践项目经验...

    HTTP面试总结.rar

    以下是对HTTP面试总结的一些关键知识点: 1. **HTTP基本概念**: - HTTP是无状态的,每次请求之间没有关联,为了保持状态,通常会用到Cookie和Session。 - HTTP是基于TCP/IP协议之上的应用层协议,通过TCP连接...

    XX有限公司面试记录表HR常用表格模板.doc

    【XX有限公司面试记录表】是人力资源部门在招聘过程中常用的一个工具,主要用于系统地评估和记录应聘者的各项能力和表现。此表格的设计旨在确保招聘过程的公正、客观和专业,以找到最符合公司需求的人才。 首先,...

    人力资源部XX年度工作总结及XX年度工作规划模板.docx

    ### 人力资源部XX年度工作总结及XX年度工作规划 #### 一、201x年度工作总结 ##### (一)建立健全合法规范的人力资源管理制度 1. **建立绩效导向的薪酬体系**: - 在201x年,人力资源部重点推进了绩效导向的薪酬...

    xx银行求职面试技巧.doc

    总结来看,要想成功通过xx银行的面试,除了需要具备扎实的专业知识,更要在着装、举止、沟通和职业规划上体现出专业素养和积极态度。充分准备,保持自信,将有助于你在面试中脱颖而出。值得注意的是,虽然面试技巧...

    人力资源部XX年工作总结.docx

    【XX年人力资源部工作总结】 XX年,人力资源部在公司品牌运营年的工作中扮演了关键角色,主要任务是招聘优秀人才、改革薪酬制度以及优化激励机制。这一年,公司员工总数达到68人,包括硕士及以上学历8人,本科32人...

    struts sping hibernate 面试总结

    2. 解析`&lt;mapping resource="com/xx/User.hbm.xml"/&gt;`,将实体类映射到数据库表。 3. 使用配置信息构建SessionFactory,SessionFactory是线程安全的,是所有Session的工厂。 4. 打开Session,Session是执行数据库...

    公司人力资源部年终工作总结推荐XX.docx

    公司人力资源部的年终工作总结展示了20XX年公司在人力资源管理方面的各项成就与挑战。在这个年度,人力资源部成功地建立了和健全了公司的人力资源管理系统,确保了工作的科学化和规范化,并完成了年度目标。以下是对...

    专题资料(2021-2022年)xx公司人力资源管理制度.doc

    xx公司在对自身人力资源管理实践进行了深入的分析和总结之后,形成了《xx公司人力资源管理制度》。这一制度基于《中华人民共和国劳动法》及相关法律法规,不仅符合法律要求,还体现了公司追求公平、公正、公开的工作...

    XX公司招聘体系.pdf

    【XX公司招聘体系】 广州XX电子科技有限公司的招聘体系旨在构建一套科学且完整的流程,以吸引和保留优质人才,确保公司的稳定和健康发展。该体系融合了行业内的最佳实践,遵循了四大设计原则,并设定了明确的目标,...

    XX集团公司校园招聘方案

    总结来说,XX集团公司的校园招聘方案是一套系统的人力资源管理策略,旨在吸引、选拔和培养优秀的高校毕业生,为公司的持续发展注入新的活力。通过科学的流程和方法,确保招聘过程的公平、公正、有效。

    专题资料(2021-2022年)XX公司财务人员聘用、培训与考核管理制度.doc

    XX公司的聘用流程严格而规范:由分/子公司提出用人需求后,将经过总公司财务部和人力资源部的联合审查,包括考试与面试等环节,以确保候选人的专业素质与公司需求相匹配。候选人的政治立场、专业知识、工作经验、...

    计算机网络面试常考题总结

    ### 计算机网络面试常考题总结 #### HTTP协议请求方法 HTTP协议定义了与服务器交互的不同方法,包括但不限于: - **GET**:请求获取指定资源的信息。 - **POST**:向指定资源提交数据进行处理请求(例如提交表单...

    xx天津社区工作者面试技巧.doc

    【xx天津社区工作者面试技巧】 面试是求职过程中至关重要的一环,尤其对于天津社区工作者的职位,面试不仅是评估应聘者专业技能的机会,更是考察其人际沟通、应变能力和责任感的重要环节。以下是一些针对天津社区...

    JVM面试总结

    5. **JVM调优**:通过JDK自带的JConsole、VisualVM等工具监控JVM状态,调整-Xms、-Xmx、-Xss、-XX:NewRatio等参数优化性能。 6. **JVM内存溢出**:常见的内存溢出错误有`OutOfMemoryError`,如堆溢出、栈溢出、 ...

    20XX年联想实习总结范文.pdf

    联想,作为国内知名的电脑制造及科技公司,其品牌形象自20xx年成为奥运会赞助商以来便深入人心。在实习的初始阶段,我从一个单纯的联想产品使用者,转变为一名对品牌有更深入了解的参与者。通过与公司同事的接触以及...

    精品专题(2021-2022年收藏)XX计算机面试自我介绍.docx

    以下是根据提供的内容总结的几个关键知识点: 1. **兴趣与热情**:展示你对计算机领域的热爱,如对编程的痴迷,特别是对特定语言或技术的喜好。这表明你有强烈的内在驱动力去学习和解决问题。 2. **实践经验**:...

Global site tag (gtag.js) - Google Analytics