38.Java中的定时任务
- 1.利用Sleep特性(休眠)
- 2.time和timeTask(定时器)
- 3.利用ScheduledExecutorService将定时任务与线程池功能结合使用.
39.TCP和UDP相关
- Ⅰ.TCP通过什么方式提供可靠通信.
- 1.超时重传:若发出报文段后没有收到及时的确认,会重发.
- 2.数据包校验:校验首部数据和.
- 3.重排序.
- 4.流量控制,避免缓冲区溢出.
- 5.快重传和快恢复.
- 6.TCP会将数据截取为合适的长度.
- Ⅱ.TCP与UDP的区别
- 1.基于连接与无连接.
- 2.UDP面向报文的,没有拥塞控制.适合多媒体通信,比如即时聊天,支持1对1,1对多,多对多.TCP只能1对1.
- 3.对系统资源的要求(TCP要求多)
- 4.传输模式:UDP数据报模式.TCP流模式
- 5.可靠与不可靠.
- Ⅲ.UDP的应用场景(TCP:文件传输,邮件收发)
- 1.面向数据报方式.
- 2.网络数据大多是短消息.
- 3.拥有大量客户端.
- 4.对数据安全性无特殊需求.
- 5.网络负担比较重.但要求响应迅速.
40. 内部类访问局部变量的时候,为什么变量必须加上final修饰
- 1.我们在内部类中直接控制局部变量和引用,实际是通过构造函数中传入变量副本实现的.但java为了维护自身的封装风格.要求访问访问的变量为final类型:当变量为普通变量则数值相同且为常量;为引用类型就只能指向已确定的对象.借此保证内外统一.
41.为什么IP协议也能够进行数据的不可靠传输,还需要UDP?
- 1.需要端口号来进行应用程序之间的区分.
- 2.IP校验只能校验IP报头.而不是整个数据报.整个数据报的校验需要在传输层完成.如果出错了,就需要将出错的数据报丢弃.UDP校验和就具备传输层校验的能力.虽然它不具备纠错的能力.但可以将出错报丢弃.
42.进程通信中管道和共享内存谁的速度快?
- 1.管道:写进程往管道写入数据,读进程从管道读取数据.
- 2.通过将内存空间映射到进程地址空间,不需要执行任何进入系统内核的系统调用.因此共享内存更节约时间.
43.深入剖析Java中的装箱和拆箱
- 1.通过javap 反编译命名得到结论:装箱过程是调用包装器的valueOf()方法实现的.拆箱是调用包装器的xxxValue()方法实现的.
44. 过期的suspend()挂起、resume()继续执行线程
- 1.不推荐使用的原因:suspend()期间,线程不释放锁,导致其他线程无法获取锁而被阻塞.直到调用resume(),被挂起的线程才会继续.被阻塞的线程才能恢复.但假如resume()出现在suspend()之前.线程将一直处于被挂起的状态.同时一只占用锁.从而导致死锁.
45. JQuery实现——黑客帝国代码雨效果
- 真好看,mark一下...
46.Hash算法
- Ⅰ.Hash算法的查找步骤.
- 1.使用Hash算法将键值映射成索引.
- 2.处理Hash冲突.
- Ⅱ.Hash构造函数的方法.
- 1.直接定址法:
- 1.1:H(k)=k 或 H(k)=a×k+b ; (其中a,b为常数)
- 1.2.【优势】不同的关键字不会发生冲突.【逆势】:现实生活中连续的关键字很少,若关键字不连续将造成空间的大量浪费.因此其适应性不强.
- 2.数值分析法:
- 1.取数值关键字中取值较均匀的数位作为Hash地址的方法.适用于能预估全体关键字中每一位上数字出现的频度.
- 3.折叠法:
- 1.分为移位折叠和边界折叠.适用于关键字数字位特别多且每一位上数字分布大致均匀的情况.
- 4.平方取中法:
- H(key)="key"^2的中间几位.该方法的原理为通过平方来扩大差别.平方值和每一位都有关.对不同的关键字得到的哈希函数值不易发生冲突.产生的地址也比较均匀.
- 2.使用于关键字中的每一位都有某些数字出现频度很高的情况.
- 5.基数转换法:
- 1.将进制数转换为其他进制后取其中若干位作为Hash值.
- 6.除留余数法,随机数法,随机乘数法,字符串数值Hash法,旋转法.
- 1.直接定址法:
- Ⅲ.Hash冲突处理方法.(冲突只可较少不可消除)
- 1.开放地址法(再散列法):线性探测,二次探测,伪随机.该方法容易聚集.
- 2.再Hash法.不易聚集但增加了计算时间.
- 3.链地址法
- 4.建立公共溢出区.
47.Minor GC与Full GC分别在什么时候发生?
- Ⅰ.区分:
- 1.Minor GC:发生在新生代.回收频繁速度快.
- 2.Major GC/Full GC:发生在老年代.Major GC常伴随MinorGC.速度慢.
- Ⅱ.时机:
- 1.Minor GC:无法为新对象分配空间时.
- 2.Full GC:
- 2.1 老年代无法分配内存.
- 2.2 发生Minor GC时也有可能触发Full GC.因为老年代要对年轻代进行担保.但进行垃圾回收之前无法获知会有多少对象存活.老年代只好采用动态估算的方法来估算自己需要担保多少内存空间:上一次回收晋升到老年代的平均值.此时若发生Minor GC后存活的对象剧增超过估算值,将发生Full GC.
网友评论