枫叶の博客
友情链接
往期整理
  •   历史归档
  •   文章分类
  •   文章标签
Maple
文章
5
分类
1
标签
3
友情链接
往期整理
历史归档
文章分类
文章标签
Coding
Java概述
发布于: 2024-12-31
最后更新: 2025-1-4
次查看
Java
type
status
date
slug
summary
tags
category
icon
password

一、Java开发

1.JDK,JRE,JVM

1.1.JDK:

Java标准开发包,它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行时环境,以及常用的Java类库等

1.2.JRE:

Java运行环境,用于解释执行Java的字节码文件。

1.3.JVM:

Java虚拟机,是JRE的一部分。负责解释执行字节码文件,是可运行java字节码文件的虚拟计算机

区别联系:

  • JDK包含JRE,JDK和JRE中都包含JVM。JDK出了包含jre还包含一些常用开发工具和基础类
  • JDK用于开发,JRE 用于运行java程序
  • JVM是java编程语言的核心并且具有平台独立性
 

2.开发Java程序需要的3个步骤

  1. 编写源文件
  1. 编译源文件生成字节码
  1. 加载运行字节码
 

3.Java程序运行过程

  1. javac:java源文件—>class字节码文件(0,1)
  1. java:运行class文件
 

4.Java程序语句执行的顺序

java程序语句执行的顺序包括4种基本控制结构:顺序、选择、循环、异常处理
 

二、编程基础

1.Java的基本语法

1.1.方法格式:

1.2.权限修饰符:

修饰符
类内部
同包内
子类
跨包访问
public
✅
✅
✅
✅
protected
✅
✅
✅(跨包时需继承)
❌
default(无修饰符)
✅
✅
❌
❌
private
✅
❌
❌
❌

1.3.注释:

1.4.关键字:

分类
关键字
访问控制修饰符
public protected private
类、方法修饰符
static final abstract synchronized volatile transient native strictfp
流程控制
if else switch case default while do for break continue return try catch finally throw throws assert
数据类型
byte short int long float double char boolean
类和对象
class interface extends implements new this super
包和模块
package import module requires exports
多线程相关
synchronized volatile
其他关键字
enum instanceof null true false goto const

1.5.标识符:

  1. 由字母、数字、下划线和美元符号$组成
  1. 不能以数字开头
  1. 不能是Java中关键字
 

2.变量、常量

2.1.变量定义

  1. 按所属的数据类型划分:
      • 基本数据类型
        • 数据类型
          大小
          默认值
          范围
          byte
          1 字节 (8 位)
          0
          -128 到 127
          short
          2 字节 (16 位)
          0
          -32,768 到 32,767
          int
          4 字节 (32 位)
          0
          -2³¹ 到 2³¹-1
          long
          8 字节 (64 位)
          0L
          -2⁶³ 到 2⁶³-1
          float
          4 字节 (32 位)
          0.0f
          大约 ±3.40282347E+38F (7 位小数精度)
          double
          8 字节 (64 位)
          0.0d
          大约 ±1.79769313486231570E+308 (15 位小数精度)
          char
          2 字节 (16 位)
          '\u0000'
          0 到 65,535(存储 Unicode 字符)
          boolean
          1 位
          false
          仅有两个值:true 或 false
      • 引用数据类型
        • String、数组、接口、类
        • 实际数据存储在堆,在栈被调用
  1. 按被声明的位置划分:
      • 成员变量:方法外部、类的内部定义的变量
      • 局部变量:方法或语句块内部定义的变量

2.2.变量类型转换

  1. boolean类型不能转换成任何其它数据类型。
  1. 自动类型转换:容量小的类型自动转换成容量大的数据类型
      • byte,short,int-> float ->long ->double
      • byte,short,int不会互相转换,它们三者在计算时会转换成 int 类型
  1. 强制类型转换:容量大的类型转换成容量小的数据类型时,要加上强制转换符()

