您的位置:

Java笔记:从入门到精通

一、Java的基础语法

Java是一种高级编程语言,与其他语言相比,它具有安全、可移植和简单易学的特点。在学习Java语言时,首先要了解Java的基本结构,包括注释、变量、数据类型、运算符、控制语句、方法和数组等。

1.1 注释

注释是代码中用于解释程序意义的文本,Java的注释分为单行注释和多行注释。单行注释以“//”开头,多行注释以“/*”开头,“*/”结尾。

//这是一条单行注释

/*
这是一条多行注释
可以写多行内容
*/

1.2 变量

变量是在程序中用于存储数据的容器,Java的变量分为基本类型和引用类型。基本类型包括整型、浮点型、字符型和布尔型,引用类型包括类、接口、数组等。

//整型变量
int a = 10;

//浮点型变量
double b = 3.14;

//字符型变量
char c = 'A';

//布尔型变量
boolean d = true;

//引用类型变量
String e = "Hello World";

1.3 数据类型

Java的变量分为基本类型和引用类型,不同类型的变量占据不同的存储空间,同时支持不同的运算操作。

//整型数据类型
int a = 10;
long b = 100000000000L;

//浮点型数据类型
float c = 3.14F;
double d = 3.1415926;

//字符型数据类型
char e = 'A';

//布尔型数据类型
boolean f = true;

1.4 运算符

Java语言支持基本的算术运算符、赋值运算符、位运算符、逻辑运算符、条件运算符等,其中常用的有“+”、“-”、“*”、“/”、“%”、“&”、“|”、“^”、“&&”、“||”、“!”等。

int a = 10;
int b = 20;
int c = a + b; //30

int d = 6;
int e = d++; //e=6, d=7

int f = 10;
int g = 20;
int h = f > g ? f : g; //20

1.5 控制语句

Java中的控制语句包括条件语句、循环语句和跳转语句,它们可以控制程序的执行流程,实现特定的功能。

//if语句
int a = 10;
if(a > 5){
    System.out.println("a大于5");
}

//for循环
for(int i=0;i<10;i++){
    System.out.println(i);
}

//break语句
for(int i=0;i<10;i++){
    if(i==5){
        break;
    }
    System.out.println(i);
}

1.6 方法和数组

Java中的方法和数组是常用的编程工具,它们分别用于封装代码和存储数据。方法可以重载、嵌套和递归,数组可以一维或多维,支持数组排序、查找、拷贝等操作。

//方法
public static int add(int a, int b){
    return a + b;
}

//数组
int[] arr = {1,2,3};
int[][] arr2 = {{1,2},{3,4}};

二、Java的面向对象编程

面向对象编程是Java的重要特点,它将程序分成许多对象,并通过对象之间的调用和互动实现程序的功能。在Java中,面向对象编程包括类、对象、继承、多态、接口和抽象类等。

2.1 类和对象

类是Java中用于描述对象的模板,一个Java程序可以包含多个类,每个类都可以创建多个对象。在类中定义属性和方法,可以通过对象来调用。

//定义类
public class Person{
    private String name;
    private int age;

    //构造函数
    public Person(String name, int age){
        this.name = name;
        this.age = age;
    }

    //普通方法
    public void sayHello(){
        System.out.println("Hello!");
    }
}

//创建对象
Person p = new Person("张三", 20);
p.sayHello();

2.2 继承和多态

继承是Java中的一种重要机制,它允许子类继承父类的属性和方法,并可以添加自己的属性和方法。多态是Java中另一种重要机制,它允许同一类型的对象执行不同的行为。

//定义父类
public class Animal{
    public void eat(){
        System.out.println("动物吃东西");
    }
}

//定义子类
public class Dog extends Animal{
    public void eat(){
        System.out.println("狗吃骨头");
    }
}

//实现多态
Animal a = new Dog();
a.eat();

2.3 接口和抽象类

接口是一种规范或契约,它定义了一组方法和常量,实现这个接口的类必须实现这些方法和常量。抽象类是一种特殊的类,它一般不可实例化,而是用作其他类的基类。

//定义接口
public interface Flyable{
    void fly();
}

//实现接口
public class Bird implements Flyable{
    public void fly(){
        System.out.println("鸟儿在飞翔");
    }
}

//定义抽象类
public abstract class Animal{
    public abstract void eat();
}

//实现抽象类
public class Dog extends Animal{
    public void eat(){
        System.out.println("狗在吃东西");
    }
}

三、Java的高级特性

Java还有许多高级特性,例如异常处理、IO操作、反射、泛型、Lambda表达式和并发编程等。这些特性可以提高程序的健壮性和性能。

3.1 异常处理

异常是在程序运行时发生的错误,Java中提供了强大的异常处理机制,它可以捕获和处理异常,防止程序崩溃。

try{
    int result = 10 / 0;
}catch(Exception e){
    System.out.println("发生异常:" + e.getMessage());
}finally{
    System.out.println("执行finally块");
}

3.2 IO操作

Java的IO操作包括文件操作、网络操作、管道操作等,可以实现数据的输入和输出。

//文件输入
FileInputStream fis = new FileInputStream("file.txt");
int b;
while((b=fis.read())!=-1){
    System.out.print((char)b);
}
fis.close();

//文件输出
FileOutputStream fos = new FileOutputStream("file.txt");
String str = "Hello World!";
fos.write(str.getBytes());
fos.close();

3.3 反射

反射是Java中的一种机制,它可以让程序在运行时动态地创建对象、调用方法和访问属性,面向对象的封装性得到了很好的保护。

Class clazz = Class.forName("com.example.Person");
Constructor cons = clazz.getConstructor(String.class, int.class);
Object obj = cons.newInstance("张三", 20);
Method method = clazz.getDeclaredMethod("sayHello");
method.invoke(obj);

3.4 泛型

泛型是Java中的一种模板机制,它可以让程序在编译时检查类型安全,避免了类型转换的麻烦。

//定义泛型类
public class Box{
    private T t;
    public void set(T t){
        this.t = t;
    }
    public T get(){
        return t;
    }
}

//使用泛型类
Box
    box = new Box<>();
box.set("Hello");
String str = box.get();

   
  

3.5 Lambda表达式

Lambda表达式是Java SE8引入的一种新特性,它可以让程序员使用更少的代码实现通用的功能,例如集合的遍历和过滤。

//遍历集合
List list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
list.forEach((s) -> System.out.println(s));

//过滤集合
List
    list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
list = list.stream().filter(s -> s.startsWith("J")).collect(Collectors.toList());

   
  

3.6 并发编程

并发编程是Java中的一个重要特性,它可以让程序运行在多个线程中,提高程序的运行效率。Java提供了多线程的支持,通过一些关键字和类实现多线程的创建和管理。

//实现Runnable接口
public class MyThread implements Runnable{
    public void run(){
        System.out.println("线程运行中");
    }
}

//创建线程
Thread t = new Thread(new MyThread());
t.start();