hi,你好!欢迎访问本站!登录
本站由网站地图腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - 杂谈 - 正文 君子好学,自强不息!

纪录口试龙腾简合-java开辟工程师阅历

2019-11-18杂谈搜奇网47°c
A+ A-
/** * ############ * 变强是会掉光头发的!如今的头发照样很蕃庑,是该高兴照样惆怅呢。。 * ############ * /

    总结下近期口试龙腾简合-java开辟岗的阅历。附上笔试、手艺口试题以及响应的题解。有些题目影象有点隐约了,这里就也许形貌下。

我先做个人说明, 学历非双福州一般二本盘算机专业,毕业两年多,近期因个人缘由想换事变,体验下其他IT公司的气氛。

废话少说,最先进入正题。

悉数历程分三个步骤:

 ============================= 

  • 在线笔试
  • HR口试 -- 龙腾HR小姐姐很nice,HR面沟通的很兴奋
  • 手艺口试  -- 觉得是一个手艺大佬面,觉得慌张。╮(╯▽╰)╭

 ============================= 

一、在线笔试

    一最先是在boss直聘软件上,龙腾简合HR小姐姐主动沟通,加上本身本意有想去龙腾的主张,就简朴的聊了几句,并发送个人简历给HR。HR看了后,就沟通布置在线笔试了。

在线笔记有视频监考,作为老实天职的孩子是不会做弊的!(′▽`〃)

一共有16道题,触及js正则表达 、算法、数据库、linux敕令、springboot、鸠合线程、前端react、promise道理、nodejs加载json体式格局、Mybatis。(手艺渣渣示意想哭╥﹏╥...)

   1、有正则表达式:/^[a-zA-Z]+$/,推断alert((/^[a-zA-Z]+$/.test(null))); 和 alert((/^[a-zA-Z]+$/.test())); 输出的是什么?

        解答:这道为选择题,考核正则表达式基础。该表达式为推断字符串是不是悉数为字母。用法(/^[a-zA-Z]+$/.test(element)),这里 element 是可认为null或为空,所以输出为true、true.

  小伙伴可本身编写测试下,加深影象。

   2、linux怎样背景重启个jar递次包, 定名为test.jar

     解答:熟习nohup敕令的小朋友应当很轻易上手。这题重要分两步:

     第一步找到正在运转的test.jar历程,并kill掉该历程;第二步背景重启。

1 $ ps -ef | grep test 2 xxxx    1824  0 21:54 pts/0    00:00:00 xxx xxxx 3 & kill -9 1824
4 $nohup java -jar test.jar &
//nohup 意义是不挂断运转敕令,当账户退出或终端封闭时,递次依然运转
//固然,背景启动jar另有其他体式格局,比方 java -jar shareniu.jar & , 个中 & 示意背景启动。

     3、有36辆赛车6条跑道,在没有计时器的情况下,须要起码竞赛若干轮才选出最快的前3辆?

     解答:考核逻辑思维题。 统共须要8次。 参考:http://www.mamicode.com/info-detail-2267257.html

     这里我说一次我的对这道题的明白:

  • 起首,36辆车分6组,举行竞赛,每组取前3名,镌汰6x3=18辆

     

  •  每组第1名举行一轮竞赛,选出前3名的组,并镌汰后3名的组,一共镌汰3x3=9辆。 这里假定A\B\C这三组的车为前三名:

      

    到这一步能够肯定第一名是哪一车,这里假定第一名为车A1, 接下来要肯定哪辆车是第二名和第三名。这里只需简朴剖析下,就可以镌汰掉车C2、车C3和车B2。

    镌汰车C2和C3的来由:车A1 > 车B2>车C3>车C2>车C3;

     镌汰车B2的来由:车A1>车B1>车B2>车B3

     

  •    因为已肯定A1为最快的车,所以只须要将车A2\A3\B1\B2\C1 举行一轮竞赛就可以肯定第二名和第三名了。

       因而,须要 6+ 1+ 1 =8 轮,才拔取最快的3辆。

     4、诠释下React state 和React props

        参考:https://baijiahao.baidu.com/s?id=1627980825860407519&wfr=spider&for=pc

        解答:事变两三年未运用和进修过前端react,猎奇龙腾运用的前端是Vue。为啥会考react方面的学问.虽然也没用过vue,任职公司运用的Angular4..π__π

       react state: React 把组件看成是一个状况机(State Machines)。经由过程与用户的交互,完成差别状况,然后衬着 UI,让用户界面和数据保持一致。React里,只需更新组件的 state,然后依据新的 state 从新衬着用户界面(不要操纵 DOM)。

       参考:https://www.runoob.com/react/react-state.html

       react props:Props是Properties的简写。它们是只读组件,事变体式格局相似于HTML属性。Prop是一种将数据从父组件通报给子组件的要领。

       详细深切的内容,我也不太相识,小伙伴们可自行google/百度。

     5、编写js函数,有两个参数一个时刻字符,一个小时增减量,传入时刻如 2018-10-10 01:00:00,和小时节点增添量 3,函数输出  2018-10-10 04:00:00

       解答:熟习js时刻与字符串转换、时刻操纵的小伙伴们,应当是很轻易的。 作为一个 ctrl+c 和 ctrl+v 的递次员打动心累( -'`-; )

 1 /*
 2    对时刻举行操纵
 3 */ 
 4  function t(d, num) {
 5             var t = new Date(d.replace(/-/g, '/'));
 6             t.setTime(t.setHours(t.getHours() + num));
 7             var dataStr = (t.getFullYear()) + '-' + (fillZero(t.getMonth() + 1))
 8                 + '-' + (fillZero(t.getDate())) + ' ' + (fillZero(t.getHours())) + ':' + (fillZero(t.getMinutes())) + ':' + (fillZero(t.getSeconds()))
 9             alert(dataStr);
10         }
11   /*
12     时刻字段前补0
13    */
14         function fillZero(num) {
15             if (num < 10) {
16                 return '0' + num;
17             }
18             return num;
19         }
t("2018-10-10 01:00:00", -3);

        6、诠释下什么是primose,并写一个primise

                解答:属于ES6局限,primose作用:

      1、重要用于异步盘算;
      2、能够将异步操纵行列化,根据希冀的递次实行,返回相符预期的效果;
      3、能够在对象之间通报和操纵promise,协助我们处置惩罚行列。

