4.有1万个左右的脏词,每次发帖要判断帖子里边是否包括有脏词,数据库应该如何设计

可以建立一个脏词字典表,写好函数判断帖子正文里面是否有脏词。然后再这个帖子正文字段上面建立check 约束。

4.linux如何查找文件
cat、vi、,find,locate,whereis
find :find <指定目录> <指定条件> <指定动作>
使用locate搜索linux系统中的文件,它比find命令快。因为它查询的是数据库(/var/lib/locatedb),数据库包含本地所有的 文件信息。使用locate命令在根目录下搜索interfaces文件的命令为”locate interfaces“
使用”whereis“命令可以搜索linux系统中的所有可执行文件即二进制文件。使用whereis命令搜索grep二进制文件的命令为”whereis grep“。

1.Mysql和mongodb索引原理(说一下B+tree和B-tree区别,为什么一个用b+一个用b-,为什么索引用btree不用平衡二叉树)
B-树和B+树最重要的一个区别就是B+树只有叶节点存放数据,其余节点用来索引,而B-树是每个索引节点都会有Data域。
这就决定了B+树更适合用来存储外部数据,也就是所谓的磁盘数据。
从Mysql(Inoodb)的角度来看,B+树是用来充当索引的,一般来说索引非常大,尤其是关系性数据库这种数据量大的索引能达到亿级别,所以为了减少内存的占用,索引也会被存储在磁盘上。
那么Mysql如何衡量查询效率呢?磁盘IO次数,B-树(B类树)的特定就是每层节点数目非常多,层数很少,目的就是为了就少磁盘IO次数,当查询数据的时候,最好的情况就是很快找到目标索引,然后读取数据,使用B+树就能很好的完成这个目的,但是B-树的每个节点都有data域(指针),这无疑增大了节点大小,说白了增加了磁盘IO次数(磁盘IO一次读出的数据量大小是固定的,单个数据变大,每次读出的就少,IO次数增多,一次IO多耗时啊!),而B+树除了叶子节点其它节点并不存储数据,节点小,磁盘IO次数就少。这是优点之一。
另一个优点是什么,B+树所有的Data域在叶子节点,一般来说都会进行一个优化,就是将所有的叶子节点用指针串起来。这样遍历叶子节点就能获得全部数据,这样就能进行区间访问啦。

至于MongoDB为什么使用B-树而不是B+树,可以从它的设计角度来考虑,它并不是传统的关系性数据库,而是以Json格式作为存储的nosql,目的就是高性能,高可用,易扩展。首先它摆脱了关系模型,上面所述的优点2需求就没那么强烈了,其次Mysql由于使用B+树,数据都在叶节点上,每次查询都需要访问到叶节点,而MongoDB使用B-树,所有节点都有Data域,只要找到指定索引就可以进行访问,无疑单次查询平均快于Mysql(但侧面来看Mysql至少平均查询耗时差不多)。

总体来说,Mysql选用B+树和MongoDB选用B-树还是以自己的需求来选择的。

19.继承的好处和坏处
优点:可重用

1.可以使用父类的所有非私有方法;而且单继承可由接口来弥补。
2.可以继承父类中定义的成员方法以及成员变量,使得子类可以减少代码的书写。还可以重写父类的方法以增加子类的功能。
缺点:

1.耦合性太大
2.就是破坏了类的封装性,其实继承一般多用于抽象方法的继承和接口的实现

15. servlet是单个实例么?

是,他的实例是由tomcat容器决定的,

一般来说,servlet是单例的,tomcat容器会给他创建一个实例,同一个实例可以同时有多个用户访问,这个没有任何问题。问题在于servlet是否有状态,对这些状态的访问是否必须是synchronized的。如果是,那么在同一个时间就只有一个用户可以访问这些状态了,这就大大降低了性能。所以一般来说servlet都是无状态的。

