Java笔记-阅读《Java编程思想》第一、二章部分

汇编语言是对机器语言的抽象,而c语言是对汇编语言的抽象,在用c语言编程时,仍然要同时考虑机器是如何运行的(比如对内存的操作),所以在作出理论上解决问题的方法后,在编程时还要站在机器的角度思考这个问题如何解决。这提高了编写程序的难度,而且后期的维护也变得很麻烦。Java虚拟机的机制屏蔽了底层的操作(不用再无时不刻地考虑对内存的操作了),面向对象的编程方法让理论上解决问题的方法,可以更容易地变成实际的代码。

1)在JAVA中是用引用操纵对象的,类似于c语言使用指针去操作变量那样。

2)关于数据的存储:

  1.寄存器,速度最快但这是对程序员屏蔽的;

  2.堆栈,位于RAM(随机存取存储器)中,速度仅次于寄存器,堆栈的指针上下移动来实现内存分配和释放,但不够灵活,引用数据就存放在堆栈中;

  3.堆,速度较堆栈慢,但是更灵活,对象数据就存放在此;

  4.常量存储,常量不会变化,故单独存储在一块区域;

  5.非RAM存储,将对象存储在硬盘等地方,独立于程序存在,例如流对象和持久化对象。

3)“基本”类型

  java万物皆对象,像是整型、浮点类型等基本类型也是对象,但是由于这些数据简单并且频繁使用,所以考虑的效率可以不使用new来创建,而是想c/c++那样创建(好文明)。

1 char c1 = "Hello"; 
2 Character c2 = new Character(c); //可以传入字符类型
3 Character c3 = new Character("Hello"); //直接传入文本

4)数组

  Java中创建一个数组,也是先在堆栈中创建引用(自动初始化为null),然后在堆中创建数组对象。创建相比于c/c++的数组,Java会花费额外的运行时间和内存空间来检查确保数组会被正确初始化,并不会再范围外访问,整体上提高了程序的安全性和效率。

5) 作用域

  java中变量(对象)的内存是由java自有的内存回收机制来释放的,不想c/c++要确保变量的保留时间和需要变量的时间一样长,在作用域外,要释放内存。

6)类

  类包含两个元素,字段(数据成员)和方法(成员函数)。

  1.字段,字段中的基本类型如果没有被初始化的话,会自动初始化为默认值;

  2.方法,Java的方法和C中的函数类似,由名称、参数、返回值和方法体组成。其中名称和参数列表可以唯一标识某个方法。“Java的方法决定了一个对象能够接受什么样的信息。”例如a.f()中,消息就是f(),对象就是a,即“发送消息给对象”。

7)static

  static的字段和方法,可以直接用类名进行调用。

Class Test{
    static int i = 10;
    static int fun(){
        return 10;   
    }    
}

int x = Test.i;
int y = Test.fun();

 

posted @ 2020-07-10 22:17  叶落未落  阅读(134)  评论(0)    收藏  举报