自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 前言(1),重难点整理

技术 : JavaScript空数组是true吗?JavaScript是单线程吗js精度问题 0.1+0.2 === 0.3 //false你觉得英语水平会影响编程吗 (答影响不大)原谅我只记住了这些,这次面试技术上更偏向于js基础知识,问了很多口头判断题,只需要回答yes or no就可以了。 如果有想去向清远墨墨这样的小公司实习的,笔者建议多了解这个公司的相关信息,因为很可能接触到BOSS的灵魂拷问。清远墨墨公司压力相比于大厂小,公司里养了很多猫,还是个猫咖。如果不是为了面包,笔者是很青睐这.

2021-09-08 17:13:19 319

原创 到底怎样写 try-catch,才能称之为高手,2021金九银十

}public void doB(){ System.out.println("I am doing B");}public void doC(){ int i = 1/0; System.out.println("I am doing C");}public void doD(){ System.out.println("I am doing D");}public void doE(){ System.out.

2021-09-08 17:11:40 229

原创 别拦我,我不想搞Android开发了,大厂面试必问

原创 刘望舒 [后厂技术官](javascript:void(0)???? 2019-08-31皇叔读完需要9分钟速读仅需5分钟这篇文章开头,我先举几个赤裸裸的例子,都是最近朋友和网友跟我说的。1.高不成低不就,就业困难网友小张 :刘哥,我在北京做了4年,平常没有注意技术的积累,然后找了2个月还没有找到满意的工作,总的来说就是高不成低不就的。我该怎么办啊?2.年龄超过32岁,企业开始嫌弃。朋友老张:我36了,最近联系猎头找个工作,猎头说只能找技术管理类的了,纯开发的一般公司 32 岁的

2021-09-08 17:09:50 193

原创 别再说你不懂线程池,当上项目经理才知道

4.TimeUnit -> keepAliveTime的单位TimeUnit是一个枚举类型,其包括:NANOSECONDS : 1微毫秒 = 1微秒 / 1000MICROSECONDS : 1微秒 = 1毫秒 / 1000MILLISECONDS : 1毫秒 = 1秒 /1000SECONDS : 秒MINUTES : 分HOURS : 小时DAYS : 天5.BlockingQueue workQueue -> 线程池中的任务队列默认情况下,任务进来之后先分配给核心线程执

2021-09-08 17:08:13 134

原创 利用opencv实现抖音最强变脸术,百度Android岗一面+二面内容

⎤​如果我们想要旋转30度,可以使用一下代码:img = cv2.imread("./imgs/2.jpg")theta = math.radians(-30)M = np.float32([[np.cos(theta), -np.sin(theta), 0],[np.sin(theta), np.cos(theta), 0]])dst = cv2.warpAffine(img, M, (img.shape[1], img.shape[0]))cv2.imshow("", dst)

2021-09-08 17:06:43 462

原创 初冬太冷,腾讯T2大佬手把手教你

4.Context 导致内存泄漏根据场景确定使用Activity的Context还是Application的Context,因为二者生命周期不同,对于不必须使用 Activity 的 Context 的场景(Dialog),一律采用 Application的 Context,单例模式是最常见的发生此泄漏的场景,比如传入一个 Activity 的Context 被静态类引用,导致无法回收5.静态 View 导致泄漏使用静态 View 可以避免每次启动 Activity 都去读取并渲染 View,但是静态

2021-09-08 17:05:01 170

原创 出身最奇葩的程序员:360行,深入分析

没有办法从产出知道Jelena Jensen的技术水平如何,但是,据了解,Jelena Jensen不仅精通PHP、MySQL等后端技术,而且个人网站的前端部分,也全部由自己一个人完成,这意味着,HTML、CSS、JavaScript等前端技术,她也都掌握了。人家不仅会,而且还会的很多,还挺强!一个外行零基础入门都能做到这么好,“专业”的你还要靠这行技术吃饭,你又能做到什么程度呢?一起来看看吧。(写给咱们Android的,非专业就撤了吧,下面不用看了)初级我对初级研发攻城狮的定义是掌握基础的 a

2021-09-08 17:03:19 1724

原创 Handler-post和View-post的区别,别再说你不会

从上面的源码,我们大概可以看出`mAttachInfo`字段在这里比较关键,当其有值时,其实和普通的`Handler.post`就没区别了,但有时它是没值的,比如我们上面示例代码里的onCreate阶段,那么这时执行到了`getRunQueue().post(action);`这行代码,从这段注释也大概可以看出来真正的执行会被延迟(这里的`Postpone`注释);我们接着往下看看getRunQueue相关的代码,如下:/** 其实这段注释已经说的很清楚明了了!!!* Queue of pend.

2021-09-06 20:17:03 246

原创 Handler-post和View-post的区别(1),看这一篇就够了

从上面的源码,我们大概可以看出mAttachInfo字段在这里比较关键,当其有值时,其实和普通的Handler.post就没区别了,但有时它是没值的,比如我们上面示例代码里的onCreate阶段,那么这时执行到了getRunQueue().post(action);这行代码,从这段注释也大概可以看出来真正的执行会被延迟(这里的Postpone注释);我们接着往下看看getRunQueue相关的代码,如下:/** 其实这段注释已经说的很清楚明了了!!! * Queue of pending ru

2021-09-06 20:15:18 191

原创 Handler 都没搞懂,拿什么去跳槽啊,Android开发社招面试总结

// 不断从 MessageQueue 获取 消息 Message msg = queue.next(); // might block //退出 Looper if (msg == null) { // No message indicates that the message queue is quitting. return; } //... try { msg.target.dispatchMe...

2021-09-06 20:13:41 123

原创 Google被算法(送分题,做了6年的Android

13.ViewModel在Activity初始化与在Fragment中初始化,有什么区别?14.kotlin与Java互相调用有什么问题?15.retrofit怎么做post请求16.界面优化的一些方法,ConstraintLayout实现三等分,ConstraintLayout动画.17.CoordinatorLayout自定义behavior,可以拦截什么?网易云音乐二面1.你们的项目中做过什么比较难的工作?2.视频播放,一个player怎么实现预加载,避免loading2.webVie

2021-09-06 20:12:03 196

原创 Google大佬自述:天才程序员竟也有不为人知的秘密,还在等机会

如果你已经是一个程序员的话,我想你的回答应该和大多数人是一致的。我们希望我们能更多地独立完成一些事情,也不喜欢像是code review这样繁文缛节的环节,我们自己保证代码的质量就可以了嘛,为什么非常接受别人的审判呢?有的时候一些低级错误会让我们显得很傻,但错误在所难免不是吗?大佬们没有直接给出观点,但他们给出了一个事实,就是在Google,所有的代码都必须经过code review才允许合并。其实这些问题与其说是强调code review的重要性,不如是拷问一下我们的心态,我们对于与人合作这件事情究竟有

2021-09-06 20:10:33 315

原创 google protocol buffer全解析------田纪原,快速上手

}unknownFields.writeTo(output);}对于Person类,我们最后再看一下parseFrom方法,这个方法有很多的重载,然而本质都是一样的,通过***PARSER\***去处理数据,这里我就不全贴出来了```javapublic static cn.tera.protobuf.model.BasicUsage.Person parseFrom(byte[] data) throws com.google.protobuf.InvalidProtoc.

2021-09-06 20:08:52 555

原创 Glide源码难看懂?用这个角度让你事半功倍,经验总结

// 清除请求void clear();// 暂停请求void pause();}请求类已经设计好了,那么在Request的begin的时候就开始获取图片;当图片请求完之后,或者加载失败,加载展位图,都需要对控件进行设置,因此还需要设计一个类,专门用于设置图片控件;于是小明设计出了一个ImageViewTarget,用于设置图片控件,请看下面的伪代码;public class ImageViewTarget {public void onLoadSt.

2021-09-06 20:07:11 82

原创 Android题集四大组件之Service,大厂面经合集

Service 有绑定模式和非绑定模式,以及这两种模式的混合使用方式。不同的使用方法生命周期方法也不同。非绑定模式:当第一次调用 startService 的时候执行的方法依次为 onCreate()、onStartCommand(),当 Service 关闭的时候调用 onDestory 方 法。绑定模式:第一次 bindService()的时候,执行的方法为 onCreate()、 onBind()解除绑定的时候会执行 onUnbind()、onDestory()。上面的两种生命周期是

2021-09-05 19:00:24 170

原创 Android音视频开发之,全网疯传

int audioFormat, int bufferSizeInBytes, int mode, int sessionId)* streamType,Android手机上提供音频管理策略,按下音量键我们会发现由媒体声音管理,闹铃声音管理,通话声音管理等等,当系统有多个进程需要播放音频的时候,管理策略会决定最终的呈现效果,该参数的可选值将以常量的形式定义在类AudioManager中,...

2021-09-05 18:58:44 307

原创 Android面试题之Fragment篇,安卓面试题2020

提示:以下是本篇文章正文内容Fragment=======================================================================1.如何切换 fragement(不重新实例化)翻看了 Android 官方 Doc,和一些组件的源代码,发现 replace()这个方法只是在上一个 Fragment不再需要时采用的简便方法.正确的切换方式是 add(),切换时 hide(),add()另一个 Fragment;再次切换时,只需 hide()当

2021-09-05 18:55:39 181

原创 Android面试官:想进大厂先把基础打牢了再说,腾讯T3手把手教你

3.常用的状态码1XX - 临时消息。服务器收到请求,需要请求者继续操作。2XX - 请求成功。请求成功收到,理解并处理。3XX - 重定向。需要进一步的操作以完成请求。4XX - 客户端错误。请求包含语法错误或无法完成请求。5XX - 服务器错误。服务器在处理请求的过程中发生了错误。常见状态码:200 OK - 客户端请求成功301 - 资源(网页等)被永久转移到其它URL302 - 临.

2021-09-05 18:54:00 173

原创 Flutter目录,图文详解

机会总是留给等待与忍耐的人.1.基础组件:Flutter的介绍.StatelessWidget与基础组件(1.1)StatefluWidget与基础组件(1.2)如何进行Flutter布局开发(1.3)Flutter 如何创建Flutter路由与导航(1.4)Flutter 如何进行Flutter点击事件响应和手势监听(1.5)Flutter Widget生命周期以及应用周期(1.6)Flutter 手机拍照,选取照片功能实战2.图片缓存,theme与动画Flutter 图片缓存(.

2021-09-03 18:38:10 271

原创 Flutter教程(二) 了解Dart语言,万字总结

此外,我们有机会与Dart社区密切合作,Dart社区正在积极投入资源改进Dart在Flutter中的使用。例如,当我们采用Dart时,该语言没有提供生成原生二进制文件的工具链(这对于实现可预测的高性能是很有帮助的),但是现在实现了,因为Dart团队为Flutter构建了它。同样,Dart VM之前已经针对吞吐量进行了优化,但团队现在正在优化VM的延迟时间,这对于Flutter的工作负载更为重要。Dart在以下主要标准上得到高分:开发人员的效率。Flutter的主要价值主张之一是通过让开发人员使用相同.

2021-09-03 18:35:00 626

原创 Flutter提升开发效率的一些方法和工具,腾讯Android面试题

2.代码模板最简单的一个例子,就是在写一个有状态StatefulWidget的时候,要手动继承StatefulWidget,重写createState方法,再创建一个相应的State类并重写build方法。会写到你吐血。这个时候就需要一些代码模板,帮你快速生成代码。反正百度一下肯定有些导入Flutter代码模板的教程。比如直接打出stf,就可以自动提示生成StatefulWidget的代码了。3.Asset资源文件的导入Flutter中,常见类型的asset包括静态数据(例如JSON文件),.

2021-09-03 18:33:26 114

原创 Flutter技术调研报告,腾讯T4架构师

Widget树:就是我们的UI组件树,但这个只是一种描述信息,渲染引擎是不认识的RenderObject树:这才是渲染引擎真的认识的,我们需要将 Widget 转化为能用来渲染视图的 Render Object虚拟DOM解决了一个重要的矛盾:就是 DOM 操作的性能损耗与频繁进行局部 DOM 操作的矛盾没用虚拟DOM之前:DOM会在每一次元素更新到来之时渲染一次DOM用了虚拟DOM之后:虚拟DOM会先汇总各个元素的更新情况,通过diff算法计算出与原来 DOM 树的差异,最后通过一次 DOM 更新解

2021-09-03 18:31:44 301

原创 Flutter开发环境搭建和调试,最新Android开发进阶

开发环境的搭建1. 下载Flutter SDKFlutter SDK由两部分构成,一个是Dart SDK,另一个就是Flutter SDK,因为Flutter是基于Dart的。可以通过两种方式下载:一种是Git下载;另一种是直接下载SDK压缩包即可。Git方式我们可以通过拉取官方Github上的flutter分支来下载。分支分类如下图:可以看到主要有dev、beta和stable三个官方分支使,这里正式开发的话可以下载stable稳定版本。用Git命令进行下载stable分支:git clone

2021-09-03 18:30:15 332

原创 JMS与消息中间件,2021年五面蚂蚁

发送者发送了消息之后,不管接收者有没有正在运行,它不会影响到消息被发送到队列接收者在成功接收消息之后需向队列应答成功如果希望发送的每个消息都应该被成功处理的话,使用这个P2P模式。Topic/ 主题(发布订阅(Pub/Sub) )[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DmeVVZeL-1630578333595)(图片2.jpg)]1、消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息。和点对点方式不同,发布到topic的消息

2021-09-02 18:25:44 120

原创 Jetpack系列,字节跳动厂内部超高质量Flutter+Kotlin笔记

class MyViewModel : ViewModel() { var handler: Handler = object : Handler() { var i = 0 override fun handleMessage(msg: Message) { super.handleMessage(msg) print(i++) sendEmptyMessageDelayed(.

2021-09-02 18:24:02 146

原创 Jetpack系列(十) — 测试 ,2021Android高级面试题总结

```Room 测试在androidTest 文件夹下新建测试类```@RunWith(AndroidJUnit4::class)class WordDaoTest {private lateinit var database: AppDataBaseprivate lateinit var wordDao: WordDaoprivate val word1 = Word("hello")private val word2 = Word("world")@get:Rulevar.

2021-09-02 18:22:33 245

原创 Jetpack_Data Binding入门指南,走进Android架构

如果是在Fragment、Adapter中使用,那就要换个姿势了。val listItemBinding = ListItemBinding .inflate(layoutInflater, viewGroup, false)//或者val listItemBinding = DataBindingUtil .inflate(layoutInflater, R.layout.list_item, viewGroup, false) 恭喜,你已经入门了

2021-09-02 18:20:57 107

原创 Java线程池(二,妈妈再也不用担心我找工作了

this.corePoolSize = corePoolSize; // 核心池大小 this.maximumPoolSize = maximumPoolSize; // 线程池最大容量 this.workQueue = workQueue; // 阻塞队列 this.keepAliveTime = unit.toNanos(keepAliv...

2021-09-02 18:19:11 62

原创 java中使用Spring security(二,小程序开发教程

上一篇,我们讲述的spring security的基础使用。但是对于一些复杂权限场景,我们需要更高级一些的功能。我们接着往下展示它的高级部分。<security:authentication-manager>的内部高级设置在上一篇的Spring security设置示例中,我设置了authentication-manager来检查登录用户凭证,并使用标签中定义的纯文本用户。如下所示,您可以在此处为您的应用程序定义多个用户。<security:user-service>

2021-09-02 18:17:29 215

原创 2020年,网易资深安卓架构师

看见有人提问“Android开发想自学可能吗,大概要多久?”,想着自己好歹也是工作了快六年的老Android,就在这里特意写了一篇文章回答一下,希望对大家的自学之路有所帮助。一、能不能自学Android自学Android怎么不可能?我见过30岁自学Android,并最后成功进入Android开发行业的朋友。大家感兴趣的热可以看看↓↓↓乘风破浪:都30岁“老人”了,居然还转职程序员?_m0_46962786的博客-CSDN博客不过,在自学前要考虑清楚:我真的要学Android吗?我为什么要学Andro

2021-09-01 10:54:01 86

原创 2020Android面试心得,已拿到offer,技术实现

七、int、Integer有什么区别主要考值传递和引用传递问题八、手写生产者/消费者 模式(二)Android一、android启动模式需要了解下Activity栈和taskAffinity1.Standard:系统默认,启动一个就多一个Activity实例2.SingleTop:栈顶复用,如果处于栈顶,则生命周期不走onCreate()和onStart(),会调用onNewIntent(),适合推送消息详情页,比如新闻推送详情Activity;3.SingleTask:栈内复用,如果存在栈

2021-09-01 10:52:37 541

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除