小贺的Java基础知识笔记

Java方法

01什么是方法

方法是语句的集合,他们在一起执行一个功能。
方法的命名规则 首字母小写驼峰命名
设计方法的原则一个方法只实现一个规则,保持原子性
加了static的方法就能被使用了

02方法的定义和调用

java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段

修饰符  返回值类型 方法名(参数类型 参数名){
....
方法体
....
return 返回值;
}

形式参数:定义时的参数
实际参数:使用时传入的参数
return 可以结束方法

方法的调用
当方法返回一个值的时候,方法的调用通常被当作一个值;
如果方法返回void,方法调用一定是一条语句。

java是值传递!!!
对于对象参数,值的内容是对象的引用
源自知乎

03方法的重载

重载就是在一个类中,有相同的函数名称,但形参不同的函数

仅仅返回类型不同不足以成为方法的重载

04命令行传递参数(不重要)

main函数也可以传递参数

1.在cmd里用javac 编译
2.用java执行,在后面加上参数
需要返回到src目录中

cd../        用来返回上一级路径
Java  com.hwh.具体   参数

05可变参数

jdk1.5开始支持的
可变长参数相当于一个数组,可以用 a[0]这种形式使用
在方法的声明中,在指定的参数类型后加一个省略号(…)
一个方法中只能指定一个可变参数,并且放在所有参数的最后面

06递归

自己调用自己
递归头:一定要写什么时候不调用自身方法!!!
递归体:什么时候进行递归

Java数组

01什么是数组

数组是相同类型数据的有序集合
按照一定的先后次序排列组合而成
每个数组元素可以通过下标来访问他们,从0开始
数组的长度是固定的,不可变

02数组的声明和创建

数组的声明//栈

int[] num;//首选
int num[];//c

数组的创建//堆,并且和上面栈对应

num= new int[10];

数组的赋值(不赋值就返回默认值)

num[0]= 1;
....
以此类推

数组的长度 num.length

03三种初始化及内存分析

java内存:
1.堆:存放new的对象和数组,可以被所有线程共享,不会存放别的对象引用
2.栈:存放基本变量类型(包含其的具体数值),引用对象的变量(会存放这个引用在堆里的具体地址)
3.方法区:可以被所有线程共享,包含了所有的class和static变量

三种初始化:
1.静态初始化

int[] a={1,2,3,4,5};//创建加赋值

2.动态初始化

int[] a=new int[10];//创建,初始化都为0
逐个赋值

3.默认初始化
数组是引用类型,他的元素相当于类的实例变量
分配空间后,没有被初始化的空间都是默认值

04下标越界及小结

数组的基本特点
1.长度是确定的
2.元素相同类型
3.元素可以是任何类型(基本类型和引用类型)
4.数组变量是引用类型,数组本身是对象,数组本身在堆中。

数组下标越界异常java.lang.ArrayIndexOutOfBounds

05数组的使用

1.增强的for循环适合打印输出(取不到下标)

for(int array:arrays){
}

2.数组可以作为传参,也可以作为返回值

06多维数组

int[][] a={{1,2},{3,4}};//创建加赋值

没啥好说的啊吧啊吧

07Arrays类

import java.util.Arrays;
Arrays.tostring(a);//打印数组
Arrays.sort(a); //数组排序,是升序
Arrays.fill(); //填充数组
Arrays.fill(arr,4);//给所有值赋值4
Arrays.fill(arr, 2,4,6);//给第2位(0开始)到第4位(不包括)赋值6
Arrays.equals(); //比较数组元素是否相等

08冒泡排序

从头开始相邻元素两两比较,大小相反就互换
没啥好说的,双层循环就行

09稀疏数组

有很多数组很多空间没有被使用,可以使用稀疏数组来压缩
(时间换空间)
1.记录数组有几行几列几个不同的值,放在0
2.把不同数组的行列值放在一个小规模的数组中

JAVA异常

01error和exception

1.检查性异常:用户操作错误
2.运行时异常:可能被程序员避免的异常
3.错误error:不是异常,程序员也看不到,无法预见
在这里插入图片描述

Java把异常当作对象处理,并定义了一个java.lang.Throwable作为所有异常的超类。
异常分为两大类error和exception
error由java虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。
exception分支中有一个重要的子类RuntimeException(运行时异常)

1)java.lang.NullPointerException 空指针异常;出现原因:调用了未经初始化的对象或者是不存在的对象。
2)java.lang.ClassNotFoundException 指定的类找不到;出现原因:类的名称和路径加载错误;通常都是程序
试图通过字符串来加载某个类时可能引发异常。
3)java.lang.NumberFormatException 字符串转换为数字异常;出现原因:字符型数据中包含非数字型字符。
4)java.lang.IndexOutOfBoundsException 数组角标越界异常,常见于操作数组对象时发生。
5)java.lang.IllegalArgumentException 方法传递参数错误。
6)java.lang.ClassCastException 数据类型转换异常

这些异常是不检查异常,程序中可以选择捕获也可以不处理
一般是由程序逻辑错误引起的

error和exception区别:
error一般是灾难性的,致命性的错误,jvm会选择终止线程。
exception通常情况下是可以被处理的,并在程序中应该尽可能的去处理这些异常。

02捕获和抛出异常

try catch finally

try{
//监控区域
}catch(想要捕获的异常类型 e){
//出现异常时做点什么
}finally{//处理善后工作,一般可以关闭资源,比如io流,数据库连接等

}

throw主动抛出异常,一般在方法中使用

throws new 异常类型();

throws这个方法处理不了这个异常,在方法上抛出异常,让上级处理

catch可以捕获多个异常,写多个catch,要把最大的异常写在最后面
快捷键:ctrl alt t
抛出就是不处理异常,捕获要处理异常

03自定义异常

自定义异常只要继承exception即可
自己写一个构造方法,和一个打印方法就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值