2.4.变量的作用域

  1. 成员变量:在类体内定义的变量称为成员安量,它的作用域是整个类
      • 全局级变量 private int i=0;
      • 静态变量 private static String name="li”
  1. 局部变量:在一个方法或方法内代码块中定义的变量称为局部安量

2.5.Java中的常量(不怎么考)

加上 final

2.6.注意事项

 

3.运算符

 

4.选择与循环

4.1.选择语句

4.2.循环语句

 

5.数组

不允许在前面括号写元素个数

5.1.多维数组初始化方式

5.2.数组的常见操作

6.输入输出

 

7.类与对象

7.1.三大特征

  1. 封装:
      • 通过private、default、protected、public关键字实现属性或方法的封装,仅对外提供公共访问方式。
      • 高内聚,低耦合
      封装的好处: 1.实现数据项和方法的隐藏 2.实现隐越隔离,允许外部对类做有限的访间,开发者可以自由的改安类的内部实现 3.提高了代码的重用性
  1. 继承:通过 extends
    1. 两个好处: 1.代码重用了 2.通过继承实现对现实世界更加准确的建模
  1. 多态:一个对象变量可以指向多种实际类型对象的现象被称为“多态”
      • 三个必要条件:继承、方法的重写、父类引用用指向子类对象
      • Java中多态的实现方式:接口实现,继承父类进行方法重写,同一个类中进行方法重载。父类引用指向子类对象
      多态的好处: 1.提高了代码的维护性(继承保证) 2.提高了代码的扩展性

7.2.Java代码

8.继承与Object类

