【老杜JAVA基础视频笔记02】

39. 数组Array
  1. 数组因为是引用数据类型,所以数组对象存放堆中。
  2. 数组一旦创建,在Java中规定数组长度不可变。
  3. .length获取数组中元素。
  4. 数组中元素类型统一。
  5. 数组中元素内存地址是连续的。
  6. 所有的数组都是拿数组首元素的内存地址作为这个数组对象的地址。
  7. 数组这种存储结构的优缺点:优点是查询效率高,缺点是增删元素效率低,且很难在内存空间中找到一个连续的大空间,因此数组无法存储大数据量的数据。
  8. 定义一个一维数组int[] array1;
  9. 初始化一维数组
int[] array2 = {1,2,3,4};  //静态初始化
int[] array3 = new int[4];  //动态初始化,长度为4,每个元素默认值为0
new int[]{1,2,3,4};
  1. main方法的main(String[] args)有什么用?用来接收用户输入的参数。
  2. 一维数组扩容:先新建一个大容量的数组,然后将小容量数组中的元素一个个拷进大数组。System.arraycopy()
  3. 二维数组是一个特殊的一维数组。
  4. 初始化二维数组
int[][] array1 = {{1,2},{4,5,6,6,6},{1,2,3}};  //静态初始化
int[][] array2 = new int[3][4];  //动态初始化,三行四列
  1. Arrays工具类
    排序:Arrays.sort(数组);
    二分查找:Arrays.binarySearch(有序数组,目标值);
    【工具类中的方法一般都是静态的,通过类名直接调用就行了。】

常用类:

40. String类
  1. JDK规定,双引号括起来的字符串是不可变的,直接存储在方法区的字符串常量池中。
    String name变量中保存的是字符串对象"张三"在方法区的字符串常量池中的内存地址。
    在这里插入图片描述
    面试题:
    在这里插入图片描述
  2. String.valueOf(xxx) 将xxx转为字符串
  3. 修改字符串StringBuffer类、StringBuilder类
  4. StringBuilder和 StringBuffer之间的最大不同在于 StringBuilder的方法不是线程安全的(不能同步访问)。
41. 八种基本数据类型对应的包装类

在这里插入图片描述
装箱:基本数据类型转换成引用数据类型;

Integer a = new Integer(123);

拆箱:引用数据类型转换成基本数据类型。

float b = a.floatValue();
int c = a.intValue();

JDK1.5后支持自动装箱和自动拆箱

Integer i = 100;  //自动装箱
int j = i;  //自动拆箱
42. BigDecimal类

多用于财务软件

BigDecimal bd1 = new BigDecimal(100);
BigDecimal bd2 = new BigDecimal(100);
BigDecimal bd3 = bd1.add(bd2);
43. 随机数
Random random = new Random();
int a = random.nextInt(101);  //产生100以内的随机数
44. 枚举enum

枚举也是一种引用数据类型,枚举中的每一个数值可以看作常量。

45. 异常
  1. 异常在java中以类和对象形式存在。
  2. 异常有编译时异常和运行时异常,都是发生在运行阶段。区别在于 编译时异常必须在程序编写时预先处理,否则编译器报错。
  3. 所有的异常都发生在运行阶段,因为只有程序运行阶段才可以new对象,而异常的发生就是new异常对象。
  4. 编译时异常和运行时异常的区别:
    a. 编译时异常发生概率比较高;
    b. 编译时异常必须在程序编写时预先处理,否则编译器报错。
  5. 假设编译时异常和运行时异常都在程序编写时预先处理,那么程序确实是绝对安全的,到处都是处理异常的代码,但是程序员会很累。
  6. 例1:在这里插入图片描述
  7. 例2:
    为什么报错?
    因为doSome()方法声明位置上使用了:throws ClassNotFoundException,而ClassNotFoundException继承了Exception类,是编译时异常,必须编写代码时处理,没有处理就会报错。
    在这里插入图片描述
    怎么处理?两种处理方式:
    上抛类似于推卸责任,继续把异常传递给调用者。(异常被上抛后,后续代码不执行了。)
    try…catch…捕获等于把异常拦下来了,异常真正的解决了。一般main方法中的异常建议使用try…catch…捕获。(try语句块中如果某行出现异常,该行后面的代码不会执行,try…catch…捕获异常之后,try…catch…外面的后续代码继续执行。)catch后面的小括号可以写具体的异常类型,也可以是该异常类型的父类型;catch可以写多个;catch写多个的时候,从上到下必须从小到大的写。
    在这里插入图片描述
  8. finally子句中的语句一定会执行。
  9. 自定义异常
    在这里插入图片描述
46. final、finally和finalize?

final是一个关键字,表示最终的,不变的。
finally在异常处理机制中与try联用,finally中的代码一定会执行。
finalize()是Object类中的一个方法,垃圾回收器。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值