您的位置:首页 > 其它

文章标题

2015-10-23 10:27 169 查看

1.为什么说http是无连接的,请说明原因?

所谓的无连接即不会保存上次的历史数据,并收到客户的应答后,每次连接完即断开连接,即每次都需重新传输数据,会发生数据的重传等。

http产生于互联网,每各客户端与服务器交换的数据间歇性较大,并且网页浏览的联想性、发散性导致导致两次传输数据的关联性很低,因此http需要在每次连接完即断开连接,将数据资源释放,以用于其他客户端。

而随着时间的推移,htm变得相当复杂,每个页面包含的图片相当多,若每次访问都要建立一次tcp连接就显得很低效,因此提出了Keep-alive,这样客户端与服务器之间的连接就会被保持,不会断开(除非超过keep-alive的时间限制,以及断开电源),当客户端发送另一个请求时,就使用这条已经断开的连接。

无状态是指服务器不知道客户端是什么状态。

HTTP是一个无状态协议,这意味着每个请求都是独立的,Keep-Alive没能改变这个结果。

但是,慢慢的人们发现静态的htm着实无趣,增加动态生成的内容才会使web更加有用

在这种客户端与服务器进行动态交互的web应用程序出现后,http的无状态性严重阻碍了这些交互式应用程序的实现,毕竟交互式需要承前启后的,简单的购物程序也要知道用户在之前选择了什么商品。遇事,两种用于保持http状态的技术就营运而生了,一个是cookie,而另一个则是session。

2.## java中static修饰的变量和方法的原理

static的用途

“static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途;

一句话:方便在没有创建对象的情况下来进行调用(方法/变量)。

static可以用来修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能。代码块执行严格按照顺序来,且不能写在方法内部。

static关键字的常见误区。

在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的

static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。

static能作用于局部变量么?

  在C/C++中static是可以作用域局部变量的,但是在Java中切记:static是不允许用来修饰局部变量。不要问为什么,这是Java语法的规定。

3.TCP与UDP的区别,以及TCP的流量控制、拥塞避免等

4.写出一个设计模式

以最简单的单例模式为例:

Singleton 类

namespace Singleton

{

public class Singleton

{

//定义一个私有的静态全局变量来保存该类的唯一实例

private static Singleton singleton;

///

/// 构造函数必须是私有的

/// 这样在外部便无法使用 new 来创建该类的实例

///

private Singleton()

{

}

///

/// 定义一个全局访问点

/// 设置为静态方法

/// 则在类的外部便无需实例化就可以调用该方法

///

///

public static Singleton GetInstance()

{

//这里可以保证只实例化一次

//即在第一次调用时实例化

//以后调用便不会再实例化

if (singleton == null)

{

singleton = new Singleton();

}

return singleton;

}

}

}

5.为什么要用多线程?线程越来越多,怎么性能反而会下降?

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: