接口有什么用

1、通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类。

2、通过接口可以指明多个类需要实现的方法。

3、通过接口可以了解对象的交互界面,而不需了解对象所对应的类。

另:Java是单继承,接口可以使其实现多继承的功能。


 

说说http,https协议

HTTP:

是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

HTTPS:

是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

区别:

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。


说说tcp/ip协议族

TCP/IP协议族是一个四层协议系统,自底而上分别是数据链路层、网络层、传输层和应用层。每一层完成不同的功能,且通过若干协议来实现,上层协议使用下层协议提供的服务。

1、数据链路层负责帧数据的传递。

2、网络层责数据怎样传递过去。

3、传输层负责传输数据的控制(准确性、安全性)

4、应用层负责数据的展示和获取。



osi五层网络协议

物理层:

为数据端设备提供传送数据的通路,数据通路可以是一个物理媒体,也可以是多个物理媒体连接而成。

数据链路层:

为网络层提供数据传送服务。

网络层:

路由选择和中继、激活,终止网络连接、在一条数据链路上复用多条网络连接,多采取分时复用技术 、差错检测与恢复、排序,流量控制、服务选择、网络管理 。

传输层:

传输层是两台计算机经过网络进行数据通信时,第一个端到端的层次,具有缓冲作用。

应用层:

应用层向应用程序提供服务


TCP与UDP的区别

1、基于连接与无连接

2、TCP要求系统资源较多,UDP较少;

3、UDP程序结构较简单

4、流模式(TCP)与数据报模式(UDP);

5、TCP保证数据正确性,UDP可能丢包

6、TCP保证数据顺序,UDP不保证


 

说说tcp三次握手,四次挥手

图片来源博客园,地址图右下角


cookie和session的区别,分布式环境怎么保存用户状态

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

分布式环境下的session(举例两种):

 

服务器session复制

原理:任何一个服务器上的session发生改变(增删改),该节点会把这个 session的所有内容序列化,然后广播给所有其它节点,不管其他服务器需不需要session,以此来保证Session同步。

优点:可容错,各个服务器间session能够实时响应。

缺点:会对网络负荷造成一定压力,如果session量大的话可能会造成网络堵塞,拖慢服务器性能。

session共享机制

使用分布式缓存方案比如memcached、redis,但是要求Memcached或Redis必须是集群。


GIT和SVN的区别

1、GIT是分布式的,SVN不是。

2、GIT把内容按元数据方式存储,而SVN是按文件。

3、GIT分支和SVN的分支不同。

4、GIT没有一个全局的版本号,而SVN有。

5、GIT的内容完整性要优于SVN。

(一般问会不会用,知道这些区别貌似也没卵用)


请写一段栈溢出、堆溢出的代码

递归调用可以导致栈溢出
不断创建对象可以导致堆溢出

代码如下:

 public class Test {  

    public void testHeap(){
for(;;){
ArrayList list = new ArrayList (2000);
}
}
int num=1;
public void testStack(){
num++;
this.testStack();
} public static void main(String[] args){
Test t = new Test ();
t.testHeap();
t.testStack();
}
}

参考链接:https://mp.weixin.qq.com/s/7fUtjZOMI15whLrmBgOl_g

 

最新文章

  1. SSH实战 · JAVA发送邮件相关
  2. C# decimal保留指定的小数位数,不四舍五入
  3. 5.3监听请求:使用eclipse的tcp/ip工具(端口转换)
  4. 使用 trash-cli 逃出 rm 命令误删除重要文件的阴影
  5. java 练手 谁是最好的Coder
  6. LeetCode之LRU Cache 最近最少使用算法 缓存设计
  7. Windows Server 2008R2配置MySQL Cluster并将管理节点和数据节点配置成windows服务
  8. JDK1.7中调用javascript方法
  9. C语言 格式说明符
  10. methanol 模块化的可定制的网页爬虫软件,主要的优点是速度快。
  11. Unity 发布到IOS,Android的各种坑
  12. Zookeeper3.4.9分布式集群安装
  13. 团队作业4——第一次项目冲刺(Alpha版本)3rd day
  14. Java日志-Log4j2
  15. 【适合N卡独显电脑的环境配置】Tensorflow教程-Windows 10下安装tensorflow 1.5.0 GPU with Anaconda
  16. cf1073c 二分+二维前缀和
  17. 关于 extern "C"的说明
  18. Python爬虫之selenium的使用(八)
  19. CAS多点登录
  20. java根据日期获取周几和获取某段时间内周几的日期

热门文章

  1. KVM以及其虚拟机安装
  2. [前端] VUE基础 (8) (vue-cli脚手架)
  3. Python Scrapy的QQ音乐爬虫 音乐下载、爬取歌曲信息、歌词、精彩评论
  4. (转载)Tomcat 报错 (The tomcat server configuration at /Servers/Tomcat v7.0 Server at localhost-config is mi)
  5. ab工具压接口的时候post传参问题
  6. 洛谷 P2722 总分 Score Inflation && 完全背包模板
  7. WINSCP 使用笔记
  8. 阿里云ECSLinux系统下挂载磁盘
  9. 修改自己的centos输入法
  10. 第3章 ZooKeeper基本数据模型