Java小知识(七)

Java:

1.public可以修饰类,数据成员,构造方法,方法成员。被public修饰的成员,可以在任何一个类中被调用,不管同包或不同包,是权限最大的一个修饰符。
2.static用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。
3.private可以修饰数据成员,构造方法,方法成员,不能修饰类(此处指的是外部类,不考虑内部类)。被private修饰的成员,只能在定义它们的类中使用,在其他类中不能使用。
4.synchronized可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码。

public>protected>default>private
public可以被当前类,子类,包,其他包访问;
protected可以被当前类,子类,包访问;
default可以被当前类,包访问;
private可以被当前类访问。

JSP四大作用域:page(作用范围最小)、request、session、application(作用范围最大)。
①存储在application对象中的属性可以被同一个WEB应用程序中的所有Servlet和JSP页面访问。(属性作用范围最大)
②存储在session对象中的属性可以被属于同一个会话(浏览器打开直到关闭称为一次会话,且在此期间会话不失效)的所有Servlet和JSP页面访问。
③存储在request对象中的属性可以被属于同一个请求的所有Servlet和JSP页面访问(在有转发的情况下可以跨页面获取属性值),例如使用PageContext.forward和PageContext.include方法连接起来的多个Servlet和JSP页面。
④存储在PageContext对象中的属性仅可以被当前JSP页面的当前响应过程中调用的各个组件访问,例如,正在响应当前请求的JSP页面和它调用的各个自定义标签类。

synchronized关键字和volatile关键字比较:
①volatile关键字是线程同步的轻量级实现,所以volatile性能肯定比ssynchronized关键字要好。但是volatile关键字只能用于变量而synchronized关键字可以修饰方法以及代码块。synchronized关键字在JavaSE1.6之后进行了主要包括为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁以及其他各种优化之后执行效率有了显著提升,实际开发中使用synchronized关键字的场景还是更多一些。
②多线程访问volatile关键字不会发生阻塞,而synchronized关键字可能发生阻塞。
③volatile关键字能保证数据的可见性,但不能保证数据的原子性。synchronized关键字两者都能保证。
④volatile关键字主要用于解决变量在多个线程之间的可见性,而synchronized关键字解决的是多个线程之间访问资源的同步性。

以下情况需要使用抽象类:
①当一个类的一个或多个方法是抽象方法时
②当类是一个抽象类的子类,并且不能为任何抽象方法提供任何实现细节或方法体时
③当一个类实现一个接口,并且不能为任何抽象方法实现细节或方法体时

JSP内置对象:
①request对象:
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttPServletRequest类的实例。
②response对象:
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttPServletResponse类的实例。
③session对象:
session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器端断开连接为止。它是HttpSession类的实例。
④out对象:
out对象是JspWriter类的实例,是向客户端输出内容常用的对象。
⑤page对象:
page对象就是指向当前JSP页面本身,有点像类中的this指针,它是java.lang.Object类的实例。
⑥application对象:
application对象实现了用户间数据的共享,可存放全局变量。它开始与服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。
⑦exception对象:
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,及产生这个对象。如果一个JSP页面要运用此对象,就必须把isErrorPage设为true,否则无法编译。它实际上是java.lang.Throwable的对象。
⑧pageContext对象:
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说它可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,它相当于页面中所有功能的集大成者,它的本类名也叫PageContext。
⑨config对象:
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过出传递一个ServletContext对象)。

①一个子类只能继承一个抽象类(虚类),但能实现多个接口;
②一个抽象类可以有构造方法,接口没有构造方法;
③一个抽象类中的方法不一定是抽象方法,即其中的方法可以有实现(有方法体),接口中的方法都是抽象方法,不能有方法体,只有声明;
④一个抽象类可以是public、private、protected、default;接口只有public;
⑤一个抽象类中的方法可以是public、protected、private、default;接口中的方法只能是public和default。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值