跳槽神器!腾讯内部出品“Jetpack全线笔记”,不止是全家桶,理论与实战结合

Android 作为后辈,可以说从2012年以来一路摸爬滚打,也沿着前端开发的路总结出了自己的 MVC 到 MVVM 道路。刚开始的时候,由于工程结构简单,许多公司处于业务起步,开发模式大多沿用 findViewById 的形式,简单粗暴,但是效率很高,不易出错,MVC 分层思想也很实用。随着业务的不断扩展,页面也不断增加,那么每个页面都进行 id 的查找操作,就产生很多冗余代码。这时候通过注解方式,在编译时候动态生成代码的框架层出不穷,以 Butter Knife 为代表。这大大减少了查找 id带来的
分类: 其他 发布时间: 11-16 13:31 阅读次数: 0

【数据结构 Java 版】玩转链表(3)双链表

文章目录一、引子二、双链表1. 概念2. 结构3. 基操的实现三、总结一、引子前面已经了解了顺序表和单链表,而在面试当中这些也是经常被提起的在继续接下来的学习前,我们要搞清以下几个问题:数组和链表的区别顺序表和链表的区别ArrayList 和 LinkedList 的区别大家发现没上述问题本质上都是同一个问题:顺序表和链表的区别那么怎么回答呢?我们可以从共性开始介绍怎么组织数据的?对于顺序表: 底层是一个数组对于链表: 每个数据是由节点组织的(由节点与节点之间的指向组织
分类: 其他 发布时间: 11-16 13:31 阅读次数: 0

iOS之深入解析KVC的底层原理和自定义KVC的实现

一、KVC 简介① 定义KVC 是 Key-Value Coding 的简称,中文译义为键值编码。KVC 是指 iOS 的开发中,可以允许开发者通过 Key 名直接访问对象的属性,或者给对象的属性赋值,而不需要调用明确的存取方法。KVC 是由 NSKeyValueCoding 非正式协议启用的一种机制,对象采用该协议来间接访问其属性,即可以通过一个字符串 key 来访问某个属性。这种间接访问机制补充了实例变量及其相关的访问器方法所提供的直接访问。通过 KVC 就可以在运行时动态地访问和修改对象的
分类: 其他 发布时间: 11-16 13:31 阅读次数: 0

第1次任务:购物车程序的面向对象设计-修改版

小组分工任务姓名面向对象设计、功能设计、博客制作郭宇豪前期调查、编码规范黄常奇1.前期调查京东商城中的购物车购物车最主要的功能为商品条目显示、商品小计、商品数量累加、商品单价显示、商品总价,附加功能为用户登录和结账。编码规范代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式也要避免采用。正例:alibaba / taobao / youku / hangzh
分类: 其他 发布时间: 11-16 13:31 阅读次数: 0

重磅首发!腾讯前晚最新爆出的“Android Studio零基础入门教材“,GitHub已评“钻级“,看完我爱了!

Android Studio简要说明Android Studio(简称AS)是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。AS能够在Linux、Windows、macOS上运行,支持使用Java、Kotlin、Flutter等语言开发。在IDEA的基础上,Android Studio 提供:基于Gradle的构建支持Android 专属的重构和快速修复
分类: 其他 发布时间: 11-16 13:31 阅读次数: 0

Java面试题-day20 Spring

Spring1. Spring特点1) 为何使用SpringSpring是一个轻量级J2EE框架。它的主要功能有控制反转(IoC)、面向切面编程 AOP)、面向接口开发、事务管理、还可以包容其它框架,使系统中用到的其它框架耦合程度大大降低,拓展性强、简单易用好管理。2. IOC1) Spring中,如何给对象的属性赋值?通过构造函数通过set方法给属性注入值自动装配(了解)byName通过参数名自动装配,如果一个bean的name 和另外一个bean的 property 相同就
分类: 其他 发布时间: 11-16 13:31 阅读次数: 0

【Java 基础语法】万字解析 Java 的包和继承

文章目录一、包1. 概念2. 使用方式3. 静态导入4. 创建包5. 包的访问权限6. 常见的系统包二、继承1. 概念2. 语法规则(含 super 使用)3. protected 关键字4. 更复杂的继承关系5. final 关键字三、组合四、总结(含谜底)一、包1. 概念根据定义:包是组织类的一种方式那么为什么要组织类呢?简单来讲就是保证类的唯一性,就比如在以后的工作中,如果大家一起开发一个项目,大家可能在自己的代码中都写到了一个 Test 类,而如果出现了两个同名的类的话,就会冲突,导致代
分类: 其他 发布时间: 11-16 13:31 阅读次数: 0

