首页
学习
活动
专区
工具
TVP
发布

向治洪

《React Native移动开发实战》1,2《Kotlin实战》《Weex开发实战》和《Flutter实战》开发交流群:515980159
专栏成员
1369
文章
2447929
阅读量
129
订阅数
Flink面试题汇总
Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。并且 Flink 提供了数据分布、容错机制以及资源管理等核心功能。Flink提供了诸多高抽象层的API以便用户编写分布式任务:
xiangzhihong
2023-02-01
1.5K0
Android工程师的面试指南
⼜到了传统的“⾦九银十”换⼯作的⾼峰期,在互联⽹寒冬下,抓住机会就显得尤为重要,特别是现在移动开发已经严重饱和的情况下。那作为 Android ⼯程师的我们应该从哪些⽅⾯去准备呢?例如,不太熟悉的技能要不要写在简历上、要复习哪些 Android 组件的知识、刷算法题⽬有没有⽤,可能在⾯试前你都会仔细考虑这些问题。 下⾯我就结合我⾃身的经验和理解,帮你梳理⼀下关于简历、⾯试和算法⽅⾯需要准备的内容,分享⼀些我的⼼得体会,让你在寒冬下也能拿到大厂的Offer(ps:本文不会过多的讲解Android面试题,而是从宏观的角度分析Android面试的一些软技能,如果要看面试题可以参考:史上最全的Android面试题集锦)。
xiangzhihong
2022-11-30
2640
GitHub标星8W,Google面试指南
作为全球最顶尖的互联网公司,进入Google工作一直是很多工程师的梦想,自 1996 年诞生以来,Google 至今已推出多款改变世界的互联网产品,旗下也汇聚了一大批优质的工程师与科学家。 与此同时,因其崇尚自由开放,不作恶的互联网理念,也受到了许多互联网优秀人才的认可,Google 也成为了他们最想去的互联网企业之一。
xiangzhihong
2022-11-30
2140
React Native官方拆包之metro bundle
安装metro-core依赖主要有两种方式:npm和yarn。npm安装的命令如下:
xiangzhihong
2022-11-30
1.2K0
微信小程序之Swiper组件
说明:从 1.4.0 版本开始,change事件返回detail中包含一个source字段,表示导致变更的原因,可能值如下:
xiangzhihong
2022-11-30
3.4K0
关注专栏作者,随时接收最新技术干货
xiangzhihong
中国平安架构师
关于MAC M1处理器运行Android protoc报错的解决方案
Protobuf是Google开发的一种新的结构化数据存储格式,一般用于结构化数据的串行化,即我们常说的数据序列化。这种序列化的协议非常轻便高效,而且是跨平台的,目前已支持多种主流语言,并且比传统的XML, JSON等方式更具优势。详情可以参考:Google protocol buffer。不过,最近在使用Protobuf时候报了如下的一个错误。
xiangzhihong
2022-07-06
1.4K0
数据结构之图
基本概念 图(Graph):图(Graph)是一种比线性表和树更为复杂的数据结构。 图结构:是研究数据元素之间的多对多的关系。在这种结构中,任意两个元素之间可能存在关系。即结点之间的关系可以是任意的,图中任意元素之间都可能相关。 图G由两个集合V(顶点Vertex)和E(边Edge)组成,定义为G=(V,E) 线性结构:是研究数据元素之间的一对一关系。在这种结构中,除第一个和最后一个元素外,任何一个元素都有唯一的一个直接前驱和直接后继。 树结构:是研究数据元素之间的一对多的关系。在这种结构中
xiangzhihong
2018-02-05
8050
桥接模式
概述 当一个抽象对象可能有多个 实现时,通常用继承来协调他们。抽象类定义对该抽象的接口,而具体的子类则用不同的方式来实现。但是此方法有时候不太灵活。继承机制将抽象部分与它的实现部分固定在一起,是的难以对抽象和实现部分单独出来进行修改、扩充和重用。那么我们有没有方法将抽象部分和行为部分各自独立开来你呢:即将原来放在一个接口的,现在放在两个接口(抽象接口和行为接口)。然后在对各自的具体子类定义抽象和行为接口的调用方法和调用关系。 桥接模式结构和UML 桥接模式主要由:Abstraction、RefinedAbs
xiangzhihong
2018-02-05
1.4K0
数据结构之队列
概述 在java5中新增加了java.util.Queue接口,用以支持队列的常见操作。Queue接口与List、Set同一级别,都是继承了Collection接口。 Queue使用时要尽量避免Collection的add()和remove()方法,而是要使用offer()来加入元素,使用poll()来获取并移出元素。它们的优 点是通过返回值可以判断成功与否,add()和remove()方法在失败的时候会抛出异常。 如果要使用前端而不移出该元素,使用 element()或者peek()方法。 代码实现 值得
xiangzhihong
2018-02-05
5790
数据结构之线性表
基本概念 线性表(List):由零个或多个数据元素组成的有限序列。 特征: 1.线性表是一个序列。 2.0个元素构成的线性表是空表。 3.线性表中的第一个元素无前驱,最后一个元素无后继,其他元素有且只有一个前驱和后继。 4.线性表是有长度的,其长度就是元素个数,且线性表的元素个数是有限的,也就是说,线性表的长度是有限的。 线性表抽象数据类型 基于线性表的特征,线性表可以做如下操作:  InitList(*L);//初始化操作,建立一个空的线性表  ListEmpty(L);//若线性表为空,返回true,否
xiangzhihong
2018-02-05
7030
数据结构之串
基本概念 串(string)是由零个或多个字符组成的有限序列,又名叫字符串。形如s="a,b,c.."。ai(1 ≤ i ≤ n)可以是字母、数字或其他字符,i就是该字符在串中位置。串中的字符数目n称为串的长度,定义中谈到“有限”是指长度n是一个有限的数值。两个字符的串称为空串(null string),它的长度为零,可以直接用双引号“”表示。所谓序列,说明串的相邻字符之间具有前驱后继的关系。 空格串,是只包含空格的串。注意它和空串的区别,空格串是有内容有长度的,而且可以不止一个空格。 子串与主串,串中任
xiangzhihong
2018-02-05
1K0
ECMAScript 6之Set和Map数据结构
Set 基本用法 ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set本身是一个构造函数,用来生成Set数据结构。 var s = new Set(); [2, 3, 5, 4, 5, 2, 2].map(x => s.add(x)); for (let i of s) { console.log(i); } // 2 3 5 4 上面代码通过add方法向Set结构加入成员,结果表明Set结构不会添加重复的值。 Set函数可以接受一个数组(或类似数组的对象)作
xiangzhihong
2018-02-05
1K0
ConcurrentHashMap和HashTable的区别
hashtable是做了同步的,hashmap未考虑同步。所以hashmap在单线程情况下效率较高。hashtable在的多线程情况下,同步操作能保证程序执行的正确性。 但是hashtable每次同
xiangzhihong
2018-02-05
7830
数据结构之2-3-4树
2-3-4树是一种阶为4的B树。它是一种自平衡的数据结构,可以在O(lgn)的时间内查找、插入和删除,这里的n是树中元素的数目。2-3-4树和红黑树是等价的,也就是每个红黑树都可以转化为一颗2-3-4树,每个选择操作也和2-3-4树中的分裂操作对应。       2-3-4树是这样一种数据结构,满足如下性质:       1) 每个节点每个节点有1、2或3个key,分别称为2-node,3-node,4-node。       2) 每个节点的keys把区间进行了划分,以4-nde为例,key1、key2、
xiangzhihong
2018-02-01
4470
数据结构之数组
一.数组的基本概念 数组可以看成是多个相同类型数据组合,对这些数据的统一管理。 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。 数组的元素可以是任何数据类型,包括基本类型和引用类型。 C和C++中的数组都可以分配在栈上面,而JAVA中的数组是只能分配在堆上面的,因为JAVA中的数组是引用类型。 二.一维数组 一维数组的声明方式有2种: 格式一:数组元素类型  数组名[ ];  即type var[ ]; 格式二:数组元素类型[ ] 数组名; 即type[ ] var;
xiangzhihong
2018-02-01
6280
数据结构之二叉树
二叉树的定义: 二叉树是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要
xiangzhihong
2018-02-01
6290
数据结构是哈希表(hashTable)
哈希表也称为散列表,是根据关键字值(key value)而直接进行访问的数据结构。也就是说,它通过把关键字值映射到一个位置来访问记录,以加快查找的速度。这个映射函数称为哈希函数(也称为散列函数),映射过程称为哈希化,存放记录的数组叫做散列表。比如我们可以用下面的方法将关键字映射成数组的下标:arrayIndex = hugeNumber % arraySize。         哈希化之后难免会产生一个问题,那就是对不同的关键字,可能得到同一个散列地址,即同一个数组下标,这种现象称为冲突,那么我们该如
xiangzhihong
2018-02-01
7270
数据结构之堆和栈
内存分配策略     按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的.  静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间.这种分配策略要求程序代码中不允许有可变数据结构(比如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间需求.    栈式存储分配也可称为动态存储分配,是由一个类似于堆栈的运行栈来实现的.和静态存储分配相反,在栈式存储方案中,程序对数
xiangzhihong
2018-02-01
1K0
常用的排序算法和时间复杂度
1. 数据结构部分 数据结构中常用的操作的效率表 通用数据结构查找  插入   删除 遍历  数组 O(N)O(1)O(N)—有序数组O(logN)O(N)O(N)O(N)链表 O(N)O(1)O(N)—有序链表O(N)O(N)O(N)O(N)二叉树O(logN)O(logN)O(logN)O(N)二叉树(最坏)O(N)O(N)O(N)O(N)红黑树O(logN)O(logN)O(logN)O(N)2-3-4树O(logN)O(logN)O(logN)O(N)哈希表O(1)O(1)O(1)—专用数据结构
xiangzhihong
2018-02-01
2.8K0
数据结构之链表
一、概念 (1)数组的线性序是由数组的下标决定的,链表中的顺序是由各对象中的指针所决定的 (2)链表结点结构 node *prev; node *next; int key; (3)链表结点 node *head; node *nil;//哨兵 (4)对链表的操作 LIST-SEARCH(L, k) LIST-INSERT(L, x) LIST-DELETE(L, x) (5)哨兵是个哑对象,可以简化边界条件 二、代码 (1)没有哨兵的情况 //链表结点结构 struct node   {       n
xiangzhihong
2018-02-01
5870
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档