【Java初级教程1】Java的概念和基本语法
Java是一种广受程序员和企业亲赖的语言,具有良好的就业形势,且具有 代码开源、跨平台兼容、强性能的特性。因此,具有对Java语言的熟练掌握是十分有必要的。
在《Java初级教程1》中,我们采用以下的学习路径来完成对于Java初级知识的学习。
Java初级教程1 | 涉及内容 |
---|---|
Java基础知识 | Java的编译到运行+Java的基本概念+编译器推荐 |
Java基本语法 | 工程、新建与输入+包、类、对象 |
Java类的应用 | 封装+继承、接口+多态+应用 |
Java异常处理 | 异常的概念+声明异常、抛出异常+自定义异常 |
Java数据库编程 | 数据库概念+数据库编程+Java的数据库编程 |
Java窗多线程编程 | 多线程概念+线程控制+线程同步 |
Java窗口 | 面板、组件、布局+交互应用 |
Java网络通信 | 网络通信概念+TCP编程+UDP编程 |
一、Java的基本运行原理
Java是一种面向对象的编程语言,之所以称之为面向对象,是因为在其应用中,多把事物给对象化,包括其属性和行为。(这点我们在在以后学习“类”这个概念的过程中会提到)
1.1 Java的编译到运行
1).java:Java源程序文件。
2).class:经过编译后的字节码文件,是一个二进制文件。必须在Java虚拟机中才能运行。
3)Java虚拟机结构:Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。
1.2 JVM/JRE/JDK的概念
- JVM:Java Virtual Machine(Java虚拟机),在实际的计算机上仿真模拟各种计算机功能。同时,每个操作系统都有自己的JVM。
- JRE:Java运行环境(Java Runtime Environment)是一个软件,由太阳微系统所研发,JRE可以让计算机系统运行Java应用程序。面向Java程序的使用者。
- JDK:Java开发过程中使用的工具包(Java Development Kit)。面向Java程序的开发者。
1.3 Java的软件推荐
在撰写代码的过程中,使用一款高效的编译软件是很有必要的,在这里我推荐两个比较实用的编译软件。
1. IntelliJ IDEA(下载地址:link)
2. My Eclipse(下载地址:link)
之所以推荐这两款软件,是因为他们都具有非常强大的代码补全和提示功能(界面的效果也很好看),有助于开发者对于Java结构的理解和撰写。(在整篇文章后面的讲述中我们用IDEA作为背景)
二、Java的基本语法
2.1 工程、新建与输出
Java是一种面向对象的编程语言,因为在撰写的过程中,他以类(class)为基础,在其中添加自有的成员变量和成员方法,通过这样的方式构建成Java最基础的代码体系。
因此,在编译软件种撰写Java代码的时候,通常遵循以下步骤。
【例1】比如,当我们编写一个简单的程序,目的是在控制台显示Hello World!。
我们先新建一个项目用来存放Class文件。
在主函数区域,我们编写代码。在Java语法种,输出的指令是。
System.out.println("Hello World!");
输入后,我们点击右上角的运行按钮可以在控制台中得到想要的结果。
2.2 包、类、对象与输入
2.2.1 包的概念
要想充分理解java总程序的编写方法,首先必须明确包的概念。
——java程序是由一个public类和众多非public的类组成,在java程序的第一行加入“package 包名称;”,就可以把*.class文件保存在相应的包内。这样可以避免相同类名的冲突。
Java开发工具包已经由开发者存储了一些包,也存储了一些实现不同小功能的基本方法,诸如数据的读取,对象的创建,以及网络编程等。
包名称 | 包功能 |
---|---|
java.lang | 提供了Java语言进行程序设计的基础类,它是默认导入的包。具有Runnable接口和Object、Math、String、StringBuffer、System、Thread以及Throwable类等。 |
java.util | 提供了包含集合框架、遗留的集合类、事件模型、日期和时间实施、国际化和各种实用工具类 |
java.io | 文件系统、数据流和序列化提供系统的输入与输出。 |
java.sql | 使用Java语言访问并处理存储在数据源(通常是一个关系型数据库)中的数据API。 |
javax.swing、java.awt | 提供了GUI设计与开发的类。java.awt包提供了创建界面和绘制图形图像的所有类,而javax.swing包提供了一组“轻量级”的组件,尽量让这些组件在所有平台上的工作方式相同。 |
java.net | 提供实现网络应用与开发的类,诸如Socket等。 |
在撰写程序并且需要使用到包的时候,我们需要对他进行调用,通常在程度的最开头的位置,并且我们采用这样的方式。(“.*”指调用java.util包中的所有内容)
import java.util.*;
我们也可以发现,在整个java.util包中,可以调用的内容会具体的通过代码提示显示出来,我们也可以选择使用。
2.2.2类的概念
在java中,类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型。它是对所具有相同特征实体的抽象。在一个类中,通常包含三个概念:构造方法+成员变量+成员方法。
1)构造方法:是在进行类的对象创建使用的时候,有助于预先给类定义的方式。(如果我们定义一个名为Person的类,我们可以为它赋予这几种不同但不仅有这几种的构造方法)
class Person{
Person(){
}
Person(int height,String name){
}
Person(int age,int height,String name){
}
}
2)成员变量:成员变量是局部变量方法里定义的变量,用来进行类表示的数据的存储和处理。(我们给Person类添加成员变量)
class Person{
int age;
int height;
String name;
}
3)成员方法:成员方法是局部变量方法里定义的方法,用来进行类可以执行的自定义操作。
(我们给Person类添加成员方法)
class Person{
int age;
public int getAge(){
return age;
}
}
4)一个比较具体的类。(包含构造方法、成员变量、成员方法的Person类)
class Person{
int age;
int height;
String name;
Person(){ }
Person(int height,String name){
this.height=height;
this.name=name;
}
Person(int age,int height,String name){
this.age=age;
this.height=height;
this.name=name;
}
public int getAge(){
return age;
}
}
2.2.3对象的概念
在编写程序的过程中,由于需要对各种包中的类,或者我们自己编写的类进行调用。需要我们采用实例化的方式进行,有时候我们也可以称对象的实例化。对象实例化的过程如下:
更深层次一点理解这个问题,我们可以用这样的方法解释它。
- 我们用关键词class定义一个类其实只是定义了一个类的模板,没有在内存中实际产生一个类的实例对象,也没有分配内存空间。
- 要想在内存中产生一个类的实例对象就需要使用new关键字申请分配内存空间,加上类的构造方法提供申请空间的大小规格,在内存中实际产生一个类的实例。
- 一个类使用 new 加此类的构造方法,执行之后就在内存中分配了一个此类的内存空间,有了内存空间就可以向里面存放定义的数据和进行方法的调用了。
- (我们用一个例子来解释这一点)
【例2】输入一串数字并且在控制台中打印出。
读取输入的方法集成在java.util包中。
1)调用Scanner对象所在的包java.util
import java.util.*;
- 创建一个以Scanner为类的sc对象。
Scanner sc=new Scanner(System.in);
3)调用sc的成员方法存储输入数据。
int i=sc.nextInt();
4)输出刚才输入的数字。
System.out.println(i);
这样,通过调用需求包,创建对象实例化,调用成员方法,完成输出操作。一个基本的输入输出操作就完成啦。(完整代码如下)
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int i=sc.nextInt();
System.out.println(i);
}
}
(在教程中如果有不对的地方欢迎指出和建议QAQ)