1、《java就业培训教程》-张孝祥

        《java就业培训教程》  2003年版,视为java入门经典,在这里缅怀一下优秀的java讲师张孝祥。张孝祥老师的视频、书籍讲的详细深入,值得大家学习。

************************************************************************************************************************************

        一个java文件经过编译成为class文件,称为java字节码文件,相当于c语音经过编译后的exe文件,只是exe直接运行在物理机器上,而class运行在虚拟机jvm上,通过jvm指令运行物理机。

          jvm是java字节码解释程序;各种平台只要安装(实现)了对应的解释程序,java字节码文件就能在不同的jvm下运行,就是java跨平台的根本。

解释执行java字节码过程的三个部分:代码的载入,代码效验、代码执行(详细见《深入jvm》);

1、代码载入是由类加载器(class loader)完成,类加载器载入一个类后,解释器为符号引用与空间地址 之间建立查询表;

2、被载入的字节码由字节码效验器进行检查,效验器可发现操作数栈溢出、非法数据类型转换等多种错误;

3、字节码执行:

      &1、即时编译执行(Just In Time),先解释后执行,一次性完成。

      &2、解释执行,多次解释并执行一小段java字节码



       java的类实例和数组所需的存储空间实在堆内存上分配的,解释器承担为类实例空间分配的工作,记录该实例空间的使用情况(具体见《深入jvm》);垃圾回收解决大部分的了内存未回收造成的内存泄露和无效内存引用;

       在java程序运行过程中,GC会不定时地被唤起检查或释放内存,不由程序员控制,这并不是一个“很可靠的机制”,事实上,已经很可靠了。

       java用class关键字声明一个类,在class前添加限制访问符;

       注释:  // 单行,/*多行*/,/**文档*/

       变量,系统为程序分配一块内存单元(方法区常量池),用来存放各种类型的数据(引用);

       变量作用域,在大括弧{}之间,即在{int x=3;{{x=3*x;}}return x;}这样是可以获得x的值,而{{int x=9;{x=3*x;}}return x;}这样是不能获得x的值;

       一个{}内一个变量只能声明一次,这与c/c++不同,如{int x;{int x;}}这是不允许的。

       变量分为局部变量、成员变量;成员变量又分类变量和一般成员变量;成员变量的初始化值为0或null,而局部变量若不赋值,编译时会报错;

        方法:访问限制符 返回类型 方法名(参数类型 参数..){return 返回值;}

        方法参数传递过程:如int area = computeArea(4,5);--->computeArea(int x,int y);当执行到这条语句时,jvm将创建一个栈帧,并进入这个栈帧,同时携带参数并完成赋值,int x =3;int y=5;

ps:

          1、系统环境变量就是在操作系统中定义的变量,系统通过变量名就能找到变量值,比如path变量,一般会被其他应用程序使用,将常用的程序放在path值(路径)中,供其他程序使用。

          2、"=="是包括地址的比较

                equals()是内容的比较

猜你喜欢

转载自nickfover.iteye.com/blog/2153873