Object类是所有类的父类
  1. Object方法
      1. getClass方法
          • 作用:获取当前对象的运行时类型。
          • 返回值:Class对象,表示当前对象的类型。
      1. hashCode方法
          • 作用:返回对象的哈希码值。
          • 用途:提高哈希表(如HashMap、HashSet)的性能。
          • 特点:两个对象如果通过equals方法返回true,它们的hashCode通常也应该相等。
      1. equals方法
          • 作用:判断两个对象是否相等。
          • 特点:
            • 在Object类的源码中,equals方法使用==判断,所以默认比较的是对象的引用地址。
            • 某些类(如String类)对equals方法进行了重写,实现了内容比较。
      1. clone方法
          • 作用:实现对象的拷贝。
          • 特点:
            • 默认实现的是浅拷贝:
            • 对于基本数据类型的字段,会成功拷贝。
            • 对于引用类型(嵌套对象),只会拷贝引用地址,并未实现真正的拷贝。
      1. toString方法
          • 作用:返回对象的字符串描述。
          • 默认行为:返回值为:类名@对象hashCode的16进制。
      1. wait方法
          • 作用:多线程中的方法,让当前线程进入等待状态。
          • 特点:
            • 当前线程会释放其所持有的锁。
            • 直到其他线程调用notify()或notifyAll()方法,当前线程才会被唤醒。
      1. notify方法
          • 作用:唤醒等待该对象的某个线程(随机选择一个线程)。
      1. notifyAll方法
          • 作用:唤醒等待该对象的所有线程。
      1. finalize方法
          • 作用:当对象被垃圾回收器回收时调用,通常用于释放资源。
 
  1. 类的继承格式
    1. 继承了之后有父类(非私有)的属性或方法
      1. 重写父类方法
         

        9.类的封装

        将类的菜些信息隐整在类的内部,不允许外部程序直接访问,而是通过该类提供getter setter的方法来对隐藏的信息进行操作和访问
        • 封装的实现步骤
          • 修改属性的可见性设为(private)
          • 创建getter/setter方法(用于属性的读写)(通过这两种方法对数据进行获取和设定,对象通过调用这两种发方法实现对数据的读写)
          • 在getter/setter方法中加入属性控制语句(对属性值的合法性进行判断)
         

        10.构造方法

        1. 定义:
            • 主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用。
            • 在创建对象的语句中,一个类可以有多个构造的数,可根据其参数个数的不同或参数 类型的不同来区分它们,即构造函数的重载。
        1. 重载
           

          11.方法的重载与覆盖

          1. 重载概念:
            1. 必须载同一个类中
            2. 方法名相同
            3. 方法的参数的个数、顺序或类型不同
            4. 与方法的修饰符和或返回值没有关系
          1. 重写概念:当父类中的方法无法满足子类需求的时候,需要方法重写
          1. 方法重写的注意事项:
            1. 重写的方法必须要和父类一模一样(包括返回值类型,方法名,参数列表)
            2. 重写的方法可以使用@0verride注解来标识
            3. 子类中重写的方法的访问权限不能低于父类中方法的访问权限
          1. 区别
            1. 方法的重载:在同一个类中,出现多个同名的方法,参数列表不同,与返回值类型,修饰符无关
            2. 方法的重写:子类中出现和父类中一模一样的方法(包括返回值类型,方法名,参数列表)
           

          12.this、super关键字

          12.1.this

          1. Java中为解决变量的命名冲突和不确定性问题,引入关键字this代表其所在方法的当前对象的引用
          1. 注意:this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this
              • 原因:static方法在类加载时就已经存在了,但是对象是在创建时才在内存中生成

          12.2.super

          1. super关键字主要存在于子类方法中,用于指向子类对象中的父类对象可以访问父类的属性、函数以及构造函数。
          1. 子父类存在着同名的成员(包括变量和方法)时,在子类中默认是访问子类的成员,可以通过super关键字指定访问父类的成员;
          1. 默认会先调用父类无参的构造方法,可以通过super关键字指定调用父类的构造方法。
           

          13.static、final关键字

          13.1.static

          区别:
          1. 被static修饰的变量属于类变量,可以通过类名,变量名直接引用,不需要new出一个类来
          1. 被static修饰的方法属于类方法,可以通过类名,方法名直接引用,不需要new出一个类来

          13.2.final

          1. 修饰类:final修饰的类,不能被继承
          1. 修饰方法:final修饰的方法 不能被重写,但是子类可以用父类中final修饰的方法:
          1. 修饰变量:
            1. 基本类型变量使用final修饰了就不可变了
            2. 对于引用类型变量被final修饰了:引用变量引用不可变,但是引用对象的内容可以改变
           

          14.抽象类

           

          15.接口

           

          三、异常处理与多线程

          1.异常

          1.1.异常的分类

          异常:指在程序执行过程中发生的错误或意外情况,它可能导致程序的正常流程被打断。在Java中异常是一个对象,所有异常都直接或间接的继承Throwble类
          notion image
          • 错误(Error):表示严重的问题,通常是虚拟机无法解决的问题,如OutOfMemoryError。通常不建议程序员捕获和处理错误。
          • 异常(Exception):表示程序可以捕获并处理的问题。异常又分为两类:
            • 受检异常(Checked Exception):编译时必须处理的异常,如IOException、SQLException。
            • 非受检异常(Unchecked Exception):运行时异常,不需要强制处理,如NullPointerException、ArithmeticException。通常是程序逻辑错误导致的。
           

          1.2.异常的捕获处理

          异常的捕获处理:当程序抛出异常的时候,我们可以通过try-catch对异常进行捕获处 理。如果我们需要进行最终处理,则可以加入finally模块。
           

          2.集合

          Java集合框架讲解

          1.常见集合

          集合:集合是JAVA中提供的一种容器,用来存储多个对象数据
          List:是一个有序集合,可以放重复的数据。、
          Set:是一个无序集合,不允许放重复的数据
          Map:是一个无序集合,集合中包含一个键对象,一个值对象,键对象不允许重复,值对象可以重复
          notion image
          notion image
           

          3.多线程

          Java多线程讲解

          3.1.基本概念

          1. 线程:进程内部的一个执行单元,它是程序中一个单一的顺序控制流程。如果在一个进程中同时运行了多个线程,用来完成不同的工作,我们则称之为多线程
          notion image
          1. 并发与并行
              • 并发(Concurrency):指在同一时间段内多个任务交替执行,给人一种同时进行的感觉。在单核处理器上,通过快速切换任务实现并发。
              • 并行(Parallelism):指多个任务在同一时刻真正同时执行,通常需要多核处理器的支持。

          3.2.线程的创建与启动方式

          1. 继承 Thread 类
            1. 实现 Runnable 接口

              3.3.线程的生命周期

              线程在其生命周期中会经历多个状态,Java中的线程状态由java.lang.Thread.State枚举表示:
              1. NEW(新建):线程被创建,但尚未启动。
              1. RUNNABLE(可运行):线程正在运行或等待操作系统分配CPU资源。
              1. BLOCKED(阻塞):线程等待获取一个锁。
              1. WAITING(等待):线程无限期地等待另一个线程来执行特定操作。
              1. TIMED_WAITING(计时等待):线程等待另一个线程来执行特定操作,等待时间有限。
              1. TERMINATED(终止):线程已经完成执行或由于异常退出。
              线程状态图示意:
              notion image
               
              • 作者:Maple
              • 链接:https://mapleleaf.space/Coding/Java/Overview
              • 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
              相关文章
              Java 集合框架详解
              Java多线程详解
              Java多线程详解DSCode
              Loading...
              目录
              0%
              一、Java开发1.JDK,JRE,JVM1.1.JDK:1.2.JRE:1.3.JVM:区别联系:2.开发Java程序需要的3个步骤3.Java程序运行过程4.Java程序语句执行的顺序二、编程基础1.Java的基本语法1.1.方法格式:1.2.权限修饰符:1.3.注释:1.4.关键字:1.5.标识符:2.变量、常量2.1.变量定义2.2.变量类型转换2.4.变量的作用域2.5.Java中的常量(不怎么考)2.6.注意事项3.运算符4.选择与循环4.1.选择语句4.2.循环语句5.数组5.1.多维数组初始化方式5.2.数组的常见操作6.输入输出7.类与对象7.1.三大特征7.2.Java代码8.继承与Object类9.类的封装10.构造方法11.方法的重载与覆盖12.this、super关键字12.1.this12.2.super13.static、final关键字13.1.static13.2.final14.抽象类15.接口三、异常处理与多线程1.异常1.1.异常的分类1.2.异常的捕获处理2.集合1.常见集合3.多线程3.1.基本概念3.2.线程的创建与启动方式3.3.线程的生命周期
              Maple
              Maple
              你也想做游戏嘛?
              文章
              5
              分类
              1
              标签
              3
              最新发布
              Java概述
              Java概述
              2025-1-4
              ChatBox调用API
              ChatBox调用API
              2025-1-4
              DSCode
              DSCode
              2025-1-4
              Java多线程详解
              Java多线程详解
              2025-1-4
              Java 集合框架详解
              Java 集合框架详解
              2025-1-4
              公告
              -- 学无止境 ---
              目录
              0%
              一、Java开发1.JDK,JRE,JVM1.1.JDK:1.2.JRE:1.3.JVM:区别联系:2.开发Java程序需要的3个步骤3.Java程序运行过程4.Java程序语句执行的顺序二、编程基础1.Java的基本语法1.1.方法格式:1.2.权限修饰符:1.3.注释:1.4.关键字:1.5.标识符:2.变量、常量2.1.变量定义2.2.变量类型转换2.4.变量的作用域2.5.Java中的常量(不怎么考)2.6.注意事项3.运算符4.选择与循环4.1.选择语句4.2.循环语句5.数组5.1.多维数组初始化方式5.2.数组的常见操作6.输入输出7.类与对象7.1.三大特征7.2.Java代码8.继承与Object类9.类的封装10.构造方法11.方法的重载与覆盖12.this、super关键字12.1.this12.2.super13.static、final关键字13.1.static13.2.final14.抽象类15.接口三、异常处理与多线程1.异常1.1.异常的分类1.2.异常的捕获处理2.集合1.常见集合3.多线程3.1.基本概念3.2.线程的创建与启动方式3.3.线程的生命周期
              2024.11.10-2025Maple.

              枫叶の博客 | 你也想做游戏嘛?

              Powered byNotionNext 4.7.7.