第1章Java概述
1.1Java概述
Java 是一种功能强大和多用途的编程语言,可用于开发运行在移动设备、台式计算机以及服务器端的软件。Java 是功能完善的通用程序设计语言,可以用来开发健壮的任务关键的应用程序。现在,它不仅用于 Web 程序设计,而且用于在服务器、台式计算机和移动设备上开发跨平台的独立应用程序。
1.学习编程目的
解决计算机中的计算问题,我们所写的代码是对于某一个问题具体的解决步骤,我们在把这个解决步骤交给计算机去执行。
2.软件的定义
通过高级编程语言所写出来的可执行的代码称之为软件是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为系统软件、应用软件和介于这两者之间的中间件。软件是程序加文档的集合体。
3.Java的历史
Java 是由 James Gosling 在 Sun公司领导的小组开发的。2010年 Sun 公司被 Oracle 收购。Java 最初被称为 Oak (橡树),1995 年更名为 Java, 并重新设计用于开发 Web应用程序。
4.Java技术架构
Java 是一个全面且功能强大的语言,可用于多种用途。
Java 有三个版本:
Java SE Java Standard Edition 标准版:可以用来开发客户端(个人)的应用程序。
Java EE Java Enterprise Edition 企业版:可以用来开发服务器端(众人)的应用程序。
Java ME Java Micro Edition 微型版:用来开发移动设备的应用程序。
1.2 Java开发环境安装
JDK 是用于开发和运行 Java 程序的软件,JDK 是由一套独立程序构成的集合,每个程序都是从命令行调用的,用于开发和测试 Java 程序。IDE 是快速开发程序的集成开发环境。
JRE Java Runtimr Environment Java运行环境所包含的内容:
- JRE = JVM(Java Virtual Machine )+ 核心类库 (运行)
- JDK = 开发工具 + JRE(开发)
关于JDK的目录:
- bin目录:binary 都是一些Windows平台下的可执行程序,都是Java开发工具
- javac.exe java的编译工具
- java.exe java的运行工具
- db:DataBase 放的都是一些关于数据库操作的文件
- include:放的都是一些C语言的头文件,用于JVM与计算机底层之间的交互
- jre:JDK自带的运行环境
- lib:library 类库
- src.zip:Java所有的源代码
1.3 Java程序的编译与运行
Java 是从类中的 main 方法开始执行的。Java 源程序保存为 .java
文件,编译为 .class
文件。.class
文件由 Java 虚拟机(JVM)执行的。
步骤:
1.新建一个文本文档,将文件名改为Demo01,将后缀名改成 .java
,创建了一个Java源代码文件。
public class Demo01{
}
2.可以使用任何一个文本编辑器或者集成开发环境来创建和编辑 Java 源代码文件。(源文件的扩展名必须是 .java
, 而且文件名必须与公共类名完全相同。)
3.打开控制台窗口 win + R
输入cmd
回车,切换到源代码所在的目录(cd XXX
,cd /
,D:
,dir
),输入javac Demo01.java
对源代码进行编译,生成一个可执行的二进制文件-字节码文件Demo01.class
。(这里面所生成的字节码文件的名称是和类名保持一致的,和文件名没关系。一个Java源代码文件中最多有一个public的类,并且该public的类的名称必须与文件名一致)。
4.输入java Demo01
,此时的Demo01是Demo01.class
字节码文件,将字节码文件传入JVM中,由JVM运行字节码文件,任何程序都要有一个入口,就是主函数。
public class Demo01{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
注意:在执行一个 Java 程序时,JVM 首先会用一个称为类加载器的程序将类的字节码加栽到内存中。如果你的程序中使用其他类,类加栽程序会在需要它们之前动态地加栽它们。当加栽该类后,JVM 使用一个称为字节码验证器的程序来检验字节码的合法性,确保字节码不会违反 Java 的安全规范。Java 强制执行严格的安全规范,以确保来自网络的 Java 程序不会篡改和危害你的计算机。
常犯错误
1、类名与文件名不一致
class Demo01{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
C:\Users\李欣怡\Desktop>javac Demo02.java
C:\Users\李欣怡\Desktop>java Demo02
错误: 找不到或无法加载主类Demo01
注意:一个源代码文件中,最多有一个publc的类并且类名必须与文件名一致。
2、出现中文符号
public class Demo01{
public static void main(String[] args){
System.out.println(“Hello World!");
}
}
C:\Users\李欣怡\Desktop>javac Demo01.java
Demo01.java:3: **错误: 编码GBK的不可映射字符**
System.out.println(鈥淗ello World!")锛?
^
Demo01.java:3: 错误: 需要')'
System.out.println(鈥淗ello World!")锛?
^
Demo01.java:3: 错误: 未结束的字符串文字
System.out.println(鈥淗ello World!")锛?
^
Demo01.java:3: 错误: 不是语句
System.out.println(鈥淗ello World!")锛?
^
4 个错误
编译报错,GBK不可映射字符。
3、符号错误(缺少符号、多余符号)
缺少“;”
public class Demo01{
public static void main(String[] args){
System.out.println("Hello World!")
}
}
C:\Users\李欣怡\Desktop>javac Demo01.java
Demo01.java:3: 错误: 需要';'
System.out.println("Hello World!")
^
1 个错误
缺少必要的大括号(编译报错,认为类的定义没有完成)
public class haha{
public static void main(String[] args)
System.out.println("Hello World!");
}
}
C:\Users\李欣怡\Desktop>javac Demo01.java
Demo01.java:2: 错误: 需要';'
public static void main(String[] args)
^
Demo01.java:5: 错误: 需要class, interface或enum
}
^
2 个错误
多于的大括号
public class Demo01{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
}
C:\Users\李欣怡\Desktop>javac Demo01.java
Demo01.java:6: 错误: 需要class, interface或enum
}
^
1 个错误
4、拼写错误
public class haha{
public static void mian(string[] args){
System.out.println("Hello World!");
}
}
C:\Users\李欣怡\Desktop>javac Demo01.java
Demo01.java:2: 错误: 找不到符号
public static void mian(string[] args){
^
符号: 类 string
位置: 类 haha
1 个错误
5、命名拼写错误
public class Demo01 {
public static void Ha1n(string[] args){
System.out.println("Hello World!");
}
}