﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-Impossible is Nothing !-随笔分类-Java</title><link>http://www.cnitblog.com/kinns/category/2244.html</link><description>

   如果我QQ上线但又没有给你发消息. 那请你原谅 因为我那时候正专心于我的事业中. 但这并不代表我没有把你放在第一位 恰恰因为我把你放在了第一位 所以才利用没有和你在一起的时间做完我该做的事. 而当我们在一起的时候. 我才能全心全意地和你在一起</description><language>zh-cn</language><lastBuildDate>Tue, 04 Oct 2011 09:46:07 GMT</lastBuildDate><pubDate>Tue, 04 Oct 2011 09:46:07 GMT</pubDate><ttl>60</ttl><item><title>Java 基础知识.</title><link>http://www.cnitblog.com/kinns/archive/2006/03/28/8194.html</link><dc:creator>kinns</dc:creator><author>kinns</author><pubDate>Tue, 28 Mar 2006 12:49:00 GMT</pubDate><guid>http://www.cnitblog.com/kinns/archive/2006/03/28/8194.html</guid><wfw:comment>http://www.cnitblog.com/kinns/comments/8194.html</wfw:comment><comments>http://www.cnitblog.com/kinns/archive/2006/03/28/8194.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kinns/comments/commentRss/8194.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kinns/services/trackbacks/8194.html</trackback:ping><description><![CDATA[<pre>
一段时间没写程序(虽然看JAVA也没几天).居然连最基本的数组初始化都忘了.
现在把基本知识归纳下. 以备以后查询.

Java Array:

declare: 
int[] a; // a 是一个指向整数数组的指针
int a[];

initialization:
int[] a = {1,2,3,4,5,6}; // 不是 int[] a = [1, 2, 3, 4, 5, 6];

Java Object

member initialization:

void f(){
   int i;
   i++;// 成员没有初始化
}

类中自动初始化成员
public class InitialInClass{
    boolean t;
    char c;
    byte b;
    short s;
    int i;
    long l;
    float f;
    double d;

    void print(String s)
    {
         System.out.println(s);
     }

    void printInitialVals()
    {
         print("Data Type          Initial value");
         print("boolean     " + t);
         print("char         [" + c + "]");
         print("byte         " + b);
         print("short        " + s);
         print("int            " + i);
         print("long         " + l);
         print("float         " + f);
         print("double      " + d);
     }

     public static void main(String args[])
     {
         InitialInClass in = new InitialInClass();
         in.printInitialVals();
     }
}


Specifying initialization:
class InitialVal{
    boolean b = true;
    char c = 'k';
    byte B = 47;
    short s = 0xff;
    int i = 21;
    float f = 3.5f;
    double d = 3.521;
    //.........
}

也可以在类中定义其他类
class InitialVal{
    myClass mc  = new myClass();
   //..
}
当然如下的初始化调用的不是你自己定义的构造函数(后面会讲到初始化顺序)
class Initial{
   Initial in = new Initial();

   Initial(){
       System.out.println("In Constructor.");
   }

   public static void main(String args[])
   {
       System.out.println("In Main");
   }
}
输出结果为: In Main


Constructor initialization:

class Counter{
    int i;

    Counter(){
        i = 5;
    }
}

Order of initialization:
1. 变量初始化在任何方法调用之前
2. 静态成员初始化在非静态成员之前.

class Tag{
    Tag(int marker)
    {
        System.out.println("Tag(" + marker + ")" );
    }
}

class Card{
    Tag t1 = new Tag(1);// 写在构造函数之前
    Card(){
        System.out.println("In Card()");
        t4 = new Tag(4); // 写在构造函数内
    }
    Tag t2 = new Tag(2);// 写在构造之后 普通函数之前

    void f(){
        System.out.println("In f()");
    }

    Tag t3 = new Tag(3);//写在普通方法后
}

public class OrderOfInitialization{
    public static void main(String[] args){
        Card c = new Card();
        c.f();
    }
}

Output:
Tag(1)
Tag(2)
Tag(3)
In Card()
Tag(4) // 这个就是构造函数内的
In f();

静态成员初始化(静态成员只初始化一次):
class myStatic{
   static int i;
   static{
       i = 47;
   }
}

初值(虽然自动赋予缺省值.但对每个变量都赋值是必要的)
----------------------------------------
Primitive type      Default
----------------------------------------
boolean               false
char                    '\u0000'(null)
byte                    (byte)0
short                   (short)0
int                       0
long                    0L
float                    0.0f
double                 0.0d
----------------------------------------
</pre><img src ="http://www.cnitblog.com/kinns/aggbug/8194.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kinns/" target="_blank">kinns</a> 2006-03-28 20:49 <a href="http://www.cnitblog.com/kinns/archive/2006/03/28/8194.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>