Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 软件时空 > 软件相关 > 第一天SL275的学习
【标  题】:第一天SL275的学习
【关键字】:SL275
【来  源】:BLOG.CSDN.NET

第一天SL275的学习

Your Ad Here

 昨天晚上去听了SCJP的第一次培训课,现在开始也就开始了正式的SCJP的学习,但愿不要和老师上课的进度拉开特别大的距离,因为自已只学了一丁点,要在这12天时间来最大努力的学习Java,尽最大努力取得最好的结果吧!也但愿能在这一学期有这样一个,很多人看来没有用的证书吧!言归正传,开始今天的学习吧,昨在的课件没有拷到,就按照这个盗版书(我是瞎说的,培训班的同学们都认为这个质量不好)的进度来吧,呵呵!

  那我就象记流水帐一样的开始吧:)

  一、什么是Java技术?

        Java技术是:

            1.一种编程语言:Java语言的语法与C++相似,而语义与SmallTalk相似,任何传统语言能给创建的应用程序,Java都能够实现;

            2.一种开发环境;作为一种开发环境,Java提供了一系列开发工具:编译器,解释器,文档生成器,类文件打包工具,等等;

            3.一种应用程序环境;教材上主要也就说了:Java是典型的通用程序不需要依赖浏览器,可以运行于,只要有JREJava运行时环境)的任何机器当中,我感觉有点矛盾;

         在这一块,书上还提到了,applet程序,是用Java编写,驻留在WEB服务器中,由HTML调用,下载到浏览器当中,由浏览器来运行,为了节约时间,Applet都小,这好象并不能说明,这是一种应用程序环境吧!

这里可能说的应用程序环境也就是说,因为CLASS文件要在Java环境下才能解释才能运行的的原因吧!

          4.一种部署环境:什么是部署环境,我不太清楚,部署?也说不清楚,他这里说讲了两种部署环境:

·         No.1JRE,由J2SDKJava 2 Software Development Kit)提供的,包含了一套完整的Java技术包的所有类文件,包括基本语言类和GUI组件类以及高级的集合API 等等。

·         No.2:就是浏览器,说了大多数浏览器都提供了Java技术解释器和运行时环境,可是事实上,我觉的现在浏览器对applet的支持,越来越不行了。

二、Java技术的主要目标:

1.提供一种易于编程的语言:

·   取消了其它语言的一些缺陷,如C/C++中的内存管理和指针,这些都会影响代码的健壮性(健壮?不完全清楚)。

·   是面向对象的,有助于用生活中的术语使程序形象化。

·   能够编写简洁的代码,提高执行效率。

      2.提供一种解释环境:可以代来两个好处:

·   a.缩短编译---->链接-------->安装----------->测试这样一个过程的周期。

·   b。代码可移值性,可以使编定的代码能够在大多数操作系统上运行(JVM)

3使用用户能够运行多个活动线程

       4允许程序下载代码模块,使得在程序在运行周期内,可以动态改变程序

        5.提供更好的安全性,通过检查加载的代码模块来确保安全性

下列特性实现了上述目标:

