Java是一门面向对象的编程语言,它的语法结构支持面向对象的特性,如封装、继承和多态性等。Java是一门可移植、高性能、安全并且具有面向网络和分布式计算能力的语言。
Java程序的执行从main()方法开始,因此main()方法是所有Java应用程序的入口点。以下是一个很简单的Java程序示例:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
在上面的示例代码中,关键字public和class共同构成了类的定义。main()方法是这个类的主方法,只有在这个方法中,Java程序才会开始执行。该方法的参数是一个字符串数组。在这个示例中,我们调用System.out.println()方法打印出了一句话“Hello, World!”。
Java 数据类型
Java中有八种基本数据类型,分为四种整型、两种浮点型、一种字符型和一种布尔型。这些数据类型的大小和取值范围是固定的,不受具体实现的影响。
byte 1 字节 -128 ~ 127
short 2 字节 -32768 ~ 32767
int 4 字节 -2147483648 ~ 2147483647
long 8 字节 -9223372036854775808 ~ 9223372036854775807
float 4 字节 1.4E-45 ~ 3.4E+38
double 8 字节 4.9E-324 ~ 1.8E+308
char 2 字节 0 ~ 65535(Unicode)
boolean 1 字节 true/false
变量是Java程序中最基本的存储单元;它们表示分配给它们的内存中存储的某种类型的值。Java中有三种变量类型:局部变量、成员变量和类变量。
Java 运算符
Java中有许多运算符,包括算术运算符、关系运算符、逻辑运算符和位运算符等。下面是一些常用的运算符:
算术运算符:+、-、*、/、%、++、--
关系运算符:==、!=、>、<、>=、<=
逻辑运算符:&&、||、!
位运算符:&、|、^、~、<<、>>、>>>
赋值运算符:=、+=、-=、*=、/=、%=
Java中的条件语句中如 if-else、switch-case 等,还有循环语句如 while、do-while、for 循环等也非常常用。
if (条件) {
// 如果条件为真,执行语句块
} else {
// 如果条件为假,执行语句块
}
switch (表达式) {
case 值1:
// 语句块1
break;
case 值2:
// 语句块2
break;
default:
// 默认语句块
}
while (条件) {
// 在条件为真时执行循环体
}
do {
// 先执行循环体,然后检查条件是否为真,如果为真则继续循环
} while (条件);
for (初始化; 条件; 增量) {
// 循环体
}
Java 类和对象
Java是一门面向对象的编程语言,它支持三个基本概念:封装、继承和多态性。
- 封装:Java利用访问修饰符和关键字实现类中变量和方法的可见性控制,防止其他类对类中的变量和方法进行修改。
- 继承:Java中的继承机制让一个类可以从另一个类中获取成员和方法,减少了代码的重复性,并且可以让程序更加易于扩展和维护。
- 多态性:Java中的多态性允许同一个方法名可以被多个对象调用,根据不同的对象类型,执行不同的实现代码。
下面是一个简单的Java类示例:
public class Person {
private String name;
private int age;
private String gender;
public Person(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getGender() {
return gender;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setGender(String gender) {
this.gender = gender;
}
public void sayHello() {
System.out.println("Hello, my name is " + name);
}
}
在上面的示例中,Person类有三个私有属性:name、age和gender,它们只能通过类中的公共方法进行访问和修改。类中还定义了一个构造方法和一些getter和setter方法,用于初始化对象和获取/修改对象的属性值。类中还定义了一个公共方法sayHello()用于输出对象的问候语。
Java 输入输出
Java中的输入输出是使用流(Stream)的方式来进行的。Java中有三种基本的流类型:字节流、字符流和文件流。
下面是一个Java程序从文件中读取数据的示例:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFile {
public static void main(String[] args) {
try {
FileReader fr = new FileReader("input.txt");
BufferedReader br = new BufferedReader(fr);
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上面的程序中,我们使用FileReader类来创建文件读取流,并且将它传递给BufferedReader类的构造方法来更高效地读取文件内容。在读取文件内容时,我们使用readLine()方法读取一行文本,并且在读取结束后关闭流。
Java 异常处理
Java中的异常处理机制可以帮助程序有效地处理运行时错误,使程序更加健壮和可靠。Java中的异常分为两种:检查异常和非检查异常。
检查异常是指在编译阶段就能够被识别出来的异常,必须在程序中进行处理或者向上抛出。
非检查异常是指在编译阶段无法识别的异常,例如:除数为0、数组下标越界等。这些异常可以在程序中捕获或者向上抛出。
下面是一个Java程序捕获异常的示例:
public class DivideByZero {
public static void main(String[] args) {
try {
int a = 10;
int b = 0;
int result = a / b;
} catch (ArithmeticException e) {
System.out.println("Division by zero!");
e.printStackTrace();
} finally {
System.out.println("Finally block!");
}
}
}
在上面的示例中,我们进行了除法运算,如果b为0,则会抛出ArithmeticException异常。我们在try块中捕获了该异常,并且在catch块中输出错误信息和堆栈跟踪。在finally块中,我们输出了一条信息来表明finally块已经执行。
总结
Java是一门非常流行的编程语言,它支持面向对象和功能强大的类库,并且具有可移植性、高性能和安全性等优点。学习Java语言需要掌握基础语法、