一、专有名词
1‘ 容器
创建一种对象类型,持有对其他对象的引用,被称为容器的新对象。在任何时候都可以扩充自己以容纳置于其中的所有东西。
java在其标准类库中包含了大量的容器。在某些类库中,一两个通用容器足以满足所有的需要;但是在其他类库中,具有不同的需要的各种类型的容器,如List,Map,Set,以及队列,树,堆栈等更多构件。
2‘ 异常处理:处理错误
异常处理将错误处理直接置于编程语言中,有时甚至置于OS中。异常是一种对象,从出错地点被抛出,并被专门设计用来处理特定类型错误的相应的异常处理器捕获。
3’并发编程
对于大量的问题,把问题分成多个可独立运行的部分(任务),在程序中,这些彼此独立运行的部分称为线程,上述概念称为“并发”。即为计算机编程的一个基本概念,在同一时刻处理多个任务的思想。
县城只是一种为单一处理器分配执行时间的手段。如果OS支持多处理器,那么每个人物都可以被指派给不同的处理器,并且他们是真正地并行执行。多线程的优点之一就是程序员无需操心是多处理器还是单处理器。
并发也有一个隐患:共享资源。多个并行任务都要访问一项资源,就会出问题。解决方法:某个任务锁定某项资源,完成其任务,然后释放资源锁,使其他任务可以使用这项资源。
3‘ C/S
客户/服务器系统的核心思想:系统具有一个中央信息存储池(central repository of information),用来存储某种数据,通常在于数据库,可以根据需要将它分发给某些人员或机器集群。该概念的关键在于信息存储池的位置集中于中央,可以被修改,并将修改传播给信息消费者。
总之,信息存储池、用于分发信息的软件以及信息与软件所驻留的机器或机群被总称为服务器。
4’ 客户端编程
通用网关接口(common gateway interface,CGI):由web服务器提供,接收提交动作并传递。
(1) 插件plug-in
将插件插入到浏览器适当的位置,以此来为浏览器添加新功能。例如google的浏览器可以很方便的下载并插入插件。
插件对于客户端编程的价值在于:允许程序员不需经过浏览器生产商的许可,就可以开发某种语言扩展,并将它们添加到服务器中。因此,插件提供了一个“后门”,使得可以创建新的客户端编程语言。
(2) 脚本语言scripting language
通过某些sl,可以将客户端程序的源代码直接嵌入到html页面中,解释这种语言的插件在html页面被显示时自动激活。
他们只是作为html页面一部分的简单文本,当服务器收到要获取该页面的请求时,可以被快速加载。缺点是代码会暴露给任何人去浏览。
JS(java scripting),一种脚本语言在web浏览器不需要任何插件就可以得到支持。
5‘ 服务器端编程
常见情形是复杂的数据库搜索请求,然后服务器将结果进行格式编排,使其成为一个html页面发回给客户端。
二、
1’ 用new创建一个新对象
程序运行时,对象的放置安排,内存的分配,有5个不同的地方可以存储数据:
Ⅰ 寄存器:最快的存储区,位于处理器内部。但是寄存器数量有限,所以寄存器根据需求进行分配。
Ⅱ 堆栈:位于通用RAM(随机访问存储器)中,但通过堆栈指针可以从处理器那里获得直接支持。堆栈指针若向下移动,则分配新的内存;若向上移动,则释放那些内存。这种快速有效的分配存储方法仅次于寄存器。
Ⅲ 堆:一种通用的的内存池(也位于RAM区),用于存放所有的java对象。堆不同于堆栈的好处:编译器不需要存储的数据在对立存活多长时间,因而在堆里分配存储有很大的灵活性。用new创建一个对象时,被执行代码时就会自动在堆里进行存储分配。
Ⅳ 常量存储:通常直接存放在程序代码内部。有时候,在嵌入式系统中,常量本身会和其他部分隔离开,此时可以选择将其存放在ROM(只读存储器)中。
Ⅴ 非ROM存储:如果数据完全存活于程序之外,那么他可以不受程序的任何控制,在程序没有运行时也可以存在。其中两个基本的例子:流对象和持久化对象。流对象中,对象转化为字节流,通常被发送给另一台机器。持久化对象中,对象存放在磁盘上,即便程序终止也仍可保持自己的状态。这种存储方式的技巧在于:把对象转化成可以存放在其他媒介上的事物,需要时可以恢复成常规的、基于RAM的对象。java提供了对轻量级持久化的支持,而诸如JDBC、Hibernate这样的机制提供了更加复杂的对在数据库中存储和读取对象信息的支持。
2‘ 基本类型
基本类型 | 大小 | 包装器类型 |
boolean | Boolean | |
char | 16bit | Character |
byte | 8bit | Byte |
short | 16bit | Short |
int | 32bit | Integer |
long | 64bit | Long |
float | 32bit | Float |
double | 64bit | Double |
void |
基本类型具有的包装器类,使得可以在堆中创建一个非基础对象,用来表示对应的基本类型。
如: char c='x'; Character ch=new Characte(c);
或者 Character ch=new Character('x');
或者 Character ch='x'; //(java SE5的自动包装功能自动将基本类型转为包装器类型)
并且可以反向转换: char c=ch;
3' 代码注释和嵌入式文档
注释方法: /* .......
.....*/
或者 // ........
注释文档: 代码同文档“链接”,将所有东西放在同一个文件内。为实现这一目的,必须使用一种特殊的注释语法来标记文档,此外还需一个工具用于提取注释,并将其转换成有用的形式,此为java所需为。
javadoc便是用于提取注释的工具,是JDK安装的一部分。采用java编译器的某些技术,查找程序内的特殊注释标签。他不仅解析由这些标签标记的信息,也将毗邻注释的雷鸣或方法名提取出来。javadoc输出的是一个html文件,可以用web浏览器查看。该工具只需文明创建和维护单一的源文件,便能自动生成有用的文档。详细叙述查看JDK文档。