一、Java虚拟机(JVM

Java虚拟机规范定义JVM如下:在真实的机器中(硬件)用软件模拟实现的一种虚拟的机器。JVM运行的代码存储在.class文件中,每个文件最多只能含有一个public类的代码。

“JVM规范提供了编译所有JAVA技术代码的硬件平台规范。这个规范使JAVA软件能够独立于平台,因为编译是针对被称为JVM通用机器而运行的。可用软件模拟在各种不同的计算机系统上运行通用机器,也可用硬件来实现这个虚拟机

编译器取得java源代码并生成字节码,字节码是能够被JVM解释的机器指令代码,每个JAVA技术解释器,不论是JAVA技术开发工具,还是能够运行APPLETWEB浏览器,都有一个JVM的实现,可能也就是说能是基于JVM而运行的吧。

JVM规范为下列概念提供了具体的定义:1.一套指令系统(相当于中央处理器(CPU))。2.一组寄存器。3.类定义规范。4.运行时堆栈(有点含糊)。5.垃圾收集堆。6.一个内存区。

JVM的代码格式由简法,高效的字节码构成。由JVM字节码表示的程序,必须保持正确的类型约定。大部分类型检查在编译时完成。

所有符合Java技术的解释器,必须能够运行:符合JVM规范中所指定的类文件格式的类文件。

     二、垃圾收集

许多语言允许在程序运行时动态分配内存,分配内存的过程根据语言的语法不同而不同,但总要涉及一个问题:返回一个指针指向一个内存块的起始位置。如果不再需要已分配的内存(引用该内存块的指针已经溢出),程序或运行环境该释放内存。

C/C++等语言中,内存的释放由程序员负表,因为不总是知道该何时释放内存,所以有时候,这是一件很痛苦的程序。不释放内存的程序会有可能最终崩溃(当系统中没有剩余内存可供分配时),这些程序被称为具有内存漏洞。

Java语言把程序员解脱出来,而不用再负表内存的释放。它提供了一个系统级的线程来跟踪每个内存的分配,在JVM的空闲周期,垃圾收集线程检查并释放那些可以释放的内存。垃圾收集在Java技术程序的生命周期中自动进行,它消除了释放内存的必要和产生内存漏洞的可能。然而在各种JVM实现中,垃圾收集机制会存在较大的差异。

三、Java运行时环境(JRE)

书上用了一副图来介绍了JRE的运行环境,我这里就用文字,他分了两个大模块。第一个就是编译(编译的意思:Java软件源代码从编写他们的文本格式转换为一套字节码,这些字节码存储在.class文件中):将编写好的.java文件用Javac编译成为.class文件。每二部分是运行时:用javaa命令调用类加载器加载,将。Class文件也就是字节码加载,后用字节码检验器检验合格后,送往解释器(有两个功能:执行字节码和正确调用底层硬件),再送往运行时,最后送到硬件(不知道是显示器之类的,还是送往机器内部运行)。而APPLET程序运行时,先下载那些字节代码,然后由内建于浏览器的JVM来解释该代码。

另外还有一幅图,是说有些java技术的运行时环境,将校验过的字节码直接编译成本地机器代码,并且直接在该硬件平台上运行。这样使得Java软件代码的执行速度接近C/C++,但是会有少量的时间延迟以使该代码被编译成为本地机器代码。

最后注:通过增加新的特性开放技术,SUN Microsystem增强了JVM,这些技术之一被称为Java Hotspot虚拟机,这得JAVA编程语言有和C++编译后的代码运行速度一样快的潜力。

JRE可以运行JVM编译的的代码并执行三个主要任务:

l     由类加载器加载代码,

l     由字节码校验器检验代码。

l     由运行时解释器执行代码。

类加载器:

加载程序执行的全部类,并使用“命名空间”保持本地文件系统的类分离(将本地文件系统的类的命名空间与从网络源导入的类分隔开),以增加安全性,由于总是先加载本地类,可限制任何“特洛伊木马”程序。当全部类被加载后,可执行文件的内存布局也就确定了下来。这时,符号引用被赋值为具体的内存地址,并创建了查询表格。由于内存布局在运行时发生,JAVA技术解释器增加了保护功能,以防止对受限代码区的未授权访问。

字节码校验器

Java软件代码在计算机中运行之前要经过几次测试。JVM将代码输入到一个字节码校验器,测试代码的段格式并检查那些非法代码,如:伪指针,违反对象访问权限、试图改变对象类型的。。等等。

书上还注了一点:所有通过网络导入的类文件都要经过字节码校验器。但不知道这句话是不是意味着,有些不是通过网络导入的类文件,是不是可以不经过字节码校验器???晕。。。。。。。。。。

校验过程:字节码校验器将对程序代码进行四次校验,可以保证代码符合JVM规范并且不违反系统的完整性,若校验器完成四次校验都没有返回错误信息,则可以保证:

*   代码符合JVM规范,类文件符合JVM规范指定的类文件格式

*   没有违反系统的完整性,没有访问限制违列

*   代码没有引起操作数堆栈的上溢或下溢

*   所有操作代码的参数类型都是正确的

*   无非法数据转换的发生,如:整型转换成指针型(对象引用)

后边还有第一个程序HelloJava.java程序的学习,这里时间原因就不写了,改天补上吧!

《梁山政治》的理性故事选辑——试以另类形式表达的书评:【上一篇】
JVC(Java View Control) Java(视图-控制)开发框架:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • 多彩科技的梦幻高手键鼠套装试用报告
  • 变量定义问题集锦
  • BSD下虚拟机qemu 入门详解
  • 测试交换机的互操作性
  • ACDSee:看图功能以外的功能介绍
  • 理解Linux配置文件简介
  • 正确使用#include和前置声明(forward declaration)
  • Windows/Gnome/Kde常用软件对比
  • 用CorelDraw 11 制作个人的情书
  • 别动啊
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.