Java总结

1.Intent:

intent过滤器是Android平台一项非常强大的功能
根据显式或隐式请求启动 Activity,。
显式请求可能会告诉系统“在 Gmail 应用中启动‘发送电子邮件’Activity”,
而隐式请求可能会告诉系统“在任何能够完成此工作的 Activity 中启动‘发送电子邮件’屏幕”。
当系统界面询问用户使用哪个应用来执行任务时,这就是 intent 过滤器在起作用。元素中声明 <intent-filter> 属性。此元素的定义包括 <action> 元素,以及可选的 <category> 元素和/或 <data> 元素。这些元素组合在一起,可以指定 Activity 能够响应的 intent 类型。
IntentFilter翻译成中文就是“意图过滤器”,主要用来过滤隐式意图。
当用户进行一项操作的时候,Android系统会根据配置的 “意图过滤器” 来寻找可以响应该操作的组件,服务。Intent 是一个消息传递对象,是我们要执行操作的一个抽象描述。我们可以使用它在相应的组件中传递消息和请求。

2.双重锁:

双检锁:
单例模式中用volatile和synchronized来满足双重检查锁机制
我们在实现单例模式的时候往往会忽略掉多线程的情况,就是写的代码在单线程的情况下是没问题的,
但是一碰到多个线程的时候,由于代码没写好,就会引发很多问题,而且这些问题都是很隐蔽和很难排查的。
volatile可以保证多线程下的可见性;

双重检查锁
双重锁进行了两次判空:第一层判断为了避免不必要的同步,第二层判断则是为了在null的情况下
创建实例代码会检查两次单例类是否有已存在的实例,一次加锁一次不加锁,一次确保不会有多个实例被创建
单例模式中用volatile和synchronized来满足双重检查锁机制

读volatile:每当子线程某一语句要用到volatile变量时,都会从主线程重新拷贝一份,
这样就保证子线程的会跟主线程的一致。

写volatile: 每当子线程某一语句要写volatile变量时,都会在读完后同步到主线程去,
这样就保证主线程的变量及时更新。

volatile主要包含两个功能:
保证可见性 使用 volatile定义的变量,将会保证对所有线程的可见性   
禁止指令重排序优化。

由于 volatile禁止对象创建时指令之间重排序,所以其他线程不会访问到一个未初始化的对象,从而保证安全性。
对象的创建可能发生指令的重排序,使用 volatile可以禁止指令的重排序,保证多线程环境内的系统安全。

3.type和class有什么关系:
Type是Class的父接口。
Type 是 Java 编程语言中所有类型的公共高级接口 
它们包括原始类型、参数化类型、数组类型、类型变量和基本类型。
Type可以表示出泛型的类型,而Class不能 
Type是Class的父接口。Class是Type的子类。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值