首页 / JAVA / java新知识系列 三
java新知识系列 三
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java新知识系列 三,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含9704字,纯文字阅读大概需要14分钟。
内容图文
![java新知识系列 三](/upload/InfoBanner/zyjiaocheng/856/7567d310158f4b838bd5b503d4175190.jpg)
- finally中return语句会覆盖try-catch中的return语句
- ServletContext对象:servlet容器在启动时会加载web应用,并为每个web应用创建唯一的servlet context对象,可以把ServletContext看成是一个Web应用的服务器端组件的共享内存,在ServletContext中可以存放共享数据。ServletContext对象是真正的一个全局对象,凡是web容器中的Servlet都可以访问。整个web应用只有唯一的一个ServletContext对象
- servletConfig对象:用于封装servlet的配置信息。从一个servlet被实例化后,对任何客户端在任何时候访问有效,但仅对servlet自身有效,一个servlet的ServletConfig对象不能被另一个servlet访问。
传播行为 | 意义 |
PROPERGATION_MANDATORY | 表示方法必须运行在一个事务中,如果当前事务不存在,就抛出异常 |
PROPAGATION_NESTED | 表示如果当前事务存在,则方法应该运行在一个嵌套事务中。否则,它看起来和PROPAGATION_REQUIRED 看起来没什么俩样 |
PROPAGATION_NEVER | 表示方法不能运行在一个事务中,否则抛出异常 |
PROPAGATION_NOT_SUPPORTED | 表示方法不能运行在一个事务中,如果当前存在一个事务,则该方法将被挂起 |
PROPAGATION_REQUIRED | 表示当前方法必须运行在一个事务中,如果当前存在一个事务,那么该方法运行在这个事务中,否则,将创建一个新的事务 |
PROPAGATION_REQUIRES_NEW | 表示当前方法必须运行在自己的事务中,如果当前存在一个事务,那么这个事务将在该方法运行期间被挂起 |
PROPAGATION_SUPPORTS | 表示当前方法不需要运行在一个是事务中,但如果有一个事务已经存在,该方法也可以运行在这个事务中 |
隔离级别 | 意义 |
ISOLATION_DEFAULT | 使用后端数据库默认的隔离级别 |
ISOLATION_READ_UNCOMMITTED | 允许读取未提交的数据(对应未提交读),可能导致脏读、不可重复读、幻读 |
ISOLATION_READ_COMMITTED | 允许在一个事务中读取另一个已经提交的事务中的数据(对应已提交读)。可以避免脏读,但是无法避免不可重复读和幻读 |
ISOLATION_REPEATABLE_READ | 一个事务不可能更新由另一个事务修改但尚未提交(回滚)的数据(对应可重复读)。可以避免脏读和不可重复读,但无法避免幻读 |
ISOLATION_SERIALIZABLE | 这种隔离级别是所有的事务都在一个执行队列中,依次顺序执行,而不是并行(对应可序列化)。可以避免脏读、不可重复读、幻读。但是这种隔离级别效率很低,因此,除非必须,否则不建议使用。 |
在调用子类构造器之前,会先调用父类构造器,当子类构造器中没有使用"super(参数或无参数)"指定调用父类构造器时,是默认调用父类的无参构造器,如果父类中包含有参构造器,却没有无参构造器,则在子类构造器中一定要使用“super(参数)”指定调用父类的有参构造器,不然就会报错。 6:java数组具有协变性,而java集合不是协变的;7 几个例子: 1. 假设有一个函数 fun(Animal animal),如果我们传入一个Dog d 对象进去,编译器是不会报错的,这是多态的概念; 2. 假设有一个函数 fun(Animal[] animals),如果我们传如一个Dog[] dogs数组进去,编译器也不会报错,这就是数组的协变性; 3. 假设有一个函数 fun(List<Animal> ?animal), 如果我们传如一个List <Dog> ?dog 集合进去,编译器就会报错了,这就是集合泛型的不变性; 那么该怎么办呢?我们可以将泛型改成这样 fun (List <? extends Animal> ),这样之后,当我们再 传入一个List <Dog> ?dog 集合进去,编译器就就不会报错了。也就是说可以传入包含Animal的子类的List了。 List<Object>:点; List<?>/ List<? extends Object>:范围 1.不同的点之间不能互相赋值 2.小范围可以赋值给大范围,反之则不行 3.小点可以赋值给大范围(点在范围之内),范围不能赋值给点 注意:List list; 如果这样定义list的话,那么list可以赋值给任何点或范围。编译器不会报错,但是会警告(警告示例:Type safety: The expression of type List needs unchecked conversion to conform to List<A>) ? 7: ?EL表达式?http://www.cnblogs.com/xushuai123/archive/2013/03/24/2979711.html EL 全名为Expression Language,就是为了替代<%= %>脚本表达式。 ? 在j2ee1.4以前默认是不支持el,如果需要需要指定page指令[isELIgnored="true | false" ]为false,j2ee4.0后默认支持el ? 其主要作用为: EL主要作用: 1、获取数据: EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组) 2、执行运算: 利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算。${user==null} 3、获取web开发常用对象 EL 表达式定义了一些隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。 4、调用Java方法 EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。 ? 8:常见类的线程安全属性,以及如何去判断一个类是否是线程安全的方法以及源码实例;
- 常见类的是否线程安全
- 如何去判断一个类是否是线程安全的?
? public synchronized void addElement(E obj) {??modCount++; ???????ensureCapacityHelper(elementCount + 1);??elementData[elementCount++] = obj; } ? ? 而HashMap的所有操作都没有加synchronized修饰 ,put源码 public V put(K key, V value) { ?????if (key == null) ?????????return ??????putForNullKey(value); ??????int hash = hash(key.hashCode()); ??????int i = indexFor(hash, table.length); ??????for(Entry<K,V> e = table[i]; e != null; e = e.next) { ?????????Object k; ?????????if (e.hash == hash &&((k = e.key) == key || key.equals(k))) { ?????????????V oldValue = e.value; ?????????????e.value = value; ?????????????e.recordAccess(this); ?????????????return ?????????????oldValue;????} ?????} ?????modCount++; ?????addEntry(hash, key, value, i); ?????return null; } ? ArrayList的add方法的源码 ? public boolean add(E e) { ?????ensureCapacity(size + 1);??// Increments modCount!! ?????elementData[size++] = e; ?????return true; } ? ? StringBuffer的append源码,他是有synchronized修饰的 ? public synchronized StringBuffer append(String str) { ?????super.append(str); ?????return this; }
最后是Properties的setProperty方法,有synchronized修饰的
public synchronized Object setProperty(String key, String value) { ??????return ??????put(key, value); } 9:? ?java的移位运算符; >>为带符号右移,右移后左边的空位被填充为符号位 >>>为不带符号右移,右移后左边的空位被填充为0 没有<<< 因为<<后右边总是补0 10:JSP九大内置对象
1.request对象 ? ? ?客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。 2.response对象 ? ? ?response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。 3.session对象 ? ? ?session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例. 4.out对象 ? ? ?out对象是JspWriter类的实例,是向客户端输出内容常用的对象 5.page对象 ? ? ?page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例 6.application对象 ? ? ?application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。 7.exception对象 ? ?exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象 8.pageContext对象 pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本 类名也叫pageContext。 9.config对象 config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)
内容总结
以上是互联网集市为您收集整理的java新知识系列 三全部内容,希望文章能够帮你解决java新知识系列 三所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。