阿里面经

人生第一次接到大公司的面试电话,可惜的是自己太菜,一面挂.....0.0

这里对我的面试内容(java开发方向)以及我的了解做一个总结,不全之处还请大家帮忙填补.


面试内容如下:

  • 项目介绍
  • HashMap的内部实现方式 
    • http://www.importnew.com/16301.html
  • 你对类加载器的了解(不问问题,只让我一个劲的讲)
    • http://blog.csdn.net/javazejian/article/details/73413292
  • jvm中的内存分配,先是让我一个劲的讲,完了问我类变量存储在哪,我脑子抽抽直接回答存在堆中.......
    • 程序计数区: 不可控,线程私有. 执行java代码时值为jvm字节码的指令地址;执行本地方法时值为空.
    • java堆:线程共享,在jvm启动时创建,用于存放对象实例.
      • java堆细分为新生代和老年代.
      • 新生代又分为Eden空间,From Survivor空间和To Survivor空间.
      • 新生代主要用的是复制算法 老年代分为标记-清除算法和标记-整理算法两种.
    • 方法区:又称为"永久区",线程共享.用来存储已被JVM加载的类信息,常量,静态变量,即使编译器编译后的代码等数据.
    • JVM栈:线程私有,生命周期与线程相同.JVM栈描述的是java方法执行的内存模型,每个方法在执行的时候都会创建一个栈帧,用于存储局部变量表,操作数栈,动态链接,方法出口等信息.
    • 本地方法栈:和JVM栈很相似.区别在于JVM栈是为java方法服务,而本地方法栈是为JVM栈使用到堆的本地方法服务.HotSpot虚拟机栈中直接把本地方法栈和JVM栈合而为一了.
    • https://www.cnblogs.com/lifescolor/p/5481588.html
  • 用户用浏览器访问一个网站的过程与步骤
    • 用户输入网址(一般包含地址和请求两部分)
    • 浏览器先尝试从Host文件中获取该URL对应的IP地址,若获取不到就用DNS来解析IP.
    • 尝试与服务器建立TCP连接(三次握手)
    • 将用户的请求封装到HTTP协议数据包,通过上一步建立的TCP连接发送至服务器.
    • 拆解返回的HTTP数据包,浏览器一般会用有限自动机来理解文本内容并对其进行渲染显示到屏幕上
  • 对MySQL数据库的了解(只让我一个劲的讲)
    • MySQL是一个关系型数据库,开源,小巧,容易上手.可跨平台支持集群,支持多种数据的存储方式.
  • 数据库中有两张表A和B,A中有两条数据,B中有两条数据,A表左连接到B表,可查询出的A表中的数据有几条.
  • 谈谈你对Cookie和Session的了解(让我一个劲的讲)
    • Session在服务端,Cookie在客户端(浏览器)
    • Session默认被存在服务器的一个文件里(不是内存),Session可以放在文件,数据库或内存中.
    • Session的运行依赖于Session id,Session id存在在Cookie中.
  • 服务器怎么知道是登录该服务器的是你
    • Session id是用户的唯一标识  这一切都依赖于存储在Cookie中的Session id
  • 你一般用的是http还是https(我至今都不知道问题指的是什么0.0)
  • get和post你一般用的哪个
    • 我答post,然后解释了下post的get的区别
    • get把参数直接加到提交表单的URL后,而对于post方式,服务器端用Request.From获取提交的数据
    • get传输数据量较小,不能大于2KB.post传送的数据量较大.
    • get安全性低,post安全性高
    • 网友意见:在做数据查询时,建议用Get方式;而做数据添加,修改或删除时,建议用Post方式
  • 你对加密算法的了解,知道哪些可恢复的加密算法
    • 加密算法分为对称加密和非对称加密以及Hash算法三种.这里我做以粗略介绍.
    • 对称加密算法(私钥算法)
      • DES加密
        • DES加密共有三种方式,分为DWS(40-bit长度加密),DES(56-bit加密)以及3DES(3倍的56-bit长度加密,即168-bit加密)
        • 由于3DES加密长度够长,安全性够高,所以推荐使用3DES.
      • AES加密
        • AES加密共有三种形式,分为AES 128(128-bit),AES 192(192-bit)以及AES 256(256-bit),推荐使用AES 256
    • 非对称加密算法(公钥算法)
      • 指加密和解密使用不同的加密算法,也成为公私钥加密.
      • 如:RSA,ECC(移动设备用),DSA(数字签名时用)等.
    • Hash算法
      • Hash算法特别的地方在于它是一种单向算法,常用在不可还原的密码存储,信息完整性校验等
      • 如:MD2,MD4,MD5,HAVAL,SHA,HMAC等


 



你可能感兴趣的:(阿里,=====,面经/笔经,=====)