第一天 Java基础入门【悟空教程】

第1章 计算机基础

1.1 计算机

计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。

1.2 计算机应用的领域(了解)

1.2.1 科学计算

科学计算也称数值计算。计算机最开始是为解决科学研究和工程设计中遇到的大量数学问题的数值计算而研制的计算工具。例如,人造卫星轨迹的计算,房屋抗震强度的计算,火箭、宇宙飞船的研究设计都离不开计算机的精确计算。就连我们每天收听收看的天气预报都离不开计算机的科学计算。

1.2.2 数据处理

在科学研究和工程技术中,会得到大量的原始数据,其中包括大量图片、文字、声音等信息处理就是对数据进行收集、分类、排序、存储、计算、传输、制表等操作。

1.2.3 自动控制

自动控制是指通过计算机对某一过程进行自动操作,它不需人工干预,能按人预定的目标和预定的状态进行过程控制。例如,无人驾驶飞机、导弹、人造卫星和宇宙飞船等飞行器的控制,都是靠计算机实现的。

1.2.4 计算机辅助设计

计算机辅助设计(Computer Aided Design,简称CAD)是指。借助计算机的帮助,人们可以自动或半自动地完成各类工程设计工作。目前CAD技术已应用于飞机设计、船舶设计、建筑设计、机械设计、大规模集成电路设计等。在京九铁路的勘测设计中,使用计算机辅助设计系统绘制一张图纸仅需几个小时,而过去人工完成同样工作则要一周甚至更长时间。可见采用计算机辅助设计,可缩短设计时间,提高工作效率,节省人力、物力和财力,更重要的是提高了设计质量。

1.2.5 人工智能

人工智能(Artificial Intelligence,简称AI)是指计算机模拟人类某些智力行为的理论、技术和应用。例如,用计算机模拟人脑的部分功能进行思维学习、推理、联想和决策,使计算机具有一定“思维能力”。我国已开发成功一些中医专家诊断系统,可以模拟名医给患者诊病开方。 还有就是机器人也是计算机人工智能的典型例子。

1.2.6 多媒体应用

随着电子技术特别是通信和计算机技术的发展,人们已经有能力把文本、音频、视频、动画、图形和图像等各种媒体综合起来,构成一种全新的概念—“多媒体”(Multimedia)。比如一些flash广告,网页游戏等。

1.2.7 计算机网络

计算机网络是由一些独立的和具备信息交换能力的计算机互联构成,以实现资源共享的系统。如在全国范围内的银行信用卡的使用,火车和飞机票系统的使用等。

1.3 计算机硬件

计算机硬件(Computer Hardware)是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。这些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础。

计算机通常由CPU、主板、内存、电源、主机箱、硬盘、显卡、键盘、鼠标,显示器等多个部件组成。

1.4 计算机软件

计算机软件是使用计算机过程中必不可少的东西,计算机软件可以使计算机按照事先预定好的顺序完成特定的功能,计算机软件按照其功能划分为系统软件与应用软件

系统软件: DOS(Disk Operating System), Windows, Linux, Unix, Mac,Windows Phone,Symbian Android, iOS

应用软件:office QQ聊天 YY语音 扫雷 LOL

1.5 软件开发

软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。

软件开发是一项包括需求捕捉,需求分析,设计,实现和测试的系统工程。

软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。

1.6 人机交互方式

软件的出现实现了人与计算机之间更好的交互。

交互方式

图形化界面:这种方式简单直观,使用者易于接受,容易上手操作。

命令行方式:需要有一个控制台,输入特定的指令,让计算机完成一些操作。较为麻烦,需要记录住一些命令。

1.7 键盘功能键及快捷键介绍

1.7.1 键盘功能介绍 (详见功能键文档)

Tab

Shift

Ctrl

Alt

空格

Enter

Window

上下左右

PrtSc(PrintScreen)屏幕截图

1.7.2 键盘快捷键

Ctrl+A 全选

Ctrl+C 复制

Ctrl+V 粘贴

Ctrl+X 剪切

Ctrl+Z 撤销

Ctrl+S 保存

1.8 常用的DOS命令

1.8.1 打开DOS命令行的方式

1:开始--程序--附件--命令提示符

2:开始--运行—cmd—回车

3:win+r—cmd--回车

1.8.2 常用DOS命令

d: 回车 盘符切换

dir(directory):列出当前目录下的文件以及文件夹

md (make directory) : 创建目录

rd (remove directory): 删除目录

cd (change directory)改变指定目录(进入指定目录)

cd.. : 退回到上一级目录

cd\: 退回到根目录

del (delete): 删除文件,删除一堆后缀名一样的文件*.txt

exit : 退出dos命令行

cls : (clear screen)清屏

1.8.3 通用快捷键

通用快捷键适用于广泛的环境,在例如Windows的操作系统以及绝大部分的软件中都适用。需要熟练这些

Ctrl+C 复制选中内容

Ctrl+V 粘贴

Ctrl+X 剪切

Ctrl+A 全选

Ctrl+Z 撤销操作

Ctrl+Y 恢复操作(恢复上一步操作)

Ctrl+S 保存

第2章 Java概述

2.1 java简介

2.1.1 Java语言介绍

  • 计算机语言:(Computer Language)指用于人与计算机之间通讯的语言。计算机语言是人与计算机之间传递信息的媒介。计算机系统最大特征是指令通过一种语言传达给机器。为了使电子计算机进行各种工作,就需要有一套用以编写计算机程序的数字、字符和语法规划,由这些字符和语法规则组成计算机各种指令(或各种语句)。这些就是计算机能接受的语言。程序员通过这些指令来指挥计算机进行各种工作。
  • 计算机语言主要由机器语言、汇编语言、高级语言,组成。
  • 机器语言:毋庸置疑是计算机可以直接识别和使用的语言。但是在编程的时候,通常不会选择机器语言,因为机器语言都是由二进制0或1组成的编码。不便于编程人员的记忆与识别。
  • 那么汇编和高级语言是编程人员常用的语言.
  • 汇编语言:采用英文缩写的标识符,容易识别和记忆。那么为什么不都用汇编语言编程,这就要解释什么是高级语言。
  • 高级语言:采用更接近人类的自然语言进行编程,进一步简化了程序编程的过程,所以,大多数编程者会选择高级语言。
  • 现在我们讲解的Java语言就是高级语言的一种。

2.1.2 Java语言发展史(了解)

  • 詹姆斯·高斯林(James Gosling)
  • SUN – (Stanford University Network斯坦福大学网络公司)
  • 1995年5月23日,Java语言诞生
  • 1996年1月 JDK1.0
  • 1997年2月 JDK1.1
  • 1998年12月 JDK1.2(将Java分成了J2SE,J2EE,J2ME)
  • 2000年5月 J2SE1.3
  • 2002年2月 J2SE1.4(1.4.2版本很多公司在使用)
  • 2004年10月 JDK1.5(改名JavaSE5.0,JavaEE,JavaME)
  • 2006年12月 JavaSE6.0
  • 2009年04月20日,甲骨文(Oracle)74亿美元收购Sun。
  • 2011年7月 JavaSE7.0(市场主流版本)
  • 2014年3月 JavaSE8.0
  • 2017年9月 JavaSE9.0

