Java基础入门 - 坚持
- Java 基本介绍
- Java 学习须知
- Java 学习文档
- Java 基础
- Java Hello World
- Java 变量
- Java 数据类型
- Java 运算符
- Java 修饰符
- Java 表达式 & 语句 & 代码块
- Java 注释
- --------------------------------------------------------------------------
- Java 控制语句
- --------------------------------------------------------------------------
- Java 数组
- --------------------------------------------------------------------------
- Java 日期与时间(Java8新增)
- Java 正则表达式
- Java Scanner(获取用户输入)
- --------------------------------------------------------------------------
- Java 面向对象详解
- --------------------------------------------------------------------------
- Java 异常处理
- --------------------------------------------------------------------------
- Java 集合
- --------------------------------------------------------------------------
- Java 队列
- --------------------------------------------------------------------------
- Java Map
- --------------------------------------------------------------------------
- Java Set
- --------------------------------------------------------------------------
- Java 字节流
- --------------------------------------------------------------------------
- Java 并发编程
- 重排序和 happens-before
- --------------------------------------------------------------------------
- Java 虚拟机
- --------------------------------------------------------------------------
- 后话
Java 基本介绍
Java是一种通用的、高级的、面向对象的编程语言,最初由Sun Microsystems(目前为Oracle公司)于1995年发布。它被设计成一种可以在各种不同的环境中运行的语言,不论是桌面应用程序、企业级应用程序、移动设备或集群服务器,都可以使用Java来开发。
Java的特点包括:
-
简单性:Java的语法相对于其他编程语言比较简单,易于学习和理解。
-
面向对象:Java是一种完全的面向对象编程语言,支持类、继承、封装和多态等核心特性。
-
平台无关性:Java编写的程序可以在不同的操作系统和硬件平台上运行。这得益于Java虚拟机(JVM),它可以把Java代码翻译成可以在任何计算机上运行的字节码。
-
安全性:Java具有严格的安全机制,基于运行时的检查和验证机制来保证程序的安全性,防止恶意程序对系统造成损害。
-
可移植性:Java语言的跨平台性保证了程序的可移植性,使得程序无需针对不同平台重新编写,只需编写一次即可在不同平台上运行。
-
多线程:Java在语言层面就支持多线程编程,并且提供了丰富的库函数,有效地支持并发编程。
Java编写的程序可以划分为两个部分:Java编译器将源代码转换成字节码文件,JVM则将字节码解释、编译并执行。Java有着广泛的应用领域,包括Web开发、移动应用开发、游戏开发、企业级应用开发等。
Java 学习须知
Java 学习文档
在此,我为大家整理了一小部分的Java学习文档
韩信带净化,如果您有更好的学习文档,提前感谢您上贡 贡献到评论区!~
Java 基础
至2023年,Java语言仍是主流后端语言,与其他后端语言占比为:12.22%,位列第三,其中第一与第二分别为:Python,C
Java Hello World
public class HelloWorld { // 类名必须与文件名相同
public static viod main(string[] args) { // main方法为程序入口
system.out.println("Hello World"); // Java的每个输出与条件语句后面必须带;结束字段
}
}
使用javac HelloWorld.java,即可输出Hello World
Hello World
Java 变量
type * = *;
其中type为类型,type后面紧跟着的为变量名,变量名可自定义。
如:
int num = 1;
float f1 = 1.22f;
boolean b1 = true;
Java 数据类型
基本数据类型
类型 | 类型名称 |
---|---|
数值型 | byte, short, int, long, float, double |
布尔型 | boolean |
字符型 | char |
整型: byte(字节型)、short(短整型)、int(整型)、long(长整型)
byte numA = 100;
short numB = 1000;
int numC = 100000;
long numD = 100000L;
浮点型:float(单精度型/浮点型) 、double(双精度型)
float fA = 1.1f;
double fB = 1.2;
字符: char(字符型)
char cA = 'a';
布尔型:Boolean
引用数据类型
数组,类,接口被称为引用数据类型,共同特点:值映射一段地址,于内存中。
- 首先为 Object, 它可以由我们自己来创造,Object是一个非常重要的类型,Object类是Javajava.lang包下的核心类,Object类是所有类的父类,何一个类时候如果没有明确的继承一个父类的话,那么它就是Object的子类。
class Person {}
class People {}
public class OObject {
public static void main(String[] args) {
Object object = new Person();
}
}
// toString(); 这是一个很常用的方法,该方法是为了获取对象的信息(返回对象的字符串表示形式)
- 1、数组(Array),是多个相同类型数据按一定顺序排列 的集合,并使用一个名字命名,并通过编号的方式 对这些数据进行统一管理。
2、数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括 基本数据类型和引用数据类型。
3、创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是 这块连续空间的首地址。
5、数组的长度一旦确定,就不能修改。
6、我们可以直接通过下标(或索引)的方式调用指定位置的元素,速度很快。
// 数组的基本使用
int[] arr = new int[3];
以上这段话的意思是: 声明一个名称为arr的数组,类型为int型,并且长度最多为3.
在输入时[3]称之为数组的动态初始化.
// 为数组下标位置赋值
在这里讲一句: 下方arr[0,1,2] 中的 0, 1, 2为数组的索引,从0开始.
比如:new int[5]; 它的索引为:0, 1, 2, 3, 4, 长度为5.
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
// 数组的静态初始化
int[] arr = new int[]{5,7,8};
或者
int[] arr = {5,7,8};
静态初始化: 提前写好数据,{}内部的元素为数组元素
array.length 为获取数组的长度(数组元素的个数), 任何一个对象都有自己的length。
String[] arr = new String[]{"1","2","3"};
system.out.println(arr.length); // 3
Java 运算符
Java 修饰符
Java 表达式 & 语句 & 代码块
Java 注释
--------------------------------------------------------------------------
Java 控制语句
Java if else 条件
Java switch case 条件
Java for 循环
Java while 循环
Java break 语句
Java continue 语句
--------------------------------------------------------------------------
Java 数组
Java 数组
Java 多维数组
Java 数组复制
--------------------------------------------------------------------------
Java 日期与时间(Java8新增)
Java 正则表达式
Java Scanner(获取用户输入)
--------------------------------------------------------------------------
Java 面向对象详解
Java 面向对象 第一大部分
Java 类与对象
Java 方法
Java 方法重载
Java 构造方法
Java 字符串
Java 访问权限
Java this 关键字
Java final 关键字
Java 递归(恐怖故事)
Java instanceof 操作符
Java 面向对象 第二大部分
Java 继承
Java 方法重写
Java super 关键字
抽象类 & 抽象方法
Java 接口
Java 多态
Java 封装
Java 面向对象高级(第三大部分)
嵌套 & 内部类
Java static 关键字
Java 匿名内部类
Java 单例(两种)
Java 枚举类
Java 枚举构造方法
Java 枚举字符串
Java 反射
--------------------------------------------------------------------------
Java 异常处理
- 用户输入了非法数据。
- 要打开的文件不存在。
- 网络通信时连接中断,或者JVM内存溢出。
Java 程序通常不捕获错误。错误一般发生在严重故障时,它们在Java程序处理的范畴之外。
Error 用来指示运行时环境发生的错误。
例如,JVM 内存溢出。一般地,程序不会从错误中恢复。
异常类有两个主要的子类:IOException 类和 RuntimeException 类。
Exception 类的层次, 所有的异常类是从 java.lang.Exception 类继承的子类。
Exception 类是 Throwable 类的子类。除了Exception类外,Throwable还有一个子类Error 。
Java 内置异常类
Java 语言定义了一些异常类在 java.lang 标准包中。
标准运行时异常类的子类是最常见的异常类。由于 java.lang 包是默认加载到所有的 Java 程序的,所以大部分从运行时异常类继承而来的异常都可以直接使用。
Java 根据各个类库也定义了一些其他的异常,下面的表中列出了 Java 的非检查性异常。
异常 | 描述 |
---|---|
ArithmeticException | 当出现异常的运算条件时,抛出此异常。例如,一个整数"除以零"时,抛出此类的一个实例。 |
ArrayIndexOutOfBoundsException | 用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。 |
ArrayStoreException | 试图将错误类型的对象存储到一个对象数组时抛出的异常。 |
ClassCastException | 当试图将对象强制转换为不是实例的子类时,抛出该异常。 |
IllegalArgumentException | 抛出的异常表明向方法传递了一个不合法或不正确的参数。 |
IllegalMonitorStateException | 抛出的异常表明某一线程已经试图等待对象的监视器,或者试图通知其他正在等待对象的监视器而本身没有指定监视器的线程。 |
IllegalStateException | 在非法或不适当的时间调用方法时产生的信号。换句话说,即 Java 环境或 Java 应用程序没有处于请求操作所要求的适当状态下。 |
IllegalThreadStateException | 线程没有处于请求操作所要求的适当状态时抛出的异常。 |
IndexOutOfBoundsException | 指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出。 |
NegativeArraySizeException | 如果应用程序试图创建大小为负的数组,则抛出该异常。 |
NullPointerException | 当应用程序试图在需要对象的地方使用 null 时,抛出该异常 |
NumberFormatException | 当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。 |
SecurityException | 由安全管理器抛出的异常,指示存在安全侵犯。 |
StringIndexOutOfBoundsException | 此异常由 String 方法抛出,指示索引或者为负,或者超出字符串的大小。 |
UnsupportedOperationException | 当不支持请求的操作时,抛出该异常。 |
下面的表中列出了 Java 定义在 java.lang 包中的检查性异常类。
异常 | 描述 |
---|---|
ClassNotFoundException | 应用程序试图加载类时,找不到相应的类,抛出该异常。 |
CloneNotSupportedException | 当调用 Object 类中的 clone 方法克隆对象,但该对象的类无法实现 Cloneable 接口时,抛出该异常。 |
IllegalAccessException | 拒绝访问一个类的时候,抛出该异常。 |
InstantiationException | 当试图使用 Class 类中的 newInstance 方法创建一个类的实例,而指定的类对象因为是一个接口或是一个抽象类而无法实例化时,抛出该异常。 |
NoSuchFieldException | 请求的变量不存在。 |
NoSuchMethodException | 请求的方法不存在。 |
使用 try 和 catch 关键字可以捕获异常。try/catch 代码块放在异常可能发生的地方。
- try / catch代码块中的代码称为保护代码,使用 try / catch 的语法如下:
try
{
// 程序代码
...notErr
}catch(ExceptionName error)
{
//Catch 块
...err
}
Catch 语句包含要捕获异常类型的声明。当保护代码块中发生一个异常时,try 后面的 catch 块就会被检查。
如果发生的异常包含在 catch 块中,异常会被传递到该 catch 块,这和传递一个参数到方法是一样。
try catch 案例
import java.io.*;
public class ExcepTest{
public static void main(String args[]){
try{
int a[] = new int[2];
System.out.println("Access element three :" + a[3]);
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("Exception thrown :" + e);
}
System.out.println("Out of the block");
}
}
该方法声明一个 长度为2的数组,当访问它第4个元素时,就会抛出一个异常
以上代码编译运行输出结果如下:
Exception thrown: java.lang.ArrayIndexOutOfBoundsException: 3
Out of the block
更多异常捕获请详看文档或查询相关书籍,在此就 不 一 一 赘 述。 (O.o)