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

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

OnRestart():Activity停止之后,再次开始之前调用!...因此,例如,如果在Activity中启动AsyncTask且用户旋转设备,则Activity将被销毁(创建一个新Activity实例),但AsyncTask不会死亡,而是继续生存直到完成; 当AsyncTask...commit() 同步写入数据,根据结果立即返回成功或失败boolean类型。 apply()是异步不会返回任何布尔响应。...17、面试官:RecyclerView 它是怎么工作? 应聘者:它是一个列表,有自己适配器 onBindViewHolder 方法中进行数据绑定! 面试官:给你补充一下!... ListView 中, findViewById() 滚动 ListView 期间,代码可能会频繁调用,这可能会降低性能。即使适配器返回膨胀视图以进行回收,仍然需要查找元素并进行更新

2K20

「首席看软件架构」DDD,六边形,洋葱,干净,CQRS整合架构

因此,有点沉迷于试验、阅读和写作,特别关注软件设计和体系结构。这就是写这些帖子原因,来帮助我学习。 上一篇文章中,写了很多学过概念和原则,以及是如何推理。...可以想象,典型应用程序流从用户界面中代码开始,通过应用程序核心到基础设施代码,然后返回到应用程序核心,最后向用户界面交付响应。 ?...域模型 最中心是域模型,它不依赖于它之外任何东西,它包含表示域内某些内容业务对象。这些对象示例首先是实体,但也包括对象、枚举和域模型中使用任何对象。 域模型也是域事件“活动地方。...持有数据副本组件将侦听域事件,相应地更新其本地副本。 控制流 正如我上面所说,控制流当然是从用户到应用程序核心,再到基础设施工具,最后回到应用程序核心,最后回到用户。...查询对象将包含一个优化查询,查询将简单地返回一些原始数据以显示给用户。数据将以DTO形式返回注入到ViewModel中。这个视图模型可能有一些视图逻辑,它将被用来填充一个视图。

5K22
您找到你想要的搜索结果了吗?
是的
没有找到

「领域驱动设计」DDD,六边形架构,洋葱架构,整洁架构,CQRS整合架构

可以想象,典型应用程序流从用户界面中代码开始,通过应用程序核心到基础设施代码,然后返回到应用程序核心,最后向用户界面交付响应。...域模型 最中心是域模型,它不依赖于它之外任何东西,它包含表示域内某些内容业务对象。这些对象示例首先是实体,但也包括对象、枚举和域模型中使用任何对象。 域模型也是域事件“活动地方。...持有数据副本组件将侦听域事件,相应地更新其本地副本。 控制流 正如我上面所说,控制流当然是从用户到应用程序核心,再到基础设施工具,最后回到应用程序核心,最后回到用户。...查询对象将包含一个优化查询,查询将简单地返回一些原始数据以显示给用户。数据将以DTO形式返回注入到ViewModel中。这个视图模型可能有一些视图逻辑,它将被用来填充一个视图。...另一方面,应用程序服务将包含用例逻辑,当我们希望系统中执行某些操作时,而不是简单地查看某些数据时,将触发逻辑。应用程序服务依赖于存储库,存储库将返回包含需要触发逻辑实体。

1.9K30

Android之MaterialDesign应用技术