java语言的特点是,简单易用、安全可靠、主要面向Internet编程。从问世以来,发展的就非常迅速。 现在市场上绝大多数企业应用采用Java作为编程语言,Java语言应用于服务器开发,智能家居,网站的后台维护,手机应用后台等等。

SUN公司为了让使用Java语言的开发人员可以针对特定的市场进行开发,SUN公司将Java划分为三个版本,分别是 JavaSE JavaME JavaEE

JavaSE (Java Platform Standard Edition——Java平台标准版)标准版 是为开发普通桌面和商务应用程序提供的解决方案,JavaSE是三个平台最核心的部分,JavaEE和JavaME都是从JavaSE的基础上发展而来的,JavaSE平台包括了Java最核心的类库,包括,如集合,IO,数据库连接以及网络编程等。

JavaEE(Java Platform Enterprise Edition 企业)企业版,是为了开发企业级应用程序提供的解决方案。JavaEE可以被看做一个技术平台,该平台用于开发、装配以及部署企业及应用程序,其中主要包括Servlet、JSP、JavaBean、JDBC、EJB、WebService等技术。

JavaME(Java Platform Micro Edition 微型)小型版 是为了开发电子消费产品和嵌入式设备提供的解决方案。JavaME主要用于小型数字电子设备上的软件程序的开发。例如,为家用电器增加智能化控制和联网功能,为手机增加新的游戏和通讯录管理功能。此外,JavaME提供了HHTTP等高级Internet协议,是移动电话能以Client/Server方式直接访问Internet的全部信息,提供最高效率的无线交流。

(Java有这些功能,现在基本退出舞台,由安卓 ios等移动端操作语言替代,安卓和Java的关系大家下去可以去了解一下,简单的说安卓学习也是要必须先学JavaSE的)

2.1.3 Java技术应用领域

1.Android应用

许多的Android应用都是Java程序开发者开发。虽然Android运用了不同的JVM以及不同的封装方式,但是代码还是用Java语言所编写。相当一部分的手机都支持Java游戏,这就使得很多非编程人员都认识了Java。

2.金融应用的服务器程序

Java在金融服务业的应用非常广泛,很多第三方交易系统、银行、金融机构都选择用Java开发,因为相对而言,Java较安全。大型跨国投资银行用Java来编写前台和后台的电子交易系统,结算和确认系统,数据处理项目以及其他项目。大多数情况下,Java被用在服务器端开发,但多数没有任何前端,他们通常是从一个服务器(上一级)接收数据,处理后发向另一个处理系统(下一级处理)。

3.网站

Java在电子商务领域以及网站开发领域占据了一定的席位。开发人员可以运用许多不同的框架来创建web项目,springmvc,Struts2.0以及framework(框架,三个主要部分: 服务端、客户端和Linux驱动)。即使是简单的servlet,jsp和以struts为基础的网站在征服项目中也经常被用到。例如医疗救护、保险、教育、国防以及其他的不同部门网站都是以Java为基础来开发的。

4.嵌入式领域

Java在嵌入式领域发展空间很大。在这个平台上,只需130KB就能够使用Java技术(在只能卡或者传感器上)。

5.大数据技术

Hadoop(Apache05年开发分布式系统基础架构)以及其他大数据处理技术很多都是用的Java,例如Apache的技术Java的HBase(一个分布式的、面向列的开源数据库,HBase是Apache的Hadoop项目的子项目)和Accumulo(是一个可靠的、可伸缩的、高性能的排序分布式的 Key-Value 存储解决方案,基于单元访问控制以及可定制的服务器端处理)以及ElasticSearch(ES是一个基于Lucene并采用Restful API 标准的高可扩展性和高可用性的实时数据分析的全文检索工具。)说没有Java就没有大数据一点也不为过。

6.高频交易的空间

Java平台提高了这个平台的特性和即时编译,他同时也能够想C++一样传递数据,正是由于这个原因,Java成为程序员编写交易平台的首选语言,虽然性能不比C++,但开发人员可以避开安全性,可移植性和维护性等问题。

7.科学应用

Java在科学应用中是很好的选择,包括自然语言处理。最主要的原因是因为Java比C++或者其他相对安全性、便携性、可维护性以及其他高级语言的并发性更好。

2.1.4 Java语言特点

Java应用广泛,受到大众的欢迎,其根本原因是Java语言的众多突出优点(优点肯定是与其他高级语言相比较得来的)

介绍几个主要的特点

2.1.4.1 简单:

Java看起来设计的很像C++,但是为了是语言小和容易熟悉,设计者把C++语言种许多可用的特征去掉了,这些特征是一般程序员很少使用的,例如:Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(重载overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,(垃圾回收机制)使用户不必为存储(内存)管理问题烦恼,能把更多的时间和精力花在研发上。

2.1.4.2 面向对象:

Java是一个面向对象的语言,对程序员来说,这意味着要注意应用数据和操作数据的方法(method),而不是严格地用过程来思考。在一个面向对象的系统中,类(class)是数据和操作数据的方法和集合。数据和方法一起描述对象(object)的状态和行为。每一对象是其状态和行为的封装。类是按一定体系和层次安排的,使得子类可以从超类继承行为。在这个类层次体系中有一个根类,它是具有一般行为的类。Java程序是用来组织的。

为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字implements)。Java语言全面支持动态绑定,而C++语言只对函数使用动态绑定。

Java还包括一个类的扩展集合,分别组成各种程序包(package),用户可以在自己的程序中使用。例如,Java提供产生图形用户接口的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing tookit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。

2.1.4.3 分布式

Java设计成支持在网络上应用,它是分布式语言,Java既支持各种层次的网络连接,又以Socket类支持可靠的流(steam)网络连接,所以用户可以产生分布式的客户机和服务器。

网络变成软件应用的分布运载工具。Java程序只需编写一次,就可到处运行。

2.1.4.4 稳健性

Java原来是用作编写消费类家用电子产品软件的语言,所以他是被设计成高可靠和稳健软件的。Java消除了某些编程错误,使得用它写可靠软件相当容易。

Java是一个强类型语言,它允许扩展编译时检查潜在类型不匹配问题的功能。Java要求显示方法声明,它不支持C语言风格的隐式声明。这些严格的要求保证编译程序能捕捉调用错误,这就导致会开发出更可靠的程序。

可靠性方面最重要的增强之一是Java的存储模型。Java不支持指针,它消除重新存储和讹误(文字错误;字句上的疏漏差误)数据。类似的,Java自动的“无用单元收集”预防存储漏泄和其它有关动态存储分配和解除分配的有害错误。Java解释程序员也执行许多运行时的检查,诸如验证所有数组和串访问是否在界限之内。

2.1.4.5 安全性

Java的存储分配模型是它防御恶意代码的主要方法之一。Java没有指针,所以程序员不能得到隐蔽起来的内幕和伪造指针去指向存储器。更重要的是,Java编译程序不处理存储安排决策,所以程序员不能通过查看声明去猜测类的实际存储安排。编译的Java代码中存储引用在运行时由Java解释程序决定实际存储地址。