Promise最大的优点是在异步实行的流程中,把实行代码和处置惩罚效果的代码清楚地星散了Promise还能够做更多的事变,比方,有若干个异步使命,须要先做使命1,假如胜利后再做使命2,任何使命失利则不再继承并实行错误处置惩罚函数。要串行实行如许的异步使命,不必Promise须要写一层一层的嵌套代码。有了Promise,我们只须要简朴地写:

job1.then(job2).then(job3).catch(handleError); // job1 job2 job3 为Promise对象。

// 一个简朴的实例 new Promise(resolve => { setTimeout(() => { resolve('hello') }, 2000) }).then(res => { console.log(res) }) 

         参考:https://www.liaoxuefeng.com/wiki/1022910821149312/1023024413276544,https://www.jianshu.com/p/1b63a13c2701

       7、springboot自动设置道理,假如加载设置文件

        解答:触及springboot道理。参考:https://jingyan.baidu.com/article/fdbd4277a277edb89e3f48fa.html

    Spring Boot启动的时刻会经由过程@EnableAutoConfiguration注解找到META-INF/spring.factories设置文件中的一切自动设置类,并对其举行加载,而这些自动设置类都是以AutoConfiguration末端来定名的,它实际上就是一个JavaConfig情势的Spring容器设置类,它能经由过程以Properties末端定名的类中获得在全局设置文件中设置的属性如:server.port,而XxxxProperties类是经由过程@ConfigurationProperties注解与全局设置文件中对应的属性举行绑定的。

 从启动类的@SpringBootApplication进入,在里面找到了@EnableAutoConfiguration:

                

            8、nodejs读取json文件的几种体式格局

     解答:我对nodejs 不熟,有晓得的小伙伴可否留言解答下 (#`-_ゝ-)

1 var fs=require('fs')
2 fs.readFile('file.json','utf8',function (err, data) {
3 if(err) console.log(err);
4 var test1=JSON.parse(data);
5 });

            9、ConcurrentHashMap与HashTable的辨别,是怎样完成线程平安的?      

ConcurrentHashMap底层采纳分段的数组+链表完成,线程平安。经由过程把悉数Map分为N个Segment,能够供应雷同的线程平安,然则效力提拔N倍,默许提拔16倍。(读操纵不加锁,因为HashEntry的value变量是 volatile的,也能保证读取到最新的值。)Hashtable的synchronized是针对整张Hash表的,即每次锁住整张表让线程独有,ConcurrentHashMap许可多个修正操纵并发举行,其关键在于运用了锁星散手艺。锁分段手艺:起首将数据分红一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁接见个中一个段数据的时刻,其他段的数据也能被其他线程接见。 

HashTable底层数组+链表完成,不管key照样value都不能为null,线程平安,完成线程平安的体式格局是在修正数据时锁住悉数HashTable,效力低,ConcurrentHashMap做了相干优化初始size为11,扩容:newsize = olesize*2+1. 

            10、mysql单表数据量很大,致使增编削查都很慢,有什么优化的看法?

 计划一:优化现有数据库:

   1.数据库设想和表竖立时就要斟酌机能;

   2.sql的编写须要注重优化;

   4.分区;

   5.分表;

   6.分库;

   7.移除冗余数据;

   8.竖立合适的索引:

  • 索引并非越多越好,要依据查询有针对性的竖立,斟酌在WHERE和ORDER BY敕令上触及的列竖立索引,可依据EXPLAIN来检察是不是用了索引照样全表扫描;
  • 应只管防备在WHERE子句中对字段举行NULL值推断,否则将致使引擎摒弃运用索引而举行全表扫描;
  • 值散布很希少的字段不合适建索引,比方"性别"这类只要两三个值的字段;
  • 字符字段只建前缀索引;
  • 字符字段最好不要做主键;
  • 不必外键,由递次保证束缚;
  • 只管不必UNIQUE,由递次保证束缚;
  • 运用多列索引时主张递次和查询前提保持一致,同时删除不必要的单列索引

           计划二:升级数据库范例,换一种100%兼容mysql的数据库。

       计划三:去掉mysql,换大数据引擎处置惩罚数据。

      参考:https://blog.csdn.net/afsvsv/article/details/84998119

      11、考核sql编写功底, 供应生意营业表,写出去重、分组统计的语句。

       解答:详细的字段称号有点忘了,大致说一下解题思绪:

        1、去重,能够用 distinct 或group by

        2、 分组统计,不必若干了,运用group by ,关于统计差别范例的生意营业数目 能够运用 sum(case when type =1 then 1 else 0 end)sum_type1

     12、mybatis操纵数据库的几种体式格局?

        这里我对mybatis 不熟, 大致晓得有种,一种基于全注解的体式格局,一种设置xml的体式格局。

 =============================

  在线笔试小结: 另有4道题影象隐约了,测验时刻为2个小时,手艺渣渣示意泰半不会,,背面摒弃挣扎,唱起一首凉凉。。╥﹏╥...

 ==============================

二、HR口试

  •  个人基础情况、兴趣爱好等;
  •  任职公司基础情况、事变内容、有无印象深入的题目等、怎样对待加班、用的什么手艺等;

 =============================

   HR口试小结:基础操纵,没有手艺面的压力,问一些基础情况。

 ==============================

三、手艺口试

    手艺面问的大都以简历项目、手艺为基础,举行扩大。所以!想去龙腾口试的小伙伴一定要熟习简历上的手艺!做足预备!

     1、ngnix运用的场景?

    Nginx一是一款轻量级的、高机能的HTTP、反向代办服务器,具有很高的稳定性、支撑热布置、模块扩大也异常轻易。Nginx采取了分阶段资本分派手艺,处置惩罚静态文件和无缓存的反向代办加快,完成了负载平衡和容错,在如许高并发的接见情况下,能禁受起高并发的处置惩罚。能够做web服务器、反向代办服务器、电子邮件服务器限定一般用户的要求局限(下载速率、接见频次)过滤非一般用户的http要求。

    参考:https://www.cnblogs.com/chenliangcl/p/7417602.html

         2、Oauth2.0协定流程

         

             参考:https://jinnianshilongnian.iteye.com/blog/2038646

       3、数据表数据准绳?

         3.1 数据库三大范式

              第一范式:列不可再分 

              第二范式:行能够唯一辨别,主键束缚 

              第三范式:表的非主属性不能依靠与其他表的非主属性 外键束缚 且三大范式是一级一级依靠的,第二范式竖立在第一范式上,第三范式竖立第一第二范式上。    

          3.2 字段设想需合理,字段数目不凌驾20个,如有营业须要许多字段的,可斟酌分表,用主键、外键举行关联。

          3.3 索引的竖立。索引引并非越多越好,要依据查询有针对性的竖立,斟酌在WHERE和ORDER BY敕令上触及的列竖立索引,可依据EXPLAIN来检察是不是用了索引照样全表扫描;应只管防备在WHERE子句中对字段举行NULL值推断,否则将致使引擎摒弃运用索引而举行全表扫描。

          3.4 只管用整型示意字符串,用0示意null;只管运用not null定义字段

          3.5 运用合理的字段属性长度,牢固长度的表会更快。运用enum、char而不是varchar。

       4、让你设想一个下拉框组件你会怎样设想?

         我的学问盲区。。 参考:http://blog.xuxiangbo.com/im-46.html

                口试时我回覆的几个点: 须要斟酌层级关联,要有个字段示意父类、子类的关联;鼠标点击事宜。

       5、tomcat调优?

      参考:https://blog.csdn.net/ljj_9/article/details/79145324

       5.1、为进步平安性,封闭自动布置,防备被植入木马歹意进击;

           5.2、假如没有运用Apache,禁用AJP。默许开启状况;

           5.3、HTTP1.1 Connector参数设置,tomcat 8.5默许运用nio,请改成运用nio2

        5.4、没有用到DNS时,禁用DNS

       5.5设置GET要求的EncodingTomcat8.5缺省即为UTF-8,如运用UTF-8则下面语句无需设置;如运用其他Encoding,请参考下面语句来设置;

        5.6、如需经由过程紧缩来削减网络带宽占用,请采纳反向代办+Tomcat的体式格局,紧缩交由反向代办,因为紧缩会增添Tomcat的累赘。

       5.7、设置线程池、线程数;

       5.8、jvm调优,比方以下:,更多请检察参考链接

  Linux下修正TOMCAT_HOME/bin/catalina.sh

       JAVA_OPTS="-server -XX:PermSize=512M -XX:MaxPermSize=1024m -Xms2048m -Xmx2048m

     windows下修正TOMCAT_HOME/bin/catalina.bat

       set JAVA_OPTS=-server -XX:PermSize=512M -XX:MaxPermSize=1024m -Xms2048m -Xmx2048m

      6、前端往后端通报数据的体式格局?比方提交表单数据?

         form表单提交、ajax提交、经由过程url字符串拼接向背景提交数据、经由过程a标签提交数据,经由过程a标签的href属性提交数据,和js提交数据相似。

       7、日常平凡本身余暇时刻有进修什么学问?有去下载什么开源项目?有无运用到项目里?

        自由发挥。

      8、完成web站内信,运用到了rabbitmq,音讯是怎样展现在前端的举行提醒?

        rabbitmq 做为音讯缓存的中间件,生产者将音讯宣布在mq里,消耗者举行消耗,将站内信数据存在数据库中,前端运用ajax 查询未读站内信息,数据库表中有字段示意已读或未读,用户点击了未读的站内信则将状况设置为已读。

 

 =============================

   手艺口试小结:手艺面问的大都以简历项目、手艺为基础,举行扩大。所以!想去龙腾口试的小伙伴一定要熟习简历上的手艺!做足预备!

 口试效果:未经由过程。 缘由未征询,大致上也晓得为啥没经由过程。。 个人手艺层面另有很大的提拔空间、不够自信、手艺面时慌张。

 愿望这篇博客能协助到想进龙腾简合事变的小伙伴~ 如有小伙伴看过了这篇博客,并顺遂口试进入龙腾简合,记得来这留言说一声呦~

 ==============================

   

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
纪录口试龙腾简合-java开辟工程师阅历

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
未定义标签

本文来源:搜奇网

本文地址:https://www.sou7.cn/282046.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>