面试实题:No.7

机试:
1、JSP页面中有个文本框只能输入数字;
通过正则表达式实现:
οnkeyup="value=value.replace(/[^(\d)]/g,'')"
<td><input type="text" class="popinput quinputcol requiredInp"  name="version_num" placeholder="版本号,请输入正确的数字" οnkeyup="value=value.replace(/[^(\d)]/g,'')"></td>
这里一般使用正则比较简单,或者引用JS的脚本也可。
2、字符串123456789  输出成1,2,3,4,5,6,7,8,9;
String str = "123456789";
 
String s2 = str.replaceAll ("(.{1})", "$1,");//加入,
 
String sop2 = s2.substring(0,s1.length()-1);
 
System.out.println(sop1);
 
结果:
1,2,3,4,5,6,7,8,9
 
除此之外还可以用JS进行相关的判断。
3、说一下权限设计;
权限设计这里我拆分为权限表结构设计以及权限控制两部分。
权限表结构设计:数据库的设计一般在项目开发之初根据业务需要进行设计,可具体进行举例。是将权限表、角色表、角色权限中间表设计到一张表内呢还是分为三张表进行关联。一般情况下若表结构数据固定不会进行大幅度的增加权限类别等设计到一张表中比较方便,若是角色、权限之间关联较多则建议分别进行设计;
权限控制:权限控制的方式有很多,例如:spring security、shiro、spring中的AOP等均可以对权限进行控制。
此外,权限还分为控制到页面以及按钮等层次。
4、将a,b,c,d,e,f存放到HashMap中输出a:d,b:e,c:f。
Map<String,String> map = new HashMap<String,String>();
map.put("a", "b");
map.put("c", "d");
String mapJoinResult = Joiner.on(",").withKeyValueSeparator("=").join(map);
System.out.println(mapJoinResult);
使用withKeyValueSeparator方法可以对map做合并。合并的结果是:a=b,c=d
这里是对Java类库的一种应用。
 
面试:
1、说一下第一题的思路;
第一题的思路便是对标点、字符等通过正则进行验证、筛选。
2、Tomcat调优;
一、tomcat的自身调优
* 采用动静分离节约tomcat的性能
* 调整tomcat的线程池
* 调整tomcat的连接器
* 修改tomcat的运行模式
* 禁用AJP连接器
二、jvm的调优
* 调优Jvm内存
这里就不做一一的说明了。
3、你的大学民办还是统招;
首先若是企业硬性要求必须统招本,这种一般在招聘初会讲明。其次若无明确要求可根据自身实际情况来说明,正在进行相关自考等。
问题比较开放建议结合公司的实际需要并尽可能突出自己其他方面的优势。
4、介绍下SpringMVC;
一般这是面试官所主要希望了解到的。不妨将这部分记熟。
5、说下ES;
es是一个高扩展、开源的全文检索和分析引擎,它可以准实时地快速存储、搜索、分析海量的数据。
因为在我们商城中的数据,将来会非常多,所以采用以往的模糊查询,模糊查询前置配置,会放弃索引,导致商品查询是全表扫面,在百万级别的数据库中,效率非常低下,而我们使用ES做一个全文索引,我们将经常查询的商品的某些字段,比如说商品名,描述、价格还有id这些字段我们放入我们索引库里,可以提高查询速度。
在并发情况下,Elasticsearch如果保证读写一致?
* 可以通过版本号使用乐观并发控制,以确保新版本不会被旧版本覆盖,由应用层来处理具体的冲突;
* 另外对于写操作,一致性级别支持quorum/one/all,默认为quorum,即只有当大多数分片可用时才允许写操作。但即使大多数可用,也可能存在因为网络等原因导致写入副本失败,这样该副本被认为故障,分片将会在一个不同的节点上重建。
* 对于读操作,可以设置replication为sync(默认),这使得操作在主分片和副本分片都完成后才会返回;如果设置replication为async时,也可以通过设置搜索请求参数_preference为primary来查询主分片,确保文档是最新版本。
6、说一下你对springboot的应用;
springboot实现异步调用
所谓的异步执行其实就是使用多线程的方式实现异步调用。
如果一个业务逻辑执行完成需要多个步骤,也就是调用多个方法去执行,
这个时候异步执行比同步执行相应更快。不过要注意异步请求的顺序和处理结果的顺序最好一致,不然就达不到效果了。
启用异步: 需要在应用入口类上添加:@EnableAsync;
定义一个线程池;
编写异步请求: 在异步执行的方法上添加注解:@Async;
在service里调用异步执行的方法。
springboot定时任务
springboot处理跨域
也可结合到自身项目中的实际应用,上面只给出了springboot的异步调用,在和面试官沟通的时候最好有实际的讲解。
7、你的项目中大多数都是中小型项目有没有做过大型项目;
结合自身情况来说。
无论有没有,面试官的关注点是在大型项目中的整体工作流程以及数据量较大的情况下对于问题的处理。
所以,这里可以说:“虽然我没有参与大型项目,但是我们团队成员都是由大型项目组成员所组成的,所以我们的项目机制、流程等都是比较完善的。并且我们对项目的进度、后期规划等都有较明确的规划。”
bug的提交管理,各部门间的沟通等。
8、对你来说什么是大项目;
主要分为两方面吧!一方面有完整的协同管理机制,一方面项目具有可持续发展性,有相对完整的规划。
9、项目中项目重复性很高;
简历项目类型重复的话在责任模块部分建议多样性,体现自身能力的多样性。
的确在这块有较深了解,日常工作中因项目周期安排的较为紧凑所以主要负责自己擅长的方面。(这方面就需要你这块能力比较强了。)
10、期望薪资是9500是吧,8500可以么?
不建议直接答应,可以沟通一下五险一金的缴纳标准、年终奖、其他福利待遇。沟通后可以先答应下来,掌握主动权。
 
发布了441 篇原创文章 · 获赞 1021 · 访问量 53万+

猜你喜欢

转载自blog.csdn.net/A_BlackMoon/article/details/104608482