Java运行系统使用字节码验证过程保证装载到网络上的代码不违背任何Java语言限制。这个安全机制部分包括类如何从网上装载。例如,装载的类是放在分开的名字空间而不是局部类,预防恶意的小应用程序用它自己的版本来代替标准Java类。

Java语言不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,从而使应用更安全。

2.1.4.6 可移植性(跨平台)

Java使得语言声明不依赖与实现的方面。例如,Java显示说明每个基本数据类型的大小和它的运算行为(这些数据类型由Java语法描述)。

Java环境本身对新的硬件平台和操作系统是可移植的。Java编译程序也用Java编写,而Java运行系统用ANSIC语言编写。

2.1.4.7 高性能

Java是一种先编译后解释的语言,所以他不如全编译性语言快。但是有些情况下性能是很要紧的,为了支持这些情况,Java设计者制作了“及时”编译程序,它能在运行时吧Java字节码翻译成特定CPU(中央处理器)的机器代码,也就是实现全编译了。

Java字节码格式设计时考虑到这些“及时”编译程序的需要,所以生成机器代码的过程相当简单,它能产生相当好的代码。

2.1.4.8 支持多线程

Java语言是支持多线程的,所谓的多线程可以简单地理解为程序中有多个任务可以并发执行,这样可以在很大程度上提高程序的执行效率。

第3章 Java开发环境

3.1 JDK与JRE

  • JRE为Java的运行时环境,是运行Java程序依赖的。如果仅仅是运行已经存在的Java程序,只安装JRE即可。
  • JDK为Java的开发环境,是开发时依赖的。包含JRE。
  • 没有JDK的话,无法编译Java程序,如果想只运行Java程序,要确保已安装相应的JRE。
  • Java语言通过在不同的操作系统上安装对应的Java虚拟机实现了跨平台, 即java的.class程序可以在不同操作系统上均可以运行。(java的.class文件相当于Windows中的.exe文件,是可执行的程序)

java语言是跨平台的,java虚拟机不是跨平台的。

3.1.1 安装操作系统(推荐Windows7)

3.1.2 下载并安装Java,这里使用JDK7

下载

第一步:访问下载地址:http://www.oracle.com/cn/index.html

第二步:找到下载界面

第三步:寻找JDK7

第四步:寻找JDK7历史版本,这里为了统一全程我们使用7u72

第五步:同意协议

安装

第一步:双击打开安装文件,注意安装与操作系统对应版本

第二步:下一步,选择安装路径 ,注意:不要选择带中文及特殊符号的路径,也尽量不要安装到C盘

第三步:下一步,选择是否安装JRE,这里我们选择安装(可以不安装,开发中我们只装jdk就行)

第四步:下一步,验证jdk安装成功

i. win+r运行cmd,打开dos窗口

ii. 使用cd命令进入jdk安装目录下的bin目录

iii. 输入javac屏幕输出帮助信息即安装成功

以下为截图形式的具体步骤

下载

第一步:访问下载地址:http://www.oracle.com/cn/index.html

第二步:找到下载界面

第三步:寻找JDK7

第四步:寻找JDK7历史版本,这里为了统一全程我们使用7u51

第五步:同意协议

安装

第一步:双击打开安装文件

第二步:下一步,选择安装路径 ,注意:不要选择带中文及特殊符号的路径,也尽量不要安装到C盘。

第三步:下一步,选择是否安装JRE,这里我们选择安装(可以不安装,开发中我们只需要安装jdk)。

3.1.3 验证jdk安装成功

a) DOS命令

java的安装验证需要用到DOS命令行窗口,并且在Java前期开发阶段,需要使用到DOS窗口完成程序,而DOS为命令行交互方式,需要使用到其功能指令。

  • DOS控制台打开方式(Windows7以上)

Windows+R → 输入CMD(cmd) ( 推荐)

开始 → 所有程序 → 附件 → 命令提示符

  • 用于简单开发的DOS指令

dir 显示一个目录中的文件和子目录

cd 进入某个文件夹

cd.. 返回上一级目录

cd\ 直接返回盘符

: 切换盘符

cls 清屏

b) 验证java安装是否成功

win+r运行cmd,打开dos窗口

使用cd进入jdk安装目录下的bin目录

输入javac出以下页面就是安装成功了

DOS命令行是我们前期运行Java程序的环境。因为Java程序在windows下无法直接运行。

3.1.4 Jdk包JDK包含的基本组件包括:

javac – 编译器,将源程序转成字节码

jar – 打包工具,将相关的类文件打包成一个文件

javadoc – 文档生成器,从源码注释中提取文档

jdb – debugger,查错工具

java – 运行编译后的java程序(.class后缀的)

appletviewer - 小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。

Javah - 产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。

Javap - Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。

Jconsole - Java进行系统调试和监控的工具含的基本组件

3.1.5 Java开发常用包

java.lang: 这个是系统的基础类,比如String等都是这里面的,这个包是唯一一个可以不用引入(import)就可以使用的包。

java.io: 这里面是所有输入输出有关的类,比如文件操作等。

java.nio:为了完善io包中的功能,提高io包中性能而写的一个新包 ,例如NIO非堵塞应用

java.net: 这里面是与网络有关的类,比如URL,URLConnection等。

java.util: 这个是系统辅助类,特别是集合类Collection,List,Map等。

java.sql: 这个是数据库操作的类,Connection, Statement,ResultSet等。

javax.servlet:这个是JSP,Servlet等使用到的类。

3.1.6 配置Windows的path环境变量

我们配置path的目的是让Java的bin目录下的javac命令可以在任意目录下执行,无需进入到javac所在的目录就可以找到javac.exe命令,方便完成程序。

a) 方式一

  • 配置步骤:

右键点击计算机 → 选择属性 → 更改设置 → 点击高级 → 点击环境变量 → 找到系统变量中的path → 将java安装目录下javac所在的bin目录路径配置到path变量中,用;(英文)与其他变量分隔

  • 注:

配置path后文件的访问顺序:先访问当前路径,如果当前路径没有该文件,则再访问path配置的路径

c) 方式二(专用于JAVA)

除了案例中直接配置path的方式外,针对Java还可以使用第二种JAVA_HOME的方式进行配置:

  • 右键点击计算机 → 选择属性 → 更改设置 → 点击高级 → 点击环境变量 → 创建名为JAVA_HOME的环境变量 → 将java所在的目录路径配置到JAVA_HOME变量中,用;与其他变量分隔 → 在path环境变量中添加%JAVA_HOME%\bin

3.1.6.1 classpath环境变量配置方式(扩展)

创建新的变量名称:classpath

值设定为指定的还有class文件的目录,多个目录间使用分号(;)分割

作用:使classpath目录中的.class文件可以在任意目录运行

技巧:通常将配置的目录最前面添加.配置,即便当前目录,使.class文件搜索时首先搜索当前目录,然后根据目录配置的顺序依次查找,找到后即运行,因此classpath目录中的配置存在先后顺序

jdk1.5版本之前必须配置classpath,jvm虚拟机才能找到.class文件,1.5版本以后jvm虚拟机会默认在当前目录去找.class文件,所以我们现在的1.7版本千万别配置classpath,因为没有意义

3.1.6.2 在Windows下(扩展)

