瑜琅java学习笔记

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第一部分:java语言1java起源1.1计算机语言的革新和发展需要2个基本因素的驱动:●适应正在变化的环境和需求●实现编程艺术的完善与提高1.2设计一种计算机语言,要从以下方面进行权衡:●易用性与功能●安全性和效率性●稳定性和可拓展性1.3C++产生的基本条件:加强程序的复杂性的管理能力;1.4java来由:基于跨平台的可移植性;万维网对跨平台语言的渴求;1.5java可以生成两类应用程序:应用程序(applications)和javaapplet(小应用程序)。1.6applet小程序可以在internet中传输并在兼容Java的Web浏览器中运行。实际上就是小型的java程序,能像图像文件、声音文件、视频片段那样通过网络动态下载,与其他文件的重要差别是:applet是一个智能的程序。1.7安全性:java程序只运行在java环境(JVM)中,JVM通过限制java程序对操作系统的文件系统的访问来实现,基于java程序的安全性;1.8可移植性:可以使连接到internet上的各种各样的平台都能动态下载同一个程序;1.9JIT(justintime):jit只编译它运行时的代码,他不能将整个java程序一次性全部编译为可执行的代码,因为java要执行各种检查,而这些检查只有在运行时才执行。尽管如此,这种即时编译执行的方法仍然是性能得到很大提高。1.10java专门用语:简单(simple)安全(secure)可移植(portable)面向对象(object-oriented)拓展:OOP(object-orientedprogramming)健壮(robust)多线程(multithreaded)体系结构中立(architecture-neutral)解释执行(interpreted)高性能(highperformance)分布式(distributed)动态(dynamic)1.11简单(simple):a.java继承了C/C++语法和许多C++面向对象的特性;b.java废弃或者以另外一种更清楚、更容易理解的方式实现了C++中许多容易混淆的概念;c.设计人员努力使java中不出现显得让人吃惊的特性;d.java中很少明确的告诉你如何才能完成一项特定的任务;1.12面向对象:一切皆为对象是java编程的核心思想;1.13健壮:java程序可以在许多系统上可靠的执行;因为java是一种严格的类型语言,它不但在编译时检查代码,而且在运行时也检查代码。事实上,在运行时经常碰到的难以重现的、难以跟踪的许多错误在java中几乎是不可能产生的。使程序在不同的运行环境中一可预见的方式运行是java的关键特性;1.14多线程:设计java的目标之一是为了满足人们对创建交互式网上程序的需要。为此,java支持多线程编程,因而你用java编写的应用程序可以同时执行多个任务。java运行时系统在多线程同步方面有成熟的解决方案,这使你能够创建出运行平稳的交互式系统。java的多线程机制非常好用,因而你只需关注程序细节的实现,不用担心后台的多任务系统。1.15结构中立:java程序不会因为操作系统、处理器的变化而受影响。JVM(JavaVirtualMachine)实现了程序代码的持久性和可移植性(只要写一次程序,在任何地方、任何时间该程序永远都能运行)的目标。1.16解释性&高性能:java程序的字节码可以在提供java虚拟机(JVM)的任何一种系统上被解释执行。并且可以在非常低档的CUP上顺利运行。java确实是一种解释性语言,java的字节码经过仔细设计,因而很容易便能使用JIT编译即时将字节码直接转换成高性能的本机代码。java运行时系统在提供这个特性的同时仍具有平台独立性,因而“高效且跨平台”对java来说并不矛盾。1.17分布式:java为internet的分布式环境而设计,因为它处理TCP/IP协议。事实上,通过URL地址存取资源与直接存取一个文件的差别不太大的。java原来的版本(Oak)包括了内置的地址空格消息传递(intra-address-space)特性。这允许位于两台不同的计算机上的对象可以远程地执行过程。JAVA后来又发布了叫做远程方法调用(remotemethodinvocation,RMI)的软件包,这个特性使客户机/服务器编程达到了无与伦比的抽象级。1.18动态:java程序带有多种运行时信息,用语在运行时校验和解决对象访问问题。这使得在一种安全、有效的方式下动态地连接代码成为可能,对小应用程序环境的健壮性也十分重要,因为在运行时系统中,字节码内的小程序可以动态的被刷新。2java语言概述2.1两种泛型:计算机程序都由两类元素组成:代码和数据。此外从概念上讲,程序还可以以它的代码或是数据为核心进行组织编写。也就是说。一种程序围绕“正在发生什么”编写,而另一种程序则围绕“谁将被发生”编写。这两种泛型决定程序的构建方法。第一种方法即为面向过程的模型(process-orientedmodel),这种模式的程序都具有线性执行的特点。面向过程的模型可以认为是代码作用于数据,例如C语言。但当程序变得更大并且更复杂时,就会出现问题。为了管理不断增加的复杂性,第二种方式,面向对象的编程(object-orientedprogramming)被构思出来。面向对象的程序实际上就是用数据控制对代码的访问。2.2抽象:面向对象编程的一个实质性的要素是抽象。通过抽象来处理复杂性。(例如,人们不会把一辆汽车想象成有几万个互相独立的部分所组成的一套装置,而是把汽车想象成一个具有自己独特行为的对象。这种抽象使人们可以很容易地将一辆汽车开到杂货店,而不会因为组成汽车各部分零件过于复杂而不知所措。他们可以忽略引擎、传动及刹车系统的工作细节,将汽车作为一个整体来加以利用。)使用层级分类是管理抽象的一个有效的方法。它允许你根据物理意义将复杂的系统分解为更多更易处理的小块。(从外表看,汽车是一个独立的对象。一旦到了内部,你会看到汽车由若干子系统组成:驾驶系统、制动系统、音响系统,安全带,供暖等。再进一步细分,这些子系统由更多的专用元组组成。音响=》收音机、播放器、磁带放音机组成。)从这里得到的重要启发是,通过层级抽象对复杂的汽车(或任何另外复杂的系统)进行管理。复杂系统的分层抽象也能被用于计算机程序设计。传统的面性过程程序的数据经过抽象可用若干个组成对象表示,程序中的过程步骤可以看成是在这些对象之间进行消息收集。这样,每一个对象都有它自己的独特性为特征。你可以把这些对象当做具体的实体,让它们告诉它们做什么事的消息作出反应。这是面向对象编程的本质。面向对象的概念是java的核心,对程序员来讲,重要的时要理解这些概念怎么转化为程序。软件工程项目中,软件都不可避免地要经历概念提出、成长、衰老这样一个生命周期,而面向对象的程序设计,可以使软件在生命周期的每一个阶段都处变不惊,有足够的应变能力。(一旦你定义好了对象和指向这些对象的简明、可靠的接口,你就能很从容很自信地解除或更替旧系统的某些组成部分。)2.3面向对象编程的3个原则:所有面向对象的编程语言都提供帮助你实现面向对象模型的机制,这些机制是封装,继承及多态性。2.3.1封装(encapsulation):是将代码及其处理的数据绑定在一起的一种编程机制,该机制保证了程序和数据都不受外部干扰且不被误用。封装代码的好处是每个人都知道怎么访问它,但却不必考虑它的内部实现细节,也不必害怕使用不当会带来负面影响。java封装的基本单元是类。一个类(class)定义了将被一个对象集共享的结构和行为(数据和代码)。一个给定类的每个对象都包含这个类定义的行为和结构,好像它们是从同一个类的模子中铸造出来似的。因为这个原因,对象有时被看作是类的实例(instancesofaclass)。所以类是一种逻辑结构,而对象是真正存在的物理实体。总结:封装,可以用来保护私有数据的公共方法。2.3.2继承(inheritance):是一个对象获得另一个对象的属性的过程。继承性与封装性相互作用。如果一个给定的类封装了一些属性,那么它的任何子类将具有同样的属性,而且还添加了子类自己特有的属性。这是面向对象的程序在复杂性上呈线性而非几何性增长的一个关键概念。新的子类继承它的所有祖先的所有属性。他不与系统中其余的多数代码产生无法预料的相互作用。2.3.3多态性(polymorohism,来自于希腊语,表示“多种形态”):允许一个接口被多个同类动作使用的特性,具体使用那个动作与应用场合有关。多态性的概念经常被说成是“一个接口,多种方法”。这意味着可以为一组相关的动作设计一个通用的接口。多态性允许同一个接口被不处于同一个类的多个动作使用,这样就降低了程序的复杂性。选择应用于每一种情形的特定的动作(specificaction)(即方法)是编译器的任务,程序员无需手工进行选择。你只需记住并且使用通用接口即可。2.4多态性、封装性与继承性相互作用如果用的得当,在由多态性、封装性和继承性共同组成的编程环境中还可以写出比面向过程模型环境更健壮、拓展性更好的程序。精心设计的类层级结构是重用你花时间和努力改进并测试过的程序的基础,封装可以使你在不破坏依赖于类公共接口的代码基础上对程序进行升级迁移,多态性则有助于你编写清楚、易懂、易读、易修改的程序。2.5JDK(javadeveloper'skit):java开发工具包;2.6“publicstaticvoidmain(stringargs[])”:关键字static允许调用main()而不必先实现该类的一个特殊实例。这是必要的,因为在任何对象被创建之前,java解释器都会调用main()。2.7基本词汇2.7.1空白分隔符(whitespace):java是一种形式自由的语言。这意味着你不需要遵循任何特殊的缩进书写规范。你可以将程序的所有代码都写在一行(也可以按自己喜欢的方式输入程序代码),但前提是必须在已经被运算符或分隔符描述的标记之间至少留出一个空白分隔符。在java中,空白分隔符可以是空格,tab跳格键或是换行符。2.7.2标识符(identifiers):标识符是赋给类、方法或是变量的名字。一个标识符可以是大写和小写字母、数字、下划线、美元符号的任意顺序组合,但不能以一个数字开始。否则容易与数字、常量相混淆。值得注意的是,java是区分大小写的,VALUE和Value是两个不同的标识符。2.7.3常量(literal):在java中,常量用literal表示。2.7.4注释(comments):java定义了3种注释的类型。a.单行注释//b.多行注释/**/c.文档注释/***/可导出为html形式的文件2.7.5分隔符(separators):大中小括号及分号、逗号、句号(半角)。2.7.6关键字:目前java一共定义了48个保留关键字。这些关键字与运算符和分隔符的语法一起构成java语言的定义。这些关键字不能用于变量名、类名或方法名。3.1java语言是强类型语言:java的安全和健壮性部分来自于它是强类型语言这一事实。首先,每个变量有类型,每个表达式有类型,而且每种类型是严格定义的。其次,所有的数值传递,不管是直接的还是通过方法调用经由参数传过去的都要先进行类型相容性的检查。任何类型的不配都是错误的,在编译器完成编译以前,错误必须被改正。3.2简单(基本)数据类型:整数:该组包括字节型(byte),短整型(short),整型(int),长整型(long),它们都有符号整数。浮点型数:该组包括浮点型(float),双精度型(double),它们代表有小数精度要求的数字。字符:这个组包括字符型(char),它代表字符集的符号,例如字母和数字。布尔型:这个组包括布尔型(boolean),它是一种特殊的类型,他表示真/假值。3.3字符转义序列转义序列说明\ddd八进制字符(ddd)\uxxxx十六进制unicode码字符\'单引号\双引号\\反斜杠\r回车键\n换行\f换页\t水平制表

1 / 32
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功