目录
第一章:Java开始 1
学习目标 1
Java历史 2
Java技术概述 3
Java技术的优点 3
Java虚拟机 4
类加载器 6
Windows环境变量 8
内容总结 13
独立实践 14
第二章: 面向对象概述 15
学习目标 15
面向对象(Object Oriented) 16
面向对象的主要特征 18
抽象(Abstraction) 18
封装(Encapsulation): 19
多态(Polymorphism) 20
面向对象的优点 22
分析、设计和编程面向对象 23
简史面向对象语言的发展 26
内容总结 29
独立实践 30
第三章:面向对象的程序设计 31
学习目标 31
类别和对象的描述 32
声明类 32
声明属性 33
声明成员的方法 34
源文件布局 36
包的声明 36
包与目录的布局 38
内容总结 45
独立实践 46
第四章: Java语法基础 47
学习目标 47
基本语法元素 48
Java关键字 49
基本Java数据类型 50
变量声明和赋值 52
引用(Reference)类型 52
存储器的分配和布局 53
this引用 55
Java编码约定 56
计算符的优先级 58
升级和表达式类型转换 62
独立实践 70
第五章:数组 71
学习目标 71
数组的描述 72
创建数组 72
多维数组 78
拷贝数组 80
内容总结 83
独立实践 84
第六章:继承 86
学习目标: 86
单继承(single inheritance) 87
访问控制 89
方法重载(method overloading) 91
方法覆盖(method overriding) 93
基于继承的多态实现 94
隐藏(hiding) 95
继承中使用结构方法 96
super关键字 97
包装类 97
toString( )方法 100
内容总结 101
独立实践 102
第七章:类的高级特征 103
学习目标 103
static关键字 104
final关键字 106
内部类 106
实例分析 110
抽象类,接口 115
内容总结 120
独立实践 121
第八章:异常 122
学习目标 122
异常的概念 123
异常的分类 123
实例分析 124
自定义异常 126
方法覆盖和异常 127
内容总结 129
第九章:基于文本的应用 131
学习目标 131
几种程序交互方式 132
常用类方法说明 132
String的方法 132
正则表示式(Regular expression) 133
StringBuffer类 135
StringBuffer与String的区别 136
集合类的使用 136
实例分析 136
内容总结 153
独立实践 154
第十章:JAVA GUI概述 155
学习目标 155
GUI概述及组成 156
Swing优点 157
布局管理器 158
BorderLayout 159
GridLayout 161
CardLayout 162
GridBagLayout 164
实例分析 165
内容总结 172
独立实践 173
第十一章 线程 174
学习目标 174
线程的概念 175
线程状态和调度 ….176
线程中断/几种恢复方法 178
创建线程的两种方法 179
线程的控制 180
实例分析 182
内容总结 189
独立实践 190
第十二章:高级I/O流 192
学习目标 192
I/O基础知识 193
字节流 193
字符流 194
节点流 194
过程流 194
基本字符流类 198
对象串行化 201
实例分析 203
内容总结 211
独立实践 212
第十三章:网络 213
学习目标 213
TCP/IP 214
基于Java的网络技术 216
DatagramSocket 219
InetAddress类的使用 221
扩展知识: 227
SocketChannel类 227
内容总结 229
独立实践 230
第十四章:数据结构与算法(上) 231
学习目标 231
算法(algorithm): 232
查找算法: 234
排序算法: 237
递归(recursive): 240
快速排序: 242
内容总结 245
独立实践 246
第十五章:数据结构与算法(下) 247
学习目标 247
数据结构介绍: 248
数组 248
逻辑大小和物理大小 248
链表 248
栈(stack) 249
队列: 250
树: 250
实例分析 252
内容总结 274
独立实践 275
第十六章:数据库(一) 276
学习目标 276
数据库的基本概念 277
数据的描述 277
数据联系的描述 278
数据模型 278
数据库三级模式结构 279
数据库三个范式 280
范式总结 282
创建数据库 283
创建表 287
内容总结 290
独立实践 291
第十七章: 数据库(二) 292
学习目标: 292
查询(从基本到高级) 293
模糊查询 293
排序 295
集合操作-并 296
集合操作-交 297
集合操作-差 297
常用函数 297
数据类型转换函数CAST和CONVERT 298
分组查询 299
五大约束 301
索引 303
数据库的备份与恢复 304
内容总结 308
独立实践 309
第十八章:数据库(三) 310
学习目标: 310
存储过程 311
触发器 313
函数 314
规则 314
事务 315
while语句 317
case语句 317
内容总结: 318
独立实践 319
第十九章: JDBC基础 320
学习目标 320
JDBC的概念 321
连接数据库的几种方式 321
JAVA编程语言和JDBC 323
JDBC编程的步骤 323
实例分析 325
内容总结 335
独立实践 336
第二十章:高级JDBC 337
学习目标 337
使用DDL,DML语言对数据库进行基本操作 338
查询数据库里的数据 339
预编译语句(PreparedStatement) 340
使用事务 341
事务的级别控制 343
使用存储过程 345
操作元数据 347
ResultSetMetaData(结果集元数据) 349
可滚动的和可更新的结果集 350
批处理更新 354
二进制大对象BLOB 357
RowSet 新特性 359
JdbcRowSet 360
FilteredRowSet 361
内容总结 363
独立实践 364
第二十一章:XML基础 366
学习目标 366
XML的概念 367
定义XML文档 368
命名冲突 371
使用前缀解决命名冲突问题 371
使用命名空间 371
命名空间属性 372
统一资源标识符 372
默认的命名空间 372
使用命名空间 373
XML 文档规则 374
XML Schema 379
Schema和DTD的区别: 380
Schema的数据类型 380
样式表(XSL) 384
CSS样式表 384
XSL样式表 385
XSL的基本结构 386
XSL的基本语法 390
节点选择语句<xsl:value-of > 392
循环判断语句<xsl:for-each> 392
条件判断语句<xsl:if> 392
内容总结 395
独立实践 395
第二十二章:使用Java解析XML 397
学习目标 397
解析器的介绍 398
DOM以及广义的基于树的处理具有几个优点 399
文档对象模型(DOM)解析实例 402
DOM对象 404
DOM解析的例子: 406
SAX解析实例 409
DOM4J解析实例 412
JDOM解析实例 413
JAVA操纵XML 实例讲解 414
通过JAVA写数据到XML里面 415
内容总结 418
独立实践 418
第二十三章:HTML基础 419
学习目标 419
知识要点 420
HTML元素 420
标签属性 420
HTML基本标签 422
标题元素 422
HTML格式 427
HTML实体 431
不可拆分的空格 431
HTML表格 439
表格 441
HTML列表 461
HTML图像 469
Img标签和src属性 469
HTML背景 475
内容总结 478
独立实践 479
第二十四章:HTML进阶 480
学习目标 480
知识要点 481
表单 481
HTML框架 488
框架 488
在子窗体中访问并控制父窗体中对象 493
内容总结 495
独立实践 496
第二十五章:JavaScript介绍 497
学习目标 497
JavaScript语言概况 498
JavaScript和Java的区别 499
基于对象和面向对象 499
解释和编译 499
强变量和弱变量 500
静态联编和动态联编 500
实例 500
内容总结 503
独立实践 504
第二十六章:JavaScript基础 505
学习目标 505
基本结构 506
JavaScript代码的加入 506
基本数据类型 506
常量 507
表达式和运算符 509
实例 511
JavaScript程序构成 513
事件驱动及事件处理 516
内容总结 519
独立实践 520
第二十七章:JavaScript进阶 521
学习目标 521
基于对象的JavaScript语言 522
对象的基础知识 522
this关键词 523
new运算符 523
常用对象的属性和方法 525
算术函数的math对象 527
创建新对象 529
JavaScript中的数组 532
实例 535
文档对象功能及其作用 538
document中三个主要的对象 539
文档对象的基本元素 541
窗口及输入输出 544
输出流及文档对象 546
简单的输入、输出例子 547
内容总结 551
独立实践 552
第二十八章: Servlet 553
学习目标 553
Java Servlet概述 554
Servlet能够做什么 554
Servlet的生命周期 557
Java Servlet API 560
Web上使用的HTTP Servlet 560
处理HTTP Servlet的关键方法 560
其它相关接口的说明 561
HTTP协议基本概念及其特点 563
获取Cookie 565
HTTP响应报头--Response 566
会话管理 566
Servlet过滤器 569
Servlet监听器 576
内容总结 579
独立实践 580
第二十九章: Jsp 技术 583
学习目标 583
JSP介绍 584
JSP语法 584
模板元素 588
指令元素 588
页面指令 588
标签库指令 593
脚本元素 593
动作元素 597
<jsp:include> 598
JSP内置对象 605
Session和Application对象 610
JSP的汉字问题的原理 611
自定义标签 613
标准标签的使用 618
内容总结 621
独立实战 622
第三十章:struts入门 623
学习目标 623
Struts简介 624
什么是应用框架 624
WEB框架所要解决的问题 625
建立简单的Struts应用 627
内容总结 636
独立实践 636
第三十一章:Struts基础 637
学习目标 637
MVC 638
struts框架的优势 639
Struts如何实现Model 2, MVC 639
Struts 控制流 639
Struts framework的工作原理和组件 642
Struts ActionServlet控制器对象 642
Struts Action Classes 642
搞定Action对象 643
处理异常 643
Action的分类 643
Struts Action Mapping 646
使用ActionForward导航 647
Struts ActionForm Bean捕获表单数据 648
ActionForm的处理流程 649
Struts的其他组件 652
内容总结 653
独立实践 653
第三十二章:配置Struts组件 654
学习目标 654
三个 XML文件和一个属性文件 655
Web应用部署描述符 web.xml 655
ActionServlet的参数的配置 656
应用资源文件 658
Ant构建文件 659
配置Tiles框架 660
内容总结 661
独立实践 661
第三十三章:Struts标记库 662
学习目标 662
Struts标记库taglib介绍 663
Bean标记 663
逻辑标记 665
转发和重定向标记 668
HTML标记 669
显示错误信息的标记 673
其他HTML标记 673
模板标记 673
内容总结 676
独立实践 676
第三十四章:Hibernate基础 677
学习目标 677
Hibernate简介 678
建立简单的Hibernate应用 678
通过 Hibernate API 操纵数据库 684
Hibernate的初始化 687
访问Hibernate的Session接口 688
Hibernate工作原理图 691
内容总结 693
独立实践 693
第三十五章: 映射继承关系 694
学习目标 694
域模型关系 695
继承关系树的每个具体类对应一个表 696
创建映射文件 696
操纵持久化对象 698
选择继承关系的映射方式 699
映射多对一多态关联 702
内容总结 705
独立实践 705
第三十六章:HQL介绍 706
学习目标 706
HQL的出现 707
进入HQL世界 707
聚合 708
分组 709
在Java中使用HQL 709
内容总结 712
独立实践 712
第三十七章 Spring介绍 713
学习目标 713
Spring简介 714
IOC控制反转 714
Spring的容器 715
AOP面向切面编程 715
AOP的专业术语 715
Spring事务管理 718
Spring与Struts整合 719
Spring与Hibernate整合 721
独立实践 724
第一章: Java开始
学习目标
? Java技术的组成
? Java虚拟机的主要功能
? JAVA内存垃圾自动回收机制
? 运行代码的步骤
? 编写、编译并运行简单Java应用程序
Java历史
1991年,电视机,机顶盒,录象机的开发设计需要一种可移植、方便、高效的计算机语言。为了满足这种需求,由Sun公司的Patrick Haughton和James Gosling领导的技术小组开发了JAVA。
上世纪九十年代中期,Sun推出了Sun Java Development Toolkits 1.0,简称JDK1.0。JDK1.0是一个功能强大的软件包,可以用来开发小应用程序和多种操作系统(Sun Solaris,Windows Nt,Windows 95,Macintosh)的应用程序。
1998年Sun推出Java 2 Platform,它定义了所有Java技术的概念和标准,即包括已经实现的技术也包括尚未实现的技术;即包括Sun的实现的,也包括其它公司的实现。目前,Java 2 SDK1.6是Java 2 Platform的最新定义。这个定义又可以细分为四个版本:
标准版:J2SE(Java SE),用于开发普通的小应用程序和应用程序。它是我们这门课程要讲述的内容。
(Java SE的体系结构)
企业版:J2EE(Java EE),用于企业级应用。
微型版:J2ME(Java ME),用于开发移动电话,机顶盒,个人数字设备等。
JavaCard:适用于智能卡的Java平台。
(Java各版本应用领域)
Java技术概述
任何复杂的事物都可以分解成一些相对简单的组成部分。Java作为一门丰富而复杂的新技术,它由下列这些技术层面组成:
? Java编程语言:定义变量、表达式、逻辑控制等基本规则。
? Java类库:Java 软件工具包(SDK)为程序员提供了几千个类,包括基本的数学函数、数组和字符串、窗口,GUI,I/O,网络等。
? Java运行环境:包括Java字节代码的加载器、校验器以及Java虚拟机。
? Java虚拟机:Java技术出于跨平台,可移植的考虑,没有将程序的源代码编译连接成CPU的指令序列,直接交给计算机执行。Java技术在不同的硬件,不同的操作系统之上,定义了完全相同的支持Java程序运行的虚拟计算机。Java源程序被编译成字节(byte)代码,编译后的文件名后缀是.class文件,在Java虚拟机上运行。
? Java工具:编译器,注释器(interpreter),文档生成器等工具。
? Java小应用程序:小应用程序(Applets)是一种贮存于WWW服务器上的用Java编写的程序,它通常由浏览器下载到客户系统中,并通过支持Java运行环境的浏览器运行。它由超文本标识语言(HTML)的Web页来调用。
? Java应用程序:Java Applications是一种独立的程序,它不需要任何Web浏览器来执行。它们是普通的应用程序;可运行于任何具备Java运行环境的设备中。
? 其它Java程序:JavaBean,Servlet,JSP等。
Java技术的优点
Java技术取得今天这样的成就,依赖于这门技术的先进性,Java技术具有下列优点:
? 简单、健壮:java=(c++)--++,继承了c++语言的优点,去掉了c++的难点,又加入了新的特性;许多高级语言都要由程序员进行指针运算和存储器管理。这项工作即复杂又容易出错。Java不需要程序员进行指针运算和存储器管理,简化了设计,减少了出错的可能性。
? 面向对象:Java是面向对象的程序设计语言。与面向过程的语言相比,面向对象的语言更能反映人类对世界的认识和处理模式,具有良好的代码重用性。处理复杂、庞大而且不断变化的信息系统,必须使用面向对象的程序设计语言。
? 分布式:目前,在所有软件产品中,仅供单个计算机使用的单机版软件所占的比例越来越小。大多数软件都可以运行在网络环境中。Java拥有一个网络协议对象库(TCP/IP,HTTP,FTP等),可以象访问当地文件一样访问Internet上的对象。
? 改进的解释性:为弥补解释语言速度较慢的不足,Java采用预编译的办法,将源程序生成字节代码,减轻运行时的解释工作。另一方面,有些Java运行环境采用Just-In-Time(JIT)编译器将字节代码编译成机器码直接运行,这种运行环境对于重复执行的服务器端软件特别有效,可以达到C语言的速度。
? 安全:Java语言在编译时删除了指针和内存分配,在运行时检查字节代码,拒绝执行非法的内存访问,超越权限的访问等。可以防御黑客攻击。
? 平台无关:Java通过采用虚拟机技术真正实现了与平台无关。Java软件是真正跨平台可移植的。编译过的JAVA文件,即可以在windowns上运行,也可以Linux、Unix等系统上运行。
? 多线程:允许一个应用程序同时做多个任务。
? 动态性:Java允许下载代码模块,因此,当程序运行时也能动态升级。
? 高性能:经过实际的综合评测得出结论,Java是高性能的。
Java虚拟机
Java虚拟机在Java运行环境中处于核心地位。Java虚拟机使Java语言可以跨多种平台运行,保障了SUN提出的"write once, run anywhere"的特性,其组成为:
? 指令集(中央处理器[CPU]
? 寄存器
? 类文件格式
? 栈
? 垃圾收集堆
? 存储区
Java虚拟机隐藏了计算机硬件和操作系统的复杂性。使我们只面对单一的支持Java的计算机。当我们写好Java源程序后,使用编译器将源代码转换成JVM的指令序列(字节代码),保存为.class文件。执行Java程序时,JVM负责解释字节代码, JVM的指令转换成真实的机器指令,并执行。
自动内存回收(垃圾收集)
垃圾回收就是将程序不再使用的内存块释放出来,以提供给其它程序使用。程序运行时需要占用一定内存空间,当程序退出后应该把占用的内存释放,在c, c++语言中由程序保证内存的释放,但如果程序员忘记释放内存,就会在内存中“垃圾”增多,影响其它程序运行;Java语言实现自动垃圾回收处理,减轻了程序员的负担,杜绝了因内存管理而导致的程序中的问题。程序员可以建议垃圾回收,通过调用System.gc()实现。
常见垃圾收集机制介绍
JVM中内存划分为:堆栈(Stack)、堆(Heap)、静态存储(Static)
大多数垃圾收集使用了根集(root set)这个概念;所谓根集就量正在执行的Java程序可以访问的引用变量的集合(包括局部变量、参数、类变量),程序可以使用引用变量访问对象的属性和调用对象的方法。垃圾收集首选需要确定从根开始哪些是可达的和哪些是不可达的,从根集可达的对象都是活动对象,它们不能作为垃圾被回收,这也包括从根集间接可达的对象。而根集通过任意路径不可达的对象符合垃圾收集的条件,应该被回收。简单的说,就是没有任何引用指向这块内存空间,该空间的内存就可以被回收。
引用计数法(Reference Counting Collector)
一般来说,堆中的每个对象对应一个引用计数器。当每一次创建一个对象并赋给一个变量时,引用计数器置为1。当对象被赋给任意变量时,引用计数器每次加1当对象出了作用域后(该对象丢弃不再使用),引用计数器减1,一旦引用计数器为0,对象就满足了垃圾收集的条件。
基于引用计数器的垃圾收集器运行较快,不会长时间中断程序执行,适宜地必须 实时运行的程序。但引用计数器增加了程序执行的开销,因为每次对象赋给新的变量,计数器加1,而每次现有对象出了作用域生,计数器减1。
Tracing算法(Tracing Collector)
基于tracing算法的垃圾收集器从根集开始扫描,识别出哪些对象可达,哪些对象不可达,并用某种方式标记可达对象,例如对每个可达对象设置一个或多个位。在扫描识别过程中,基于tracing算法的垃圾收集也称为标记和清除(mark-and-sweep)垃圾收集器。
compacting算法(Compacting Collector)
为了解决堆碎片问题,基于tracing的垃圾回收吸收了Compacting算法的思想,在清除的过程中,算法将所有的对象移到堆的一端,堆的另一端就变成了一个相邻的空闲内存区,收集器会对它移动的所有对象的所有引用进行更新,使得这些引用在新的位置能识别原来 的对象。在基于Compacting算法的收集器的实现中,一般增加句柄和句柄表。
垃圾回收的几个特点
垃圾收集发生的不可预知性:由于实现了不同的垃圾收集算法和采用了不同的收集机制,所以它有可能是定时发生,有可能是当出现系统空闲CPU资源时发生,也有可能是和原始的垃圾收集一样,等到内存消耗出现极限时发生,这与垃圾收集器的选择和具体的设置都有关系。
垃圾收集的精确性:(a)垃圾收集器能够精确标记活着的对象;(b)垃圾收集器能够精确地定位对象之间的引用关系。前者是完全地回收所有废弃对象的前提,否则就可能造成内存泄漏。而后者则是实现归并和复制等算法的必要条件。所有不可达对象都能够可靠地得到回收,所有对象都能够重新分配,允许对象的复制和对象内存的缩并,这样就有效地防止内存的支离破碎。
垃圾收集的实现和具体的JVM 以及JVM的内存模型有非常紧密的关系。不同的JVM 可能采用不同的垃圾收集,而JVM 的内存模型决定着该JVM可以采用哪些类型垃圾收集。现在,HotSpot 系列JVM中的内存系统都采用先进的面向对象的框架设计,这使得该系列JVM都可以采用最先进的垃圾收集。
代码运行过程
Java源程序通过"编译",转换成字节码。字节码被存储在.class文件中。
构成Java软件程序的字节代码在运行时被加载、校验并在解释器中运行。当运行Applets时,字节码可被下载,然后由浏览器中的JVM进行解释。解释器具备两种功能,一是执行字节代码,二是对底层硬件做适当调用。
在一些使用Java技术的运行环境中,部分校验过的字节码被编译成机器码并直接运行于硬件平台。这就使Java软件代码能够以接近C或C++的速度运行,只是在加载时,因为要编译成机器码而略有延迟。
Java技术运行字节代码包含如下三大步骤:
? 加载代码-由类加载器执行
? 校验代码-由字节码校验器执行
? 执行代码-由运行时的解释器执行
(Java程序运行的三大步骤)
类加载器
类加载器为程序的执行,加载所需要的类。类加载器将本地文件系统的类名空间,与来自网络的类名空间相分离,以增加安全性。当全部类被加载后,可执行文件的存储器格式被确定。这时,特定的存储器地址被分配给变量并创建检索表格。由于存储器格式在运行时出现,因而Java技术解释器增加了保护以防止对限制代码区的非法访问。
JVM中有四种类加载器,分别为(本节以下内容可以在以后再理解):
? BootStrapClassLoader:启动类加载器:虚拟机启动时最先加载系统加载关键的运行类的加载器。
? ExtClassLoader:扩展类加载器,专门用来加载所有java.ext.dirs下的.jar文件。开发者可以通过把自己的.jar文件或库文件加入到扩展目录的classpath,使其可以被扩展类加载器读取。
? AppClassLoader:应用(系统)类加载器,用来读取所有的对应在java.class.path系统属性的路径下的类
以上三个类在JDK中不能查到,他们是JVM底层使用的,我们可以认为这三者关系如下:
BootStrapClassLoader<-ExtClassLoader<-AppClassLoader
JDK中定义了一些ClassLoader类,我们可以观察到继承关系如下:
ClassLoader<-SecureClassLoader<-URLClassLoader<-AppClassLoader
我们也可以继承ClassLoader类制作自己的ClassLoader(用户定义的类加载器)。
一些关于ClassLoader的常用方法:
? sun.misc.Launcher.getBootstrapClassPath().getURLs();//根据以上叙述,应该是先获取启动类路径再转成路径的数组。
? MyClass.class.getClassLoader();//MyClass是类名
? ClassLoader.getSystemClassLoader();//获得系统(应用)级类加载器
? ClassLoader.getSystemClassLoader().getClass();//可以知道这个类加载器的名字等了
? java.lang.Thread.getContextClassLoader();//获取当前线程的上下文类加载器。
字节代码校验器
所有的class文件都要经过字节码校验器。字节码校验器主要测试以下内容:
? 代码段语法格式是否正确?
? 有无违反规则的非法代码?
? 是否违反对象访问权限?
? 是否试图改变对象类型?
字节码校验器对程序代码进行四遍校验,这可以保证代码符合JVM规范并且不破坏系统的完整性。如果校验器在完成四遍校验后未返回出错信息,则下列各项要求会得到保证:
? 程序代码所在的类,符合JVM规范的类文件格式。
? 无访问限制违例,如访问本地文件,访问网络等。
? 代码未引起操作数栈的上溢或下溢。
? 所有操作代码的参数类型将总是正确的。
? 无非法数据转换发生,例如:将整数转换为对象引用。
Java安装配置
各平台安装程序可以到SUN的网站(java.sun.com)下载,在安装完成后应该进行配置,通常集成开发环境(IDE)自带JDK或进行了自动配置,如果我们通过控制台编译或运行Java程序则必须手动配置。
JDK: 是Java开发工具包(J2SE Software Development Kit)的缩写,用Java语言编写applet小程序和应用程序的软件开发环境,Java开发者应该安装JDK,并且通常JDK中已包含一个JRE拷贝。
JRE: 是Java运行环境 (Java Runtime Environment) 的缩写。它基本上就和Java虚拟机是同一个概念,运行Java程序的应该安装JRE。
(JDK安装目录示例)
? bin:java常用开发工具目录,例如javac,java,jar等工具。
? demo: sun提供的一些用于java开发的示范,如有关applets,jfc,plugin等。
? include: Java提供用于c/c++调用的.h文件;
? jre: 对应版本的java运行环境文件
? sample: java案例。
? lib: java类库目录
Windows环境变量
应设置的环境变量包括:JAVA_HOME, PATH, CLASSPATH。
假设J2DK安装在“C:\JDK1.5”,环境变量可设置为:
? JAVA_HOME=C:\JDK1.5
? CLASSPATH=.
? PATH=%JAVA_HOME%\BIN;%PATH%
(Windows下环境变量的设置)
Linux下环境变量
假设jdk安装在/home/jdk1.5目录下,修改配置文件 /etc/profiles ,在文件的尾部加入如下信息:
JAVA_HOME=/home/jdk1.5
CLASSPATH=.
PATH=$JAVA_HOME/bin:$PATH
第一个Java程序
编写一个程序,输出一行文本信息:"Welcome to Java Programming"
编辑器的使用
Java代码的开发可以使用常见的编辑器,如:写字板,Editplus,Ultra Edit,也可以使用专用的开发工具,如:JBuilder, Eclipse, NetBeans,JCreator等。在开始学习时,建议先学习使用带有关键字颜色提示的EditPlus开发Java代码。
Editplus下的Java程序显示
编写程序
1 //这是一行注释
2 public class Welcome {
3
4 public static void main(String[] args) {
5 System.out.println("Welcome to Java Programming!");
6 }//main方法结束
7
8 }//类结束
行1:注释:用来说明程序的作用
行2:开始声明一个类,类名为Welcome, class是JAVA的关键字,用来定义类,public为访问说明。在这里我们声明了一个类,类的名字为Welcome.
行3 标签: sc380005z1集成电路