设置运行环境参数:

a.如果是Win95、Win98,在\autoexec.bat的最后面添加如下3行语句:

set JAVA_HOME=JDK安装目录

set PATH=%JAVA_HOME%\bin;%PATH%

set CLASSPATH=.;%JAVA_HOME%\lib

注意:---可用dos命令notepad c:\autoexec.bat打开记事本,加入上面的3行语句。

b.如果是Win2000、WinXP系统,使用鼠标右击“我的电脑”->属性->高级->环境变量

系统变量->新建->变量名:JAVA_HOME 变量值:JDK安装目录

系统变量->新建->变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib

系统变量->编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%\bin;

c.如果是Vista、Win7、Win8系统,使用鼠标右击“计算机”->属性->左侧高级系统设置->高级->环境变量

系统变量->新建->变量名:JAVA_HOME 变量值:JDK安装目录

系统变量->新建->变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib

系统变量->编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%\bin;

(CLASSPATH中有一英文句号“.”后跟一个分号,表示当前路径的意思)

(使用命令行的方法设置环境变量,只会对当前窗口生效)

(改Path变量时,不是删除原有的值而是添加新的路径)

3.1.6.3 在LINUX下(扩展)

UbuntuLinux下jdk的安装与配置

1.安装

从sun公司网站www.sun .com下载linux版本的jdk

打开终端,用cd命令进入jdk所在目录,执行复制命令

sudo cp jdk-6u7-linux-i586.bin /usr

即将jdk复制到/usr目录下

然后进入/usr目录

cd /usr

执行权限

chmod +x jdk-6u7-linux-i586.bin

执行安装命令

./jdk-6u21-linux-i586.bin

(文件名)

如遇错误,可先切换至root用户下,su root,再执行安装命令

安装成功会在/usr目录下生成jdk1.6.0_07目录,就是jdk的安装目录

重启电脑,打开终端,输入java -version

如若有显示java的版本信息,则表示安装成功,

2.配置

安装成功后需要配置jdk环境变量

用cd命令进入/etc目录

sudo vi profile

即执行编辑profile文件命令

在umas k022前添加如下内容:

export JAVA_HOME=/usr/jdk1.6.0_21

export JRE_HOME=/usr/jdk1.6.0_21/jre

export PATH=$PATH:/usr/jdk1.6.0_21/bin

export CLASSPATH=./:/usr/jdk1.6.0_21/lib:/usr/jdk1.6.0_21/jre/lib

保存退出,重启电脑

3.测试

新建Test.java

public class Test{

public static void main(String[] args){

System.out.println("Hello,Welcome to Linux World!");

}

}

在终端用cd命令进入Test.java目录,然后输入

javac Test.java

java Test

若输出

Hello,Welcome to Linux World!

则表明配置成功!

如不能通过编译,可通过重新启动系统试试

4.注意

在用vi命令编辑profile文件时,Linux初学者可能还不熟用

sudo vi profile进入编辑文件后如出现

Press ENTER or type command to continue

则按回车

然后按方向键“下”直到umas k022前一行

按字母o进入编辑状态

输入环境变量内容

回车,按几次ESC键,直到听到"嘀"声,输入

:x

回车

即保存退出

至此,Linux jdk环境变量配置完成

如果安装完成时候在终端输入:java -version 不显示当前的安装版本的话

则需要卸载原先的版本即可。

yum -y remove <java版本>

例如:centos 版本

[root@localhost /]# yum -y remove java-1.4.2-gcj-compat 卸载它。

[root@localhost soft]# chmod 700 jdk-1_5_0_13-linux-i586.bin

[root@localhost soft]# ./jdk-1_5_0_13-linux-i586.bin

[root@localhost soft]# mv jdk1.5.0_13/ /usr/local/

为了方便以后升级,建立软链接

[root@localhost local]# ln -s /usr/local/jdk1.5.0_13/ /usr/local/jdk

定义环境变量

[root@localhost local]# vi /etc/profile

export JAVA_HOME=/usr/local/jdk

  export PATH=$PATH:$JAVA_HOME/bin

  export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

ok,至此java环境配置完毕

3.2 Java开发工具

简单的开发工具:用于编写源代码文件

notepad windows自带的记事本。

3.2.1 高级记事本与其他开发工具 :

用于编写源代码文件

Editplus

Notepad++

UEditor

sublime2

HBuilder

Dreamweaver

3.2.1.1 EditPlus简介

EditPlus是一款由韩国 Sangil Kim (ES-Computing)出品的小巧但是功能强大的可处理文本、HTML和程序语言的Windows编辑器,你甚至可以通过设置用户工具将其作为C,Java,Php等等语言的一个简单的IDE。

3.2.1.2 Notepad++简介

Notepad++是 Windows操作系统下的一套文本编辑器(软件版权许可证: GPL),有完整的中文化接口及支持多国语言编写的功能(UTF8技术)。

Notepad++功能比 Windows 中的 Notepad(记事本)强大,除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码。Notepad++ 不仅有语法高亮度显示,也有语法折叠功能,并且支持宏以及扩充基本功能的外挂模组。

Notepad++是免费软件,可以免费使用,自带中文,支持众多计算机程序语言: C,C++,Java,pascal,C#,XML,SQL,Ada,HTML,PHP,ASP, AutoIt, 汇编, DOS批处理, Caml, COBOL, Cmake, CSS,D, Diff, ActionScript, Fortran, Gui4Cli, Haskell, INNO, JSP, KIXtart, LISP, Lua, Make处理(Makefile), Matlab,

INI文件,MS-DOS Style, NSIS, Normal text, Objective-C, Pascal,Python, Javascript,Verilog,Haskell,InnoSetup,CMake,VHDL,AutoIt,Matlab

3.2.1.3 UEditor简介

UEditor是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器,具有轻量、可定制、用户体验优秀等特点。开源基于BSD协议,所有源代码在协议允许范围内可自由修改和使用。百度UEditor的推出,可以帮助不少网站开发者在开发富文本编辑器所遇到的难题,节约开发者因开发富文本编辑器所需要的大量时间,有效降低了企业的开发成本。

3.2.1.4 Sublime 简介

Sublime Text 是一个代码编辑器(Sublime Text 2是收费软件,但可以无限期试用),也是HTML和散文先进的文本编辑器。Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的Vim。

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

3.2.1.5 HBuilder简介

HBuilder的编写用到了Java、C、Web和Ruby。HBuilder本身主体是由Java编写,它基于Eclipse,所以顺其自然地兼容了Eclipse的插件

3.2.1.6 Dreamweaver简介

Adobe Dreamweaver,简称“DW”,中文名称 "梦想编织者",是美国MACROMEDIA公司开发的集网页制作和管理网站于一身的所见即所得网页编辑器,DW是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。

3.2.2 集成Java开发工具(IDE),

用于编写源代码文件,并且负责编译与运行等其他操作。

Eclipse (最常用)

MyEclipse = Eclipse + 插件

Netbeans(AWT 图形)

IDEA

3.2.2.1 MyEclipse简介

MyEclipse,是在eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。

3.2.2.2 IDEA简介

IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn、github等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java等少数语言。

3.2.2.3 NetBeans简介

