0%

BT-interview-note-i

字节跳动飞书后端一面

上来先自我介绍,再问掌握的==技术栈==。然后开始问基础知识:

Java的反射机制

Java的反射(Reflection)机制提供动态获取类的信息,以及动态调用对象的方法的功能。反射机制的几大功能:==在运行时==,

  • 判断任意一个对象所属类。
  • 构造任意一个对象。
  • 判断任意一个类所具备的成员变量和方法
  • 调用任意一个对象的方法。

    通常而言:程序运行时容许改变程序结构和变量类型称为动态语言。因而可知Java并非动态语言,可是Java的Reflection机制,能够运行时加载、探知、使用编译期间彻底未知classes。因此Reflection是Java视为动态语言的关键性质,容许在程序运行时经过Reflection APIs 取得任何一个已知名称的class的内部信息(包括父类,接口,变量,方法等)。

IOC:Inversion of Control —— 控制反转,把创建和查找依赖对象的控制权交给了容器,由容器进行注入组合对象。

DI:Dependency Injection —— 依赖注入,在系统运行中,动态的向某个对象提供它所需要的其他对象。

AOP —— Asepct-Orentid-Programming,面向切面编程,把与核心业务逻辑无关的代码全部抽取出来,放置到某个地方集中管理,然后在具体运行时,再由容器动态织入这些共有代码。

Java虚拟机内存回收机制,什么是Full GC,如何避免Full GC

堆内存划分为 Eden、Survivor 和 Tenured/Old 空间。

  • 从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC;
  • 对老年代GC称为Major GC;
  • 而Full GC是对整个堆来说的;

发生Full GC的情况及避免方法:

  1. 直接调用System.gc
  2. 旧生代空间不足。调优时应尽量做到让对象在Minor GC阶段被回收、让对象在新生代多存活一段时间及不要创建过大的对象及数组。
  3. Permanet Generation空间满。增大Perm Gen空间或转为使用CMS GC。
  4. CMS GC时出现promotion failed和concurrent mode failure。增大survivorspace、旧生代空间或调低触发并发GC的比率。
  5. 统计得到的Minor GC晋升到旧生代的平均大小大于旧生代的剩余空间
  6. 对于使用RMI来进行RPC或管理的Sun JDK应用而言,默认情况下会一小时执行一次Full GC
http和https什么区别

https://blog.csdn.net/xionghuixionghui/article/details/68569282

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

(好像还问了一道网络题,记不清了……)

什么是跨域问题?如何解决跨域问题?

由浏览器的同源策略造成。同源是指,域名,协议,端口均相同。

解决方法:

  1. JSONP
  2. 代理
  3. PHP端修改header(XHR2方式)
算法:二分查找

是指在有序数组中查找某一特定元素的算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每-次比较都使搜索范围缩小一半。

索引是什么?索引过多会出现什么问题?

索引是关系数据库中对某一列或多个列的值进行预排序的数据结构。通过使用索引,可以让数据库系统不必扫描整个表,而是直接定位到符合条件的记录,这样就大大加快了查询速度。

1.一个索引会在update或insert时增加一次I/O, 对于操作系统底层来说是非常损耗性能的。
2.索引过多会导致索引文件过大, 系统在寻址时查询时间增长。

在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下,一般都是没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大。

hashmap 数据结构
真 每次必问啊

hasnmap是一个链表的数组,对于每个 key-value对元素,根据其key的哈希,该元素被分配到某个桶当中,桶使用链表实现,链表的节点包含了一个key,一个value,以及一个指向下一个节点的指针。当桶的大小大于8时会转化为红黑树存储数据。

img

https://www.jianshu.com/p/8b372f3a195d

你对飞书怎么看?有没有了解过飞书的开放平台?

我不想看https://www.feishu.cn/product/overview

没有,下次一定https://www.feishu.cn/webinar/feishu-openapi

居然只面了十五分钟??就挺突然的。而且用的是飞书视频,没有考编程??算法题 也挺 意外的……整理之后发现一半的题目回答都有点凉啊