Android面试题(2020)

Android面试题解(全) Android (一)RecyclerView 与 ListView 的主要区别: 使用 布局效果 局部刷新 嵌套滚动机制 布局效果对比 常用功能和API对比 RecyclerView 和 ListView 在 Android L 引入嵌套滚动机制之后的对比 (1)简单使用 ListView: 继承重写BaseAdapter类 自定义 ViewHolder 和 convertView 一起完成复用优化工作(在自定义的ADP、adapter中完成) RecyclerView: 继承重写Rec 阅读详情

Java基础

  1. String是什么数据类型?(Java中数据类型)
    Java中数据类型分为两种:基本数据类型和引用数据类型。
    根据下图可以看出String为引用类型。在这里插入图片描述

  2. String、StringBuilder、StringBuffer的区别
    (1)String是字符串常量,一旦创建后就不可改变,String的拼接会创建新的字符串常量对象并回收之前的对象,频繁的String拼接对内存消耗较大,并且耗时。
    (2)StringBuilder就是为了解决频繁String拼接造成的问题,StringBuilder是可变长度的,频繁的拼接直接对对象进行修改,无需重新创建和销毁对象。
    (3)StringBuffer和StringBuilder类似,他俩的区别就是StringBuffer是线程安全的,无需考虑多个线程间数据同步问题,但效率会比StringBuilder慢一些。
    (4)总结下来就是String适合少量字符串操作,StringBuilder适合单线程内大量字符串操作,StringBuffer适合多线程中字符操作。

  3. 堆栈内存的区别(全局变量存放在哪里?)

  4. synchronized和volatile的区别
    (1)volatile仅能作用于变量,synchronized可以作用于变量、方法和类上
    (2)volatile仅能实现对变量的修改可见性,不能保证原子性,synchronized可以保证 原子性和可见性
    (3)volatile不会造成线程阻塞,synchronized可能会造成线程阻塞
    (4)volatile修饰的变量不会被编译器优化(在不同线程中不会出现副本),synchronized修饰的可以被编译器优化(但能保证原子性)。

  5. Java中锁的分类(synchronized用的是公平锁还是非公平锁)
    synchronized使用的是非公平锁,允许插队,提高性能。
    Java中锁的分类:参见该文章

  6. 抽象类和接口的区别
    (1)抽象类中可以定义普通成员变量,接口中只能定义static final变量,并且需要进行初始化
    (2)抽象类可以有构造方法,接口没有
    (3)抽象类中可以定义普通方法,接口中所有的方法都是抽象的
    (4)抽象类中的抽象方法可以定义为public或protected,接口中只能是public
    (5)一个类只能继承一个抽象类,但是可以实现多个接口
    (6)抽象类中可以包含静态方法,接口中不能有静态方法

  7. 什么时候一个对象会被GC(引用计数法、可达性分析)
    一个对象被GC,也就是对象无法被任何地方访问,那么如何进行判断呢,有两种常用方法。

    • 引用计数法:引用计数法就是给对象添加一个引用计数器,当对象被强引用的时候,计数+1,否则-1,如果对象的引用计数器为0,那么对象就没有被使用。该方法的优势就是高效,简单,但无法解决对象之间互相引用造成的问题。
    • 可达性分析:可达性分析就是通过一系列的被称为“GC Roots”的对象,从这些节点向下进行搜索,搜索走过的路径被称为引用链,当一个对象到GC Roots没有任何引用链时,证明这个对象是不可用的。JVM采用的就是这种方法。
  8. Java中集合相关问题

    • Java中集合都有哪些类型
      在这里插入图片描述

    • ArrayList和LinkedList的实现和区别
      ArrayList是由数组实现的,数组结构插入和删除速度慢,访问速度快。
      LinkedList是由链表实现的,链表结构插入和删除速度快,访问速度慢。

    • ArrayList初始长度、负载因子、增加倍数(同理其他的也有可能问到)
      ArrayList的初始长度为10,负载因子是1,扩容增量为0.5

    • ArrayList、Vector、copyonwriteArrayList的区别

    • HashMap的底层实现
      HashMap的实现原理是数组加链表或者红黑树来实现,当我们调用put方法时,先去获取key的hash值,然后根据hash值经过算法来确定bucket数组中的下标,如果该下标处没有值,则将node放置在这里,如果对应位置上有链表,则调用key的equals方法和链表上的每一个key进行比较,如果有重复的,那么对应的key位置将会被替换掉,如果没有,则添加到链表末尾。
      同理,调用put方法的时候,先调用key的hash值找到bucket对应下标,然后从链表中调用equals方法来获取我们需要找的value。

      HashMap中数组中某个下标处的链表大小超过8个时,将改为红黑树结构,小于8个时,重新改为链表结构。

    • HashMap中bocket的下标到底是怎么算的
      对传入的key取hashcode,然后对hashCode以及hashCode右移16位做异或运算

          static final int hash(Object key) {
      		int h;
      		return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);
      	}
      

      然后在put操作的时候,再与0xFF做&操作

      if ((p = tab[i = (n - 1) & hash]) == null)
          tab[i] = newNode(hash, key, value, null);
      else {
      

      最终确定下标值

    • HashMap的初始长度、负载因子、增加倍数
      Hashmap的初始容量为16,默认负载因子为0.75,超过后进行扩容,每次扩大一倍。

    • HashMap是如何判断需要扩容的
      new一个两倍大小的数组,遍历旧数组,将item变成游离态,重新计算数组下标,放入新的数组中

    • Hash碰撞的原因

    • Hashcode、equals和==的区别

    • 链表和红黑树相关问题
      当同一个下标中的链表数量过多时,就会导致失衡,查找需要遍历链表,速度比较慢,所以引入了红黑树
      红黑树搜索非常快,是一种近似平衡的二叉查找树,能够确保任何一个节点的左右子树差不会超过而这种较低那个的一倍

      红黑树的特性:
      每个节点要么是黑色,要么是红色
      根节点是黑色
      如果节点是红色,那么它的子节点必须是黑色,反之不一定需要成立
      从根节点到叶节点或空子节点的每条路径,都包含相同数目的黑色节点

    • hashMap、hashTable、concurrentHashMap的区别

  9. 设计模式(单例、工厂、观察者、代理、适配器、建造者等常用模式)

  10. 线程相关

  11. classLoader为什么要设计成双亲委派模式

  12. 你对Java多态的理解

  13. Java异常体系和处理机制

    • Java异常的分类(exception(运行时异常和非运行时异常)、error)
    • 异常处理机制(抛出异常、处理异常)
    • try-catch-finally代码块都是什么时候被执行的,什么情况下finally代码块不会被执行
  14. Java中四种引用的区别和使用场景

Android部分

  1. 基础部分

    • activity、fragment、service的生命周期

    • 两个activity跳转时的生命周期

    • activity横竖屏切换时生命周期

    • activity中包含fragment时生命周期调用顺序
      activity onCreate -> fragment onAttch -> fragment onCreate -> fragment onCreateView -> fragment onActivityCreated -> activity onStart -> fragment onStart -> activity onResume -> fragment onResume -> fragment onPause -> activity onPause -> fragment onStop -> activity onStop -> fragment onDestoryView -> fragment onDestory -> fragment onDetach -> activity onDestory

      Fragment添加到activity后,创建的时候是先执行activity的生命周期,然后执行fragment的相同生命周期,销毁的时候则是相反,先执行fragment的生命周期,然后执行activity的。

    • 按home键后fragment状态错乱的原因,怎么解决

    • surfaceView、textureView和view的区别

    • ListView和RecyclerView的优化

    • 为什么要使用ContentProvider,有什么好处

  2. 原生和H5的交互

  3. Biemap所占的内存

  4. OOM和ANR的分析定位及如何避免

  5. Handler

    • Handler的基本原理
    • Handler是如何做到不阻塞主线程的
    • Handler是如何发送延迟消息的、如何在队列中调度消息(保证消息的先后顺序)
    • 消息队列为空时,Handler是如何阻塞线程的
    • Handler阻塞时候,新消息到来是如何唤醒的
    • Handler是如何向其他线程发送消息的(handler的线程切换机制)
  6. Android中线程通信机制(handler、全局变量等)

  7. 进程间通信机制

    • AIDL
      在这里插入图片描述

    • Messenger

    • Bundle

    • ContentPovider

    • Broadcast Receiver

    • 文件共享

    • Socket

  8. 你对Binder机制的理解
    IPC原理:
    IPC指的是进程间通信或者是跨进程通信,指两个进程间进行数据交换的过程。
    每个Android进程,只能运行在自己进程所拥有的虚拟地址空间。虚拟地址空间对应两个部分,用户空间和内核空间,不同进程的用户空间是非共享的,但是内核空间是共享的,进程间的通信就是利用了不同进程之间可共享的内核空间来完成的。

    Binder原理:
    Binder机制从组件角度来讲,包含Client、Server、ServiceManager以及Binder驱动。
    Client:使用服务的进程。
    Server:提供服务的进程。
    ServiceManager:服务管理进程,作用是使Client进程可以通过Binder名称获得对应的Server中的Binder引用。
    Binder驱动:负责进程间Binder通信的建立、传递、计数和管理等工作。

  9. 事件分发机制

    • 基本原理

    • 一个事件的完成分发流程

    • 如何拦截和消费一个事件

    • 什么是事件队列

    • 滑动冲突怎么解决
      View滑动冲突分为两种:外层和内层滑动方向不一致,外层和内层滑动方向一致。解决方案分为两种,外部处理和内部处理。

      外部拦截法:指点击事件都先经过父容器的拦截处理,父容器需要此事件,就拦截,外部拦截法需要重写父容器的onInterceptTouchEvent方法进行拦截

      内部拦截法:内部拦截法指父容器不拦截任何事件,所有事件都传递到子元素,如果子元素需要此事件就直接消耗掉,否则就交给父容器进行处理,内部拦截法需要重写子元素的dispatchTouchEvent方法,配合requestDisallowInterceptTouchEvent方法进行使用。

  10. 自定义View

    • 都有哪些自定义View(继承现有view、拼接现有view、完全自定义)

    • 自定义View有哪些注意事项

    • View的绘制流程(mesure、layout、draw)
      (1) onMesure():测量视图大小,从顶层父View到子View递归调用mesure方法。
      (2) onLayout():确定View位置,进行页面布局。从顶层父View向子View递归调用view.layout方法的过程,即父View根据上一步mesure子View所得到的布局大小和布局参数,将子View放在核实的位置上。
      (3) onDraw():绘制视图,ViewRoot创建一个Canvas对象,然后调用onDraw()(绘制视图的背景、保存画布的图层、绘制view的内容、绘制view子视图,如果有的话、还原图层、绘制滚动条)

    • invalidate、postinvalidate和requestlayout的区别

  11. 进程保活(前台服务、双进程守护、1像素activity、服务中播放无声音乐、JobScheduler、三方推送)

  12. 应用中如何进行数据缓存和更新

  13. 如何进行数据库迁移

  14. Android版本适配

  15. App或Activity的启动流程

  16. 你对插件化、组件化和热修复都是怎么理解的

  17. 你用过热修复框架吗,热修复的原理是什么

  18. 你对MVC、MVP、MVVM的理解

  19. 三方框架相关问题

    • EventBus的基本原理

    • ButterKnife(内部原理、APT流程,反射和APT技术的比较)

    • Okhttp的基本原理

    • Okhttp拦截器是怎么实现的

    • 如何使用okhttp缓存网络请求数据

    • Okhttp和volley的区别,你是怎么选择的

    • Retrofit的基本原理及好处

    • 动态代理在retrofit中的使用

    • Glide的基本原理

    • Glide和Picasso的区别
      Glide和Picasso的使用方法基本相同,glide的包体积比较大,在缓存方面,picasso是将原图进行缓存,然后根据具体控件的大小resize,而glide则是将图片下载之后,根据控件大小进行resize,然后缓存,也就是说当同一张图片设置到不同控件的时候,picasso只会缓存一张图片,而glide则会缓存多张,内存使用上,glide比picasso要小一些,加载图片的时间对比,当第一次从网络上下载图片的时候,picasso的速度比较快,因为glide下载好之后需要进行resize然后放入缓存,而当从内存中加载图片的时候,glide比较快,因为picasso需要对图片进行resize,同时glide支持gif图片。

    • Glide是怎么缓存图片的

    • Glide缓存图片的key是怎么形成的(图片改变时glide是怎么更新图片的)

    • Glide是怎么感知应用的生命周期的(如何确定什么时候加载图片、什么时候停止加载)

    • LruCache的基本原理(怎么控制缓存大小、怎么实现最近最少原则)
      LruCache的主要原理就是把最近使用的对象用强引用存储在LinkedHashMap中,当缓存满的时候,把最近最少使用的对象从内存中移除。LruCache提供了get和put方法来完成缓存的获取和添加
      LruCache的核心思想就是维护一个缓存对象的列表,列表的排列方式是按照访问顺序来进行排列的,就是将一直没有访问的对象放在队尾,当缓存区满时最先淘汰,将最近访问的对象放在队头,最后淘汰。而LinkedHashMap刚好可以实现这个功能,LinkedHashMap的构造函数中的accessOrder设置为true表示用访问顺序来排序,false表用用插入顺序来排序。
      当LruCache调用put方法的时候,就会在集合中添加元素,并调用trimToSize方法判断缓存是否已满,如果满了就调用LinkedHashMap的迭代器删除近期最少访问的元素。当调用get方法的时候,会调用LinkedHashMap的get方法获取集合中的元素,同时通过删除原有元素,更新该元素到队头。

    • RxJava的基本原理

    • RxJava是如何将操作符串起来的
      在这里插入图片描述

    • RxJava是如何切换线程的
      在这里插入图片描述

    • RxJava背压模式

    • ARouter

    • Dagger2的作用和原理

    • 数据库框架使用的是哪个?选择他的原因

    • 如何进行数据库迁移

    • 如何动态请求权限,使用的是什么框架

    • 自己如何去封装一个网络请求、图片加载框架,有哪些需要注意的

  20. 性能优化(稳定性、流畅性、损耗性、包瘦身)

    • 稳定性(内存优化、崩溃分析)
      • Memory Monitor、MAT、LeakCanary等工具分析内存泄漏并优化
      • LeakCanary的原理(基于MAT,在ondestory方法调用后获取activity对象,如果不能被系统回收,并对他进行分析,查找内存泄漏原因)
    • 流畅性(渲染优化、冷启动优化、减少主线程数据处理)
      • 布局优化(减少嵌套、使用ConstraintLayout、使用include、merger、viewStub等标签、减少wrapcontent使用、删除无用属性)
      • 冷启动优化(放置窗口背景图、异步或延后加载非必要数据)
      • 动画优化(启动硬件加速、使用vector动画、使用motionlayout、使用lottie等)
      • bolckCanary的原理(监测Main Lopper分发message耗时情况)
    • 损耗性(流量、电量)
      • 使用battery monitor进行电量分析,监测充电状态,在充电状态下做一些耗电操作
      • 图片压缩(不同网络环境下请求不同清晰度的图片)
      • 压缩网络请求数据,减少流量消耗
    • 包瘦身
      • 图片压缩(大图压缩、使用webP格式)
      • 代码混淆、对齐(zip align)
      • 资源优化(删除无用资源、三方库版本统一)
      • 插件化处理(将部分模块放置在服务器中)

Http基础知识

  1. TCP的三次握手和四次挥手

    • 第一次握手:客服端发送syn包到服务器,并进入SYN_SENT状态,等待服务器确认
      第二次握手:服务器收到syn包,确认客户端的syn,同时自己也发送一个syn包,服务器进入SYN_RECV状态
      第三次握手:客户端收到服务器发来的syn包后,再向服务器发送确认包,发送完成之后,完成三次握手,服务器和客户端开始进行数据传输

    • 第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动方的数据传输,此时主动关闭方还可以接收数据
      第二次挥手:被动关闭方收到FIN包后,发送一个确认包给主动关闭方。
      第三次挥手:被动关闭方发送一个FIN包,用来关闭被动关闭方到主动关闭方的数据传输。
      第四次挥手:主动关闭方收到FIN包后,发送一个确认包给被动关闭方,此时四次挥手完成。

  2. TCP和UDP的区别及应用

    • TCP面向连接,UDP是无连接的,即发送数据之前不需要建立连接
    • TCP提供可靠服务(传输的数据无差错,不丢失,不重复且按序到达),UDP尽最大努力交付(不保证可靠交付)
    • TCP面向字节流,UDP面向报文
    • TCP连接是点对点的,UDP支持一对一,一对多,多对一和多对多交互
    • TCP适合需要可靠数据的传输,UDP则适合对通信可靠性要求不是那么高,同时要求传输速度尽可能的快(例如语音通话等)
  3. HTTP1.0和2.0的区别
    HTTP1.0:浏览器每次请求都需要与服务器简历一个TCP连接,服务器处理完成之后立即断开TCP连接,服务器也不跟踪每个客户端也不记录过去的请求,即无连接无状态
    HTTP2.0:HTTP2.0引入了二进制数据帧和流的概念,其中帧对数据进行顺序标识,这样服务器就可以并行的传输数据,浏览器接收到数据之后可以按照序列对数据进行合并,而不会出现数据错乱的情况。

  4. HTTP与HTTPS的区别及HTTPS是如何实现安全性的

    区别:

    1. HTTP是明文传输,传输内容容易被篡改或者窃取,HTTPS是密文传输
    2. HTTP在网络请求效率上会低于HTTP,因为采用了不同的请求协议和更复杂的安全验证
    3. HTTPS需要申请CA证书

    HTTPS主要通过非对称加密+对称加密+CA证书来保证请求安全
    HTTPS协议中使用了SSL协议加密,SSL的加密即用到了对称加密也用到了非对称加 密,对称加密速度快,非对称加密更加安全。

  5. Socket和WebSocket的区别
    WebSocket相对于HTTP的优势是支持长连接,WebSocket的整个通信过程是建立在一次连接中的,避免了HTTP的无状态性,服务端会一直知道你的信息,直到连接关闭。

    Socket处于抽象层,是HTTP协议的底层协议,而WebSocket是类似于HTTP协议的Http应用层协议。
    HTTP协议的通信只能从客户端发起,服务器无法主动向客户端推送消息。WebSocket协议服务器可以主动向客户端推送消息,客户端也可以主动向服务器发送消息。

  6. 使用WebSocket时需要注意什么

算法

  1. 基础排序算法(冒泡、选择、插入、快速排序等),冒泡排序必须会手写,可以手写快速排序更好
    手写冒泡排序

    Int a[] = {23,89,67,48,28,59,86};
    Int temp  = 0;
    for(int i = 0;i<a.length-1;i++){
    	for(int j = 0; j<a.length-1-i;j++){
    		if(a[j] > a[j+1]){
    			temp = a[j];
    			a[j] = a[j+1];
    			a[j+1] = temp;
    		}
    	}
    }
    

    快速排序

    public static void quickSort(int[] arr, int left, int right) {
        //如果left大于等于right 退出
        if (left >= right) {
            return;
        }
    
        //定义变量i指向最左边
        int i = left;
    
        //定义变量j指向最右边
        int j = right;
    
        //定义最左边的元素为基准元素
        int base = arr[left];
    
        //当i和j没有指向同一个元素的时候,交换他们的位置
        while (i != j) {
            //从右向左寻找第一个小于基准元素的数
            while (arr[j] >= base && i < j) {
                j--;
            }
    
            //从左向右寻找第一个大于基准元素的数
            while (arr[i] <= base && i < j) {
                i++;
            }
    
            //交换i和j指向的元素
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    
        //循环完成之后 表示i和j指向了同一元素,此时将其和基准元素进行交换
        arr[left] = arr[i];
        arr[i] = base;
    
        //将基准左侧数组进行排序
        quickSort(arr, left, i - 1);
    
        //将基准右侧数据进行排序
        quickSort(arr, i + 1, right);
    }
    
    

kotlin、flutter相关

  1. kotlin对比Java的优势
  2. 如何理解kotlin中的协程
  3. jetpack相关
  4. 协程的原理
  5. 你是如何看待flutter的

其他问题

  1. 项目中的技术亮点
  2. 工作中遇到最难解决的问题
  3. 作为leader的工作协调分配管理等问题,当有人对分配结果不满意时你是如何处理的
Android面试一面基础(问题+答案)2020年 昨天刚面了正圆的一面,问了十个基础的问题,分享并记录给大家,查漏补缺 都很简单 1.面向对象三大特征? 封装、继承、多态。然后对每个特征介绍一下概念及优点 2.多态的好处? 多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。 1提高了代码的维护性(继承保证) 2、提高了代码的扩展性(由多态保证) 3.接口和抽象类的区别?(知识点:抽象类和接口的概念) 1、抽象类使用abstract修饰; 2、抽象类不能实例化,即不能使用new关键字来实例化对象; 3、含有抽象方法(使用abstract关 阅读详情

相关推荐

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

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

m0_61408726的博客 341

Android开发技术-笔试面试题分析一

课程搜集整理了国内,国外各大计算机,互联网等公司的笔试面试新题型,通过深入的分析来讲解Android开发的技术,使学习者对知识有更深入的理解,为自己笔试面试Android技术积累知识和经验。

Android LiveData实现原理,安卓面试题最新2020

Google LiveData 概览 LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 Activity、Fragment 或 Service)的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者。 LiveData本身是观察者,观察组件的Lifecycle,也是被观察者,数据变化时要通知数据的观察者。 可以先了解 Android Lifecycle实现原理,有利于了解LiveDa.

m0_66155412的博客 445

Android面试题(持续更新中)

Android面试题

Bearin的博客 1万+

从零到一:Cadence AC仿真中的运放性能参数深度解析与实战避坑指南

本文深度解析Cadence AC仿真中运放性能参数的精确测量方法,包括开环增益、带宽和相位裕度等关键指标。通过实战案例分享常见设置错误的避坑技巧,帮助工程师提升设计成功率和仿真效率,特别针对全差分运放和工艺角分析提供专业指导。

www00的博客 290

告别I2C和SPI:用FPGA驱动DS18B20,一根线搞定温度采集(附Verilog代码)

本文详细介绍了如何利用FPGA通过单总线协议(One-Wire)驱动DS18B20温度传感器,仅用一根数据线实现高效温度采集。内容涵盖协议解析、Verilog代码实现及调试技巧,帮助开发者节省IO资源并提升系统性能。

weixin_42696271的博客 389

Android面试题大全(2024年最新)

声明:有人说, 有些面试题很变态,个人认为其实是因为我们基础不扎实或者没有深入。本篇文章来自一位很资深的前辈对于最近Android面试题目所做的总结归纳,有1600+道题目 ,知识面很广 ,而且这位前辈对于每个题都自己测试给出了答案 ,如果你对某个题有疑问或者不明白,可以电脑端登录把题目复制下来然后发表评论,大家一起探讨,也可以电脑端登录后关注我给我发私信,我们一起进步!

Androiddddd的博客 3万+

win11禁止更新,草履虫教程

本文介绍了彻底禁止Windows 11系统更新的组合方法,包括禁用核心服务、修改注册表、关闭计划任务和使用组策略(专业版适用)。作者特别提醒,禁止更新会影响系统安全性,建议实体机保持更新,仅虚拟机等特殊情况下使用这些方法。同时强调即使禁用更新,也应定期手动检查重要安全补丁。文章最后附上了作者的个人网站信息。

testwzc1的博客 559

Android开发快速学习,安卓面试题及答案2020

*要想成为高级安卓工程师,必须掌握许多基础的知识。**在工作中,这些原理可以极大的帮助我们理解技术,在面试中,更是可以帮助我们应对大厂面试官的刁难。《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!**

2401_84412469的博客 765

Win11专业版破解RDP限制:实现多用户远程桌面协同办公

本文详细介绍了如何在Windows 11专业版上破解RDP限制,实现多用户远程桌面协同办公。通过使用RDPWrap工具,用户可以绕过微软的授权限制,允许多个用户同时登录同一台电脑,提高硬件利用率和团队协作效率。文章包含详细的安装配置步骤、性能优化技巧及常见问题解决方案,适用于需要远程协作的办公场景。

weixin_33806300的博客 466

Oracle-OGG trail 文件大小引起的进程异常 OGG-01172

监控OGG目标端进程,其中一个进程异常,状态为 ABENDED,start repa 执行失败。进入OGG报告目录检查运行报告 2015-04-20 09:38:36 ERROR OGG-01172 Discard file (/ogg/oggrm/11.2/dirdat/repa.dsc) exceeded max bytes (2000000000). 总结处理方法,从根本上解决问题。

xdyzgjy的专栏 7956

2024大厂Android面试经历,,安卓面试题2020

我坚信,坚持学习,每天进步一点,滴水穿石,我们离成功都很近!以下是总结出来的字节经典面试题目,包含:计算机网络,Kotlin,数据结构与算法,Framework源码,微信小程序,NDK音视频开发,计算机网络等。字节高级Android经典面试题和答案《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可免费领取!opics/618165277),即可免费领取!**

2301_82241859的博客 315

S7-1200 PLC PID功能 | 调节PID参数

S7-1200 PLC PID功能 | 调节PID参数

Robot_PLC_HMI_Automation 1万+

Android面试题集(2020)

Android面试题模板前言目录总结 前言 秋招在即,计蒙在国庆期间为粉丝整理了一套Android初级面试题集 如需获取pdf版本,可于公众号:《计蒙不吃鱼》进行下载 目录 1.Android面试题之Activity篇 2.Android面试题之Service篇 3.Android面试题之Broadcast Receiver篇 4.Android面试题之ContentProvider篇 5.Activity面试题之Intent篇 6.Android面试题之Listview篇 7.Android面试题之Fr

计蒙不吃鱼的博客 9929

《Python星球日记》 第73天:情感分析与主题建模

《Python星球日记》 第73天:情感分析与主题建模,今天我们将探索两个自然语言处理领域的重要技术:情感分析和主题建模。这两项技术在社交媒体分析、用户反馈处理、市场研究等多个领域有着广泛应用。

Code_流苏:在代码中寻诗意,在实践中觅真知 919

OPTEE v4.4.0 qemu_v8环境搭建(支持Hafnium)

一、前提条件 二、拉取代码 三、下载工具链 四、修改代码 五、编译 六、运行

AI-安全-功耗 889

Android面试题2020,高级安卓开发技术

Android架构学习进阶是一条漫长而艰苦的道路,不能靠一时激情,更不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!上面分享的字节跳动公司2021年的面试真题解析大全,笔者还把一线互联网企业主流面试技术要点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。【Android高级架构视频学习资源】Android部分精讲视频领取学习后更加是如虎添翼!进军BATJ大厂等(备战)!

2401_84412961的博客 644

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

10年Android开发经验,安卓面试题及答案2020百度

代码真的是重质不重量,质量高的代码,是当前代码界提倡的,当然写出高质量的代码肯定需要一个相当高的专业素养,这需要在日常的代码书写中逐渐去吸收掌握,谁不是每天都在学习呀,目的还不是为了一个,为实现某个功能写出高质量的代码。所以,长征路还长,大家还是好好地做个务实的程序员吧。最后,小编这里有一系列Android提升学习资料,有兴趣的小伙伴们可以来看下哦~《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

2301_82242484的博客 816

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

安卓面试题2020,android入门零基础

自我介绍一下,小编13年北京科技大学毕业,曾经在字节跳动待过,也去过vivo、小米等大厂,18年进入华为一直到现在。小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担,能在岗位上再创辉煌,步步高升!!。

2401_84910214的博客 558

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

2020年Android面试题(BAT最新面试题)包含详细答案

2020年Android面试题汇总,面试必看,轻松拿BAT大厂Offer。完全免费。 微信关注公众号: 付晓龙,回复2020,即可查看最新面试题。

bobby_fu的博客 4445

Android HTTP通信基础,安卓面试题2020对kotlin的要求

Host(发送请求时,该报头域是必需的):Host请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的。 eg:我们在浏览器中输入:http://www.test.com/index.html。浏览器发送的请求消息中,就会包含Host请求报头域,如下: Host:www…test.com(使用缺省端口号80,若指定了端口号,则变成:Host:www…test.com:指定端口号) User-Agent:请求报头域允许客户端将它的操作系统、浏览器和其它属性告诉服

wa2231a的博客 2220

【2020年终总结】Android 基础+Android高级,大厂知识点分类面试题合集

前言 现在已经是2021年1月末了,再过一个多月,我们就要跨入“金三银四”这个求职面试的好时节了。另外,也快过年了,是时候做一下年终总结了。 这是一份2020年Android最新资料合集,这份资料是我对现在网上较高质量的Android资料的甄选和整合(感谢各位免费分享资料的大佬,这里就不一一致谢了)。 资料简介 优点 :体系完整,知识点覆盖全面,有条理,高质量。 参考资料 :玉刚说、郭霖和鸿洋的博客、腾讯课堂、优快云等博客网站,牛客网、拉钩、力扣等招聘网站,还有在阿里、腾讯、字节等入职大厂的朋友(感谢各

BUGgogogo的博客 479

Android 2020-2021年 最新面试题(附个人面试经历)

2020-2021最新Android面试题 在跟大家介绍面试题和面试经验之前,我先简单介绍一下我自己 接触Android已经4年,之前在遇到一些技术上的问题的时候,经常在百度上面搜索解决办法,一些大佬会把自己遇到的问题分享出来给我们一些参考和解决方案,在这里由衷感谢大佬们的分享,于是我便萌生了分享一下自己知识的一些想法,来帮助大家。 随着时间的流逝,很多人说互联网这一块前景已经不好了,随着互联网红利期的过去,Android开发进入了平稳发育期,砸钱的时代已经过去,因为前两年红利期还没过去的影响,还是有

Androidbye的博客 1963

Android自定义轮播效果,安卓面试题整理2020简书

import androidx.appcompat.app.AppCompatActivity;import androidx.viewpager.widget.PagerAdapter;import androidx.viewpager.widget.ViewPager;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.vi

2401_84152189的博客 586

Android应用Context详解及源码解析,安卓面试题及答案2020百度

Context mBase; public ContextWrapper(Context base) { mBase = base; } /** Set the base context for this ContextWrapper. All calls will then be delegated to the base context. Throws IllegalStateException if a base context has already been set. @pa

sa3221sa的博客 240

360面试总结(Android),高级安卓面试题2020

这次360面试,总共面试了两轮,都是视频面试。 时间:2016-08-23 转载请注明原博客地址: 闲谈: 从大二暑假的时候开始,一直想进腾讯或者阿里,在招实习生的时候,最终遗憾落选。暑假的时候为了好好准备校招,我放弃了去步步高实习的机会,继续在原来的一家公司实习。在暑假的时候找师兄师姐内推了腾讯,阿里,最终都没有通过简历筛选,没有面试。说实话,刚开始内心是挺失落的,挺难受的,但经过一两天的调整,我也意识到自己的错误,以前那种强烈想进bat的欲望渐渐淡了下来,当然并不是说不想进bat,只是不再那么注重结果,

m0_64382743的博客 273
上一篇: MyBatis-Plus基础用法笔记(只记录了我个人需要注意的地方)
下一篇: 无障碍
gitzzp
博客等级 码龄11年 307粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值