剑指Offer——京东校招笔试题+知识点总结_京东ui笔试题(2)

SMTP:简单邮件传输协议,使用TCP连接,端口号为25;

SNMP:简单网络管理协议,使用UDP 161端口;

对于一个已经建立的连接,TCP使用改进的三次握手来建立连接(使用一个带有FIN附加标记的报文段),使用四次挥手释放连接;

cookie是存储在客户端 session是存储在服务端;

DNS协议运行在UDP协议之上,使用端口号53;

UDP报头只有四个域:源端口号,目的端口号,数据报长度,检验和。

UDP是无连接,无超时重发,大数据传输容易造成数据重复或者数据中断等,无法保证数据包不损坏.

UDP是无连接的用户数据报协议,传输过程无阻塞不重发,只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地,所以没有可靠性.

UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快

TCP协议才是窗口机制的三次握手连接会话.

数据结构方面设计到二叉排序树(二叉查找树)字典树(Trie树)、散列表(Hash表)等知识点。

简答题

1.jvm垃圾收集基本原理

主要从三个方面(Which、When、How)进行解答:1.哪些内存需要回收?2.什么时候回收?3.如何回收?

确定哪些内存需要回收,主要采用引用计数法和可达性分析方法。

引用计数(Reference Counting)

比较古老的回收算法。原理是给对象添加一个引用计数器,此对象有一个引用,计数器值加1;引用失效时,计数器值减1。垃圾回收时,只用收集计数为0的对象。此算法最致命的缺点是无法处理循环引用的问题。

可达性分析方法(Reachability Analysis)

基本思路就是通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为“引用链(Reference Chain)”,当一个对象到GC Roots没有任何引用链时(用图论的话说,就是GC Roots到这个对象不可达),则证明该对象是不可用的。

垃圾收集算法

回收算法主要采用标记-清除算法、复制算法(新生代)、标记整理算法(老年代)、分代收集算法。

标记-清除(Mark-Sweep)

此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标记的对象清除。此算法需要暂停整个应用,同时,会产生内存碎片。 故存在效率、空间浪费问题。

复制(Copying)

此算法把内存空间划为两个相等的区域,每次只使用其中一个区域。垃圾回收时,遍历当前使用区域,把正在使用中的对象复制到另外一个区域中。此算法每次只处理正在使用中的对象,因此复制成本比较小,同时复制过去以后还能进行相应的内存整理,不会出现“碎片”问题。当然,此算法的缺点也是很明显的,就是需要内存空间缩小为原来的一半。 现在的商业虚拟机都采用这种收集算法来回收新生代

标记-整理(Mark-Compact)

此算法结合了“标记-清除”和“复制”两个算法的优点。也是分两阶段,第一阶段从根节点开始标记所有被引用对象,第二阶段遍历整个堆,把所有存活对象“压缩”到堆的其中一块,按顺序排放,然后直接清理掉边界之外的内存。此算法避免了“标记-清除”的碎片问题,同时也避免了“复制”算法的空间问题。 主要用来回收老年代

增量收集(Incremental Collecting)

实时垃圾回收算法,即:在应用进行的同时进行垃圾回收。不知道什么原因JDK5.0中的收集器没有使用这种算法。

分代(Generational Collection)

基于对对象生命周期分析后得出的垃圾回收算法。把对象分为年青代、年老代、持久代,对不同生命周期的对象使用不同的算法(上述方式中的一个)进行回收。现在的垃圾回收器(从J2SE1.2开始)都是使用此算法的。

2.单例模式

写出单例模式的2种方式(其实就是懒汉式与饿汉式啊,自己居然想成了加锁的不同形式,太菜了~);

单例模式的两种实现方式

package cn.edu.ujn.practice;
// 懒汉式
public class Singleton {
private static Singleton singleton;
private Singleton(){}
public static Singleton getInstance(){
if(singleton == null){
synchronized(Singleton.class){
if(singleton == null){
singleton = new Singleton();
}
}
}


### 学习笔记

主要内容包括**html,css,html5,css3,JavaScript,正则表达式,函数,BOM,DOM,jQuery,AJAX,vue**等等

**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.youkuaiyun.com/topics/618166371)**

>**HTML/CSS**

**HTML:**HTML基本结构,标签属性,事件属性,文本标签,多媒体标签,列表 / 表格 / 表单标签,其他语义化标签,网页结构,模块划分

**CSS:**CSS代码语法,CSS 放置位置,CSS的继承,选择器的种类/优先级,背景样式,字体样式,文本属性,基本样式,样式重置,盒模型样式,浮动float,定位position,浏览器默认样式

![](https://img-blog.csdnimg.cn/img_convert/f2c37ee83e4d677e4f2baed3160c4ec4.webp?x-oss-process=image/format,png)

>**HTML5 /CSS3**

**HTML5:**HTML5 的优势,HTML5 废弃元素,HTML5 新增元素,HTML5 表单相关元素和属性

**CSS3:**CSS3 新增选择器,CSS3 新增属性,新增变形动画属性,3D变形属性,CSS3 的过渡属性,CSS3 的动画属性,CSS3 新增多列属性,CSS3新增单位,弹性盒模型

![](https://img-blog.csdnimg.cn/img_convert/7e1d37bc03f28253ce1c86ee27b2a18b.webp?x-oss-process=image/format,png)

>**JavaScript**

**JavaScript:**JavaScript基础,JavaScript数据类型,算术运算,强制转换,赋值运算,关系运算,逻辑运算,三元运算,分支循环,switch,while,do-while,for,break,continue,数组,数组方法,二维数组,字符串

>**JavaScript**

**JavaScript:**JavaScript基础,JavaScript数据类型,算术运算,强制转换,赋值运算,关系运算,逻辑运算,三元运算,分支循环,switch,while,do-while,for,break,continue,数组,数组方法,二维数组,字符串

![](https://img-blog.csdnimg.cn/img_convert/0ff2b379b02d04f17b3dd626a2de034a.webp?x-oss-process=image/format,png)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值