,LayoutParams是布局参数,textview这个控件是协调者布局中滑动,所以,要获取布局参数,然后再设置行为。...,往上滑图标不显示, 原因:很多段子软件中,会有大量文字和图片,当用户往下翻时候,也就是说内容会不断在上方消失,下面的内容不算刷新出来,这时右下角出现一个辅助用户回到顶部按钮,因为往上翻时候可能加载了很多...baseadapter类似,里面都是数据和泛型,但是适配器是写了Viewholder,onBindViewHolder返回数据项,onCreateViewHolder()方法是加载控件,也就是样式,...返回 是一个对象。...,其实呢,这就是更新一下适配就行了,这里更新数据改了,为了就让大家可以看清刷新了, img.setOnClickListener(new View.OnClickListener() {

1.3K90

基于Android开发天气预报app(源码下载)「建议收藏」

而且和风天气api接口返回JSON数据类型也比较简单,作为Android初学者做项目是比较好。想使用接口只需要简单注册一个账号就可以了(对返回数据处理我后面再详细说明)。...4、定位信息获取api 这里使用是百度提供免费api接口http://lbsyun.baidu.com/apiconsole/key,因为Android原生定位API国产手机中一般被阉割了,或者国内网络限制原因...3、城市管理界面中点击添加按钮进入到城市添加界面 4、城市管理界面中点击返回按钮回到城市天气信息显示界面 5、添加城市界面中添加完成或者点击返回按钮回到城市天气信息显示界面 6、系统总体和局部流程设计...设计是使用三个Activity去和用户交互,参照项目截图,其中WeatherActivity作为启动活动,用于显示天气信息,提供是多页带导航栏可左右滑动效果。...通过点击右上角编辑按钮进入城市管理功能 这里实现就很基础了,简单讲一下步骤: 1、布局文件定义按钮 2、程序中找到按钮设置监听器 3、响应事件中做进入城市功能活动逻辑 导航组件功能

2.6K10

消息栏通知(Notification)介绍

,我们还可以更新某些通知: manager.notify(id, new_notification); 3由于Notification包装内容为Intent,我们就可以方便地为通知被点击触发事件传...2、PendingIntent.FLAG_ONE_SHOT send()只能被执行一次,即是说,假如通知点击后不消失,那么再次点击不会发生任何事。...如果PendingIntent已经存在,则在生成新之前取消当前。...,很快你就会发现 每次点击通知,都正确弹出你要Activity,但是之前打开Activity依旧存在 方法有二: 1、ActivityonPause()方法体中增加: finish(); 这样...,MainActivity.class); 第一个参数为产生意图(Intent)活动,这个逻辑再清晰不过了,要做事情得有个发出主体 第二个参数为意图对象,即是这个意图是什么,我们来看看。

1.5K30

Jetpack源码解析—LiveData使用及工作原理

LiveData会进行自动管理这些事情,因为观察时,它会感知到相应组件生命周期变化。 5. 始终保持最新数据 如果一个对象生命周期变到非活跃状态,它将在再次变为活跃状态时接收最新数据。...例如,后台Activity返回到前台后立即收到最新数据。 6. 正确应对配置更改 如果一个Activity或Fragment由于配置更改(如设备旋转)而重新创建,它会立即收到最新可用数据。...Fragment生命周期进行了绑定,当返回桌面或者销毁Fragment时候,LiveData会变成相应生命周期函数,打印控制台中: class LiveDataFragment : Fragment...String类型,当这个发生改变时候,可以回调中监听到他改变。...不处于活动状态(例如onPasue()、onStop())时,LiveData是不会回调observe(),因为没有意义.

99820

当一个http请求来临时,SpringMVC究竟偷偷帮你做了什么?处理器映射器与处理器篇

上一篇文章,将 Handler处理器映射器做了一个很详细流程分析,那么本篇文章会围绕 处理器适配器、 处理器两个流程来分析源码! 1....因此,SpringMVC根据请求路径找到对应对应映射方法后如何判断这个方法是根据上面三种那种方式创建出来呢?此时处理器适配器就派上用场了!看一段代码!...因为上面说了,有三种控制器编码方式,所以会有三种对应处理器! ? 方法会循环所有的适配器方案,直到直到合适处理器,返回,否则就会抛出 ServletException异常! 2....,从Bean工厂中拿到对象实例,传递参数进行设置行方法,获取方法返回!...拿到返回之后,逐级返回回到 org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod#invokeAndHandle

30420

深度解密Go语言之基于信号抢占式调度

识别事故本质,并且用一个非常简单示例展示出来,是功力一种体现。那次事故原因可以简化成如下 demo: ? demo-1 来简单解释一下上面这个程序。...和前一个 demo 不同点在于,主 goroutine 里,我们手动执行了一次 GC;最后,打印 x 。 如果你能答对第一题,大概率也能答对第二题。 下面就来揭晓答案。...至于 x 为什么输出是 0,不太好解释,因为这是一种未定义(有数据竞争,正常情况下要加锁)行为,可能一个原因是 CPU cache 没有来得及更新,不过不太好验证。...这个 ip 其实就是返回地址,也就是调用完子函数接下来执行啥指令地址。所以 push ip 就是 call 一个子函数之前,将返回地址压入栈中,然后 JMP 到子函数地址执行。...异步抢占 当执行完 sighandler,执行流再次回到线程。

2.9K10

提示 Data Binding 库使用经验教训

最糟糕实践是这类适配器,它们生成格式化字符串设置到 TextViews 控件,这些适配器通常仅在同一个布局文件中使用: 虽然这可能看起来很聪明,但是有三大缺点: 优化它们过程太痛苦。...根据定义,你 binding adapter 不会返回,它们接收一个输入参数后设置 view 属性。...所以回到场景,布局最终看起来是这样: 所以我最终获取一个包含所有 UI 状态全局 ViewState 实例,并且你可以想象出这些状态经常会发生变化。...UI 状态任何轻微变化都会产生一个全新 ViewState,被传递到我们 data binding 实例。 所以问题是什么?...如果你 UI 状态不经常变化(可能在创建时有一些次)并且变量数量较少时,我会推荐使用此模式。 个人一直布局中使用单个变量,传入 ViewState 实例,依赖于我们视图绑定合理地运行。

68520

Data Binding 库使用经验教训

最糟糕实践是这类适配器,它们生成格式化字符串设置到 TextViews 控件,这些适配器通常仅在同一个布局文件中使用: 虽然这可能看起来很聪明,但是有三大缺点: 优化它们过程太痛苦。...根据定义,你 binding adapter 不会返回,它们接收一个输入参数后设置 view 属性。...所以回到场景,布局最终看起来是这样: 所以我最终获取一个包含所有 UI 状态全局 ViewState 实例,并且你可以想象出这些状态经常会发生变化。...UI 状态任何轻微变化都会产生一个全新 ViewState,被传递到我们 data binding 实例。 所以问题是什么?...如果你 UI 状态不经常变化(可能在创建时有一些次)并且变量数量较少时,我会推荐使用此模式。 个人一直布局中使用单个变量,传入 ViewState 实例,依赖于我们视图绑定合理地运行。

40720

由 Underscore 与 Lodash 差异引发思考

回到之前问题,既然parseInt不能直接作为_.map回调处理,而我又不想使用匿名函数间接调用parseInt刻板方法,那么还有其他办法吗?答案是有的。...,接收单一参数,而在匿名函数中又再次返回一个匿名函数,同样接收单一参数,直到柯里化函数执行两次时,被柯里化函数得以执行,两级柯里化参数逆序传入而返回。...所以,更准确地说,无论你给_.identity传入多少个参数,结果都是返回给你传入第一个参数。这样一想,传三个参数给它,结果它只把第一个参数返回了,剩余那两个参数呢?消失茫茫人海之中,不见了。...可是它是有局限性,它只能过滤第一个参数。假如某种情况下要过滤出输入参数前两个参数,这回怎么办?我们知道函数只能返回一个,要返回多个的话,则可以将多个以数组形式返回。...之前我们调用take2时候传递给它是单个单个参数,可是这回调用时传递却是数组参数。不行,我们需要适配器,我们需要将单个单个参数转化为数组参数适配器——我们需要unsplat适配器

7.9K90

【深度】函数运行时在内存中是什么样子?

函数执行活动轨迹:栈 玩过游戏同学应该知道,有时你为了完成一项主线任务不得不去打一些支线任务,支线任务中可能还有支线任务,当一个支线任务完成后退回到前一个支线任务,这是什么意思呢,举个例子你就明白了...至此,我们解决了控制转移中“从哪里来”问题。 传递参数与获取返回 函数调用与返回使得我们可以编写函数,进行函数调用。...但调用函数除了提供函数名称之外还需要传递参数以及获取返回,那么这又是怎样实现呢? x86-64中,多数情况下参数传递与获取返回是通过寄存器来实现。...同样,函数B也可以将返回写入寄存器,当函数B执行结束后函数A从寄存器中就可以读取到返回值了。 我们知道寄存器数量是有限,当传递参数个数多于寄存器数量怎么办呢?...这样的确会有问题,因此我们向寄存器中写入局部变量之前,一定要先将寄存器中开始保存起来,当寄存器使用完毕后再恢复原值就可以了。 那么我们要将寄存器中原始保存在哪里呢?

1.2K20

「GAN之父」从苹果跑路,库克悔悟:居家办公或可保留

库克口风软化:没说一定要厂啊 鉴于Ian Goodfellow老师AI业界地位,他跳槽,应该是帅到惊动了公司最高层。...备忘录表示最近新冠病例数量上升是推迟原因,不过没有提到他们打算何时再启动计划的确切日期。苹果员工仍然需要每周在办公室工作两天,现在还必须在公共区域佩戴口罩。...Ian Goodfellow这次从苹果突然宣布离职原因,改写一句中文网络上流传十年老梗就能说明:「返工是不会返工,这辈子都不会返工。」...水面上,被引用最多大牛Ian Goodfellow直接表示:你让返回办公室工作,还不如让走人,这就走。...干了两年多,2019年,Goodfellow再次离开谷歌,加入了苹果。担任机器学习特殊项目组主管。

25020

大神Goodfellow去向定了:回归谷歌,DeepMind继续远程办公

本月初,任苹果机器学习总监 Ian Goodfellow 宣布加入公司三年后辞职,部分原因是苹果公司关于重返办公室工作政策。...这次岗政策,确实造成了一部分员工流失。一位前苹果员工表示:「居家办公之后,所有的事情都变了。现在我们不得不回到办公室,堵车两小时,然后雇人帮我们照顾小孩。」...这位员工离开,部分原因就是因为苹果对于返回办公室严格要求。...「坚信对团队来说,更大灵活性将是最好政策,」Goodfellow 告别信中写道。 但随着疫情形势变化,苹果已经推迟了本来要求员工每周来办公室坐班三天计划。...公司还告知员工,他们必须在公共场所再次戴上口罩,至少硅谷办公室是这样。另外,美国苹果零售店员工周二被告知,大约 100 家美国零售店将再次要求员工戴口罩,这一要求曾在三月份疫情缓和时取消过。

37520

程序员应如何理解高并发中协程

,但是协程下当执行完print("a")后func就会因“暂停返回”这段代码返回到调用函数。...写一个return也能返回,就像这样: void func() { print("a") return print("b") 暂停返回 print("c") } 直接写一个return...需要注意是,当普通函数返回后,进程地址空间中不会再保存该函数运行时任何信息,而协程返回后,函数运行时信息是需要保存下来,那么函数运行时状态到底在内存中是什么样子呢,关于这个问题你可以参考这里...接下来我们调用协程,使用next(co),运行函数A看看执行到第3行结果是什么: a 显然,和我们预期一样,协程funcprint("a")后因执行yield而暂停返回函数A。...a in function A b 看到了吧,协程是一个很神奇函数,它会自己记住之前执行状态,当再次调用时会从上一次返回点继续执行。

91020

Axios 如何缓存请求数据?

另外之前也写过 axios源码文章,是转载次数(16次)最多一篇文章,好久没写好文章了,惭愧惭愧。 点击下方卡片关注,或者查看源码等系列文章。...一、如何设计缓存 计算中,缓存是一个高速数据存储层,其中存储了数据子集,且通常是 短暂性 存储,这样日后再次请求数据时,速度要比访问数据主存储位置快。...介绍如何增强默认适配器之前,我们先来回顾一下 Axios 完整请求流程: ?...,它接收一个 config 参数返回一个 Promise 对象。...2.1 定义辅助函数 2.1.1 定义 generateReqKey 函数 增强 xhrAdapter 适配器之前,我们先来定义一个 generateReqKey 函数,该函数用于根据当前请求信息,

1.4K20

「GAN之父」从苹果跑路,库克悔悟:居家办公或可保留

库克口风软化:没说一定要厂啊 鉴于Ian Goodfellow老师AI业界地位,他跳槽,应该是帅到惊动了公司最高层。...备忘录表示最近新冠病例数量上升是推迟原因,不过没有提到他们打算何时再启动计划的确切日期。苹果员工仍然需要每周在办公室工作两天,现在还必须在公共区域佩戴口罩。...Ian Goodfellow这次从苹果突然宣布离职原因,改写一句中文网络上流传十年老梗就能说明:「返工是不会返工,这辈子都不会返工。」...水面上,被引用最多大牛Ian Goodfellow直接表示:你让返回办公室工作,还不如让走人,这就走。...干了两年多,2019年,Goodfellow再次离开谷歌,加入了苹果。担任机器学习特殊项目组主管。

26230

三大JS设计模式(工厂 单例 适配器)模式。通俗易懂理解等你来理解

,然后是先让最上面的先初始化再说吧 //然后是先自己执行,然后是看看是不是第一次,如果是那就实例化最上面的函数,然后是先类.函数然后是返回到最上面的那个执行login,然后是类.函数然后是返回到最上面...因为i把他看成了私有构造方法了 //然后是自执行,()()会不同,,所以这样, //然后看看闭包里面如果没有就创建,然后是初始化,然后是 //因为if里面只能执行一次,所以是在外面先返回到首部,然后是返回到最下面完成...因为单例关键就是只有一个实例,举个例子把,比如我写购物车是不是购物车只能才能知道里面到底有什么啊 //适配器模式(不同) //思想:因为旧接口不兼容啊所以须要适配器适配一下,兼容才能插到里面...核心是什么呢,来告诉你,比如我德国,德国没有插头对应插槽,为什么没有,因为他插头是圆圆,所以插槽也是圆圆。...所以需要适配器,这个适配器功能是有两个,第一个是适配中国插头,另一边对应着德国插槽所需要插头. 你们可能有一个问题?

62730

接手了一个“垃圾”系统,全栈优化后将性能提升了350倍

所在前一家公司构建了一个大规模捐赠和支付软件系统,一些盛大节日里,我们一次活动中就会收到成千上万笔捐款。在那家公司其中一项职责就是扩展这个系统,确保它不会崩溃。...Dog-Piling 当用户试图某个退出缓存后,但在 CacheUpdateJob 重新缓存它之前访问时,就会导致缓存未命中,从而导致被实时计算。...缓存未命中后,任何一个请求成功并将插入到缓存中之前,所有访问数据请求都将执行一个资源密集型查询,这将显著增加资源使用,特别是在数据库 CPU。...对于那些不经常访问活动,我们不需要更新这些。对于那些活跃活动,我们更新得更频繁,它们缓存优先级更高。 内存不足 随着“捐赠日”活动开展,这项业务越来越成功。...这确保了几乎在所有情况下,缓存都以一种或另一种形式存在,从而避免计算,除非被 CacheUpdateJob 强制更新或客户成功团队请求手动更新这个

70230
领券