1、对象是按引用传递的---带"="号的赋值操作
2、Java 应用程序有且仅有的一种参数传递机制,即按值传递---由"函数调用"引起的
3、按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本
4、按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值 的副本
5、注意:String虽是对象,但永远是传值
首先我们来看看第一点:对象是按引用传递的确实,这一点我想大家没有任何疑问,例如:
class Test01
{
public static void main(String[] args)
{
StringBuffer s= new StringBuffer("good");
StringBuffer s2=s;
s2.append(" afternoon.");
System.out.println(s);
}
}
对象s和s2指向的是内存中的同一个地址因此指向的也是同一个对象。
如何解释“对象是按引用传递的”的呢?
这里的意思是进 ......
单态定义:
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
Singleton模式就为我们提供了这样实现的可能。使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(garbage collection)。
使用Singleton注意事项:
有时在某些情况下,使用Singleton并不能达到Singleton的目的,如有多个Singleton对象同时被不同的类装入器装载;在EJB这样的分布式系统中使用也要注意这种情况,因为EJB是跨服务器,跨JVM的
单态模式的演化:
单态模式是个简单的模式,但是这个简单的模式也有很多复杂的东西。
单态模式一:
i)
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton ......
优先级
运算符
名称
1
( )
括号
2
[ ] , 。
后缀运算符
3
- (一元运算符,取负数) , ! , ~ , ++ , --
一元运算符
4
* , / , %
乘,除,取模
5
+, -
加,减
6
>> , << , >>>
移位运算符
7
> , < , >= , <= , instanceof
关系运算符
8
==,!=
等于,不等于
9
&
按位与
10
^
按位异或
11
|
按位或
12
&&
逻辑与
13
||
逻辑或
14
?:
条件运算符
15
=(包括各与“=”结合的运算符,例如:+=)
赋值运算符
总偶然用到与操作符,竟忘了他的优先级。 Mark 一下。 ......
三步:
一、自定义标签实现类: myTags.java;
二、自定义标签库文件(TLD): myTags.tld;
三、一个JSP页面:随便写了;
首先myTags.java
package com.tags;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
public class myTags extends TagSupport {
public String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int doEndTag() throws JspException {
JspWriter out = pageContext.getOut();//得到out
try{
out.println("<table bgColor=yellow>");
out.println("<tr>");
out.println("<td>"+ name +" : this is myTags!!</td>");
out.println("</tr>");
out.println("</table>");
}catch(Exception ex){ex.printStackTrace();}
return this.EVAL_PAGE;
}
}
然后myTags.tld文件,在web-inf文件夹下生成,也可看做一个XML文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE taglib P ......
我们不妨设想,为了创建一个新的线程,我们需要做些什么?很显然,我们必须指明这个线程所要执行的代码,而这就是在Java中实现多线程我们所需要做的一切!
作为一个完全面向对象的语言,Java提供了类 java.lang.Thread 来方便多线程编程,这个类提供了大量的方法来方便我们控制自己的各个线程。
那么如何提供给 Java 我们要线程执行的代码呢?让我们来看一看 Thread 类。Thread 类最重要的方法是 run() ,它为Thread 类的方法 start() 所调用,提供我们的线程所要执行的代码。为了指定我们自己的代码,只需要覆盖它!
方法一:继承 Thread 类,重写方法 run(),我们在创建的 Thread 类的子类中重写 run() ,加入线程所要执行的代码即可。下面是一个例子:
public class TwoThread extends Thread {
public void run() {
for ( int i = 0; i < 10; i++ ) {
System.out.println("New thread");
}
& ......
原始URL: http://blog.donews.com/dukejoe/archive/2010/04/28/1575574.aspx
package cn.com.hrbb.samples;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
/**
*
* 演示使用 JACOB : Java COM Bridge 操纵 Word 文档
*
* 作者:高宏伟(DukeJoe)
* 时间:2010-04-28 15:49:34
* 地点:北京市朝阳区光华路甲8号和乔大厦10楼哈尔滨银行
* JDK: 1.6.0_17
* 环境版本:Windows XP Home Edition Service Pack 3
* Office 2007
* jacob-1.14.3
* QQ: 21807822
* E-MAIL: dukejoe@163.com
* 关键字: JACOB Word
* 注释:主要演示功能,增加文字内容,表格,及如何操纵表格
*
*/
public class Test1
{
private ActiveXComponent objWord;
private Dispatch document;
private Dispatch wordObject;
public static void main(String[] args)
{
Test1 t1 = new Test1();
& ......