iOS之深入解析KVO的底层原理

一、KVO 简介① 概念KVO 全称 Key Value Observing,是苹果提供的一套事件通知机制,允许对象监听另一个对象特定属性的改变,并在改变时接收到事件。由于 KVO 的实现机制,所以对属性才会发生作用,一般继承自 NSObject 的对象都默认支持 KVO。KVO 和 NSNotificationCenter 都是 iOS 中观察者模式的一种实现,区别在于,相对于被观察者和观察者之间的关系,KVO 是一对一的,而 NSNotificationCenter 是一对多的,KVO 对被监
分类: 其他 发布时间: 11-16 13:31 阅读次数: 0

4.1-互评-OO之继承与static

问答尝试阅读EmployeeTest.java代码。并回答:1. raiseSalary方法有什么用?提高每个雇员的工资(5%的增长)。2. 代码中3个Employee对象调用raiseSalary方法所执行的代码一样吗?返回结果一样吗?为什么?执行的代码一样,返回结果不一样,因为他们的基础工资不同,在涨幅相同的情况下自然结果不同。3. 能不能将raiseSalary定义为static?结合该例子,你觉得一般来说什么样的方法应该声明为static?在本例中不能,因为salary不是静态的,静态
分类: 其他 发布时间: 11-16 13:31 阅读次数: 0

首发!腾讯内部流出《Android进程保活入门与实践》带你参透Android 进程保活的终究奥义!

Android 进程保活保活是什么,简单的说就是让你的App不会被轻易杀死,一直留存在用户的后台去自动执行一些关于应用程序业务需求的相关逻辑(如实时传送位置、实时消息的接收)。但是Android 系统为了保持系统运行流畅,在内存不足时,会将一些进程 kill ,以释放一部分内存。但是有些产品是有即时性的,在收到消息、推送等都是要立刻通知到用户。由此就出现了android的种种黑科技和奇葩操作来保障App的存活。Android 进程保活,一般从两个方面进行:运行中保活:提高进程优先级,降低被系统
分类: 其他 发布时间: 11-16 13:31 阅读次数: 0

Java面试题-day21 Mybatis

Mybatis1. Mybatis架构或工作流程mybatis配置SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环 境等信息。mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需 要在SqlMapConfig.xml中加载。2) 通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂3) 由会话工厂创建sqlSession即会话,操作数据库需要通过sqlSession进行
分类: 其他 发布时间: 11-16 13:31 阅读次数: 0

iOS之深入解析weak关键字的底层原理

一、weak 关键字在 iOS 开发过程中,会经常使用到一个修饰词 weak,使用场景大家都比较清晰,避免出现对象之间的强强引用而造成对象不能被正常释放最终导致内存泄露的问题。weak 关键字的作用是弱引用,所引用对象的计数器不会加1,并在引用对象被释放的时候自动被设置为 nil。...
分类: 其他 发布时间: 11-16 13:31 阅读次数: 0

悄悄告诉你,阿里P8大佬组件化和插件化教科书级特别分享!

什么是组件化和插件化?组件化开发就是将一个app分成多个模块,每个模块都是一个组件(Module),开发的过程中我们可以让这些组件相互依赖或者单独调试部分组件等,但是最终发布的时候是将这些组件合并统一成一个apk,这就是组件化开发。插件化开发和组件化开发略有不用,插件化开发时将整个app拆分成很多模块,这些模块包括一个宿主和多个插件,每个模块都是一个apk(组件化的每个模块是个lib),最终打包的时候将宿主apk和插件apk分开或者联合打包。为什么要使用它们?Android 整个开发过程中,随着产
分类: 其他 发布时间: 11-16 13:31 阅读次数: 0

5-互评-OO之接口-DAO模式代码阅读及应用

