Java基础知识及应用

以下是作者将Java入门的基础知识进行了一定总结,适用于学习过,但需要复习和加固基础的人群查阅,其中要有不对或不全之处,欢迎补充

目录

一. 编程基础

1.数据类型

2.运算符

3.循环结构语句

4.数组

二.面向对象

1.基本思想

2.封装

3.继承

4. 抽象类和接口

5.多态

3.2.6 Object类

三.异常

1.定义

2.处理

3.自定义异常

四. API

1.包装类

2.常用类

五.集合

1.概述

2.常用类

3.集合遍历

4. Map接口

六.泛型

一. 编程基础

1.数据类型

基本数据类型

整数类型

字节型byte

8位

短整型short

16位

整型int

32位

长整型long

64位

浮点数类型

float

32位

double

64位

字符型

char

‘ ’单引号

布尔型

boolean

true或false

引用数据类型

类 class

接口interface

数组

枚举enum

注解annotation

1.变量之间可以相互转型

自动转型:byte<short<int<long

强制转型:目标类型 变量=(目标类型)值

2.变量只有在作用范围内才能被使用,一个{}则为一个作用域。

2.运算符

算术运算符

运算符

范例

结果

+ 正号/加号

+3

3

- 负号/减号

b=4;-b;

-4

* 乘

3*4

12

/ 除

5/5

1

% 取模(求余数)

7%5

2

++自增 前(先加)

a=2;b=++a

a=3,b=3

++自增 后(后加)

a=2;b=a++

a=3,b=2

-- 自减 前(先减)

a=2;b=--a

a=1,b=1

-- 自减 后(后减)

a=2;b=a--

a=1,b=2

赋值运算符

= 赋值

a=3

a=3

+= 加等于

a+=b

a=a+b

-= 减等于

a-=b

a=a-b

*= 乘等于

a*=b

a=a*b

/= 除等于

a/=b

a=a/b

%= 模等于

a%=b

a=a/b取整

比较运算符 (返回均为布尔型)

==等于

4==3

false

!=不等于

4!=3

true

<小于

4<3

false

>大于

4>3

true

<=小于等于

4<=3

false

>=大于等于

4>=3

true

逻辑运算符

& 与 一假为假

true&false

false

| 或 全假才假

true|false

true

1.运算符优先级:

算术 > 乘除 > 加减 > 比较 > 逻辑 > 赋值

3.循环结构语句

循环结构

语法

备注

if语句循环

for(初始化表达式;循环条件;操作表达式){ 执行语句 }

在循环次数已知的情况下,for循环语句

if…else if…else

if(判断语句){执行语句1 }else if(判断语句){执行语句2 }else{执行语句n }

对于多个判断条件进行判断,进行多种不同的处理

switch

switch(表达式){ case 目标值1: 执行语句 break; default: 执行语句n break; }

只针对于某个表表达式的值做出判断

while语句循环 (先判断后执行)

while(循环条件){ 执行语句 }

while语句会反复进行循环条件判断,只要条件成立,{}内的执行语句就会执行

do…while (先执行后判断)

do{ 执行语句 } while(循环条件)

循环体会无条件执行一次,再根据条件决定是否继续循环

for循环语句

for(初始化表达式;循环条件;操作表达式){ 执行语句 }

一般在循环次数已知的情况下

跳转语句

break语句

跳出循环语句执行后面的代码

continue语句

它的作用是终止本次循环,执行下一次循环

4.数组

1.数组基本元素:名称、元素、索引、数据类型

数据类型[ ]数组名=new 数据类型[元素…]

2.定义数组类型 (按数据类型进行分类)

3.写明数组长度(数组的初始值为0,最小索引为0,最大索引为数组长度减一)

4.new 为引用数据关键字

5.有一个length属性,可获得数组长度

二.面向对象

1.基本思想

封装性

将对象的属性和行为看成一个整体

继承性

子类可以继承父类的所有方法和属性

多态性

三要素:继承、重写、父类引用指向子类对象

1.类和对象

创建:class 类名{}

类名 对象名=new 类名()

new:在堆内存中创建一个新对象

对象的属性和方法的访问都是通(.)运算符来实现

2.控制权限

访问范围

private私有

default默认

protected受保护的

public 公共

同类

同包中的类

不在同包中的子类

全局范围

2.封装

定义

实现

关键字

作用

将类的细节包装隐藏起来,通过类提供的方法访问

属性私有化,提供公有的读写方法

private 获取属性 getxxx() 设置属性setxxx()

防止本类代码和数据被外部类定义的代码随机访问

1.构造方法

定义

实现

关键字

注意

是类的特殊,在类实例化对象时自动调用

属性私有化,提供公有的读写方法

pubiic

构造方法的名称必须和类名一致 2.名称前不能有任何返回值类型的声明 3.不能在构造方法中使用return返回值

Overload:重载,不同方法之间作用,根据参数不同或数据类型不同选择不同方法,方法之间可以同名,所有同名不同参。

2.this关键字

调用本类中的属性

调用成员方法

调用构造方法

3.static关键字

应用

