一、final 与 static 的区别?
都可以修饰类、方法、成员变量
static可以修饰类的代码块,final不可以
static不可以修饰方法内局部变量,final可以
static修饰表示静态或全局
static修饰的代码块表示静态代码块,当JVM加载类时,只会被创建一次
static修饰的变量可以重新赋值
static方法中不能用this和super关键字
因为this代表的是调用这个函数的对象的引用,而静态方法是属于类的,不属于对象,静态方法成功加载后, 对象还不一定存在。 this代表对本类对象的引用,指向本类已创建的对象。 super代表对父类对象的引用,指向父类对象。 静态优先于对象存在,方法被static修饰之后,方法先存在,所需的父类引用对象晚于该方法的出 现,也就是super所指向的对象还没出现,当然就会报错。
static方法必须被实现,而不能是抽象的abstract
static方法只能被static方法覆盖
final修饰表示常量、一旦创建不可被修改
final标记的成员变量必须在声明的同时赋值,或在该类的构造方法中赋值,不可重新赋值
final方法不能被子类重写
final类不能被继承,没有子类,final类中的方法默认是final的
final不能用于修饰构造方法
private类型的方法默认是final类型的
二、get和post简介
get和post是表单提交的两种方式,get请求数据通过域名后缀URL传送,用户可见,不安全,post请求数据通过在请求报文正文里传输,相对比较安全。get是通过URL传递表单值,post通过URL看不到表单域的值。
get传递的数据量是有限的,如果要传递大数据量不能用get,不如type=“file”上传文章、type=“password”传递密码,get和post是表单提交数据的两种方式,get请求数据通过地域名后缀URL传送,用户可见,不安全,post请求数据通过将在请求报文正文里传输,相对比较安全。
get是通过url传递表单值,post通过url看不到表单域的值;
get传递的数据量是有限的,如果要传递大数据量不能用get,比如type=“file”上传文章、type=“password”传递密码或者< text area >发表大段文章,post则没有这个限制;
post会有浏览器提示重新提交表单的问题,get则没有(加分的回答)
对于Post的表单重新敲地址栏再刷新就不会提示重新提交了,因为重新敲地址就没有偷偷提交的数据了。Post方式的正确的地址很难直接发给别人。
三、get和post的区别
1.get提交的数据放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. post方法是把提交的数据放在HTTP包的body中。
2.get提交的数据大小有限制(因为浏览器对URL的长度有限制),而post方法提交的数据没有限制。
3.get方式需要使用request.querystring来取得变量的值,而post方式通过request.form来获取变量的值。
4.get方式提交数据会带来安全问题,比如一个登陆页面,通过get提交数据时,用户名和密码将出现在URL中,如果页面可以被缓存或者其他人可以访问这台机器 ,就可以从历史记录获得该用户的账户和密码。
get是从服务器获取数据,post向服务器传送数据。
get是把参数数据队列加到提交表单的action属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML.header内一起传送到action属性所指的URL地址。用户看不到这个过程。
对于get方式,服务器端用request.querystring获取变量的值,对于post方式,服务器端用request.form获取提交的数据
get传送的数据量较小,不能大于2KB.POST传送的数据量较大,一般被默认为不受限制。但理论上,限制取决于服务器的处理能力。
get安全性较低。post安全性较高。