趋势科技一面二面面经

趋势科技是一家做网络的公司,所以对于Linux、网络、C++比较重视。Java倒是没怎么问:

一面

  1. 论坛项目的登录功能是怎么实现的?用Github的什么第三方登录协议?(OAuth)
  2. Linux上部署项目用的什么指令?
  3. 怎么查看日志文件中某个时间段内的日志?
    • sed -n ‘/起始时间/,/结束时间/p’ 日志文件
    • grep ‘时间’ 日志文件
  4. 讲一下http协议。
  5. 服务端怎么获取客户端的浏览器类型?
    在Spring中,对request调用方法:String header = request.getHeader("User-Agent");即可。
  6. https中,客户端是如何判断服务端证书的合法性的?怎么防止中途证书的公钥被替换。
    • 验证一:该证书是否有效。判断是否是信任根证书颁发的,是否过了有效期;
    • 验证二:对方是不是这个证书的合法持有者。思路是判断对方持有的私钥是否正确,可以用数字签名来实现。
  7. traceroute 用的什么协议?
    使用ICMP协议,traceroute命令能够遍历到数据包传输路径上的所有路由器。
  8. 压缩的原理是什么,什么样的文件能被压缩?
    原理就是用新的编码方式代替旧的编码方式.。 比如将大段重复的二进制,转化为另一种编码形式。
    文本文件的压缩率高,图片视频压缩和没压缩一样。。。
  9. SQL注入是什么攻击,项目中是怎么防止的?
    SQL注入是将Web页面的原URL、表单域或数据包输入的参数,修改拼接成SQL语句,传递给Web服务器,进而传给数据库服务器以执行数据库命令。
    在MyBatis中,#{}将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号,可以防止sql注入。${}将传入的数据直接显示生成在sql中,不能防止sql注入。但是在涉及到动态表名和列名时,只能用$,就必须要手动做好过滤。
  10. 怎么防止缓存穿透?
  11. 以后最想发展哪些方面的能力。
  12. 代码题:如何不用第三个变量实现两个数的交换?
    假设两个数在一个数轴上就很好理解了:
	a = b - a;
	b = b - a;
	a = a + b;

二面

  1. 说说使用Spring Boot的感受
  2. 在Web项目中怎么判断用户的权限。
  3. java中集合类有哪些?
  4. TreeMap是怎么实现的,二叉搜索树有哪几种
  5. Java中的多态是用什么来实现的。好处是什么
    java中的多态分为编译时多态、运行时多态。重载属于编译时多态,而运行时多态是指运行时才能确定要调用哪一个方法。Java中可以通过子类继承父类、类实现接口来实现多态。多态可以更好的对设计和架构的复用,针对接口编程,而不是针对实现编程。
  6. Java中保证并发安全的方式。
  7. 代码题:打印一棵二叉树的最长路径(某节点到另一节点)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值