Handler Handler机制是处理线程间通信的一种重要方式。主要作用是发送和处理Message和Runnable对象,它们可以在不同的线程之间传递信息。Handler机制允许开发者在子线程中执行耗时操作,然后通过Handler将结果或事件发送回主线程,以更新UI。Handler是Android中用于线程间通信的一个组件。在Android中,UI操作需要在主线程(UI Thread)上执行,而耗时操作则通常在其他线程(如子线程)上执行。
View与自定义View View类是Android中各种组件的基类(如View是ViewGroup基类)。View表现为显示在屏幕上的各种视图,Android中的UI组件都由View、ViewGroup组成。它定义了所有UI组件共有的特性和行为(绘制、事件处理、状态变化……)。自定义View在没有现成的View,需要自己实现的时候,就使用自定义View。一般继承自View,SurfaceView或其他的View。自定义View主要是实现。自定义ViewGroup。
笔试题——得物春招实习 现在希望你编写一个程序,能够找出数字个数最少的选取方案,输出对应的最少数字的个数,如果无解输出“No solution”。可以采用贪心的思想,将身高从大到小排序,从第一个开始轮流放到(每两个相邻的)队列的两端,此种方法可以尽可能使得相邻身高差的最大值最小。第1行包含两个正整数N和M,分别表示初始输入的正整数个数和目标数字和(N
OkHttp OkHttp是一个开源的HTTP客户端,用于在Java和Android应用程序中发送HTTP请求。是一个支持 HTTP 和 HTTP/2 的封装的网络请求客户端。允许开发者在请求发送到服务器之前和响应从服务器返回之后对请求或响应进行修改。五个内置拦截器按顺序组成一个拦截器链,每个拦截器都可以选择处理请求或响应,或者传递给下一个拦截器。此外,开发者还可以自定义拦截器,插入到这个拦截器链中的适当位置,以便能够处理请求或响应的相应部分。需要实现接口@Override。
安卓六大布局 线性布局在开发中使用最多,具有垂直方向与水平方向的布局方式。LinearLayout 默认是垂直排列的,但是可以通过设置 android:orientation 属性来改变为水平排列。允许开发者通过指定控件相对于其他控件或容器边缘的位置来布局界面。这种布局方式相对于来说更加灵活,因为它不限制控件必须放置在垂直或水平方向上。例如,你可以指定一个按钮位于另一个按钮的下方、右侧或者某个控件的中心位置。用于创建表格布局的类。允许你以表格的形式安排其子视图,类似于 HTML 中的 元素。
安卓四大组件 在android 中,Activity 相当于一个页面。可以在Activity中添加Button、CheckBox 等控件,一个android 程序有多个Activity组成。Activity之间通过Intent进行通信。是应用程序中的一种后台组件,可以在没有用户界面的情况下执行长时间运行的任务。主要是用于执行后台任务,如播放音乐、在后台线程中进行数据同步等。用于接收系统发出的广播消息。当设备上发生某些特定事件时,如电话状态改变、电池电量低、短信到达等,系统会发送一个广播。
服务注册中心 服务注册中心是微服务架构中的一个关键组件,它的主要作用是管理服务实例的注册、维护和发现。是一个中心化的组件来分散的微服务实例的位置和状态。注册中心有三种角色服务提供者:是注册中心中的主动方,负责将自己的服务实例信息注册到注册中心。服务消费者:是注册中心中的被动方,负责从注册中心获取服务实例信息,并建立与这些服务实例的连接。注册中心:注册中心是服务提供者和服务消费者之间的中介,负责维护服务实例的注册信息,并支持服务发现功能。Eureka Server是服务注册中心,提供服务的注册和发现功能。
shell语法 定义变量,不需要加name1='abc' # 单引号定义字符串name2="abc" # 双引号定义字符串name3=abc # 也可以不加引号,同样表示字符串数组用小括号表示,元素之间用空格隔开array[0]=1stdin标准输入,从命令行读取数据,文件描述符为0stdout标准输出,向命令行输出数据,文件描述符为1stderr标准错误输出,向命令行输出数据,文件描述符为2。
Deckerfile dockerfile 是 docker 镜像构建文件。包含用于构建 docker 镜像的指令和配置。通过Dockerfile可以自动化地构建Docker镜像,实现快速、一致和可重复的部署。是由一条条构建镜像所需的指令和参数构成的脚本。指令按照从上到下,顺序执行,每条指令都会创建一个新的镜像层并对镜像进行提交。
Redis集群 Redis集群是Redis提供的分布式数据库方案,集群通过分片来进行数据共享,并提供复制和故障转移功能。数据量过大时单个Master复制集难以承担,因此需要对多个复制集进行集群,形成水平扩展,每个复制集只负责存储整个数据集的一部分。概括来说,Redis集群是一个提供在多个Redis节点间共享数据的程序集。
Redis哨兵监控 哨兵是Redis的一种运行模式。它专注于对Redis实例(主节点、从节点)运行状态的监控。并能够在主节点发生故障时通过一系列的机制实现选主及主从切换,实现故障转移,确保整个Redis系统的可用性。吹哨人巡查监控后台master主机是否故障,如果故障了根据投票数自动将某一个从库转换为新主库,继续对外服务。
Redis主从复制 指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave)。数据的复制是单向的,只能由主节点到从节点。master以写为主,slave以读为主当master数据变化的时候,自动将新的数据异步同步到其它slave数据库。
Redis事务&管道 事务是指是程序中一系列严密的逻辑操作,所有操作必须全部成功完成,否则在每个操作中所作的所有更改都会被撤消。可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞。管道技术(Pipeline)是客户端提供的一种批处理技术。用于一次处理多个 Redis 命令,从而提高整个交互的性能。用来优化频繁命令往返造成的性能瓶颈。原生批量命令是原子性的,而pipeline是非原子性。
Redis持久化 Redis是内存数据库,宕机后数据会消失。为保证重启后快速恢复数据,要提供持久化机制。在指定的时间间隔内将内存中的数据集快照写入磁盘恢复时再将硬盘快照文件直接读回到内存里。通过保存Redis服务器所执行的写命令来记录数据库状态,以日志的形式来记录每个写操作。redis启动之初会读取该文件重新构建数据。只许追加文件但不可以改写文件。默认情况下未开启此功能。为了解决 AOF 文件体积膨胀的问题,通过重写机制来对文件进行 “瘦身”。
Redis入门概述 是一种存在内存中的数据库。遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库。并且可以提供提供多种语言的 API。提供了主从模式、Redis Sentinel和Redis Cluster集群架构方案。总结来说redis是基于内存的kv键值对内存数据库。
Redis数据类型 是一个双端链表的结构,特点为单key多value。两端都可以执行插入或者添加操作。主要功能有push/pop等,一般用在栈、队列、消息队列等场景。string 类型的 field(字段) 和 value(值) 的映射表。k-v的模式不变,但是v是键值对的集合。可以理解为集合是String的无序集合,集合成员是唯一的。数据的存储数据随机。通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。与set不同的是每个元素都会关联一个 double 类型的分数。
使用nvm管理node.js nvm是一个node的版本管理工具。可以在多种系统上管理Node.js版本的工具。使用 NVM,可以轻松地切换不同版本的Node.js,并方便地管理不同版本的全局包和本地包。