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();

浙公网安备 33010602011771号