首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

已中招!Android 基础面试常常吊死在这几个问题上……

当您需要一个生命周期与当前上下文分开的上下文时,或者在传递超出活动范围的上下文时,可以使用 Application Context 。 2、面试官:什么是 Armv7 ? 应聘者:我怎么知道?...面试官:我给你讲讲吧,你去别的公司面试你,你可以这样回答: OnCreate():这是第一次创建视图时。通常,这是我们创建视图,从包中获取数据等的地方。...代替为每个新行创建新视图,而是通过将新数据绑定到旧视图来对其进行回收和重用! 应聘者:我学到了! 18、面试官:再说一下RecyclerView与ListView有何不同?...ViewHolder模式:Recyclerview实现了ViewHolders模式,但在ListView 中不是必需的。RecyclerView 在滚动时回收并重用单元格。...在 ListView 中, findViewById() 在滚动 ListView 期间,代码可能会频繁调用,这可能会降低性能。即使适配器返回膨胀视图以进行回收,仍然需要查找元素并进行更新。

2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    LeakCanary万字源码解析,干货满满

    它通过监测对象引用关系,识别无法被垃圾回收的对象,提供详细的报告,帮助开发者精确定位内存泄漏的根本原因。这使得开发者能够更轻松地应对内存泄漏挑战,确保应用程序的性能和稳定性。...;在窗口移除时再添加到Handler中,从而触发View对象的可达性追踪。...在初始化 KeyedWeakReference 时传入队列 queue 是为了在对象被垃圾回收时,能够将该对象放入指定的引用队列中。这是Java中一种常见的做法,用于实现对象的引用清理和跟踪。...当一个对象的弱引用被垃圾回收器回收时,会将该弱引用添加到引用队列中,以便后续对其进行处理或记录。...当被监测的对象被垃圾回收时,该对象的 KeyedWeakReference 引用将会被添加到 queue 中。

    59620

    运维锅总详解如何设计出一个好的API

    向后兼容:在发布新版本时,尽量保持旧版本不变,避免破坏现有客户端。 示例:在发布新版本时,确保旧版本继续运行,直到所有用户迁移到新版本。 5....可扩展性 灵活的设计:设计 API 时考虑未来的扩展需求。使用通用的字段和参数,以便将来添加新功能。 示例:使用 JSON 对象而不是固定字段来描述资源,以便轻松添加新字段。...意图机制:Android 使用意图(Intent)机制来启动活动、服务和发送广播,实现组件之间的解耦。...例子:addSubview: 用于将一个视图添加到另一个视图中,removeFromSuperview 用于从父视图中移除视图。...事件传递:iOS 使用响应链机制来处理用户交互事件,允许事件在视图层级中传递。

    8310

    求职笔记-iOS篇

    一个好的求职者会不断修改简历,已适应不同公司的要求;提前整理、回顾基础知识,以应对笔试和初试;对过去的工作经历进行总结,不断提高自己的综合能力;并在生活与工作中,培养好的工作习惯和态度。...UIWindow UIWindow继承自UIView,是视图的容器。 一般的app只需一个UIWindow,在AppDelegate中。...UIWindow的主要作用: 作为最顶层的视图容器,存放app的视图; 传递触摸和键盘等事件; KVO与Notification的异同 KVO和Notification本质都是观察者模式。...存储到文件中; 2、实现NSCoding,存储到NSUserDefault; 3、数据库,使用SQLitePersistentObjects写入db; 4、使用CoreData; 动画性能优化 动画的视图结构...(如果A在time_wait过程中,收到FIN报文,表示发送的ACK丢包了,重新发) 如何下载一个超大的文件?支持断点续下、暂停、取消的功能。

    1.2K60

    ZGC关键技术分析

    以往的垃圾回收器都是让GC线程和业务线程就堆中对象地址达成一致,对象在发生转移时业务线程是不能访问的 (因为对象的地址发生了变化) ,无论G1还是CMS对象在进行复制时都是需要STW。...着色指针(Colored Pointer)在指针中嵌入元数据(使用地址中的高阶位来实现),这种通过在指针存储元数据的技术就叫做着色指针 (Colored Pointer) 。...通过设置地址元位的状态,可以形成不同地址视图,ZGC同一物理堆内存被映射到虚拟地址空间三次,从而产生同一物理内存的三个“视图”,GC活动的不同时期会只存在一个活跃视图,根据垃圾回收的周期ZGC通过切换不同视图标来记出对象的颜色...在垃圾回收时,ZGC只需要扫描其中一个虚拟内存段,并将其作为当前视图映射到实际的内存位置。同时,ZGC会将其他虚拟内存段映射到虚拟地址上,这些内存段不会被收集器扫描。...无论是业务线程作为使用者访问对象,还是GC线程遍历堆中的所有活动对象(在标记期间)都有可能会触发读屏障。ZGC读屏障如何实现呢?举个例子,代码 var x = obj.field。

    41430

    很全面的Android面试题

    除了在栈顶的activity,其他的activity都有可能在内存不足的时候被系统回收,一个activity越处于栈底,被回收的可能性越大.如果有多个后台进程,在选择杀死的目标时,采用最近最少使用算法(...Activity中提供了一个 onSaveInstanceState()回调方法,这个方法会保证一定在活动被回收之前调用, 可以通过这个方法来解决活动被回收时临时数据得不到保存的问题。...,将启动音频播放器(vedio) PendingIntent和Intent区别 它们都可以去指明某一个“意图”,都可以用于启动活动、启动服务以及发送广播等。...方法二 通过BroadCast(广播)的形式 当我们的进度发生变化的时候我们发送一条广播,然后在Activity的注册广播接收器,接收到广播之后更新视图 什么是IntentService?...活动传递给Fragment:为了方便碎片和活动之间进行通信, FragmentManager提供了一个类似于findViewById()的方法,专门用于从布局文件中获取碎片的实例,前提是自己在布局文件中定义

    5.9K70

    很全面的Android面试题

    除了在栈顶的activity,其他的activity都有可能在内存不足的时候被系统回收,一个activity越处于栈底,被回收的可能性越大.如果有多个后台进程,在选择杀死的目标时,采用最近最少使用算法(...Activity中提供了一个 onSaveInstanceState()回调方法,这个方法会保证一定在活动被回收之前调用, 可以通过这个方法来解决活动被回收时临时数据得不到保存的问题。...,将启动音频播放器(vedio) PendingIntent和Intent区别 它们都可以去指明某一个“意图”,都可以用于启动活动、启动服务以及发送广播等。...方法二 通过BroadCast(广播)的形式 当我们的进度发生变化的时候我们发送一条广播,然后在Activity的注册广播接收器,接收到广播之后更新视图 什么是IntentService?...活动传递给Fragment:为了方便碎片和活动之间进行通信, FragmentManager提供了一个类似于findViewById()的方法,专门用于从布局文件中获取碎片的实例,前提是自己在布局文件中定义

    54910

    RecyclerView 刷新列表数据的 notifyDataSetChanged() 为什么是昂贵的?

    观察者被抽象为AdapterDataObserver,它们维护在AdapterDataObservable中。...待下一个信号到来,它就会向主线程消息队列中发送一条消息,当主线程处理到这条消息时,从根视图开始的自顶向下重绘就启动了。...因为在重新布局之前表项都被添加了FLAG_INVALID标志位,只要表项未被移除,它们都会被回收到缓存池 RecyclerViewPool 中。(从 Profiler 调用链中也得到了证实。)...总结 RecyclerView 使用观察者模式刷新自己,刷新即是通知所有的观察者。 观察者被抽象为AdapterDataObserver,它们维护在AdapterDataObservable中。...包括当前所有被填充表项及离屏缓存中的 ViewHolder 实例。无效化体现在代码上即是为 ViewHolder 添加 FLAG_UPDATE 和 FLAG_INVALID 标志位。

    3.4K20

    IDEA集成Java性能分析神器JProfiler

    所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象。 ? 所有对象 All Objects 显示类或在状况统计和尺码信息堆上所有对象的包。你可以标记当前值并显示差异值。...分配 Allocations 为所有记录对象显示分配树和分配热点。 索引 References 为单个对象和“显示到垃圾回收根目录的路径”提供索引图的显示功能。还能提供合并输入视图和输出视图的功能。...图表 Graph 你需要在references视图和biggest视图手动添加对象到图表,它可以显示对象的传入和传出引用,能方便的找到垃圾收集器根源。...访问树 Call Tree 显示一个积累的自顶向下的树,树中包含所有在JVM中已记录的访问队列。JDBC,JMS和JNDI服务请求都被注释在请求树中。...记录的生产量 Recorded Throughput : 显示一段时间累计的JVM生产和释放的活动时间表。 垃圾回收活动 GC Activity:显示一张关于垃圾回收活动的活动时间表。

    4.6K10

    web应用常见安全攻击手段

    user=t=bfabf0b1c1133a822; path=/; HttpOnly (3)显示伪造的图片、文章 xss防范: 方法一: 阻止 JavaScript 注入攻击的一种简单方法是重新在视图中显示数据时...使用 HTML 编码字符串时,危险字符如 和 > 被替换为 HTML 实体,如 和 >。所以,当使用 HTML 编码字符串 。浏览器在解析编码的字符串时不再执行 JavaScript 脚本。...方法二: 除了在视图中显示数据时使用 HTML 编码数据,还可以在将数据提交到数据库之前使用 HTML 编码数据。...第二种方法的问题在于在数据库中最终会保留 HTML 编码的数据。换言之,数据库中的数据会包含奇怪的字符。这有什么坏处呢?如果需要用除网页以外的形式显示数据库数据,则将遇到问题。...例如,不能轻易在 Windows Forms 应用程序中显示数据。

    1.4K30

    《移动互联网技术》第五章 界面开发: 掌握Activity的基本概念,Activity的堆栈管理和生命周期

    处于暂停状态的活动仍然是存活着的,系统通常不会回收这种活动。 (3) 停止状态 当活动被压到返回栈的下面,在屏幕上完全不可见,这个时候活动就处于停止状态。系统会保存活动的状态和成员变量。...但是,当其他地方需要内存时,处于停止状态的活动有可能会被系统回收。 (4) 销毁状态。 如果活动被弹出返回栈,活动就被销毁了,系统会回收它所占用的内存和资源,这时活动就处于销毁状态。...如果用户启动其他活动,比如对话框式的活动,原来的活动就转为暂停状态。转移到暂停状态时,可以在onPause()函数中释放一些不用的资源,保存一些关键的数据。...有了数据以后,需要用适配器对象把数据和界面视图联系起来。在适配器的构造函数中传入数据。...子活动作为发送方,需要将数据放入Intent,然后调用setResult()函数把子活动想要返回的数据返回到MainActivity。

    22510

    Java面试抽集

    、Protected、Public 设置Privae的目的 实现数据隐藏,以免意外更改 多线程死锁产生原因 1、互斥使用,即当资源被一个线程使用(占有)时,别的线程不能使用 2、不可抢占,资源请求者不能强制从资源占有者手中夺取资源...Main方法线程和垃圾回收线程一起结束的原因 还未调用回收器线程,或还未回收完成所有,主线程已经结束了,并不是主线程结束,虚拟机就结束。...有调优意识,能通过监控发现问题点,然后解决 在开发阶段,我就注意到内存的性能问题和SQL运行的时间问题,在压力测试阶段,我会通过xx工具来监控内存和数据库,发现待提升的代码点,然后通过查资料来优化。...或者,一旦遇到问题,如果是业务方面的,我会及时和项目经理沟通,如果是技术方面的,我会自己查资料,如果是测试方面的,我会及时和测试的人沟通。...有主见,能不断探索新的知识 在项目里,我会在保证进度的前提下和项目经理说我的想法,提出我的解决方案。在开发过程中,我会先思考一下,用一种比较好的方式,比如效率最高的方法实现。

    40520

    JDK11升级JDK17最全实践干货来了

    本篇文章将为你介绍一种能够提供百倍性能提升的垃圾回收器,也许能够解决你的问题。 01 前言 在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。...长期支持版本 JDK17是Oracle官方在2021年9月14日发布的一个长期支持(LTS)版本,意味着它将获得长期的更新和支持,有助于保持程序的稳定性和可靠性。 2. 性能提升 更好的垃圾回收器。...,启动时会报如下错误: 原因:官方文档不鼓励循环依赖引用,默认情况下是禁止的 解决方案: 第一种:推荐更新应用中bean的依赖关系来解决 第二种:配置文件中加入以下配置,为了和旧版本保持一致,此配置推荐添加...希望以上分享可以给大家带来实际的帮助,升级过程中如果遇到问题,欢迎大家在评论区回复。 推荐阅读 ChatGPT是如何产生心智的? 小项目想当大Boss?...▪ 底层能力:维护用户基础数据、行为数据建模、用户画像分析、精准营销策略的制定 ▪功能支撑:会员成长体系、等级计算策略、权益体系、营销底层能力支持 ▪用户活跃:会员关怀、用户触达、活跃活动、业务线交叉获客

    1.7K10

    带你学开源项目:LeakCanary-如何检测活动是否泄漏

    在一个活动传给RefWatcher时会创建一个唯一的对应这个活动,该密钥存入一个集合retainedKeys中。...在源码中可以看到,LeakCanary并不会在destory后立即去检查,而是让一个AndroidWatchExecutor去进行检查。它会做什么呢? ?...忽略某些已知泄漏的类或活动 LeakCanary提供了ExcludedRefs类,可以向里面添加某些主动忽略的类。...把内存泄漏数据上传至服务器 在LeakCanary提供了AbstractAnalysisResultService,它是一个intentService,接收到的意图内包含了HeapDump数据和AnalysisResult...结果,我们只要继承这个类,实现自己的listenerServiceClass,就可以将数据和分析结果上传到我们自己的服务器上。

    73410

    安卓软件开发_应用程序UI组件意外停止

    每个视图控件是窗口内的一个特定的矩形空间。父视图包含和组织子女视图的布局。叶子视图(在分层的底层)绘制的矩形直接控制和响应用户的操作。因此,一个视图是活动与用户交互发生的地方。...资源将被夸大,添加布局资源文件中所有的最高层的视图( top-level views )到活动. 2.2、 服务(Services) 一个服务没有一个可视化用户界面,而是在后台无期限地运行。...有两种主要的可接受广播类型: 正常广播(由Context.sendBroadcast发送)是完全异步的。所有的广播接收者以无序方式运行,往往在同一时间接收。...这些数据可以存储在文件系统中、在一个SQLite数据库、或以任何其他合理的方式。内容提供者继承自ContentProvider 基类并实现了一个标准的方法集,使得其他应用程序可以检索和存储数据。...他们封装数据且通过单个ContentResolver接口提供给应用程序。只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。

    1K10

    小程序架构

    视图层和逻辑层分离,通过数据驱动,事件交互,不直接操作DOM 视图层负责渲染页面结构,逻辑层负责逻辑处理、数据请求、接口调用等 视图层与逻辑层通过数据和事件进行通信,逻辑层提供数据给视图层,视图层通过绑定...实现了对底层API接口的调用,所以在小程序里面开发,开发者不用太多去考虑OS的实现差异的问题,安心在上层的视图层和逻辑层进行开发即可。 数据通信机制: ? 分为数据单项绑定、事件绑定。...由上图可知,小程序由两大线程组成:负责界面的视图线程(view thread)和负责数据、服务处理的服务线程(appservice thread),两者协同工作,完成小程序页面生命周期的调用。...首次渲染状态:当收到服务线程提供的初始化数据后(json和js中的data数据),渲染小程序界面,渲染完毕后,发送“首次渲染完成信号”给服务线程,并将页面展示给用户。...结束状态:页面被回收或者销毁、应用被系统回收、销毁时触发。 服务线程五大状态: 初始化状态:此阶段仅启动服务线程所需的基本功能,比如信号发送模块。

    1.9K30

    原创分享计划2025年1月特别激励活动

    随着腾讯云开发者社区内容生态的持续发展,社区对计划福利全面升级,增加新人专属福利和赛段挑战赛等活动玩法,入驻发文就有礼。...; 2、若当月不存在符合获奖条件的作者,则该奖项当月取消; 3、统计时以文章在腾讯云开发者社区的发布时间为准; 4、如果获奖人数超过设定的奖项人数(如出现数据相同的情况),以作者在腾讯云开发者社区累计发布的文章数为准...,取最早达成者为获奖者; 5、新作者礼品加入后次月发送;赛段评奖活动统计时间为每个赛段的开始日00:00至赛段结束日的23:59,活动结束后第5个工作日公布赛段获奖结果; 6、若当月奖品涉及腾讯云代金券...,则代金券仅发放至作者个人的腾讯云账号,不得赠送、转卖; 7、腾讯云开发者社区将在作者群、此活动帖布获奖结果,请作者们准时关注;若获奖者在结果公布后7个工作日内未成功登记领奖信息,则视为自动放弃。...禁止一切违规行为,如有发现,回收所有福利并拉黑。对活动有任何疑问,可在评论下方留言或联系社区助理(yun_assistant),或发送邮件至cloudcommunity@tencent.com。

    29510

    如何定位内存泄露

    排查内存泄漏常见问题 在 JavaScript 中,当一些不再需要的数据仍然可达时,V8 会认为这些数据仍在被使用,不会释放内存。...,在模拟用户操作一段时间后结束录制,DevTools 会将这段时间内的页面行为活动进行记录和分析。...按需选取时间线中的区域片段,检查对应时间段内的活动类型和时间占用,作为排查和定位内存泄漏的辅助办法。...当开发者明确知道与内存泄漏关联的用户交互步骤时,可以生成多次内存快照进行对比,排查出泄漏的对象:在做用户交互操作之前,进行一次正常内存堆栈信息的快照;在做用户交互操作中或操作结束时,进行内存快照。...Node.js 中的内存泄漏定位 如果需要定位 Node.js 中的内存泄漏,启动 Node.js 时带上 --inspect 参数,以便利用 Chrome DevTools 工具生成 Memory 快照数据

    2.2K00

    Flutter 2.5正式版发布,带来重大更新

    Flutter 2.5 的另一个性能改进是在 Dart 和 Objective-C/Swift (iOS) 或 Dart 和 Java/Kotlin (Android) 之间发送消息时的延迟。...同时,在 Web 上查看相机预览、拍照、使用闪光灯和缩放控件提供基本支持,不过目前还不是被认可的插件,因此开发者需要明确添加它以在才能在 Web 中使用。...此外,在跟踪应用程序中的 CPU 性能问题时,可能会被来自 Dart 和 Flutter 库或引擎本机代码的分析数据淹没,如果想关闭其他干扰,只专注于您自己的代码,您可以使用新的 CPU Profiler...彩色框架图,用于识别应用中的应用、原生、Dart 和 Flutter 代码活动。...目前,Flutter 团队的一些插件中已经使用了 Pigeon,在此版本中它提供了更多有用的错误消息,增加了对泛型、原始数据类型作为参数和返回类型以及多个参数的支持,预计开发者将来会更频繁地使用它。

    4.4K50
    领券