java学习笔记(一)

 

1、在java中定义一个String str;在这里实际上只是定义了一个引用,并不是对象,如果此时在某处调用了str将会产生错误;安全的做法是在创建一个引用的时候同时进行初始化:String str="Hello World!";

2、java中数据存储的地方

    (1)寄存器:由于寄存器数量有限,所以系统会根据需要进行分配,而不能由程序员直接控制;

    (2)堆栈:它位于通用的RAM(随机访问存储器)中,他可以以仅次于寄存器的速度快速分配内存,对象的引用一般存于堆栈中;java系统必须知道存储在堆栈中所有数据的确切生命周期

    (3)堆:编译器不需要知道存储在这里的数据的生命周期,new出来的数据都存放在堆上。

    (4)常量存储:直接存放在代码内部,因为他们是不变的;

    (5)非RAM存储:可以将某些持久的数据存储在磁盘上。

3、java的每种数据类型都有固定的存储空间,他并不像其他的语言那样随着机器硬件架构的变化而变化,而且所有的数值都有正负号。boolean---1bit  char---16bits  byte---8bits  short--16bits  int---32bits  long---64bits  float--32bits  double--64bits;

    java提供了两个用于高精度计算的类:BigInterger和BigDecimal

4、作用域

(1)下面的代码在java中是不合法的(在c/c++中合法)

            {
              int x=12;
              {
               int x=14;//Illegal
              }
            }

(2)对象的作用域

用new创建一个对象时对象产生,他可以存活于作用于之外,即new出来的数据只要需要他就一直会存在(通过垃圾回收器回收,从而能够防止内存泄露)

{

String str=new String("this is a string.");

}//end of scope

5、类中基本成员的默认值

在一个类中的成员数据如果没有赋给一个初值,java会确保他有一个初始值,对应如下:

boolean--false、char--'\u0000'(null)、byte--(byte)0、short--(short)0、int--0、long--0L、float--0.0f、double--0.0d

但是对于局部变量,java并不会自动赋予一个初始值,例如在一个方法中定义一个变量

int x;

此时x值时任意的,因此最好在定义的时候初始化一个值。

6、关于return:return用于在一个方法中返回一个值,若一个方法的返回类型是void则表示退出该方法

7、static关键字:static使得定义的数据或者方法属于某一个类,而不是具体的对象

8、逻辑操作符中的短路:在下面的操作中

boolean test, test1=true, test2=true, test3=flase, test4=true, test5=true,

test=test1&&test2&&test3&&test4&&test5;

由于test3=flase这就意味着整个表达式肯定为false,所以没有再继续进行后续的运算(&&test4&&test5),这就是短路一词的来源。事实上如果所有逻辑表达式都有一部分不必计算,那将获得潜在的性能提升。

 

posted on 2011-10-17 16:10  h2内存数据库  阅读(469)  评论(0编辑  收藏  举报

导航