Java chap-1 内部类,lambda与常用类

内部类

弥补继承的不足(可以继承多个类)

在一个类的内部创建一个新的类

用protect,private修饰

  • 普通的内部类
  • 静态的内部类
    前两种与外部类使用方法相同
    非静态内部类不允许有静态成员
  • 方法中的内部类
  • 匿名内部类(在很多API里比较常见)
    直接new一个接口,大括号里写抽象类的实现

创建非静态内部类对象:

Outer o = new outer();
Outer.Inner i = o.new Inner();

创建静态内部类对象:

Outer.Inner i = new Outer.Inner();

内部类访问外部类同名成员时用Outer.this访问

Lambda表达式

又称闭包

(paramenters)->expression
或
(paramenters)->{statements;}
outer.operator(()->{
	System.out.println("lambda表达式");
	});

方法参数为接口类型,抽象类都可用Lambda表达式

常用类

时间日期相关类

Date, Calender类

Date中好多方法已经过时了

String到Date

public Date convertStrToDate(String date){
	sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	try{
		return sdf.parse(date);
	}
	catch(ParseException e){
		e.printStackTrack();
	}
	return null;
}

获取当前日期的某个值必须用get方法

控制台输入

Scanner

//控制台输入输出
public static void main(String[] args){
	Scanner scanner = new Scanner(System.in);
	String str = scanner.next();
	System.out.println(str);
}

nextline()方法可以读取一行数据并返回

基本数据类型的封装类

基本数据类型封装类
intInteger
charCharacter

基本数据和字符串到封装类用构造器

字符串到基本数据类型用parseType (Type是要转换的类型)

基本数据类型到字符串用字符串的vauleOf方法

Integer num = 10;
int a = num;

Math类

都是静态方法,可以直接用类名访问

//随机数3-7
int i = (int)(Math.random()*5+3);

异常

常见的两种错误:
语法错误(编译能检查出来)
运行时的错误(异常,导致整个程序无法继续运行)

Java中异常处理的机制:抛抓模式

Error:内部错误及资源耗尽等情况,灾难性错误,一般不在程序中捕获
RuntimeException:非检查性异常,大部分是程序员可以避免的,不强制捕获
非RuntimeException:可预知的外界原因造成(eg:文件不存在,断网),需捕获处理

Java中常见的异常类:(不用做捕获处理)

异常说明
Exception异常层次结构的根类(父类)
RuntimeException许多java.long异常的基类
ArithmeticException算数异常,如:除数为0
IllegalArgumentException方法接收到非法参数
ArrayIndexOutOfBoundsException数组下标越界
NullPointerException访问空引用
ClassNotFoundException不能加载所需的类
NumberFormatException字符串转换数字失败
IOExceptionI/O异常的根类
FileNotFoundException找不到文件
EOFException文件结束

抛出(throw)异常
捕获(catch)异常 (通过try使程序可以继续运行,对于不可提前规避的错误)

try catch结构

...
try{
	...	//监视可能发生异常的代码段
}
catch(异常种类){	//捕获发生的异常
	...	//对异常进行处理
}

finally子句

无论try中语句是否抛出异常,程序都执行它

当try或catch中有return语句时,会执行完finally子句再返回

Finally子句中一般是关闭某个文件,数据库连接等

throws和throw

throws用于声明方法抛出的异常,此时异常不用try/catch语句处理,而是向上一层传达,让其调用者处理

throw语句用于手工抛出异常
throw new抛出的一般是自定义异常

线程和进程

进程:独立运行的程序,独立的数据空间和资源
线程:依附于进程存在的独立的指令序列,共享数据和资源

线程的生命周期:
在这里插入图片描述
线程的创建:

  • 继承Thread类:是一个线程有生命周期,继承它的类本身也是一个线程
  • Runnable接口:(更加常见)只定义了线程的行为,由实现其run方法来实现,本身不是一个线程

调用start()方法才具有线程的行为

接口解决单继承问题

synchronized(this.obj)	//同步锁

对于临界资源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值