NetBeans 由Sun公司(2009年被甲骨文收购)在2000年创立,它是开放源代码以及开发人员和客户社区的家园,旨在构建世界级的Java IDE。NetBeans当前可以在Solaris、Windows、Linux和Macintosh OS X平台上进行开发,并在SPL(Sun公用许可)范围内使用。

3.2.3 Eclipse简介

Eclipse是一个专门针对Java的集成开发工具,是IBM公司的产品。是免费、开源、由Java语言编写。所以,需要有JRE运行环境并配置好环境变量。

MyEclipse在Eclipse的基础上具有良好的扩展插件功能,但是针对插件收费。

3.2.4 Eclipse安装与基本使用

d) 下载与安装

通过http://eclipse.org/可以直接下载eclipse,下载对应操作系统版本,直接解压即可使用。

e) 基本使用

  • 选择工作空间

选择默认的Java项目目录

  • 建立Java项目

在左边空白处或者点击菜单File,建立Java项目,在界面中写入一个项目名称,然后Finish即可。

  • 创建包

在src下建立一个普通包。包名:cn.javahelp

  • 在cn.itcast包下建立一个类

在界面中写一个类名:HelloWorld。

并选择让main方法也被创建。

然后Finish即可。

  • 在类中写功能

在main里面写一条输出语句。

  • 编译

编译:自动编译。在保存的那一刻已经帮你编译好了,如果有问题,会报错。

  • 运行

点击虫子后面的绿色内在三角形按钮或者点击Run菜单下的run。

或者使用快捷键 Ctrl+F11

或者选择要运行的文件或者在要运行的文件内容中右键 -- Run as - Java Application即可。

  • 查看控制台

运行后看到Console即可,它就是Eclipse自带的控制台。

3.2.5 Eclipse简单配置

window -- Preferences – Java中有许多对Java编程的配型项,如下:

3.2.5.1 编译环境与运行环境配置

编译环境:Compiler 默认选中的就是最高版本。

运行环境:Installed JREs 默认会找你安装的那个JDK。建议配置了Java的环境变量。

问题:

低编译,高运行。可以。

高编译,低运行。不可以。

建议,编译和运行的版本一致。

3.2.5.2 其他配置

去掉默认注释

window -- Preferences -- Java -- Code Style --

Code Templates

选择右边你不想要的内容,通过Edit编辑。

注意:请值删除注释部分,不是注释部分的不要删除。

行号的显示和隐藏

显示:在代码区域的最左边的空白区域,右键 -- Show Line Numbers即可。

Java字体大小及颜色

window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java

控制台和其他文件字体大小及颜色

window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font

重置窗口

window -- Reset Perspective

3.2.8 Eclipse其他功能

3.2.8.1 Eclipse提高开发效率

Eclipse提供了大量的快捷键,方便日常开发,提高开发效率。

由于快捷键众多,这里不一一介绍,请参照《Eclipse快捷键大全》

3.2.8.2 项目导入导出

在项目空白区域右键

找到Import

找到General,展开,并找到Existing Projects into Workspace

点击next,然后在一个新的界面中选择你要导入的项目路径。

注意:

不能有相同名称的Java项目

.project文件中的项目名称需要与项目名称一致

3.2.9 Eclipse的断点调试

3.2.9.1 作用

查看程序执行流程和调试程序

3.2.9.2 步骤

哪里加

想加哪里就加哪里,一般是加在我们看不懂的地方

如何加

在代码区域的最左边双击即可

怎么运行断点的程序

代码区域 -- 右键 -- Debug as -- Java Application

会弹出一个页面让我们选择是否进入debug模式,选择yes

点哪里

Step Over 执行下一步

快捷键F6

看哪里

代码区域:看程序的执行步骤

Debug区域:看程序的执行步骤

Variables:看变量的创建,赋值,销毁等

Console:看程序的输入和输出

如何消除断点

把加断点的动作再来一遍

在Debug视图中,找到Breakpoints,选中断点,点击双x即可

public class Demo01Debug {

public static void main(String[] args) {

int a = 10;

int b = 20;

int c = a + b;

System.out.println(c);

}

}

3.2.10 Eclipse高级使用

3.2.10.1 文档注释导出帮助文档

在eclipse使用时,可以配合文档注释,导出对类的说明文档,从而供其他人阅读学习与使用。

使用文档注释,将类或者方法进行注释用@简单标注基本信息,如@author 作者等。

使用eclpise导出,导出javadoc文档即可。

3.2.10.2 项目的jar包导出

jar包是.class的压缩文件,一般一个jar包中包含许多.class文件。我们可以将一个jar包加入到项目的依赖中,从而该项目可以使用该jar下的所有类。

加入jar包的过程是将.class加入到classpath当中去,让项目识别,以下是加入步骤:

1.根文件夹下创建lib文件夹,用于同一管理所有的jar文件

2.右键点击jar文件,点击Build Path,选择Add to Build Path,此时查看根文件夹下的.classpath文件,发现新加入的jar包路径被配置到了该文件中。

注意:

Jar包加入后,必须Add to Build Path才能使用

Jar包加入后,加入的类也必须导包,如果加入的类其包名与现有类包名相同,则视作在同一个包下。(不常见)

本次讲解方式并不是唯一一种方式,还有其他加入jar包的方式。

第4章 第一个程序HelloWorld!

4.1 Java程序介绍

在开始案例之前,我们需要了解一下Java应用程序的编写流程。

通过上图我们可以了解到编写的程序大致如下;

1. 源文件:编写Java源文件(我们也称之为源代码文件),它的扩展名为.java;

2. 编译:然后通过编译器把源文件编译成字节码文件,字节码文件扩展名为.class;

3. 运行:最后使用解释器来运行字节码文件。

4.2 安装高级记事本

我们可以使用简单的Windows自带的记事本,但是该编辑器功能过于简单,为了方便开发,我们建议大家安装功能更为强大的文本编辑器,常见的如下:

editplus:需要购买

notepad++:免费(课上使用版本) ,注意修改编码,由utf-8修改为ANSI(首选项)

我们直接用eclipse 记事本编辑也会演示。

4.3 程序编写

我们在整个Java学习阶段均是在学习如何完成软件编写,由于到目前为止,没有学习任何语法,所以在HelloWorld案例当中,我们直接使用模板代码,完成编写过程。

程序的编写过程与写文档类似,只是文档是.txt文件,其内容为文字。Java程序员编写的代码又叫源代码,是.java文件,其内容为符合Java语法的代码。

4.4 程序编译

4.4.1 编译

编译是Java程序完成的必不可少的过程,是将源代码.java文件,转为Java程序.class文件的过程,即程序员写的源代码与真正运行的java程序并不是一个文件。所以需要将程序员写的java源代码生成可以运行的Java程序(.class文件)。我们使用Java提供的Javac.exe完成java文件编译成.class文件。

Windows通过Javac.exe将.java文件生成对应的.class文件。

4.4.2 编译步骤

编译动作与后边的运行动作都需要使用到DOS界面,现在可以将DOS简单的理解为命令行界面。因为java的编译命令javac.exe,与后边学习的运行命令java.exe在windows下无法直接运行,必须使用命令行界面。

  • 开启DOS窗口。打开方式:win+r运行cmd。

