首页 > 代码库 > JavaSE学习笔记(一)———Java简介与基础
JavaSE学习笔记(一)———Java简介与基础
一、 Java语言简介
1.1 计算机语言的发展过程
计算机语言发展主要分为三个阶段:
1.第一代:机器语言
2.第二代:低级语言
3.第三代:高级语言
1.2 Java发展简史
1.Java 是一种程序开发语言,既然是一门语言,就像其他语言一样,具备一定的语法
和自己的数据结构。
2.Java语言来源于sun公司,sun指的是斯坦福大学网络。由james gosling领导并开发。
Java语言的具体发展历程
1991~1995 Sun 为了占领智能消费电子产品市场,由james gosling 负责该项目,来开发Oak 语言 |
1995 将Oak 改名为Java |
1996 发布JDK1.0 |
1997 发布JDK1.1 |
1998 发布JDK1.2,将该版本命名为J2SDK,将Java更名为Java 2 |
1999 将Java 分为三大块:J2SE(Java 标准版)、J2EE(Java 企业版)、J2ME(Java 微型版本) |
2000 发布J2SE1.3 |
2002 发布J2SE1.4 |
2004 此时不再叫J2SE1.5,叫5.0 |
2005 Java 10 周年,将J2SE 改为JAVA SE、 将J2EE 改为JAVA EE、将J2ME 改为JAVAME |
2006 发布JAVA SE 6 |
2011 年7 月JAVA SE 7 |
2014年3月19日 JAVA SE 8 发布 |
1.1 JAVASE、JAVAEE与JAVAME的关系
Java可以分为三个个版本,JAVAME适用于小型设备和智能卡的开发(Java Platform MicroEdition,JavaME),JAVASE适用于桌面系统的核心Java开发平台,也成为Java 平标准版(Java Platform Standard Edition,Java SE),第三种是基于web和服务器的应用程序Java 平台企业版(Java Platform EnterpriseEdition,Java EE)。
1.2 Java语言特性
1.面向对象
优于面向过程的开发语言,更适用于大型软件的开发。
2.可移植性
Java语言是跨平台的,只需要编译一次,就可以在多种平台上运行,例如在Windows上编译运行的程序也可以在Linux系统上运行。但需要安装不同平台上的JDK(Java开发运行环境)
3.健壮性
Java拥有自动垃圾回收机制,GC。不需要手动对内存中的垃圾进行回收。
4.多线程
可以多线程开发
5.开发简单性
易于学习,sun提供了很多工具包。
1.3 Java的加载与执行过程
Java程序经过一次编译就可以在不同的平台上运行,而不需要再次编译,这也是Java流行的一个原因。例如:编译好的程序可以在Windows系统、Linux系统或嵌入式终端上运行。
编写好的Java程序需要经过编译才能执行,编译的目的是让底层的平台或者机器可以识别并执行。下面的图是Java程序编译执行的过程。
Java程序的执行分为两个阶段
1.编译期
编译期将Java源文件.java编译成.class字节码文件。
2.运行期
Java类加载器将.class文件加载到内存,在Java虚拟机JVM中进行解释并生成可执行代码,注意:这个可执行代码是不同平台的可执行代码。
如下图:
1.4 准备
1.4.1 下载安装JDK
要下载要运行程序的系统对应的JDK,如:windows系统下载jdk-6u5-windows-i586-p.exe。Linux系统下载jdk-8u51-linux-x64.tar.gz。并安装。
1.4.2 MS-DOS常用命令
cd命令:切换目录。
命令格式:
cd 目录名称 |
dir命令:显示当前目录下的文件信息。
命令格式:
dir |
mkdir命令:在dos系统下创建目录。
命令格式:
mkdir 目录名称 md目录名称 |
cls命令:清屏。
命令格式:
cls |
del命令:删除一个文件。
命令格式:
del 文件名称 |
rmdir命令:删除一个空的目录。
命令格式:
rmdir 文件名称 rd 文件名称 |
move命令:文件更名。
命令格式:
move 文件名称 新文件名称 |
1.4.3 环境变量PATH
告诉系统,要执行的命令在什么地方,如果不设置path,系统就找不到你要执行的命令。也就是说path和操作系统相关的,和java没有关系,但是如果JDK安装目录不在path中设置,操作系统就找不到我们要用的java和javac命令。
当执行javac命令时,操作系统会在path中找,找到就执行,找不到就报错。
C:\Users\LZD>java -version java version "1.7.0_79" Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) Client VM (build 24.79-b02, mixed mode, sharing) |
如果显示上面信息,说明JDK配置成功。
1.4.4 环境变量CLASSPATH
CLASSPATH是和Java相关的。当执行一个Java程序时,会启动一个JVM,虚拟机要在CLASSPATH设置的目录下找要执行的.class文件,如果找到了就执行,如果找不到就报错。如果不设置CLASSPATH,JVM就在执行java命令的当前目录下找,如果设置了CLASSPATH就在CLASSPATH下找,不在当前目录下找。
1.5 第一个Java程序
第一个Java程序我们使用文本编辑器进行编辑,并且在命令行进行编译和执行。对Java程序的编译和执行过程做到了解。
第一个Java程序HelloWorld.java:
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World"); } } |
1.5.1 首先编译Java源文件
在命令行编译源文件,使用javac命令,命令格式如下:
C:\Users\LZD>javac d:/corejava/HelloWorld.java D:\>javac corejava/HelloWorld.java D:\corejava>javac HelloWorld.java |
可以是相对路径也可以是绝对路径。注意:javac命令后必须是完整的文件名称,含扩展名java。编译完成后会在源文件目录形成一个HelloWorld.class 文件,这说明编译成功了。编译成功后就可以执行了。
1.5.2 执行Java程序
当Java源文件编译成.class文件后就可以执行了。执行Java程序需要使用java命令,命令格式如下:
D:\corejava>java HelloWorld Hello World |
注意:java命令后跟着的是类名,但不含后缀.class。另外需要注意的是,执行Java程序涉及到CLASSPATH环境变量,如果不设置CLASSPATH,JVM就在执行java命令的当前目录下找编译好的.class文件并加载执行,如果设置了CLASSPATH环境变量,Java虚拟机JVM就会在CLASSPATH指定的目录下找,而不在执行java命令的当前目录下找.class文件。
1.5.3 语法简介
HelloWorld.java:
// public 访问修饰符,全局可访问,关键字 // class 说明声明的是一个Java类,关键字 // HelloWorld 用户定义的类名,标识符 public class HelloWorld{ // public 语义同上 // static 表示方法是静态的,关键字 // void 表示方法没有返回值,关键字 // main Java程序执行入口方法,关键字 // String[] args 数组参数 public static void main(String[] args){ // 将信息输出到控制台 // System sun提供的工具类 System.out.println("Hello World"); } } |
1.5.4 Java中的注释
在Java中,注释会被Java虚拟机忽略,不会执行。主要用于程序功能的说明,方便其他开发人员了解程序的基本功能。
在Java中注释有三种方式:
1.单行注释
// 单行注释 |
2.多行注释
/* 多行注释 多行注释 */ |
3.多行注释
/** * 多行注释 * 可以生成java doc文档 */ |
1.6 定义Java类
在Java中,定义类有两种方式:
1.采用pubicclass 类名的方式
pubic class 类名{ // 类体 } |
注意:如果采用public class来声明一个类,那么文件名称和类名必须完全相同(包括大小写)。如果不同会报错。
2.采用class类名的方式
class 类名{ // 类体 } |
注意:采用class关键字来声明类,文件名可以是任何合法的文件名称,文件名不需要和类名一致(当然可以相同)。但生成的class 文件名称和类名一致,如果类名和文件名称不同,.class文件名称和类名相同不和原文件名称一致。
在一个源文件中可以声明多个类,可以将所有的类都使用class来声明,我们新建一个Java源文件ClassTest01.java,文件内容如下:
class A{ public static void main(String[] args){ // 方法体 System.out.println("Hello World"); } }
class B{ // 类体 }
class C{ // 类体 } |
编译:
javac ClassTest01.java |
在目录下会生成三个.class文件,A.class、B.class和C.class。
执行:
java A |
注意:在一个java文件中,可以有多个class,没有public class,文件名可以不和类名相同,只要是合法的文件名称就行了。
另外,在一个源文件中可以使用public class来声明一个类,但是要注意:如果有public class且只能有一个并且和Java文件名称必须相同,也就是java文件中只能有一个class能被public修饰。
public class A{ public static void main(String[] args){ // 方法体 System.out.println("Hello World"); } }
class B{ // 类体 }
class C{ // 类体 } |
下面的方式是不和法的
public class A{ public static void main(String[] args){ // 方法体 System.out.println("Hello World"); } }
public class B{ // 类体 }
class C{ // 类体 } |
一、 Java中的标识符与关键字
2.1 标识符
在Java中,标识符可以用来标识类名,接口名,变量名和方法名,也就是用户可以定义的名称。
2.1.1 Java 标识符的命名规则
1.标识符是由,数字,字母,下划线和美元符号构成,其他符号不可以
2.必须以字母、下划线或美元符号开头,不能以数字开头
3.关键字不能作为标识符
4.标识符区分大小写
5.标识符理论上没有长度限制
参见表格
合法标识符不合法标识符
$Abc | 合法 | _Abc | 合法 |
123abc | 非法 | public | 非法 |
Abc def | 非法 | Abc-def | 非法 |
public1 | 合法 | Abc# | 非法 |
Abc% | 非法 | Abc123 | 合法 |
Abc_123 | 合法 | #Abc | 非法 |
对于如何命名Java 标识符,通常的做法是见名知意,如:根据类名就知道此类的功能,通过方法名称就知道方法的作用等等。
通常的规范是:类名首字母大写,后面每个单词的首字母大写。方法名首字母小写,后面每个单词首字母大写。变量首字母小写后面每个单词首字母大写。静态变量全部大写。
如下面的例子:
// 类名首字母大写,后面每个单词的首字母大写 public class ClassTest02{ // 变量首字母小写后面每个单词首字母大写 public String studentName; // 同上 public int age //静态变量全部大写 public String COUNTRY = "中国" ;
// 方法名首字母小写,后面每个单词首字母大写 public void studyLesson(){ System.out.println("学习Java") ; } } |
2.2 关键字
Java关键字是Java语言开发者定义的,并且有特定含义的字符。不能用关键字定义标识符。在Java 中关键字都是小写的
class extends implements interface import package break case continue default do if else for return switch while false true null Boolean byte char short int Long float double try catch throw throws finally abstract final native private protected public static synchronized transient volatile instanceof new super void assert enum goto const |
二、 内容回顾与练习
3.1 内容回顾
1.了解Java发展历史
2.了解JavaSE、JavaEE和JavaME的区别和联系
3.了解Java的编译期和运行期的概念
4.掌握环境变量PATH和CLASSPATH的作用和区别
5.会编写Java程序,并且在命令行编译执行。理解javac和java命令执行过程
6.如何定义Java类
7.publicclass和class的区别
本文出自 “kevin.blog” 博客,请务必保留此出处http://dongkevin.blog.51cto.com/12103298/1859054
JavaSE学习笔记(一)———Java简介与基础