1. StudenDaoListImpl.java与StudentDaoArrayImpl.java有何不同?我认为最主要的不同在于针对不同数据库 DAO接口定义方法的具体实现不同——前者针对List集合列表实现,后者则针对数组来实现。2. StudentDao.java文件是干什么用的?为什么里面什么实现代码都没有?StudentDao.java仅作为接口,用处为把对数据库的所有操作定义成抽象方法,从而提供多种实现,所以它无需有任何实现代码,实现代码放在了 StudenDaoListImpl.jav
分类: 其他 发布时间: 11-16 13:31 阅读次数: 0

Redis的学习笔记 day02_基本数据类型

Redis作为内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它的value支持多种类型的数据结构,基本数据结构包含:字符串(strings)、 散列(hashes)、 列表(lists)、集合(sets)、 有序集合(sorted sets)五种。这五种数据结构在我们工作中经常使用到,面试过程中经常被问到,因此熟练掌握这5种基本数据结构的使用和应用场景是Redis知识最基础也是最重要的部分。1. 字符串(strings)1.1 类型介绍字符串是Redis最简单的储存类型,它存储的.
分类: 其他 发布时间: 11-16 13:31 阅读次数: 0

【Linux 初学篇】(1)目录结构、远程登录、vim 和 vi、用户管理

前言:这是我第一次接触 Linux,个人选择了 B 站的韩顺平老师的课程进行学习,韩老师的视频链接如下2021韩顺平 一周学会Linux。因此如果你也是新手学习 Linux 的话,可以借鉴我的博客,然后对照着韩老师的课程进行学习。由于是新手上路,所以有很多不足、不懂的地方。个人也计划在接下来的两周之内花时间过一遍 Linux,所以大家一起加油呀!文章目录1. Linux 目录结构1.1 基本介绍1.2 具体目录1.2.1 bin1.2.2 sbin1.2.3 home1.2.4 root1.2.5 li
分类: 其他 发布时间: 11-16 13:31 阅读次数: 0

iOS之性能优化·优化App界面的渲染与流畅

一、界面渲染流程① 渲染流程分析计算机中的显示过程通常是通过 CPU、GPU、显示器协同工作来将图片显示到屏幕上,如下图所示:苹果为了解决图片撕裂的问题使用了 VSync + 双缓冲区的形式,就是显示器显示完成一帧的渲染的时候会向发送一个垂直信号 VSync,收到这个这个垂直信号之后显示器开始读取另外一个帧缓冲区中的数据而 App 接到垂直信号之后开始新一帧的渲染。CPU 计算好显示内容,提交至 GPU;GPU 经过渲染完成后将渲染的结果放入 FrameBuffer(帧缓存区)
分类: 其他 发布时间: 11-16 13:30 阅读次数: 0

面试都不会,你还会什么?

前不久,我们技术交流群里的一个小学弟说遇到了一件让他很难受的事情,希望老皮能够给他点意见。一开始我还以为是什么感情纠纷啥的,就比如:我喜欢A,而A却喜欢B,B却是我的好兄弟这种狗血剧情,于是我耐心地等待下文,却没想到…就这?就这?就这?这对于工作了两到三年安卓开发者来说不是有手就行吗?(不要打我,我带了头盔,怕伤着宝)咳咳咳,当然玩笑话就到这吧,相信大多数人对于进大厂都会带有一丝紧张的行李,觉得自己是否合格,话不多说,接下来老皮就给你们讲讲如何在面试中拿下offer。今天我们从面试本身出发,一来
分类: 其他 发布时间: 11-16 13:30 阅读次数: 0

第1次任务:购物车程序的面向对象设计-DAO

小组分工任务姓名面向对象设计、功能设计、DAO模式设计、博客制作郭宇豪前期调查、编码规范、主菜单编写黄常奇1.前期调查京东商城中的购物车购物车最主要的功能为商品条目显示、商品小计、商品数量累加、商品单价显示、商品总价,附加功能为用户登录和结账。编码规范代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式也要避免采用。正例:alibaba / taobao /
分类: 其他 发布时间: 11-16 13:30 阅读次数: 0

Java面试题-day22 SpringMVC

SpringMVC1. Spring MVC比较 Struts2springmvc的入口是一个servlet即前端控制器,而struts2入口是一个filter过虑器。springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。Struts采用值栈存储请求和响应的数据,通过OGNL存取数据, springmvc通过参数解析器是将request请求内容解析,并给方
分类: 其他 发布时间: 11-16 13:30 阅读次数: 0