Java导学
Java是一门面向对象的编程语言。本质上来说,Java的学习与英语日语韩语等语言的学习并没有什么区别。
就以英语为例,我们学习英语,会学习英语的语法单词等。在学习完以后,我们会使用英语来和懂英语的人进行对话。因为双方的交流都是以英语为基础,大家都懂各自的意思,所以对方才能接受。
对于编程语言也是如此,我们写出来的东西,不仅仅是人要接受,还要计算机能够认识。所以我们就要学习计算机能够认识的语法结构。
Java简介
历史
Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。
Java分为三个体系:
- JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
- JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)
- JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)。
2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名以取消其中的数字”2”:J2EE更名为Java EE, J2SE更名为Java SE,J2ME更名为Java ME。三者关系
┌───────────────────────────┐
│Java EE │
│ ┌────────────────────┐ │
│ │Java SE │ │
│ │ ┌─────────────┐ │ │
│ │ │ Java ME │ │ │
│ │ └─────────────┘ │ │
│ └────────────────────┘ │
└───────────────────────────┘
2009年,Oracle公司收购sun公司,获得Java的版权
2019年,Java SE13发布小故事 Java语言其实是有个曾用名的,叫Oak,而且起这个名字的时候也是很随心的,只是因为看到了窗口外的一颗橡树,所以就叫为Oak,但Oak这个名字已经被注册。最后他们以Java这个名字命名了这个语言,据说是Sun公司的程序员们都很喜欢喝咖啡,而且对爪哇岛的一种咖啡印象很深,所以就有了Java这个经典的名字和咖啡的图标。
Java的特性
Java可以理解为编程语言或者开发工具。
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性(跨平台)、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
对于跨平台的理解
为了让平台对编程人员透明,写出可以在不同平台运行的相同源代码,Java 开发出了 JVM (Java 虚拟机)。
一次编译,到处运行。
目的
Java 最终的目的是用于编写直接在机器上运行的程序。
与 HTML 运行依靠浏览器,SQL 运行依靠数据库系统对比,Java 能做的事情更多,更加的普遍。
开发准备
- JDK下载
本次课程我们使用JDK 1.8,可以在Oracle官网上进行下载。
建议下载exe版本的JDK使用。 JDK安装下载完成以后直接进行安装,直接下一步就好。
bin:存放了一系列的Java命令和工具 jre:JavaRuntimeEnvironment,Java运行时的环境,如果你的计算机要运行Java编写的程序,可以没有JDK,但是不能没有JRE lib:类库,JavaSE提供的标准类库,用的时候也称为API src.zip:source源代码
但是安装完成以后此时还不能很方便的使用,需要我们进行环境变量的配置。通常情况我们需要配置以下三个变量:
- JAVA_HOME:指向Jdk的安装目录,作用是一些基于Java开发的工具会用到,比如tomcat,Eclipse,如果不用这些工具不需要配置。
JAVA_HOME=d:\xx\xx\jdk1.8
- Path:指向jdk安装目录下的bin目录,作用是指定命令搜索路径,bin目录下有编译、启动(javac/java)等命令,为了任何目录位置下都可以直接输入命令,而不用输入长长的路径了。如果配置了JAVA _HOME ,直接把%JAVA_HOME%/bin追加到PATH中即可。
%JAVA_HOME%\bin;%JAVA\_HOME%\jre\bin;
- CLASSPATH:在于告诉Java执行环境,在哪些目录下可以找到我们所要执行的Java程序所需要的类或者包。不过在JDK1.5之后的版本完全可以不用设置classpath环境变量就能正常运行程序
一些概念
之前我们已经下载并安装了Java的JDK,那么jdk到底是什么,它有着什么样的作用呢,接下来我们就来认识几个新的概念SDK——soft development kit,软件开发工具包。sdk是一个大的概念,比如开发安卓应用,你需要安卓开发工具包,叫 android sdk,比如你开发java程序,需要用到java sdk,所以一般使用sdk这个概念,你需要在前面加上限定词。 JDK——可以理解为 java sdk,它是编写java程序,使用到的工具包,为程序员提供一些已经封装好的 java 类库。
- JAVA_HOME:指向Jdk的安装目录,作用是一些基于Java开发的工具会用到,比如tomcat,Eclipse,如果不用这些工具不需要配置。
开发第一个Java程序
我们来新建一个Java文件来验证刚刚配置的开发环境是否正确。
编写源代码:
类编写的注意点:
- 文件名必须用大写字母开头,而且用驼峰命名方式,尽量不要出现怪异的字符,文件后缀名用.java,比如StudentScore.java
- 代码中的类名必须和文件名一致
- 在类定义的文件路径中尽量不要出现中文
- 严格仿照代码格式等书写以做测试
在某个目录中新建一个名叫 Hello.java 的文件(注意把文件后缀隐藏选项去掉),文件内容如下public class Hello {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
编译源代码
1、使用 javac 命令将 Hello.java 文件编译成 Hello.class 字节码文件在.java文件所在目录,按住shift键,右键打开控制台,或者从控制台切换到工作目录 执行javac Hello.java,注意:这边Hello.java一定要携带.java后缀
PS D:\jdk> javac Hello.java
2、使用 java 命令,调用本机的 JVM 执行字节码文件
经过编译后多出一个Hello.class文件(即字节码文件) 字节码文件就是运行在JVM(Java Virtual Machine) 执行java Hello命令,在控制输出Hello,World!字符
PS D:\jdk> java Hello
Hello,world
Java代码跨平台的原理
源代码通过javac命令编译成.class的二进制字节码文件 在不同的操作系统的JVM中,可以运行相同的.class文件,输出程序内容,这也是Java跨平台的主要原因
使用eclipse开发Java程序
Eclipse的安装
下载地址:https://www.eclipse.org/downloads
注意:eclipse的版本下载要同电脑安装的jdk版本相对应。
打开cmd命令提示符,输入java -version,查看本机的jdk版本
以下是eclipse版本和jdk版本的对应表:
安装:下载完jar包后,解压到文件夹中。
ps:注意解压的路径中不要出现中文和空格,以及特殊字符。
eclipse的使用
IDE (集成开发环境):可以自动编译(保存即编译)、代码提示。
工作空间
在 Eclipse 中可以建立多个工作空间(workspace),每个工作空间可以建立多个项目(project)
一个工作空间就是一套配置信息,在进行了工作空间切换后,之前工作空间的配置将不会生效。
程序在 project 中开发。
使用:
- 解压后打开eclipse文件夹,双击文件夹中的eclipse.exe文件,就可以打开
- 打开后会要求我们设置workspace工作空间,这个工作空间就是我们以后代码存放的地方。
- 右击Package Explorer区域,new->Java Project新建一个java项目,并在project name中输入项目名字。
- 在 src 中新建 class 文件
- 运行程序,在 class 文件中右键 「run as」-> 「java application」。
/**
* 一个Java源文件中可以有多个Java类,有几个类就会被编译为几个class文件
* 使用class进行修饰的就是Java类
* Java文件的文件名需要和public修饰的类名相同
* 在Java中对于文件、类、变量、方法等,命名时需要遵循驼峰原则,多个单词组合从第二个单词开始,单词首字母大写
* 关于类,类名的首字母需要大写
*/
public class HelloWorld {//class后面跟着的是类名
public static void main(String[] args) {//main方法,又叫主方法
System.out.println("你好,世界!");//这是Java中的打印语句
}
}
/**
* 这也是一个Java类,只是这个Java类没有public修饰,在Java源文件中,只能出现一个public修饰的类
*/
class China {
public static void main(String[] args) {
System.out.println("中国,我的祖国,你好!");
}
}