开启DOS窗口后,使用CD命令将目录切换到.java所在目录

这里涉及到简单DOS命令:

盘符:切换到指定盘符(如C盘,D盘)

cd:用于进入到指定文件夹

cd .java文件所在目录

  • 使用javac命令编译

javac是安装Java后,Java的编译工具,使用该工具,完成 .java转为.class文件,调用完该命令后会在.java所在的文件夹下生成对应的.class文件,该文件就是真正可运行的程序。

javac XXX.java → XXX.class

4.5 程序运行

JavaSE基础阶段的Java程序运行是一个很简单的步骤,直接使用java,但是需要同学们严格区分程序编写与程序运行,不要混淆。

我们使用Java提供的java.exe直接运行即可。

格式:

java XXX(不带扩展名)

第5章 注释、关键字与标识符

5.1 注释

用来解释和说明程序的文字。案例中的代码我们并不知道什么意思,我们可以使用注释来提醒自己我的代码的功能是什么。注释是不会被执行的。

  • 格式

单行注释 //注释内容

多行注释 /*注释内容*/

文档注释 /**注释内容*/

  • 注释的进一步解释

对于单行和多行注释,被注释的文字,不会被JVM解释执行。

对于文档注释,是java特有的注释,其中注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。在文档注释中可以使用注解配合javadoc完成对信息的进一步说明。

注释是一个程序员必须要具有的良好编程习惯。便于自己日后的代码维护,也方便别人阅读你的代码。

  • HelloWorld注释说明

/*

class:类,Java当中组织代码的基本单位

HelloWorld:类名,可自定义,必须与文件名一致

public:访问权限修饰符,现为固定写法

static:静态修饰符,现为固定写法

void:返回值类型,现为固定写法

main:方法名,现为固定写法

String[]:参数类型,现为固定写法

args:参数名,可以自定义修改,建议固定写为args

*/

public class HelloWorld {

/*

main方法是程序入口,即JVM从main方法处开始运行程序。

*/

public static void main(String[] args) {

//打印语句

//小括号内为打印字符串语句,字符串必须使用""包裹

System.out.println("Hello World!");

}

}

5.2 关键字

关键字是被Java语言赋予特殊含义,具有专门用途的单词,比如之前接触的public,class,static,void均为Java已经预设好的。

学习java语言基础实际上就是学习各种关键字如何使用的过程

  • Java中关键字均为小写,注意String不是关键字
  • goto与const是Java中的保留字,即没有赋予特殊含义却仍被Java占用的单词

5.3 标识符及命名规则

标识符是用来表示某个实体的符号,即为代码中的部分内容起的名称。简单来说,在Java中自己起名字的地方使用的就叫标识符,遵守标识符规则(这些地方包括:变量名、方法名、类名、接口名、包名等的命名)。Java标识符由数字,字母和下划线(_),美元符号($)或人民币符号(¥)组成。在Java中是区分大小写的,而且还要求首位不能是数字。最重要的是,Java关键字不能当作Java标识符。

5.3.1 组成元素

  • 英文字符: a-zA-Z
  • 数字: 0-9
  • 符号: _与$

5.3.2 标识符规则

  • 数字不能开头
  • 不可以使用关键字
  • 严格区分大小写,不限制长度
  • 起名时,尽量达到见名知意

123sadfsd

SDFD123

#DFD

_$

static

5.3.3 在Java当中不同部分的命名规则

针对Java当中的不同内容,在标识符的基础上,为这些内容命名还要符合以下规定,但是这些规定是不受语法约束的。

  • 包名:多单词组成时所有字母均小写,使用.连接 aaa.bbb.ccc
  • 类名&接口名:大驼峰式 AaaBbbCcc
  • 变量名&方法名:小驼峰式 aaaBbbCcc
  • 常量名:多单词组成是所有字母均大写,使用_连接 AAA_BBB_CCC

第6章 常量及数据类型

6.1 常量

6.1.1 常量概念

常量是不能改变的量,即 每一个常量就是一个数值。

6.1.2 数据类型

如同在数学当中有小数与整数两种数值,在Java当中需要表示生活生产中的多样内容,其数据类型比数学中的小数与整数更为丰富。

Java是严格区分数据类型的强类型语言,即每个数据均必须有一个数据类型。

  • 整数

i. 十进制表示方式:正常数字 如 13、25等

ii. 二进制表示方式:以0b(0B)开头 如0b1011 、0B1001

iii. 十六进制表示方式:以0x(0X)开头 数字以0-9及A-F组成

如0x23A2、0xa、0x10

iv. 八进制表示方式:以0开头 如01、07、0721

  • 小数

如2.13、1.0

  • 布尔型

用来表示是否,布尔类型只有两个值 true代表真即满足条件

false代表假即不满足条件

  • 字符

i. 表示单个字符,键盘的按键可以输入一个字符。中文的一个汉字可以代表一个字符。

ii. 字符需要使用’’将内容包裹

iii. 字符内容不能为空

如 ‘1’、 ‘a’、 ‘ ’(空格)、 ‘中’、 ‘$’

  • 字符串

i. 字符串String是一种特殊的数据类型

ii. 字符串必须使用“”包裹

如 “我爱Java”、 “0”、 “a”、 “”、 “null”

/*

常量:固定不变的数

整数,小数,字符,布尔,字符串

*/

public class ConstDemo{

public static void main(String[] args){

//整数

//十进制:常用

System.out.println(8);

//二进制:以0b/0B开头 只包含0和1

System.out.println(0b1000);

//十六进制:以0x/0X开头 0-9 a-f

System.out.println(0x8);

System.out.println(0xb);

//八进制:以0开头 0-7

System.out.println(010);//8

System.out.println(011);//9

System.out.println(017);//15

//小数

System.out.println(3.1415926);

//布尔

System.out.println(true);

System.out.println(false);

//字符 必须用''包裹起来 不能为空

System.out.println('1');

System.out.println('a');

System.out.println('B');

System.out.println('家');

System.out.println('&');

System.out.println(' ');

//System.out.println('10');//错误: 未结束的字符文字

//字符串 必须用""包裹起来

System.out.println("我想有一个女同桌!");

System.out.println("");

}

}

6.2 常量案例---超市水果报价单

6.2.1 案例介绍与演示

根据不同的水果种类,在控制台打印所有水果价格的列表。

6.2.2 案例分析

每行以每个水果为单位,记录该水果的编号、名称、单价、计价单位、品质五个属性值,依次完成多个水果的记录

将多个水果的信息以列表的形式打印到控制台

我们可以使用死数据来完成报价单,这里的“死数据”指不能改变,不与客户交互的数据,用来测试程序。

我们需要将需求当中的各种属性打印到控制台。

这里有两种方式可以实现:

  • 全部使用字符串的方式,这是非常直观的方式:

直接打印字符串即可。

代码:

System.out.println("水果编号 水果名称 水果单价 计价单位 品质");

System.out.println(" 1 榴莲 32.0 公斤 A");

System.out.println(" 2 苹果 6.5 公斤 B");

System.out.println(" 3 猕猴桃 6.0 公斤 A");

  • 区分数据类型,打印不同数据类型的方式:

