1、int和Integer、final关键字

  • Integer是int的包装类,int是基本数据类型
  • Integer变量必须实例化后才能使用,int变量不需要
  • Integer实际是对象的引用,指向new的Integer对象,int是直接存储数据值
  • Integer的默认值为null,int的默认值为0

final关键字:

修饰类时:类可以实例化,不可被继承,例如String;

修饰方法时:方法不可被重写,比如Object的wait;

修饰属性时:常量,一旦初始化后,不可被赋值。

2、hashmap的get、rehash

get:根据key的hashcode算出元素在数组中的下标,之后遍历Entry对象链表,直到找到元素为止。

rehash的解释:在创建hashMAP的时候可以设置参数,一般默认
初始化容量:创建hash表时桶的数量
负载因子:负载因子=map的size/初始化容量,当hash表中的负载因子达到负载极限的时候,hash表会自动成倍的增加容量(桶的数量),并将原有的对象重新的分配并加入新的桶内,这称为rehash。

3、输入网址发生了哪些事情

在浏览器中输入一个网址,首先要做的是域名的解析,也就是域名->ip的解析,依次查看了浏览器缓存,系统缓存,hosts文件,路由器缓存,递归搜索根域名服务器,直到找到最终的ip地址。

然后就是TCP协议的三次握手建立连接。由浏览器发送一个HTTP请求,经过路由器转发,通过服务器的防火墙,该HTTP请求到了服务器;服务器处理该HTTP请求,返回一个HTML文件,浏览器解析该HTML文件,并且渲染显示到浏览器端。

4、HTTP和HTTPS及其区别

  • HTTP是超文本传输协议,是一种无状态的协议,是常见的一种应用层协议。HTTP是一个通信规则,规定了客户端发送给服务端的内容格式,也规定了服务器发送给客户端的内容格式。
  • HTTP是超文本传输协议,数据是明文传输的;HTTPS在HTTP的基础上加入了SSL协议,实现数据的加密传输;
  • HTTPS需要去申请证书,一般是要收费的;
  • HTTP默认使用80端口,HTTPS默认使用443端口

5、HTTP请求格式

首行,协议头,空行,正文

6、GET与POST的区别

  • GET一般用来从服务器上查询获取资源;POST一般用来更新服务器上的资源;
  • GET方法将参数直接拼接到了URL的后面,明文显示,可以通过浏览器地址栏直接访问;
  • POST请求用于提交表单,数据不是明文的,安全性更高;
  • GET请求有长度限制,POST请求则没有。

7、若建立连接时间比较长,HTTP是怎么优化的

  • 并行连接(能够同一时候和多台server建立HTTP连接)
  • 持久连接
  • 管道化连接
  • 复用的连接

8、Java中public,protected,default(什么也不写),private的区别

  • 对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类,接口,异常等。它往往对于对外的情况,也就是对象或类对外的一种接口的形式。
  • 对于protected修饰符,它主要的作用就是用来保护子类的。它的含义在于子类可以使用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西。
  • 对于default来说,有的时候也称为friendly(友员),它是针对本包访问而设计的,任何处于本包下的类,接口,异常等,都可以互相访问,即使是父类没有用protected修饰的成员也可以。
  • 对于private来说,它的访问权限仅限于类的内部,是一种封装的体现,例如,大多数的成员变量都是修饰为private的,它们不希望被其他任何外部的类访问。

9、子类可以继承父类哪些访问限定符修饰的方法

public,protected,default(什么也不写)

10、如何使得一个函数不被覆写

添加final关键字修饰

11、静态内部类和匿名内部类的区别

静态内部类:

只能访问外部类的静态成员变量与静态方法。

静态内部类的非静态成员可访问外部类的静态变量,而不可访问外部类的非静态变量。

匿名内部类:

没有类名,没有class关键字也没有extends和implements等关键字修饰。

类的定义和对象的实例化同时进行。

12、内部类如何调用外部类的方法

Outter.this.方法名

13、四种引用

强引用:普通存在, P p = new P(),只要强引用存在,垃圾收集器永远不会回收掉被引用的对象;

软引用:通过SoftReference类实现,在内存不足时,进行回收;

弱引用:通过WeakReference类实现,每次垃圾回收时肯定会回收它;

虚引用:通过PhantomReference类实现,只是为了对象被回收的时候收到一个系统通知。

14、TCP核心机制

滑动窗口,快速重传机制,拥塞控制机制等。

15、内存泄漏与内存溢出关系

内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;

内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间。

memory leak会最终会导致out of memory!