没有合适的资源?快使用搜索试试~ 我知道了~
首页BAT架构面试宝典:掌握Java事件机制与实战解题
BAT架构面试宝典:掌握Java事件机制与实战解题
需积分: 9 0 下载量 3 浏览量
更新于2024-07-17
收藏 3.53MB PDF 举报
"《面试宝典之BAT架构进阶》是一份针对IT求职者特别是希望进入百度(Baidu)、阿里巴巴(Alibaba)和腾讯(Tencent,简称BAT)等大公司面试的专业文档。文档的核心内容围绕Java事件机制展开,帮助读者掌握这一关键概念以便在面试中脱颖而出。 首先,文档详细介绍了Java事件机制的构成,包括事件、事件监听器和事件源。事件是基础,它通常继承自`java.util.EventObject`类,用于封装事件源对象及其相关数据,如`CusEvent`类所示。这个类定义了一个私有变量`source`作为事件源,并提供了获取和设置事件源的方法,确保了事件的来源清晰。 事件监听器是事件机制的关键组件,它实现了`java.util.EventListener`接口。监听器注册在事件源上,当事件源的状态发生变化时,监听器的回调方法会被触发。例如,`CusEventListener`类就是一个具体的监听器实现,它定义了一个回调方法,允许开发者在事件发生时执行特定的操作。 文档中还强调了实战练习的重要性,鼓励读者通过刷题来巩固对Java事件机制的理解,这对于准备BAT公司的架构师或CTO面试至关重要。通过关注优知学院(youzhixueyuan.com)的公众号,求职者可以获得更多的面试题答案和架构相关的实用知识,从而提升自己的技术水平和面试竞争力。 《面试宝典之BAT架构进阶》是一份实用性很强的资源,不仅涵盖理论知识,还提供了实际操作的指导,对于Java开发者尤其是想要进入BAT等顶级公司工作的求职者来说,是不可或缺的备考工具。"
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/11176386/bg10.jpg)
优知学院(youzhixueyuan.com)IT 人升值加薪进阶站:BAT 面试、架构师、CTO 进阶
16
[文档标题]
反之,如果核心数较小,有界 BlockingQueue 数值又较小,同时 keepAliveTime
又设的很小,如果任务频繁,那么系统就会频繁的申请回收线程。
public static ExecutorService newFixedThreadPool(int nThreads)
{
return new ThreadPoolExecutor(nThreads,
nThreads,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>());
}
还有很多其他的方法:
比如:getQueue() 、getPoolSize() 、getActiveCount()、getCompletedTaskCount()
等获取与线程池相关属性的方法,有兴趣的朋友可以自行查阅 API。
二、 JaVA 反射机制
![](https://csdnimg.cn/release/download_crawler_static/11176386/bg11.jpg)
优知学院(youzhixueyuan.com)IT 人升值加薪进阶站:BAT 面试、架构师、CTO 进阶
17
[文档标题]
一,先看一下反射的概念:
主要是指程序可以访问,检测和修改它本身状态或行为的一种
能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为
的状态和相关的语义。
反射是 java 中一种强大的工具,能够使我们很方便的创建灵活
的代码,这些代码可以再运行时装配,无需在组件之间进行源代码链
接。但是反射使用不当会成本很高!
二,反射机制的作用:
1,反编译:.class-->.java
2,通过反射机制访问 java 对象的属性,方法,构造方法等;
这样好像更容易理解一些,下边我们具体看怎么实现这些功
能。
三,在这里先看一下 sun 为我们提供了那些反射机制中的类:
java.lang.Class;
java.lang.reflect.Constructor;
java.lang.reflect.Field;
java.lang.reflect.Method;
java.lang.reflect.Modifier;
![](https://csdnimg.cn/release/download_crawler_static/11176386/bg12.jpg)
优知学院(youzhixueyuan.com)IT 人升值加薪进阶站:BAT 面试、架构师、CTO 进阶
18
[文档标题]
四,具体功能实现:
1,反射机制获取类有三种方法,我们来获取 Employee 类
型
[java] view plain copy
print?
1. //第一种方式:
2. Classc1 = Class.forName("Employee");
3. //第二种方式:
4. //java 中每个类型都有 class 属性.
5. Classc2 = Employee.class;
6.
7. //第三种方式:
8. //java 语言中任何一个 java 对象都有 getClass 方法
9. Employeee = new Employee();
10. Classc3 = e.getClass(); //c3 是运行时类 (e 的运行时类是 Employee)
2,创建对象:获取类以后我们来创建它的对象,利用
newInstance:
[java] view plain copy
print?
1. Class c =Class.forName("Employee");
2.
3. //创建此 Class 对象所表示的类的一个新实例
4. Objecto = c.newInstance(); //调用了 Employee 的无参数构造方法.
3,获取属性:分为所有的属性和指定的属性:
![](https://csdnimg.cn/release/download_crawler_static/11176386/bg13.jpg)
优知学院(youzhixueyuan.com)IT 人升值加薪进阶站:BAT 面试、架构师、CTO 进阶
19
[文档标题]
a,先看获取所有的属性的写法:
[java] view plain copy
print?
1. //获取整个类
2. Class c = Class.forName("java.lang.Integer");
3. //获取所有的属性?
4. Field[] fs = c.getDeclaredFields();
5.
6. //定义可变长的字符串,用来存储属性
7. StringBuffer sb = new StringBuffer();
8. //通过追加的方法,将每个属性拼接到此字符串中
9. //最外边的 public 定义
10. sb.append(Modifier.toString(c.getModifiers()) + " class " + c.ge
tSimpleName() +"{\n");
11. //里边的每一个属性
12. for(Field field:fs){
13. sb.append("\t");//空格
14. sb.append(Modifier.toString(field.getModifiers())+" ");//获得
属性的修饰符,例如 public,static 等等
15. sb.append(field.getType().getSimpleName() + " ");//属性的类型
的名字
16. sb.append(field.getName()+";\n");//属性的名字+回车
17. }
18.
19. sb.append("}");
20.
21. System.out.println(sb);
b,获取特定的属性,对比着传统的方法来学习:
[java] view plain copy
print?
1. public static void main(String[] args) throws Exception{
2.
3. <span style="white-space:pre"> </span>//以前的方式:
4. /*
5. User u = new User();
6. u.age = 12; //set
![](https://csdnimg.cn/release/download_crawler_static/11176386/bg14.jpg)
优知学院(youzhixueyuan.com)IT 人升值加薪进阶站:BAT 面试、架构师、CTO 进阶
20
[文档标题]
7. System.out.println(u.age); //get
8. */
9.
10. //获取类
11. Class c = Class.forName("User");
12. //获取 id 属性
13. Field idF = c.getDeclaredField("id");
14. //实例化这个类赋给 o
15. Object o = c.newInstance();
16. //打破封装
17. idF.setAccessible(true); //使用反射机制可以打破封装性,导致了 java 对象的属性
不安全。
18. //给 o 对象的 id 属性赋值"110"
19. idF.set(o, "110"); //set
20. //get
21. System.out.println(idF.get(o));
22. }
4,获取方法,和构造方法,不再详细描述,只来看一下关键字:
方法关键字
含义
getDeclaredMethods()
获取所有的方
法
getReturnType()
获得方法的放
回类型
getParameterTypes()
获得方法的传
入参数类型
getDeclaredMethod("方法名",参数类
型.class,……)
获得特定的方
法
剩余146页未读,继续阅读
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
xindiao_hi
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 多模态联合稀疏表示在视频目标跟踪中的应用
- Kubernetes资源管控与Gardener开源软件实践解析
- MPI集群监控与负载平衡策略
- 自动化PHP安全漏洞检测:静态代码分析与数据流方法
- 青苔数据CEO程永:技术生态与阿里云开放创新
- 制造业转型: HyperX引领企业上云策略
- 赵维五分享:航空工业电子采购上云实战与运维策略
- 单片机控制的LED点阵显示屏设计及其实现
- 驻云科技李俊涛:AI驱动的云上服务新趋势与挑战
- 6LoWPAN物联网边界路由器:设计与实现
- 猩便利工程师仲小玉:Terraform云资源管理最佳实践与团队协作
- 类差分度改进的互信息特征选择提升文本分类性能
- VERITAS与阿里云合作的混合云转型与数据保护方案
- 云制造中的生产线仿真模型设计与虚拟化研究
- 汪洋在PostgresChina2018分享:高可用 PostgreSQL 工具与架构设计
- 2018 PostgresChina大会:阿里云时空引擎Ganos在PostgreSQL中的创新应用与多模型存储
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)