JDK1.8新特性

	1.接口
			回顾:只有方法签名,没有方法体
						默认方法是public  abstract修饰的
						具体的方法的业务是其实现类做的	
								抽象方法,是必须被覆写的
								可以new接口,使用匿名内部类,覆写抽象方法。

		为什么要抽取接口?	
			面向接口编程,只需要管声明,有需求,传什么参数,返回对应的结果。
			只有对业务熟悉,才会抽取规范的接口。

	接口的抽象方法可以被继承或实现。

	调用接口的方法:两种方式。new实现类或定义一个匿名内部类

接口中有方法体的方法:
	静态方法:
		接口的方法可以写方法体,只需要添加static修饰,但是static修饰的方法不能被覆写。不能被实现类调用,也不能被子类继承。只能使用类名进行调用。

用处:

	default方法:
		① 可以被实现类调用
		② 能被子类继承并覆写
		③
default的用处:接口 的方法的实现,每个实现内的方法体都是一样的,类似于抽取base类。并可以被覆写,实现特有的方法
	需求增加一个功能,可以只改接口,面向接口编程
	接口里写了方法体,所有的实现类和子类都有这个方法,都可以调用,不用再覆写
	我们已经开放好功能了,需要增加需求功能,原始的方法是,接口定义一个抽象方法,每一个实现类覆写。现在,使用default,可以直接在接口中定义default方法体,实现类可以不用管。

	函数式接口:
		有且仅有一个抽象方法(Object类的public方法除外)
		@FunctionInterface  打在接口上,表示此接口为一个显示的函数式接口
		隐式函数式接口

	lambda表达式:(基于函数式接口实现的)
		如果函数体只有一句,且有返回值,{}和return可以一起省
		如果只有一个参数,参数的()可以省
		没有参数,需要使用()作为占位符

	内部类中使用一个外部的变量,这个变量必须是final修饰的
	同样lambda一样,

		lambda可以替代匿名内部类

stream

   

线程和线程并发

	1.线程和进程的区别?
		进程是资源分配的最小单位
		线程是程序执行的最小单位
		一个进程可以有多个线程组成,多线程共享数据就会造成线程不安全问题。
		解决线程安全问题,尽力避免资源共享问题。
	2.创建线程的方式
		继承Thread类
				重写run方法,自己实现业务逻辑
				使用start启动线程。
		实现Runnable接口
				覆写run方法,然后将
		实现callable接口,需要返回值的时候,使用
				实现call方法
		要区别run和start,通过start启动起来。线程需要抢占CPU资源,获取到资源的时候,再运行
		3.线程的生命周期(自己能画)
			。
		4.线程同步
			只有多线程访问共同资源的时候,就会出现线程安全问题
			解决方案就是:对资源进行加锁
					synchronized
								可以添加在方法和类上面。
								不需要自己进行解锁
								是JVM级别的,JVM发现有此修饰符会使用monitor进行监视,当monitor被占用的时候,就会被锁定。有此标签标示资源被占用。
					Lock		(属于concurrent包下的)	
								是java代码级别的,我们认为可以进行一个控制,使用完毕之后,需要手动释放锁。未放,就容易造成死锁。
							  尽量避免线程安全的问题,即							①避免类级别的共享的变量。如:变量尽量是小范围的,避免使用类级别的变量。
							  	②添加同步或锁,锁住资源
							  	③使用ThreadLocal,解决多线程的并发安全问题(当前线程作为一个key,传入的值作为value,不同的key线程对应不同的value,实现了线程的隔离)
							  				内部使用的是map来存取,为每个线程创建一个副本,map内部存放的的是,每一个线程进入都会创建了一个map,通过map就将线程之间隔离开了。获取资源的时候,通过map内部的key,获取对应的value
		。 
		5、线程池
			在excutor内上面,注意有些0,表示是没有限制
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值