现在的位置: 首页 > 综合 > 正文

2009.12.15笔记

2014年01月17日 ⁄ 综合 ⁄ 共 2565字 ⁄ 字号 评论关闭



打包:

javac -d
表示打包

开始-->
运行-->cmd
回车-->e:
回车-->cd 2020
回车-->cd 1215
回车-->javac -d f: Test1.java
(表示把当前目录下的Test1.java
文件打包到f
盘下)

-->java -cp f: Test1(
运行f
盘下的Test1.class
文件)

 

Test1.java
中首行插入package a.b.c.d;
然后在dos
中继续执行javac -d . Test1.java,

再看E:/2020A/1215
下有/a/b/c/d
,里面有个Test1.class
文件,dos
中继续执行java -cp . a.b.c.d.Test1,
则显示运行结果。不能执行cd
a-->cd b-->cd c-->cd d-->

java Test
,因为是在文件里面打的包,也就是刚才在Test.java
中写的package a.b.c.d;
在文件中这么写的只能以这种方式运行,记住就好!

 

Test1.java
中首行插入package a.b.c.d;
然后在dos
中继续执行javac -d f: Test1.java,

再看f
下有a/b/c/d
,里面有个Test1.class
文件,dos
中继续执行java -cp f: a.b.c.d.Test1,
则显示运行结果。

 

javac -d f://a/b/c Person.java(
那么就是f
盘下有个a/b/c/d/Test1.class)

 

javac(
编译) -d(
表示打包)
f:(

路径,也就是说,这个包打到哪里)Test1.java(
我要编译的源文件)

-cp(
后面的字符串,表示执行的临时路径,也就是说你的.class
字节码文件所在的那个包结构下)

 

dos
下,cd..
表示回到上一层目录

cd 2020a/1215
表示进入1215
这个文件夹,也可以是cd 2020a/1215,
正斜杠反斜杠都行,就是不能用点,除了上面在文件中打包的特殊外!

 



基本数据类型的值就是地址,对象放在堆里,基本数据类型跟引用都放在栈内存里。换句话说,栈存放的就是地址,存放的就是对象!

栈是先进后出!

New
相当与指向的一根箭头!

new
等号左边的东西放在栈里,等号右边的东西放在堆里。

 

强制类型转换如int i=200;
byte b=(byte)i; //就是把int i 转化为byte类型的!

 

基本数据类型转换等级:

byte->short,char -> int -> long      

float -> double

int -> float

long -> double

 

switch
(表达式);括号中的表达式的返回值必须是下述几种类型之一:int,
byte, char, short

 

分析以下两个类,体会值传递:

class BirthDate {
        private int day;
        private int month;
        private int year;
        public BirthDate(int d,int m,int y){
            day = d;  month = m; year = y;
        }
        public void setDay(int d)    { day = d; }
        public void setMonth(int m)    { month = m; }
        public void setYear(int y)    { year = y; }
        public int getDay()    { return day; }
        public int getMonth()    { return month; }
        public int getYear()    { return year;}
        public void display(){
                System.out.println(day + " - " + month + " - " + year);
        }
}

 

 

public class Example{
    public static void main(String args[]){
        Example ex = new Example();
        int date = 9;
        BirthDate d1= new BirthDate(7,7,1970);
        BirthDate d2= new BirthDate(1,1,2000);       
        ex.change1(date);
        ex.change2(d1);
        ex.change3(d2);   
        System.out.println("date=" + date);
        d1.display();
        d2.display();           
    }
    public void change1(int i){i = 1234;}   
    public void change2(BirthDate b){b = new BirthDate(22,2,2004);}
    public void change3(BirthDate b){b.setDay(22);}   
}

 

 

分析以下例子,体会先++跟后++的区别:

public class TestJiaJia
{
public static void main(String args[])
{
 int i = 1;
 int sum = 0;
 int sum2 = 0;
sum = i++ + i++ + i++ + i++;
sum2 = ++i + ++i + ++i + ++i;

System.out.println("i++:"+sum); //输出结果为10
System.out.println("++i:"+sum2); //输出结果为30
}
}

 

 

分析以下例子,体会移位运算符的作用:

class TestYiwei{
public static void main(String args[]){
int i=2;
i=i<<2;
System.out.println(i);//输出结果为8
i=i<<2;
System.out.println(i);//输出结果为32,就是8左移两位,也就是8乘2的2次方,左移几位就乘2的几次方!右移几位就除2的几次方。
i=i>>3;
System.out.println(i);//输出结果为4,32除以8(2的3次方)得4。
}
}

 

抱歉!评论已关闭.