Java概述

目录

基本介绍

基础语法

基本语法

Java 标识符

Java 变量

 Java 关键字

继承

Java源程序与编译型源程序的区别

注释

Java 对象和类

Java中的对象

Java中的类

构造方法

创建对象

Java包

Java基本数据类型 

内置数据类型

引用数据类型

Java常量 

类型转换

自动类型转换

强制类型转换

Java变量类型

局部变量

实例变量

静态变量或类变量

参数变量


基本介绍

  • Java是一种受欢迎的高级、基于类的面向对象编程语言。

  • Java是一种通用编程语言,旨在让程序员可以“编写一次,随处运行(WORA)”。这意味着编译的Java代码可以在支持Java的所有平台上运行,而无需重新编译。

Java的运用很广泛:

  • 多线程 - Java的多线程功能使得编写可以同时执行多个任务的程序成为可能。

  • 解释 - Java字节码在运行时动态翻译成本地机器指令,并且不保存在任何地方。开发过程更加快速和分析性,因为链接是一种增量和轻量级的过程。

  • 高性能 - 使用及时编译器,Java实现高性能的运行速度。

  • 分布式 - Java设计用于互联网的分布式环境。

  • 动态 - 与C或C++相比,Java被认为更加动态,因为它设计成适应不断变化的环境。Java程序可以携带大量的运行时信息,用于在运行时验证和解析对对象的访问。

基础语法

基本语法

编写 Java 程序时,应注意以下几点:

  • 大小写敏感:注意命名时的大小写。

  • 类名:对于所有的类来说,类名的首字母应该大写。命名规范,若由多个字母则单词的首字母大写。

  • 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。

  • 源文件名源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java(如果文件名和类名不相同则会导致编译错误)

  • 主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。

Java 标识符

  • 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始

  • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合

  • 关键字不能用作标识符

  • 标识符是大小写敏感的

合法标识符举例:age、$salary、_value、__1_value

非法标识符举例:123abc、-salary

Java 变量

  • 局部变量

  • 类变量(静态变量)

  • 成员变量(非静态变量)

 Java 关键字

  • 访问控制 

  • 类、方法、变量修饰符 

  • 程序控制语句 

  • 错误处理

  • 包相关 

  • 基本类型 

  •  变量引用

  • 保留关键字 

继承

在Java中如果一个类已经有了你所需要的方法和属性,那么你可以新创建一个类来继承该类。

利用继承的方法可以复用已有类的属性和方法,这样可以提升代码的效率。

  • 被继承的类叫做超类(super class)
  • 派生的类叫做子类(sub class)

接口

接口可以理解为对象间相互连接的一种协议。

接口只定义派生类的方法,但是方法的具体实现只取决于派生类。

Java源程序与编译型源程序的区别

特性

Java 源程序

传统的编译型源程序(如 C、C++)

编译方式

编译为字节码,由 JVM 运行

直接编译为机器码

运行环境

依赖 JVM

直接运行在操作系统上

跨平台性

强(字节码跨平台)

弱(需要重新编译)

性能

较低(JVM 开销)

高(直接运行机器码)

内存管理

自动垃圾回收

手动管理

安全性

高(JVM 沙箱机制)

低(直接访问硬件)

开发效率

高(丰富的库和工具)

低(需要处理底层细节)

适用场景

企业应用、Web 开发

系统级开发、高性能计算

注释

  • 单行注释
  • 多行注释
  • 文档注释
/**
 * 这是一个文档注释示例
 * 它通常包含有关类、方法或字段的详细信息
 */
public class MyClass {
    // 类的成员和方法
}

Java 对象和类

1、类(Class)

  • 定义对象的蓝图,包括属性和方法。

  • 示例:public class Car { ... }

2、对象(Object)

  • 类的实例,具有状态和行为。

  • 示例:Car myCar = new Car();

3、继承(Inheritance)

  • 一个类可以继承另一个类的属性和方法。

  • 示例:public class Dog extends Animal { ... }

4、封装(Encapsulation)

  • 将对象的状态(字段)私有化,通过公共方法访问。

  • 示例:

    private String name;
    public String getName() { return name; }

5、多态(Polymorphism)

  • 对象可以表现为多种形态,主要通过方法重载和方法重写实现。

  • 示例:

    • 方法重载:public int add(int a, int b) { ... } 和 public double add(double a, double b) { ... }

    • 方法重写:@Override public void makeSound() { System.out.println("Meow"); }

6、抽象(Abstraction)

  • 使用抽象类和接口来定义必须实现的方法,不提供具体实现。

  • 示例:

    • 抽象类:public abstract class Shape { abstract void draw(); }

    • 接口:public interface Animal { void eat(); }

7、接口(Interface)

  • 定义类必须实现的方法,支持多重继承。

  • 示例:public interface Drivable { void drive(); }

8、方法(Method)

  • 定义类的行为,包含在类中的函数。

  • 示例:public void displayInfo() { System.out.println("Info"); }

9、方法重载(Method Overloading)

  • 同一个类中可以有多个同名的方法,但参数不同。

  • 示例:

public class MathUtils {
    public int add(int a, int b) {
        return a + b;
    }

    public double add(double a, double b) {
        return a + b;
    }
}