对于Java是严格区分数据类型的。

在HelloWorld案例中,我们使用System.out.println(“打印内容”)打印的就是字符串,即一段话,文本文字,是无法做数学运算的。

水果名称与计价单位显然是字符串类型的,按照字符串格式打印即可。如”香蕉”、 ”苹果”、”大鸭梨”等。

编号应该为整数,不应该像名称一样是文本文字。不需要使用“”。

水果单价应该为小数,可以参与计算。同样不需要使用“”。

水果品质一个字母就可以表示,应该为字符。字符需要使用‘’。

我们把数据调整为对应的常量类型后,还需要把常量其他的字符串连接起来,我们使

用“+”来完成连接,我们来看几个连接后的效果

1 + “World”,连接后的结果就是”1World”

“Hello”+ 3.3,连接后的结果就是”Hello3.3”

当区分数据类型时,修改代码为:

System.out.println("水果编号 水果名称 水果单价 计价单位 品质");

System.out.println(" "+1+" 榴莲 "+32.0+" 公斤 "+'A');

System.out.println(" "+2+" 苹果 "+6.5+" 公斤 "+'B');

System.out.println(" "+3+" 猕猴桃 "+6.0+" 公斤 "+'A');

注意以上代码为黑色部分并不是字符串,我们通过“+”将整数编号、小数单价、字符品质和字符串的名称与计价单位拼起来一起输出了。

类似这样,直接写出来的整数、小数、字符、字符串,均叫做常量。写入程序后是无法改变的。

/*

水果超市报价单:字符串常量方式

水果编号 水果名称 水果单价 计价单位 品质

1 榴莲 32.0 公斤 A

2 苹果 6.5 公斤 B

3 猕猴桃 6.0 公斤 A

水果超市报价单:多种常量方式打印

水果编号:整数

水果名称:字符串

水果单价:小数

计价单位:字符串

品质:字符

*/

public class List01{

public static void main(String[] args){

//字符串常量方式

System.out.println("水果编号 水果名称 水果单价 计价单位 品质");

System.out.println("1 榴莲 32.0 公斤 A");

System.out.println("2 苹果 6.5 公斤 B");

System.out.println("3 猕猴桃 6.0 公斤 A");

System.out.println("============================================================");

//多种常量连接 + 任何常量和字符串常量相加结果都是字符串

System.out.println(1+"Hello");//"1Hello"

System.out.println("asdf" + 3.3);//"asdf3.3"

System.out.println("============================================================");

//多种常量方式打印

System.out.println("水果编号 水果名称 水果单价 计价单位 品质");

System.out.println(1+" 榴莲 "+32.0+" 公斤 "+'A');

System.out.println(2+" 苹果 "+6.5+" 公斤 "+'B');

System.out.println(3+" 猕猴桃 "+6.0+" 公斤 "+'A');

}

}

第7章 习题总结:

7.1 知识点相关题

7.1.1 简述java语言,具有哪些特性?

1.java语言是简单的

java语言是和c++语言类似的,其次java中丢弃了c++中一些难理解的特性,比如运算符重载等,java语言不使用指针,并且拥有垃圾回收机制

2.java语言是面向对象的

java语言提供了类、接口和继承等特性,只支持类之间的单继承,但是支持接口之间的多继承,并且支持类与接口之间的实现机制,而且java是全面支持动态绑定的。

3.java语言是分布式的

java语言支持Internet应用的开发,在java编程中有一个编程接口时java,net接口,它是用来提供网络编程的一个类库,java的RMI机制也是开发分布式应用的重要手段。

4.java语言是健壮的

它丢弃了c++中的指针,但是他拥有强大的垃圾回收机制,强制类型转化机制,异常处理机制,安全性检查等重要机制。

5.java语言是安全的

java语言自身有安全性之外,它还可以通过网络下载的类本身具有一个安全防范机制,通过分配不同的名字空间,以放代替本地的同类名和字节码检查,并且提供安全管理机制(类SecurityManager)让java应用设置安全的哨兵。

6.java语言是跨平台的

java程序在Java平台上面可以被编译为字节码文件,独立存在,可以在任何的操作系统中的JVM上进行解释运行。

7.java语言是多线程的

java语言支持多个线程同时执行,并且提供多线程之间的同步机制.

7.1.2 完成JAVA_HOME方式的环境变量配置并验证

为什么要配置

我们发现每次程序编译与运行都要输入D:\develop\Java\jdk1.7.0_51\bin后,才能使用javac.exe与java.exe,这样的方式很麻烦,那么,能否不输入D:\develop\Java\jdk1.7.0_51\bin呢?是可以的,通过配置Windows的PATH环境变量来完成。

我们配置path的目的是让Java的bin目录下的.exe命令可以在任意目录下执行,无需进入到javac所在的目录就可以找到javac.exe命令,方便完成程序。

如何配置

创建新的变量名称:JAVA_HOME

计算机-右键属性-高级系统设置-高级-环境变量-系统变量

为JAVA_HOME添加变量值:JDK安装目录

在path环境变量最前面添加如下内容%JAVA_HOME%\bin;

7.1.3 什么是JDK,什么是JRE,这两者有什么关系?

7.1.4 简述什么是java中的关键字,关键字的特点及常见的关键字

一九五五年九月下旬一天中午,我偷溜上一列从洛杉矶开出、朝圣巴巴拉(Santa Barbara)而去的货运火车。我头枕在行李袋上,翘着腿,注视着天上的滚滚浮云。那是一列慢车,我计划在圣巴巴拉的海滩睡一晚,隔天一大早再偷溜上一列开往圣路易斯-奥比斯蟹(San LuisObispo)的慢车,要不就是等到傍晚七点,溜上一列到旧金山去的直达车。

7.1.5 简述什么是标识符,标识符的组成,注意事项及命名规则

标识符组成

Java标识符由数字,字母和下划线(_),美元符号($)或人民币符号(¥)组成。在Java中是区分大小写的,而且还要求首位不能是数字。最重要的是,Java关键字不能当作Java标识符。

下面的标识符是合法的:

myName,My_name,Points,$points,_sys_ta,OK,_23b,_3_

下面的标识符是非法的:

#name,25name,class,&time,if

命名约定

1.类和接口名。每个字的首字母大写,含有大小写。例如,MyClass,HelloWorld,Time等。

2.方法名。首字符小写,其余的首字母大写,含大小写。尽量少用下划线。例如,myName,setTime等。这种命名方法叫做驼峰式命名。

3.常量名。基本数据类型的常量名使用全部大写字母,字与字之间用下划线分隔。对象常量可大小混写。例如,SIZE_NAME。

4.变量名。可大小写混写,首字符小写,字间分隔符用字的首字母大写。不用下划线,少用美元符号。给变量命名是尽量做到见名知义。

7.1.6 简述注释的作用及分类,并在HelloWorld案例中添加注释

对于Java注释我们主要了解三种:

1, // 注释一行

2, /* ...... */ 注释若干行

3, /**……*/文档注释

作用:

通过注释提高Java源程序代码的可读性;

使得Java程序条理清晰,易于区分代码行与注释行。