因此说servlet一般是线程不安全的,多个客户端(相当于多线程)去请求同一个servlet实例,假设都对服务器的一个资源实例进行修改,就会出现线程安全问题,我们只需s对资源实例加锁就好,无需对servlet加锁,对servlet加锁没有意义。

只是Web容器在维护这些Servlet的时候只给创建一个实例存在JVM中,用户请求服务时,服务器只调用它已经实例化好的Servlet对象来处理请求。

所以,告诉你的是Servlet并不是单例,只是容器让它只实例化一次,变现出来的是单例的效果而已。

但需要注意的是,化Servlet是web容器来控制实例化的,并不是你自己用你编写的代码来实例,即使你自己编写代码实例化你的servlet,Web服务器也不会直接调用你的实例化的Servlet对象的。

11.socket实现过程,具体用的方法;怎么实现异步socket.(不会)
Socket编程基本就是create,listen,accept,connect,read和write等等。在建立连接前,必须知道对方的IP地址和端口号。一个指定的端口号不能被多个程序共用。
1:加载套接字库,创建套接字(WSAStartup()/socket());
2:绑定套接字到一个IP地址和一个端口上(bind());
3:将套接字设置为监听模式等待连接请求(listen());
4:请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept());
5:用返回的套接字和客户端进行通信(send()/recv());
6:返回,等待另一连接请求;
7:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。
客户端编程的步骤:
1:加载套接字库,创建套接字(WSAStartup()/socket());
2:向服务器发出连接请求(connect());
3:和服务器端进行通信(send()/recv());
4:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。

10.new 实例化过程

1加载类2给对象分配内存--进行初始化---父类,父类的加载,父类的内存分配,父类static,当前类static,父类普通变量,当前类普通变量,父类构造,当前类构造
寻找类定义 ;
加载类定义,jvm启动时,会用启动类加载器加载,对于用户的class,则会用应用程序类加载器实时加载,所谓实时加载,指的是遇到的时候再加载,而不是预先一次 性加载。关于类加载器,有三级,jvm严格的限制了每一级的加载权限,加载模式为“双亲委托模式”,加载任何类,都先由父加载器加载。
给对象分配内存空间;jvm在内存“堆”中,开辟一个空间,该空间按照MyObject类定义开辟,并将该空间中的各个内存段设置默认值,对应的就是对象的属性初始化默认值。 
对象的初始化顺序 :

如果第一次加载其父类/其类的话,需要先实例化类对象,如果不是则直接实例化对象==即先对类对象进行实例化(父类/子类)【给父类静态变量默认值,对父类静态变量赋值,执行父类静态块;给当前类静态变量默认值 ,对当前类静态变量赋值,执行当前类静态块】;给父类变量默认值,对父类变量赋值, 执行父类构造函数;给当前类变量默认值,对当前类变量赋值,执行当前类构造函数。
对象构造完成 ;

5.输出用户表里重名的用户,说sql语句

select myname, count(*) from tab group by myname having count(*) > 1

