黑马出品,肯定是精品,大大的好好号号黑马出品,肯定是精品,大大的好好号号黑马出品,肯定
是精品,大大的好好号号
类名作为形参和返回值
类名作为形参或返回值,其实传递或返回的是该类得对象
抽象类作为形参和返回值
抽象类名作为形参或返回值,其实传递或返回的是该类子类得对象
接口作为形参和返回值
接口名作为形参或返回值,其实传递或返回的是该接口实现类得对象
内部类概念
类内部声明得类
内部类的访问特点
内部类可以直接访问外部类得成员,包括私有得
外部类访问内部类成员,需要实例化内部类对象
内部类的分类
成员内部类
局部内部类
成员内部类
声明在类得成员位置得类
外部类得类名.内部类得类名 引用名=外部类得对象.内部类得对象
Java中的String和StringBuffer的区别
1. 拼接字符串时的区别
2. 测试代码
3. 测试结果
4. 问题来了
String和Stringbuffered
简单地说,就是一个变量和常量的关系。StringBuffer对象的内容可以修改;而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。
它们底层都是基于字符数组char实现的。且StringBuffer默认构造函数返回的引用底层字符数组长度是16。
1. 拼接字符串时的区别
通过String str = "测试字符串";方式初始化字符串。
String str = "测试字符串";
str = str + "追加字符串";
System.out.println(str);
这种方式在添加字符串时会生成一个新的String对象。
通过new StringBuffer()的方式初始化字符串。
StringBuffer strBuff = new StringBuffer("测试字符串2");
strBuff.append("追加字符串2");
这种方式在添加字符串时会生成一个新的StringBuffer对象,减少了重新分配内存的开销。
2. 测试代码
package org.jinyuxin.a2019070101;
import org.junit.jupiter.api.Test;
public class TestStringAndStringBuffer {
@Test
public void testStringAndStringBuffer() {
String str = "测试字符串";
str = str + "追加字符串";
System.out.println(str);
StringBuffer strBuff = new StringBuffer("测试字符串2");
strBuff.append("追加字符串2");
System.out.println(strBuff);
}
}
异常的概念:java程序在编译或运行过程出现的意外情况。
类型转换异常
数组越界异常
空指针异常
算术运算异常…
Throwable–Error
–Exception:
1.编译器异常Exception:
日期类型转换异常,文件找不到异常
转换异常:ParseException
文件找不到异常:FileNotFoundException
2.运行时异常RuntimeException:程序运行时出现的异常
类型转换异常:ClassCaxtException、
数组越界异常:ArrayIndexOutOfBoundException
空指针异常:NullPointerException
算术运算异常:ArithmeticException
数字格式化异常:NumberFormatException
例如: 0不能做除数
3/0 零不能作除数的异常
异常的处理:
异常的处理方式
1>抛出异常throws关键字
抛出异常只是把当前方法的异常,抛给了上一级地调用它的方法,最终还是要进行异常的处理
2>捕获处理
语法格式:
try{
//可能出现异常的代码块
FileputStream in = new FileputStream(path);
一旦出现异常,下面的代码不会再执行
System.out,println();
}catch(Exception e){
e.printStrace();
}finally{
}
异常处理
1.try…catch…是成对出现的:try必须有并且只能有一个
2.catch可以有一个也可以有多个
3.finally可以有也可以没有,有的话只能有一个,并且在异常处理末尾
3>异常可以嵌套获取
4>自定义异常类:
1.自定义运行时异常
自定义类继承:RuntimeException |
|