Java编程思想_笔记(二)

Java中的存储位置:
1)寄存器。这是最快的存储区,位于处理器内部。

2)堆栈。位于RMA中,仅次于寄存器的分配存储方法。存放在这里的Java数据,Java必须要知道这里对象的声明周期,以便上下移动指针,这也就限制了程序的灵活性。Java对象不存储其中。

3)堆。位于RMA中,存储所有的Java对象,存在这里的对象,编译器不需要知道对象的生命周期,堆进行存储分配和清理比堆栈进行存储分配需要更多的时间。

4)常量存储。常量值直接存放在程序代码中,当在嵌入式系统中,常量本身会和其他部分分离开,存储在ROM中。

5)非RAM存储。数据存储在程序之外,例如:流对象和持久化对象。流对象:对象转化成字节流。持久化对象:对象存储在磁盘中。

高精度数字:

Java提供了两个高精度计算的类:BigInteger和BigDecimal。二者都没有对应的基本类,不过能作用于int或float的操作,二者也能以方法调用的取代运算符方式来实现。BigInteger:支持任意精度的整数。BugDecimal:支持任意精度的定点数。

 

在jvm中花括号内的区域被称为作用域。

System.out.println();实现后自动转行,System.out.print();实现后不自动转行。

public static void main(String[] args){}//其中args是用来存储命令行参数,并不是经常被调用.

当声明对象static时,就意味着不会与包含它的那个类的任何对象实例关联在一起。

public(公共)、protected(受保护)、private(私有)。


/新建对象
String s = new String("sdjl");

//自动包装功能将自动地将基本类型转换成包装器类型
Character ch = 'x';
//并可以反向转换
char c = ch;

//创建类
class DataOnly{
    int i;
    double d;
    boolean b;
}
//创建DataOnly的对象
DataOnly data = new DataOnly();

/**给DataOnly的对象赋值
*objectReference.member*/
data.i = 23;
data.d = 1.1;
data.b = false;
//改变数据
DataOnly.i = 323;

//在方法中定义参数列表,并在方法外引用
//定义类
class DataOnly{
    //定义返回int类型的类
    int stroage(String s){
    return s.length()*2:
    }
    //也可以定义其他返回类型的类
    boolean flag(){
    return true;
    }
    double natrualLogBase(){return 2.718;}
    void nothing(){retrun;} //void返回值为空
    void nothing2(){}
}
//因为返回的是int类型,所以赋值给新对象也应该是int类型
int ds = DataOnly.stroage("sdwds");
//打印
System.out.println(ds);

//使用static关键字定义对象
class StaticTest{
    static int i = 121;
}
//创建两个StaticTest对象,这两个对象共享一个i
StaticTest st1 = new StaticTest();
StaticTest st2 = new StaticTest();
//引用static定义的对象变量
st1.i;
StaticTest.i;//对于非静态成员则不行

//使用static定义静态方法
class Incrementable{
    static void increment(){StaticTest.i++;}
}
//两种方式调用Incrememtable方法
//重新赋值给另外一个变量,通常是最常用的一种方式
Incrementable sf = new Incrementable();
sf.increment;
//直接调用
Incrementable.increment;


//HelloDate.java
import java.util.*;

public class HelloDate{
    public static void main(String[] args){
        System.out.println("Hello,it's:");
        System.out.println(new Date());
    }
}

//:object/ShowProperties.java

public class ShowProperties{
    public static void main(String[] args){
    System.getProperties().list(System.out);
    System.out.println(System.getProperty("user.name"));
    System.out.println(
    System.getProperty("java.library.path"));
    }
}


你可能感兴趣的:(Java编程思想)