校招面试题3--去哪/微店/蘑菇街/招银科技相关推荐

  1. 招银科技2018春招线上笔试题

    招银科技2018春招线上笔试题 文章目录 招银科技2018春招线上笔试题 专业知识 1.选择题(30道) 2.简答题 (1道) 3.数据库题(4道) 4.算法题(2道) 心理测试(100道) 总结 专 ...

  2. 互联网公司校招Java面试题总结及答案——招银科技

    部分重复的我已经去掉了,所以显得比较少,其他请参看我的系列文章: 互联网公司校招Java面试题总结及答案--乐视.滴滴.华为 互联网公司校招Java面试题总结及答案--CVTE 互联网公司校招Java ...

  3. python简单笔试题,招银科技2017年笔试题,使用python进行简单的字符串压缩

    今天心血来潮,想起一道招银笔试题.题目是这样的,利用python,或shell语言进行字符串压缩. 整理一下思路 ,类似于c语言用指针操作数组,这里面有个陷阱,x在list中遍历时 , 不要轻易去改l ...

  4. 「笔试题」最近做了一个招银网络科技Java岗位在线笔试题,给有需要的朋友了解学习一下!

    编程题一 大概意思是,给一段字符串,然后统计该字符串中相同字符个数,并以字符串+该字符串个数组合排列成新的字符串.如输入" sssdhibdhidhi " ,需要返回结果 &quo ...

  5. 招银科技2017 c++ 面试题

    程序内存分布,全局变量.静态变量的存储位置 static修饰符作用 static全局变量跟普通全局变量区别,存储方式有何区别c++设计一个单例模式,多线程环境下如何设计?用线程锁是否会影响性能?有其他 ...

  6. java面试题_招银科技一面_java面经汇总

    题目来自牛客,  题的答案都是我个人理解的或网上的参考,仅仅只作为复习用.因个人水平有限,不合理的地方请多多指正. 自我介绍,着重说自己的优点 略   (是不是有初高中课后习题的那种感觉,(* ̄︶ ̄) ...

  7. 互联网公司校招Java面试题总结及答案——微店、去哪儿、蘑菇街

    部分重复的我已经去掉了,所以显得比较少,其他请参看我的系列文章: 互联网公司校招Java面试题总结及答案--招银科技 互联网公司校招Java面试题总结及答案--乐视.滴滴.华为 互联网公司校招Java ...

  8. 小米运维部14年校招笔试题A的个人答案

    15年准备实习生面试时答的题,仅供参考 具体题目详见  http://www.tuicool.com/articles/eYRZBr http://noops.me/?p=1154 一.linux基础 ...

  9. 字节校招面试题分享,别人已经开始面试了,你不会还没有准备吧?

    字节面试题分享,了解校招,还有前端校招面试题分享,不容错过. 字节跳动(校招) 一面: TCP.UDP是什么,区别,应用 什么是字节流,什么是数据报 TCP为啥可靠 超时重传.累计确认的过程 HTTP ...

最新文章

  1. 2016-2017-2 《Java程序设计》预备作业1 总结
  2. Eclipse 配置 maven 的两个 settings 文件
  3. 美团杯2020 - 平行四边形(原根)
  4. HDU4611(找循环节)
  5. php 失去 焦点 另一个表单猎取值,同一表单如何根据某一个文本框的值 改变另一个文本框的值...
  6. js detect the type of device
  7. esp启动是什么感觉_第九章 ESP32上电后的启动过程
  8. jinfo java_Java自带的JVM性能监控及调优工具(jps、jinfo、jstat、jmap、javap)使用介...
  9. linux系统安装snort,linux下SNORT安装.doc
  10. VS2010序列号正式版附破解方法详细攻略
  11. 亚洲最佳电影TOP100出炉 你看过几部?
  12. python qq群发消息_python qq发消息
  13. 第8节 破解系统密码—利用win7漏洞和PE系统破解密码
  14. mysql虚拟列表_动态网页制作-官方版合集下载-多特
  15. 固态硬盘是什么接口_固态硬盘接口有哪些,他们之间都有什么区别,该如何选择...
  16. Java将编辑器内容生成pdf文件下载
  17. Request Line is too large (xxxx > 4094) 问题处理
  18. linux将某个文件夹打包为zip文件
  19. 求职指南!给数据开发的SQL面试准备路径!
  20. 【Web技术】1091- 跨浏览器窗口 ,7种方式,你还知道几种呢?

热门文章

  1. java语言冒泡排序法_Java实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等...
  2. flare-on 7 break第三部分求解:一元线性同余方程
  3. Gitolite权限配置
  4. VBS 计算汉字笔画数
  5. 微信小程序年审与支付规则
  6. 文学专业发语言学c刊,容易发的语言学期刊有哪些
  7. 如何在Word中插入公式
  8. ESP8266使用AT指令进行API访问
  9. 解决Linux环境下Jupyter Lab平台使用python的Matplotlib函数库绘图时无法识别中文字体问题——永久识别方法
  10. mac版Sublime Text菜单如何汉化