你为什么能访问我的空间?那是因为你手上有一台计算机,或者是一部手机。无论是计算机,还是手机,里面都有内存,CPU,和硬盘。当你点击QQ空间的时候,CPU就帮你把QQ空间这个程序从硬盘中加载到了内存中,然后,在内存中进行执行。
内存里面有三个区,一个叫做栈区,这就好比是一家客栈。一个叫做堆区,这就好比是公共区域,还有一个是方法区。
栈区里面存放的是变量,变量是什么?他是存放数据运算过程中所需要用到的数据,他是可变的。所以,我们通常用标识符来识别,他可以是字母,也可以是数字,但是数字是不可以放在首位的,也不能用关键字,因为那些关键字已经被JAVA程序使用了,而且,大小写必须要区分。一般,我们给变量取名都要见名知意,比如学生,我们可以给他取个变量叫做student,比如动物,我们可以取名为animal。这样做的目的是提高程序的可阅读性,你的程序不仅你自己要看懂,而且也要让别人看懂。
当变量进入了栈区,内存就要给变量分配一个空间,就好比客栈的老板分配一个房间给旅客住宿。 客栈有高级的,有标准的,甚至还有总统套房。所以,我们也要给变量进行声明。在声明的过程中,我们必须要确定变量的类型,比如一个变量a,我们可以给他的数据类型是基础数据类型,还可以是引用数据类型。基础数据类型有8种,包括整数型和字符型,比如,1,2,4我们可以用int,1.2我们可以用double,刘或者a,我们可以用char,student。当然,我们还可以用引用类型,比如最典型的就是数组型,当然,客栈里面还提供DIY模式,就是你自己可以做一个类型。
当你自己给客栈里面的房间进行了DIY,那么,你就可以给自己找一个对象,所以,我们就可以用new这个关键字创造一个对象。这个对象有自己的成员,比如我创建了一个老师对象,这个老师有自己的属性,比如姓名,年龄,性别,以及家庭住址,当然,这些都是可变的,因为不同的老师代表不同的姓名,不同的年龄,以及不同的性别,我们管这些叫做成员变量。成员变量在堆中存放,因为那里是公共区域,他存放着不同的老师对象,学生对象,也可能是一个动物园,存放着不同的动物。
每个老师都会教书,每个动物都会睡觉,这是一种技能,也是一种方法,因为不同的老师,教书方法不一样,不同的动物,睡觉吃饭不一样,比如熊猫喜欢吃竹子,老鼠喜欢偷油喝。所以,还有一个区,叫方法区。
当JAVA程序运行的时候,首先要通过类装载器找到类的字节码信息,然后通过解析装入方法区。一个老师,当他从客栈里面出来的时候,他要去学校,所以他要去堆中,当他离开学校的时候,他的身份就在转变,比如,他在客栈叫李刚,他在学校,可能就叫李老师,当他离开学校的时候,李老师的身份就要回收,所以,这就有一个回收机制,通常用GC表示。当然,JAVA管他叫垃圾回收机制。因为你离开学校的时候,那个身份就已经被JAVA垃圾回收站给回收了。但有时候,如果你不写上System.gc(),程序不认为你是垃圾,就像老师离开学校忘记注销自己的教师身份,而带回了客栈,这样的结果就是导致内存外泄,引起内存不足,甚至程序崩溃。
在老师在学校教书的时候,也就是调用了方法区的方法,不同的老师,教书的方法不一样,所以有的老师成为了特级老师,有的老师仍然是一名普通老师。但无论是什么方法,都需要一个教书的过程,过程无非就是三种,顺序结构,分支结构和循环结构。顺序结构就是从头讲到尾。分支结构其实就是一种选择结构,就像上课,我可以选择让学生发言来讨论对错。循环结构就是一种循环,当条件满足时,我可以循环多次去做。知道条件不满足的时候,我就退出循环。世间万物,所有的事情,都是这三种方法,但是如何运用,就仁者见仁智者见智。
计算机他认什么?他只认识数字,而且,就认识两个数字,0和1。他不认识1000,也不是abcd,更不认识汉字,所以需要转换。比如1000,他转换成2进制就是1111101000,但是转换了以后,就变成了低级汇编语言。而JAVA是一种高级汇编语言,所以,他需要编译,他需要先编译以后,然后再进行输出。
我们为什么要学习JAVA,因为当我们编译好了JAVA程序后,我们可以在不同的JVM上运行,而且运行的效果相同,因为JAVA官方提供了不同的平台的JVM软件。比如苹果系统,微软系统,对于JAVA来说,最常用的还是LINUX系统,比如我们的手机Android系统,这个系统不同于windouws系统,他没有分区,只有根目录,主目录,和插入外部设备,比如USB设备的挂载点。 所以学好了JAVA,也就为学习JSP,Andriod等打下了坚实的基础。