输入

输出

注意

静态属性 (公共属性)

适用于属性如果在使用中被修改,则所有对象的属性都修改

类名.属性进行访问

类.属性=“”修改

只能修饰成员变量,不能修饰局部变量

静态方法

适用于需要不创建对象,类名直接调用某个方法,一般用于工具类

类名.方法进行访问

类.方法=“”修改

静态方法只能访问静态成员

注:修饰类时,该类只能执行一次

3.继承

定义

关键字

注意

在现有类(父类)的基础上构建一个新类称为子类,子类继承父类属性和方法

extends

1.子类只能访问父类中公共和受保护的方法。2.只能单继承,不允许多继承,可以多个类继承一个父类,并且多层继承也可以

1.Override

Override:重写,继承中子类重写方法要和父类方法同名、同参、同类型

注:子类重写父类时,不能使用比父类方法更严格的访问权限

2.关键字

关键字

作用

注意

super

1.访问父类的非私有属性或调用非私有方法 2.调用父类指定构造方法

调用的代码必须位于子类构造方法第一行,所以this和super不能同时使用

final

1.类不能有子类 2.方法不能被重写 3.变量变为常量

声明变量时,变量名应全为大写

4. 抽象类和接口

1.抽象类

定义

抽象方法在定义时不需要实现方法体,包含抽象方法的类就是抽象类

关键字

abstract

语法格式

abstract 返回值类型 方法名称(参数列表)

定义规则

1.包含抽象方法的类必须是抽象类 2.声明抽象类和抽象方法时都要使用 abstract 关键字修饰 3.抽象方法只需要声明而不需要实现。 4.如果一个非抽象类继承了抽象类之后,那么该类必须重写抽象类中的全部抽象方法。

注意

1.抽象类中不一定有抽象方法,但抽象方法一定在抽象类中 2.抽象类不可以被实例化 3.抽象方法不能使用private关键字

2.接口

定义

定义程序协议,接口可以对接不同的业务模块

关键字

声明:interface / 实现:implements

语法格式

(public)interface 接口名 [extender 接口1,接口2] 使用:修饰符 class 类名 implements 接口1,接口2{ }

定义规则

允许接口继承接口,并且一个接口可以同时继承多个接口

5.多态

定义

形式

不同类的对象在调用同一个方法时有多种不同行为

1.方法的重载 2.方法的重写

1.对象类型转换

情况

作用

格式

注意

子类对象 父类对象

父类对象可以调用子类重写发方法,不用更改父类代码

父类类型 父类对象=子类实例

父类对象 子类对象

重新获得向上转型丢失的子类特性

父类类型 父类对象=子类实例 子类类型 子类对象=(子)父类对象

必须先向上转型,再向下转型

2.instanceof关键字

作用

语法

判断一个对象是否是某个类的实例

对象 instanceof 类

3.2.6 Object

定义

常用方法

方法说明

所有类的父类,通常被称为超类

boolean equals()

判断两个对象是否“相等”

int hashCode()

返回对象的哈希值

String toString()

返回对象的字符串表示形式

三.异常

1.定义

Exception 普通错误

RuntimeException 运行时异常

ArithmeticException算术异常

ClassCastException类处理异常

Error 严重错误

IOError/AWTError

运行时异常

描述

ArithmeticException

算术异常

IndexOutOfBoundsException

索引越界异常

ClassCastException

类型转换异常

NullPointerException

空指针异常

NumberFormatException

数字格式化异常

2.处理

关键字

功能描述

try

放置可能引发异常的代码块

catch

后面对应异常类型和一个代码块,该代码块用于处理这种类型的异常

finally

无论程序是否异常都要执行,只能出现在try之后,不能单独出现

throw

用于抛出一个实际的异常。它可以单独作为语句来抛出一个具体的异常对象,可以自定义错误信息

throws

用在方法签名中,用于声明该方法可能抛出的异常,需要写在方法声明后面,throw后面还需要声明异常类型

3.自定义异常

自定义的异常类只需继承 Exception 类,在构造方法中使用 super()语句调用


 Exception 的构造方法即可。

四. API

1.包装类

装箱:将基本数据类型转换/成包装类的过程

拆箱:将包装类转换成基本数据类型的过程

基本数据类型

对应的包装类

byte

Byte

char

Character

int

Integer

short

Short

long

Long

float

Float

double

Double

boolean

Boolean

2.常用类

类型

类名

特点

常用方法

字符串类

String类

初始化字符串对象

boolean equals(Obiect obj) 比较 obj 与当前字符串的内容是否相同

StringBuffer类

字符串内容和长度可变

int length() 获取字符串缓冲区中字符串内容的长度

StringBuilder类

没有实现线程安全

系统相关

System类

系统相关的属性和方法

static Properties getProperties() 获取当前系统全部属性

Runtime类

获取Java虚拟机运行状态

getRuntime() 用于获取 Runtime类的实例

算术相关

Math类

进行科学计算PI—Π E--e

random() 用于生成一个大于或等于 0.0 且小于 1.0 的随机数 [0,1)

Random类