另外通常在程序开头加入作者,时间,版本,要实现的功能等内容注释,方便后来的维护以及程序员的交流。

7.1.7 简述常量的分类,完成控制台输出不同类型的常量

Java一共提供了六种类型的常量:

1. 整型常量:整型常量的值为整数的类型,它可以采用十进制、八进制、十六进制表示。对于超过了int类型取值范围的大整数,系统不会自动当做long类型处理,此时必须在整数的后面增加大写或者小写的L作为后缀才能够作为long类型处理。通常我们推荐使用大写的L,小写的L容易和1混淆。

2. 浮点型常量:包括float和double两种类型,每一种类型都可以使用十进制或者是科学计数法,例如2.4e3,实际上表示2.4*103,Java语言的浮点型默认是double类型的,你如果希望把Java中的一个浮点数当作float类型处理那么必须增加后缀大写或小写的F,例如

3.4是double型,占用64位内存空间,而3.4f 位float类型,占用32位内存空间,当然也可以在一个浮点数后面加上大写或小写的d,指定其为double类型,但是通常没有这个必要,Java语言的浮点型默认是double类型的。

3. 布尔常量:只能取值true或false,注意不能使用0或1替代,也不能使用引号括起来

4. 字符常量:字符常量必须使用单引号括起来,只能是一个字符,Java中字符在内存中占用两个字节,采用的是Unicode编码,字符常量有二种变现形式,

(1)普通字符常量,例如’a’,’8’等等,使用单引号括起来。

(2)转义字符常量,例如’\n’表示换行,’\t’表示Tab键,’\b’退格键,这些控制字符都是不可显示字符,所以采用转义字符来表示。’\\’(反斜杠),’\’’(单引号),’\”’(双引号)。

5. 字符串常量:使用双引号括起来的一串字符,作为特殊情况也可以是0个或1个字符,例如”A” A是一个字符但是我们称”A”是一个字符串,不会把它认为是字符,字符常量是用单引号括起来的。

6. null常量:只有一个值null,表示引用变量保存的地址为空,还没有指向任何对象,可以把null常量赋给任意类型的引用类型的变量。

7.1.8 Java的“一次编写,多处运行”是如何实现的?

答:Java程序会被编译成字节码组成的class文件,这些字节码可以运行在不同平台的jvm上,所以说java是平台独立的。

7.2 代码题

7.2.1 第一题:分析以下需求,并用代码实现

1.定义一个HelloWold类

2.在类中定义主方法

3.在主方法中使用输出语句在dos控制台打印HelloWorld

打印结果如:HelloWorld

4.在案例中使用当行注释、多行注释添加相关的说明信息

代码实现:

/**

* java第一个案例:HelloWorld

*

*/

public class HelloWorld {

//定义主方法

public static void main(String[] args) {

//在控制台上打印HelloWorld

System.out.println("HelloWorld");

}

}

7.2.2 第二题:分析以下需求,并用代码实现

1.定义一个Test08类

2.要求在控制台打印输出一段话:

效果如下:

谁不曾一意孤行,怒发冲冠过怕只怕少了那份执着

世界上那些最容易的事情中,拖延时间最不费力

你若不想做,会找一个或无数个借口;你若想做,会想一个或无数个办法

代码实现:

public class Test08 {

//定义主方法

public static void main(String[] args) {

//在控制台上打印

System.out.println("谁不曾一意孤行,怒发冲冠过怕只怕少了那份执着");

System.out.println("世界上那些最容易的事情中,拖延时间最不费力");

System.out.println("你若不想做,会找一个或无数个借口;你若想做,会想一个或无数个办法");

}

}

7.2.3 第三题:分析以下需求,并用代码实现

1.定义一个Test09类

2.要求在控制台打印以下数据(利用常量的方式):

(1)字符串常量 "不忘初心方得始终"

(2)整数常量 88,-88

(3)小数常量 88.888

(4)字符常量 'A','8'

(5)布尔常量 true,false

代码实现:

public class Test09 {

//定义主方法

public static void main(String[] args) {

//在控制台上打印

System.out.println("不忘初心方得始终");

System.out.println(88);

System.out.println(-88);

System.out.println(88.888);

System.out.println('A');

System.out.println('8');

System.out.println(true);

System.out.println(false);

}

}

7.2.4 常量案例---超市水果报价单(选作)

7.2.4.1 案例介绍与演示

根据不同的水果种类,在控制台打印所有水果价格的列表。

7.2.4.2 案例分析

每行以每个水果为单位,记录该水果的编号、名称、单价、计价单位、品质五个属性值,依次完成多个水果的记录

将多个水果的信息以列表的形式打印到控制台

我们可以使用死数据来完成报价单,这里的“死数据”指不能改变,不与客户交互的数据,用来测试程序。

我们需要将需求当中的各种属性打印到控制台。

这里有两种方式可以实现:

1.全部使用字符串的方式,这是非常直观的方式:

直接打印字符串即可。

代码:

System.out.println("水果编号 水果名称 水果单价 计价单位 品质");

System.out.println(" 1 榴莲 32.0 公斤 A");

System.out.println(" 2 苹果 6.5 公斤 B");

System.out.println(" 3 猕猴桃 6.0 公斤 A");

2.区分数据类型,打印不同数据类型的方式:

对于Java是严格区分数据类型的。

在HelloWorld案例中,我们使用System.out.println(“打印内容”)打印的就是字符串,即一段话,文本文字,是无法做数学运算的。

水果名称与计价单位显然是字符串类型的,按照字符串格式打印即可。如”香蕉”、 ”苹果”、”大鸭梨”等。

编号应该为整数,不应该像名称一样是文本文字。不需要使用“”。

水果单价应该为小数,可以参与计算。同样不需要使用“”。

水果品质一个字母就可以表示,应该为字符。字符需要使用‘’。

我们把数据调整为对应的常量类型后,还需要把常量其他的字符串连接起来,我们使用“+”来完成连接,我们来看几个连接后的效果

1 + “World”,连接后的结果就是”1World”

“Hello”+ 3.3,连接后的结果就是”Hello3.3”

当区分数据类型时,修改代码为:

System.out.println("水果编号 水果名称 水果单价 计价单位 品质");

System.out.println(" "+1+" 榴莲 "+32.0+" 公斤 "+'A');

System.out.println(" "+2+" 苹果 "+6.5+" 公斤 "+'B');

System.out.println(" "+3+" 猕猴桃 "+6.0+" 公斤 "+'A');

注意以上代码为黑色部分并不是字符串,我们通过“+”将整数编号、小数单价、字符品质和字符串的名称与计价单位拼起来一起输出了。

类似这样,直接写出来的整数、小数、字符、字符串,均叫做常量。写入程序后是无法改变的。

原文发布于微信公众号 - Java帮帮(javahelp)

原文发表时间:2018-05-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2577
来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

4878
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2536
来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

2060
来自专栏java 成神之路

使用 NIO 实现 echo 服务器

4637
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2707
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2152
来自专栏我和未来有约会

Silverlight第三方控件专题

这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏请告知我一下。 名称 简介 截图 telerik 商 RadC...

4025
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6808
来自专栏杨龙飞前端

scrollto 到指定位置

2504

扫码关注云+社区