下面我们详细介绍一下,对象和类:

  • 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。

  • :类是一个模板,它描述一类对象的行为和状态。

Java中的对象

下图中,车是一个类(class) ,具体的每一辆车是类的一个对象(object),对象有多个属性(颜色、品牌、型号)

 

而这样的对象与类的关系与软件中的对象极其相似。 

Java中的类

类就是创建Java的模版。

举例:

建立一个狗的类

public class Dog {
    String breed;
    int size;
    String colour;
    int age;
 
    void eat() {
    }
 
    void run() {
    }
 
    void sleep(){
    }
 
    void name(){
    }
}

一个类中可以有的变量:

  • 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁

  • 成员变量成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。

  • 类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型

一个类可以有多种方法,如吃、跑、睡觉、名字等

构造方法

创建一个对象时必须要至少调用一个构造方法,如果没有定义构造方法,会默认构造方法。

构造方法的名字必须与类同名。

创建对象

创建对象时使用new关键字,一般是3步:

  1. 声明:定义对象类型
  2. 实例化:创建实体对象
  3. 初始化: 使用new创建对象时,调用构造函数进行对象属性等的初始化

源文件声明文件

  • 一个源文件只能有一个public类
  • 源文件可以有多个非public类
  • 源文件名必须和public类名一致

Java包

主要用于对接口和类进行分类。

Java基本数据类型 

变量创建后,由内存管理系统分配内存,分配的内存只能用于储存该类数据。

Java两大数据类型

  • 内置数据类型

Java提供了八种基本数据类型:6种数字类型,字符型,布尔型。

至于具体的数据类型的所占空间,及其他相关信息不用刻意去记忆,因为Java已经将其以常量的形式创建在对应的包装类中了:

public class PrimitiveTypeTest {
    public static void main(String[] args) {
        // byte
        System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);
        System.out.println("包装类:java.lang.Byte");
        System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
        System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
        System.out.println();

        // short
        System.out.println("基本类型:short 二进制位数:" + Short.SIZE);
        System.out.println("包装类:java.lang.Short");
        System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
        System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);
        System.out.println();

        // int
        System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);
        System.out.println("包装类:java.lang.Integer");
        System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
        System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
        System.out.println();

        // long
        System.out.println("基本类型:long 二进制位数:" + Long.SIZE);
        System.out.println("包装类:java.lang.Long");
        System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
        System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
        System.out.println();

        // float
        System.out.println("基本类型:float 二进制位数:" + Float.SIZE);
        System.out.println("包装类:java.lang.Float");
        System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
        System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
        System.out.println();

        // double
        System.out.println("基本类型:double 二进制位数:" + Double.SIZE);
        System.out.println("包装类:java.lang.Double");
        System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
        System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
        System.out.println();

        // char
        System.out.println("基本类型:char 二进制位数:" + Character.SIZE);
        System.out.println("包装类:java.lang.Character");
        // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台
        System.out.println("最小值:Character.MIN_VALUE="
                + (int) Character.MIN_VALUE);
        // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台
        System.out.println("最大值:Character.MAX_VALUE="
                + (int) Character.MAX_VALUE);
    }
}

但要注意的是,这些基本数据类型是有默认值的:

  • intshortlongbyte 的默认值是0。

  • char 的默认值是 \u0000(空字符)。

  • float 的默认值是 0.0f

  • double 的默认值是 0.0d

  • boolean 的默认值是 false

  • 引用类型(类、接口、数组)的默认值是 null

引用数据类型

  • 引用数据类型就像C/C++中的指针,引用类型指向一个对象,指向对象的变量是引用变量。变量在声明时被指定为一种数据类型,并且这个类型不能被改变 
  • 数组、对象都是引用变量
  • 所有引用类型的默认值是null

Java常量 

Java中使用final来修饰常量。

常量一般使用大写字母。

类型转换

低  ------------------------------------>  高

byte,short,char—> int —> long—> float —> double 

 可以看到,数据类型的转换是从低到高的。

数据类型转换的原则:

  • boolean不能参与数据类型转换
  • 将容量大的数据类型转换成容量小的数据类型,必须使用强制类型转换
  • 在进行数据类型转换的时候可能会出现,精度损失甚至溢出
  • Java中浮点数转换成整数,是直接舍去小数点,而不是四舍五入

自动类型转换

必须满足转换前的位数必须小于转换后的位数

强制类型转换

  • 要求相互转换的数据类型必须是兼容的
  • 形式:(type)value 

Java变量类型

局部变量

  • 是创建在方法、或构造函数、或者块内部变量
  • 局部变量在声明时就必须初始化,要不然会编译失败
  • 局部变量在构造函数或方法结束后,就会被销毁

实例变量

  • 实例变量是在类中,但是在构造函数或方法之外
  • 实例变量属于类的实例,每一个类的实例也都会有一个副本
  • 如果声明变量时不初始化,就会默认值 

静态变量或类变量

  • 在类中使用static修饰的值
  • 所有类的实例共用静态变量
  • 静态变量在类加载时被初始化,并且只被初始化一次 

参数变量

  • 定义在构造函数或方法中变量,它的作用域只是构造函数中
  • 用于接收和调用,传入构造函数的值 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值