阿里国际一面

5.31晚8点电话面

  1. 自我介绍
  2. 问了下实习到岗时间
  3. OSI七层模型,以及每一层的分工
  4. HTTPS访问网站的整体流程
  5. HTTPS在加密解密这个过程怎么处理的?
  6. 浏览器请求服务器,返回的是什么密钥?(浏览器拿到服务器响应的加密数据,怎么解密的?)
  7. 红黑树了解过?什么是红黑树?红黑树的增删查时间复杂度?
  8. 数组和链表的区别?
  9. 什么是面向对象?
  10. Java中一个类加载过程?
  11. JVM内存结构
  12. 了解哪些垃圾收集算法
  13. 做过数据库的性能相关优化吗?(回答加过索引提升查询效率)然后问索引相关的使用规则?
  14. 了解事务吗?事务的隔离级别?
  15. 使用Redis在项目里面的作用(场景)?
  16. 用到过哪些linux的命令?
  17. 反问
#我的实习求职记录#
全部评论
红黑树(Red-Black Tree)是一种自平衡的二叉搜索树,它在计算机科学中被广泛使用,尤其是在需要快速查找、插入和删除的场景中。红黑树的名称来源于它在每个节点上使用的颜色属性,即节点可以是红色或黑色。 红黑树具有以下五个基本性质: 每个节点要么是红色,要么是黑色。 根节点是黑色。 所有叶子节点(NIL节点,空节点)都是黑色。 如果一个节点是红色的,则它的两个子节点都是黑色的(没有两个连续的红色节点)。 从任一节点到其每个叶子的所有简单路径都包含相同数目的黑色节点。 这些性质确保了红黑树大致平衡,即任何从根到叶子的路径上黑色节点的数量大致相同。这使得红黑树在最坏情况下的查找、插入和删除操作的时间复杂度能够保持在 O(\log n)。 具体来说,红黑树的增删查操作的时间复杂度如下: 查找(Search):最坏情况下的时间复杂度是 O(\log n),因为树的高度被限制在 O(\log n)。 插入(Insert):在最坏情况下,插入操作需要进行一次旋转和重新着色,时间复杂度也是 O(\log n)。 删除(Delete):删除操作可能需要进行多次旋转和重新着色来维护红黑树的性质,但最坏情况下的时间复杂度同样是 O(\log n)。 红黑树的这些性质和操作保证了它在实际应用中的高效性,尤其是在需要频繁更新数据结构的情况下。
1 回复 分享
发布于 2024-06-04 15:57 广东
大厂问的比较细,怎么样啊牛牛
点赞 回复 分享
发布于 2024-06-11 15:08 北京
阿里还在招啊,幽默
点赞 回复 分享
发布于 2024-06-06 19:09 江苏
Java中的类加载过程是一个非常关键的机制,它负责将编译后的.class文件(字节码)加载到JVM(Java虚拟机)中,并为程序执行做准备。这个过程主要分为以下五个步骤: 1. **加载(Loading)**: - 这是类加载过程的第一个阶段。在这个阶段,JVM通过类的全限定名(包括包名和类名)找到对应的.class文件。 - 类加载器(Class Loader)负责查找并加载类字节码。Java中有不同的类加载器,如启动类加载器(Bootstrap ClassLoader)、扩展类加载器(Extension ClassLoader)、系统类加载器(Application ClassLoader)以及用户自定义的类加载器。 - 加载后,类的字节码会被转换为方法区内的数据结构,并在堆内存中创建一个代表该类的`java.lang.Class`对象,作为访问方法区数据的入口。 2. **验证(Verification)**: - 为了确保类的字节码符合Java语言规范,不会危害JVM的安全性,JVM会对加载的字节码进行严格的验证。验证内容包括格式验证、元数据验证、字节码验证和符号引用验证等,以确保类的正确性、安全性和兼容性。 3. **准备(Preparation)**: - 在这个阶段,JVM会为类中的静态变量分配内存空间,并赋予默认的初始值。例如,int类型的静态变量会被初始化为0,布尔类型为false,引用类型为null。注意,这里的初始化不包括显式赋值,那些会在初始化阶段完成。 4. **解析(Resolution)**: - 解析阶段是将常量池内的符号引用转换为直接引用的过程。符号引用在编译期间生成,可以理解为对类、接口、字段或方法的一种间接引用。解析过程会将其转换为直接指向目标的指针、偏移量或能够间接定位到目标的句柄,以便于运行时快速访问。 5. **初始化(Initialization)**: - 到了初始化阶段,JVM会执行类的静态初始化代码,包括静态字段的显式赋值和static块中的代码。初始化的顺序按照类的继承关系进行,即先初始化父类,再初始化子类。静态初始化只在类的第一次主动使用时进行(即所谓的“懒加载”策略),并且是线程安全的。 整个类加载过程遵循双亲委派模型,即当一个类加载器收到加载请求时,首先会将任务委托给其父加载器,依次递归,直到顶层的启动类加载器。如果父加载器无法完成加载,则子加载器才会尝试自己加载。这种机制保证了类的唯一性和安全性。
点赞 回复 分享
发布于 2024-06-04 16:05 广东
什么岗位啊佬
点赞 回复 分享
发布于 2024-06-04 16:00 北京
浏览器与服务器之间的通信通常涉及加密和解密过程,以确保数据的安全性和隐私。这个过程主要通过SSL/TLS(安全套接层/传输层安全协议)实现。以下是浏览器与服务器之间通信的基本步骤: 握手阶段: 浏览器首先向服务器发起一个HTTPS请求。 服务器响应请求,发送其SSL证书,其中包含服务器的公钥。 证书验证: 浏览器接收到证书后,会验证证书的有效性,包括证书是否由受信任的证书颁发机构(CA)签发,证书是否过期等。 密钥交换: 如果证书验证通过,浏览器会生成一个随机的对称加密密钥,用于本次会话的加密通信。 浏览器使用服务器的公钥对这个对称密钥进行加密,然后发送给服务器。 服务器解密: 服务器使用自己的私钥解密浏览器发送的加密信息,得到对称加密密钥。 加密通信: 从此时起,浏览器和服务器使用这个对称密钥对所有传输的数据进行加密和解密。 数据传输: 浏览器和服务器之间传输的数据都是通过对称密钥加密的,任何中间人攻击者都无法解密这些数据,除非他们拥有服务器的私钥。 结束会话: 会话结束后,对称密钥会被销毁,以确保数据的安全性。 在这个过程中,浏览器不需要解密服务器响应的加密数据,因为数据在传输过程中是使用对称密钥加密的,而这个密钥是在握手阶段由浏览器生成并加密后发送给服务器的。服务器使用自己的私钥解密这个对称密钥,然后两者使用这个密钥进行加密通信。浏览器和服务器都使用这个对称密钥来加密和解密数据,而不是使用服务器的公钥或私钥。
点赞 回复 分享
发布于 2024-06-04 15:59 广东

相关推荐

大方的大熊猫准备进厂:1.教育背景:你希望从事什么专业的工作你的主修课就是什么;成绩优秀是你应该做的,没什么可描述的,成绩不优秀也许人家在大学忙着创业呢?(成绩优秀不一定是好事,只能说明多元化的大学你上成了高中,没有真正上明白大学,反而体现了你死板,不爱社交,没有别的突出能力) 2.实践经历:你想表达的意思没有说清楚。你是说你会个性化服务,还是你有实习经历。如果没有带来,经济收益,表彰,更好的发展前景,那你还不如说说提升了自己哪些技能。你说有人给你送锦旗我都能明白你优秀,但是你说你会xxxx,你说这话谁信,证据呢。 3.入伍经历:你描述的就是你的工作职责或者你应该做的,并没有体现出来你把这个事情做好了,而且入伍经历并不能证明你能干好你要应聘的工作,不如只写经历其余所有内容都不写。 4.荣誉技能:重点突出一下,但不要过多描述,这些荣誉的含金量懂得都懂。 重点:你要应聘什么工作(具体岗位,实习生不具体),你的期望薪资
点赞 评论 收藏
分享
评论
3
29
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务