指定范围的随机数

Random() 利用系统时间创建一个对象

数据特殊

BigInteger类

处理8个字节以上的整数

BigDecimal类

处理书=数字精度要求高的场景

日期和时间

Date类

时间和日期

Calendar类

读取时间和日期的特定部分,抽象类,不可以被实例化

Instant类

精确时刻,精细到纳秒

LocalDate类

不带时区的日期

LocalTime类

不带时区的时间

Duration类

计算两个时间的间隔

Period类

计算两个日期的间隔

日期和时间格式化

DateForm类

将日期时间进行格式化

SimpleDataFormat类

是DateForm类子类,可以创建实例对象

数字格式化

NumberFormat类

格式化和解析任何区域数字

正则表达式

Pattern类

创建正则表达式

Marcher类

验证Pattern类定义的与字符串是否匹配

五.集合

1.概述

集合 可以存储任意类型的对象,并且存储的长度可变,这些类统称为集合

Collection 单列集合

List 存储一组有序、不唯一的对象

ArrayList

LinkedList

Vector

Set 存储一组无序、唯一的对象

HashSet

TreeSet

Map 双列集合

HashTable

Properties

HashMap

LinkedHashMap

TreeMap

2.常用类

ArrayList

HashSet

概念

ArrayList 实现了 List 接口,是一个可变长度的有序集合,可以动态增加或减少元素

它基于哈希表数据结构,元素被散列到哈希表中,使元素的查找和插入效率非常高。

用法

它内部使用数组来存储元素,允许重复元素,而且保持元素的插入顺序

HashSet用于存储一组唯一的元素,不允许重复。 可用于快速查找、插入和删除元素。

主要方法

add(E element): 向列表末尾添加一个元素。 get(int index): 获取指定索引位置的元素。 set(int index, E element): 替换指定索引位置的元素。 remove(int index): 移除指定索引位置的元素。 size(): 返回列表的大小。 isEmpty(): 检查列表是否为空。 contains(Object o): 检查列表是否包含指定元素。

add(E ): 向集合添加一个元素,如果已存在则不添加。 remove(object o): 从集合中移除指定元素。 contains(Object o): 检查集合中是否包含指定元素。 size(): 返回集合的大小。 isEmpty(): 检查集合是否为空。

使用场景

当需要一个动态数组,可以随时添加或删除元素时,使用 ArrayList。 适用于需要按顺序存储和访问元素的情况。

当需要存储一组唯一的元素时,使用 HashSet。 适用于需要快速查找、插入和删除元素的情况。

3.集合遍历

使用

Iterator接口

foreach循环 (只能访问其中元素,不能对其元素修改)

4. Map接口

定义

K

V

双列集合,每一个元素都包含一个键对象和一个值对象,键和值之间存在映射

hashset 不可重复,重复将会覆盖

Arraylist 可重复

1.常用方法

方法声明

功能描述

void put( Objcet key, Object value)

将指定的值和键存人集合并进行映射美联

Object get( Objeet key)

返回指定的键映射的值;如果此映射不包含该键的狭射关系,则返回 null

void clear()

移除所有的键值对元素

2.实现类

HashMap

概念

Java 中的一个集合类,它实现了 Map 接口,用于存储键值对。 将键映射到值,允许快速查找、插入和删除元素。HashMap 不允许重复的键,但允许键对应的值重复。

方法

put(K key, V value): 将指定的键值对添加到映射中。如果键已存在,将替换对应的值。 get(Object key): 返回与指定键关联的值,如果键不存在,则返回 null。 remove(Object key): 从映射中移除指定键对应的键值对。 containsKey(Object key): 检查映射是否包含指定的键。 containsValue(Object value): 检查映射是否包含指定的值。 keySet(): 返回包含映射中所有键的集合。 values(): 返回包含映射中所有值的集合。 entrySet(): 返回包含映射中所有键值对的集合。 size(): 返回映射中键值对的数量。 isEmpty(): 检查映射是否为空。

使用场景

HashMap 适用于需要存储键值对的情况,当需要关联一个唯一键与一个值时,但不要求键的顺序时,特别是在需要快速查找和访问值的情况下。

inkedHashMap

集合中元素遍历顺序与存入顺序一致

TreeMap

对元素的键进行排序

Propertise

存储应用配置项

3.常用工具类

Collections

提供大量排序、查找、修改的操作

Arrays

提供了针对集合和数组的操作

Lambda

取代匿名内部类

六.泛型

作用

1.类型安全 2.消除强制类型转换 3.潜在的性能收益 4.更好的代码复用性

优点

1.提高类型的安全性。 2.消除强制类型转换。 3.提高代码复用性。 4.拥有更高的运行效率。

使用

修饰符 <代表泛型的变量> 返回值类型 方法名(参数){ }super (参数 1,参数 2,..) 泛型广泛应用于Java集合框架 可以创建泛型类和接口 泛型方法

接口

public<泛型类型>返回类型方法名(泛型类型变量名){}

通配符

E:元素 K,V:键值对 N:数字 T:类型dd

  • 61
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随便1007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值