Java的发展史
java是sun公司在1995年推出的一种面向对象的编程语言,特别适用于Internet应用程序的开发。
java语言的特点
简单,面向对象,分布式,解释,健壮,安全,结构中立,可移植,高性能,多线程,多态
简单
风格类似于C++,但是摒弃了容易出错的指针和内存管理,提供了丰富的类库
面向对象
面向对象是java的重要特性,不同于C语言的面向过程。
分布式
java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此java可以通过URL打开并访问网络上的对象,访问方式跟访问本地文件系统一样,为分布环境尤其是internet提供动态内容很复杂,但是java使我们跟容易实现。
健壮
java致力于检查程序在编译和运行时的错误。类型检查帮助检查在开发早就发现的错误。java自己操纵内存减少内存出错的可能性,制动检测数组越界的错误,这些功能缩短了开发时间。
java提供的检测功能:Null指针检测,数组越界,异常出口,字节代码校验
结构中立
为了使用java语言作为网络的一个整体,java将他的程序编译为结构中立文件格式。只要有java运行系统的机器都能执行,运行调试
安全
java的安全性从两个方面得到保证,在java中像指针和释放内存等C++的功能被摒弃,避免非法内存操作,另一方面,当java用来创建浏览器内容时,语言功能能和一些浏览器本身提供的功能结合起来。
java语言在机器上执行前,会经过很多次的测试:经过代码校验,检查代码段的格式,检测指针操作,对象操作是否合法以及试图改变一个对象的类型等测试过程。
1.Byte-code校验
如果byte-code通过代码校验,没有返回错误,我们可以知道:
- 代码没有堆栈上溢出和下溢出
- 所有操作的代码参数类型都是正确的
- 没有发生非法数据转换,如将整数型转换成指针
- 访问对象操作是合法的
2.类装载
Class Loader 通过将本机类与网络资源类的名称分开,来保持安全性。因为调入类时总要经过检查,这样避免了特洛伊木马现象出现。
从网络上下载的类被调进一个和源相关的私有的名字域。当有一个私有类访问另一个类时,build-in(本机类)首先被检查,然后检查相关类。这样避免了破坏本机类的情况出现。
可移植
同体系结构无关的特性使得java应用程序可以在配置java解释器和运行环境的任何计算机系统运行,这成就了java应用软件便于移植的良好基础。
但是这样还不够,如果基础数据类型设计依赖与实现,将会给程序的移植带来很大的不便,因此java通过定义独立于平台的基本数据类型以及其运算,java数据得以在任何硬件平台上保存一致。
解释
java解释器(运行系统)能够直接运行目标代码的指令。链接程序比编辑程序需要的资源少,所以程序员可以花更多的时间在创建源程序上。
高性能
如果解释器速度不慢,java可以在运行时直接将目标代码翻译成机器指令。Sun系统用直接解释器一秒钟可调用300000个过程。
多线程
Java提供的多线程功能使得在一个程序中能够多个小任务。多线程带来的更大的好处是更好的交互性和实时控制性能(ios也是如此)。
动态
Java的动态特性是其面向对象设计方法的扩展。它允许程序动态地装入运行过程中所需要的类。java从如下几个方面来实现。java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下传给解释器,再有解释器在完成动态连接类后,将符号引用信息转换为数值偏移量。这样,一个在存储器生成的对象不再编译过程中决定,而是延迟到运行时用解释器确定,因此对类中的便利和方法进行更新不会影响现存代码。解释执行字节码是,这种符号信息的查找和转换过程仅在一个新的名字出现才运行一次,随后代码便可全速执行。
在运行是确定引用的好处是可以使用已被更新的类,而不必担心会影响原有的代码。如果程序连接了网络中另一系统中的某一类,该类的所有者也可以自由地对该类进行更新,而不会使任何引用该类的程序崩溃。
Java还简化了好用一个升级的或全新的协议方法。如果你的系统运行Java程序时遇到了不知怎么处理的程序,Java能自动下载你所需要的功能程序。
Java程序设计基础
程序结构
Java语言的源程序代码由一个或者多个编译单元(compilationunit)组成,每一个编译单位只能包含下列内容(空格和注释除外):
* 一个程序包语句(package statement)
* 入口语句(import statement)
* 类的声明(class declarations)
* 界面声明(interface declarations)
每个Java的编译单元可包含多个类或者界面,但是每一个编译单元最多只能有一个类或者界面是公共的。
组成Java语言的元素
Java语言主要由五种元素组成:标识符、关键字、直接量、运算符和分隔符。
标识符
标识符:程序中所用的符号名称(类、对象、方法、变量、常量等的名称
命名规则:以字母、下划线(_)或$符号开头,其后可跟任意数目的字母、数字、下划线和$符号
注意:1.数字不能作标识符的开头
2.除了下划线与$符号以外,其余的符号不用
3.不能用关键字作标识符
4.Java语言区分大小写(大小写敏感)
Java语言的书写约定:
类:每个单词的首字母大写;MyClassProgram
方法、变量:第一个单词的首字母小写;其后单词首字母均大写myMethod()、char_MyClass_Flag
常量:均以大写字母表示,多个单词用下划线分开IN_CHARACTER、WINDOW_DESTROY
关键字
语言本身使用的标识符叫关键字。它具有特定的语法意义
分隔符
注释:// —单行注释
/* 一行或多行注释*/
/**文档注释**/
空白符:空格、回车、Tab、换行
普通分隔符:; 语句结束标志
{ }复合语句、方法体、类体、数组初始化
, 分隔方法的参数和变量的说明
: 说明语句标号
基本数据类型类
数据类型
常量,变量和表达式
基本类型:整型:short、int、long
浮点型:float、double
布尔型:boolean(true、false)
字符型:char
字节型:byte
数组 :一维数组(myclass[]),多维数组(my class[][])
除了基本数据类型外, Java还包含一种引用数据类型(复合数据类型)
复合数据类型:类(包括数据类型类)
接口
Java的数据类型与C的数据类型有所不同:
★Java语言中同一种数据类型在任何平台上都占用相同的内存长度
★Java语言的每种数据类型都对应着一个缺省数值(任何数据类型的变量的取值总是确定的)
基本数据类型
Java语言定义了八种基本数据类型,利用基本数据类型可以构造复杂数据结构满足各种需要。
直接量(常量)
它是在程序运行中不变的量,其作用是为变量赋值或参与表达式运算
◆字符常量:由单引号括起的单个字符 ( ‘A’、’a’等)
◆字符串常量:由双引号括起的一串字符(如:“theprogram”等)
◆布尔型常量:true与false
◆数字常量:常用的阿拉伯数字(如不同进制的整形数、浮点数等)其他:
◆转义字符:具有特殊含义不能用一般方式表示的字符
◆字符串的连接操作符(+):它可以将两个或更多的字符串常量串联在一起,形成一个更长的字符串
变量
变量:在程序中,其值可变的量(代表保存数据的内存单元)
使用变量的原则:先定义,后使用。(使变量与内存建立联系—引用)
变量的定义(声明):定义变量名,定义变量的数据类型
1、变量的定义:
类型 变量名[,变量名] [,变量名] [,……]
类型:变量名=变量初值,…… , ……
举例:
charMyCharacter=‘B’;
long MyLong=-375;
int m_iCount=65536;
double m_dScroe;
2、变量的使用范围:
其范围在定义语句所在的大括号内(包括其中嵌套的大括号)
一般地:类开始时声明的变量是全局变量;在方法和语句块中声明的变量是局部变量
3、数据类型转换
类型转换:将等号右边数据类型转换成等号左边的另一种数据类型
隐式转换(短数据类型=>长数据类型):
◆赋值时转换:将短数据类型(占用内存较少)转换成长数据类型(占用内存较多)
int i=5; long j=i;
◆计算时转换:当较短的数据类型与较长的数据类型一起运算时,系统会自动地将较短的数据类型转换成较长的数据类型
int i=5; long j=10 ; k=i+j;
强制转换(长数据类型=>短数据类新):
将较长的数据类型转换成较短的数据类型,必须用强制性转换
格式:(数据类型)变量名或表达式
byte MyByte=10; Int MyInteger=-1;
MyInteger=MyByte; MyByte=(byte)MyInteger;
注意:从较长的数据类型转换到较短的数据类型时可能丢失数据
今天就先到这了!!!