【移动计算技术(Android)】期末复习

目录

选择题

选择题知识点汇总

Activity

Intent

Broadcast

BroadcastReceiver

如何自定义Receiver

如何注册接收器

Service

SharedPreferences

三种访问模式

如何创建

如何存储/修改

如何读取

内部存储

openFileOutput

openFileInput

SD卡

资源文件

SQLite

SQLiteOpenHelper(创建数据库)

SQLiteDatabase(进行具体操作)

ContentProvider

URI

如何自定义

ContentResolver

如何创建

如何增删改查

HttpURLConnection

get和post请求的区别

基本操作

MediaPlayer

简答题

简述Android体系结构

*简述Android的四大组件及其功能

简述Android系统特点

*简述Activity的生命周期

简述Activity栈的工作流程

简述Activity生命周期的事件回调函数

简述Android架构的MVC模式

简述如何设置View的宽度

*简述6种常见的页面布局(分别有什么特点)

简述Intent和Bundle的作用

*简述Intent启动Activity的两种启动方式

简述Intent双向传递数据的原理

简述消息广播标识串的用途

*简述Service的类型(两种启动方式的不同)

简述Service的生命周期

简述SharedPreferences及其三种访问模式

简述访问其他应用程序的SharedPreferences必须满足的三个条件

简述Android文件存储的方式

列举一些系统ContentProvider

进程的基本概念

简述Handler消息处理机制

简述TCP/IP网络层次结构

简述什么是socket

简述端口号的作用

简述HttpURLConnection的基本工作流程

简述什么是Fragment及其优点

简述传感器的分类

编程题

补充:toast的使用

基本控件的属性(View)

如何新建菜单

***双向传递数据的核心代码框架

双向传递数据示例(求和)

***双向传递数据+自定义广播示例

系统广播示例(监听拨打电话)

选择题

刷题

【Android】期末选择题和判断题_android判断题_Lotay_天天的博客-CSDN博客

Android期末复习篇_传智课后习题以及答案(选择、填空、判断、简答、编码题)_2、请编写一个数据传递的小程序,要求在第一个界面输入用户名和工作岗位,第二个界_scl、的博客-CSDN博客

Android基础最全题库_android题库_没有谁可以给你想要的生活的博客-CSDN博客

https://www.cnblogs.com/shuzijunofficial/p/14775323.html

Android笔试题大全(持续更新中),android实战项目健身_android笔试题及答案_m0_66264324的博客-CSDN博客

附一份安卓选择题汇总:

链接:https://pan.baidu.com/s/1BinNvd7N_dmKI913sIx4AA?pwd=WHY6 

选择题知识点汇总

Activity

  • 创建菜单的代码:getMenuInflater().inflate(R.menu.main_menu,menu);
  • onCreate()方法在Activity生命周期中只调用一次
  • 七个回调函数:
    • onCreate() Activity启动后第一个被调用的函数,常用来进行Activity的初始化,例如创建View、绑定 数据或恢复信息等。
    • onStart() 当Activity显示在屏幕上时(此刻用户尚不能交互),该函数被调用。
    • onResume() 当用户可以与Activity交互时(此时Activity成为前台程序),被调用。
    • onPause() 当Activity进入暂停状态时(部分遮挡),该函数被调用。主要用来释放CPU资源、保存持久 数据、关闭动画等。
    • onStop() 当Activity对用户不可见后,该函数被调用,Activity进入停止状态。
    • onRestart() 当Activity从停止stop状态进入start状态前,调用该函数。
    • onDestroy() 在Activity被终止前,即进入非活动状态前,该函数被调用。 有两种情况该函数会被调用:(1)当程序主动调用finish()函数;(2)程序被Android系统终结。
  • Log方法示例:Log.d(myTAG, "创建"); (输出调试信息)

Intent

  • 如何创建并启动Intent(显示):
  • 创建:Intent intent = new Intent(A_Activity.this, B_Activity.class);
  • 启动:startActivity(intent);
  • 如何创建并启动Intent(隐示):
  • 创建:Intent intent = new Intent( Intent.ACTION_VIEW,Uri.parse("http://www.163.com") ) (参数:Intent动作,Intent数据)
  • 也可通过setAction添加动作,通过setData添加数据:

        

  • 启动:startActivity(intent);

  • bubble如何存放/获取序列化对象:

  • 双向传递数据时:
  • 如何启动Activity:startActivityForResult ( Intent intent , int requestCode )
    • requestCode的作用:一般是自设的正整数,主要目的用于区别是谁回传的数据
    • 如何回传数据:setResult ( int resultCode, Intent intent )
    • 系统提供了RESULT_OK (-1)、RESULT_CANCELED (0)等常量值作 为resultCode ,没有特殊情况可以直接用RESULT_OK
  • 如何对回传的数据进行处理:onActivityResult

Broadcast

广播发送端,主要进行intent的定义和广播发送

主要步骤:

①创建intent:ntent intent=new Intent("wust.zz.mybroadcast");(自定义广播标识串)

②通过bubble添加数据

③发送广播:sendBroadcast(intent)

BroadcastReceiver

广播接收端,通过receiver和广播过滤接受广播

主要步骤:

①自定义Receiver

②注册接收器

③判断是否接受到了相应的广播,进行处理:

判断逻辑:if(intent.getAction().equals("wust.zz.mybroadcast"))(自定义广播标识)

如何自定义Receiver

  • 自定义MyReceiver,首先继承BroadcastReceiver方法public class MyReceiver extends BroadcastReceiver
  • 重写onReceive方法:public void onReceive(Context context, Intent intent);当Receiver接收到相应的广播时,会触发onReceive事件

如何注册接收器

静态注册

AndroidManifest.xml文件中添加注册信息,用Intent过滤器来设置接收哪种广播

工作流程:当系统广播消息后,所有已经注册的BroadcastReceiver会检查注册时的IntentFilter是否有与发送的广播消息(Intent)相匹配,若匹配则会调用BroadcastReceiver的onReceive()方法

示例中的广播是系统广播

也可以自定义广播:<action android:name="wust.zz.mybroadcast" />;这里就是自定义了广播的标识串

这个标识有三个地方能用到:

①发送广播时:用于创建Intent对象,Intent intent = new Intent("广播标识串");

②manifest中注册时用:作为BroadcastReceiver的intent-filter的action name值

③处理消息时:在onReceive()方法中作为消息类型的判断用

动态注册

IntentFilter filter = new IntentFilter();

filter.addAction("wust.zz.mybroadcast");

动态注册涉及到一个问题,如何将注册的广播添加到BroadcastReceiver中?

BroadcastReceiver receiver = new MyReceiver();

registerReceiver( receiver , filter);

如果需要注销某个广播:

unregisterReceiver(receiver);

Service

自定义Service:public class MyService extends Service

  • onCreate:由startService()触发
  • onStartCommand:服务的主要代码写在onStartCommand()中,不推荐使用onStart()
  • onDestroy:由stopService()或stopSelf()触发
  • 绑定服务:public IBinder onBind(Intent intent)

如何启动/关闭service:

  • startService(intent)
  • stopService(intent)

SharedPreferences

SharedPreferences用于数据的存储和读取

三种访问模式

私有(MODE_PRIVATE):仅有创建程序有权限对其进行读取或写入

全局读(MODE_WORLD_READABLE):不仅创建程序可以对其进行读取或写入,其他应用程序也读取操作的权限,但没有写入操作的权限

全局写(MODE_WORLD_WRITEABLE):创建程序和其他程序都可以对其进行写入操作,但没有读取的权限

可以设置混合访问模式:

public static int MODE = Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE;

全局读+全局写

如何创建

通过getSharedPreferences方法创建

SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCE_NAME, MODE);

如何存储/修改

通过SharedPreferences.Editor类对SharedPreferences进行修改;通过commit()函数保存修改的内容:


数据存储目录:SharedPreferences文件保存在/data/data/<package name>/shared_prefs目录下

如何读取

内部存储

文件保存的路径:/data/data/<package name>/files目录下

openFileOutput:写文件

openFileInput:读文件

openFileOutput

openFileOutput()函数为写入数据做准备而打开的应用程序文件,如果指定的文件不存在,则创建一个新的文件

四种文件操作模式:

模式

说明

MODE_PRIVATE

私有模式,缺陷模式,文件仅能够被文件创建程序访问,或具有相同UID的程序访问。

MODE_APPEND

追加模式,如果文件已经存在,则在文件的结尾处添加新数据。

MODE_WORLD_READABLE

全局读模式,允许任何程序读取私有文件。

MODE_WORLD_WRITEABLE

全局写模式,允许任何程序写入私有文件。

示例:

第1行代码定义了建立文件的名称fileDemo.txt

第2行代码使用openFileOutput()函数以私有模式建立文件

第4行代码调用write()函数将数据写入文件

第5行代码调用flush()函数将所有剩余的数据写入文件

第6行代码调用close()函数关闭FileOutputStream

为了提高文件系统的性能,一般调用write()函数时,如果写入的数据量较小,系统会把数据保存在数据缓冲区中,等数据量累积到一定程度时再一次性的写入文件中;由上可知,在调用close()函数关闭文件前,务必要调用flush()函数,将缓冲区内所有的数据写入文件

openFileInput

openFileInput()函数为读取数据做准备而打开应用程序私文件

SD卡

文件存储在/sdcard目录下

资源文件

  • 原始格式文件可以是任何格式的文件,例如视频格式文件、音频格式文件、图像文件和数据文件等等,存放在/res/raw目录下;
  • 读取原始格式文件,首先需要调用getResource()函数获得资源对象,然后通过调用资源对象的openRawResource()函数,以二进制流的形式打开指定的原始格式文件。在读取文件结束后,调用close()函数关闭文件流
  • XML文件,一般用来保存格式化的数据,存放在/res/xml目录下
  • 读取XML格式文件,首先通过调用资源对象的getXml()函数,获取到XML解析器XmlPullParser

SQLite

SQLiteOpenHelper(创建数据库)

常用方法:

  1. 创建 or 打开 可读/写的数据库(通过 返回的SQLiteDatabase对象 进行操作)getWritableDatabase()
  2. 创建 or 打开 可读的数据库(通过 返回的SQLiteDatabase对象 进行操作)getReadableDatabase()
  3. 数据库第1次创建时 则会调用,即 第1次调用 getWritableDatabase() / getReadableDatabase()时调用(在继承 SQLiteOpenHelper类的子类中复写)onCreate(SQLiteDatabase db)
  4. 数据库升级时自动调用(在继承SQLiteOpenHelper类的子类中复写)
    onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
  5. 关闭数据库 close()

SQLiteDatabase(进行具体操作)

SQLiteDatabase db

  1. db.execSQL():执行具体的sql语句
  2. db.close():关闭数据库

静态方法:

  1. SQLiteDatabase.openOrCreateDatabase():打开或创建数据库
  2. SQLiteDatabase.deleteDatabase():删除数据库

ContentProvider

ContentProvider和ContentResolver之间是一对多的关系,一个ContentProvider可以提供多个数据集,可为多个ContentResolver服务

URI

统一资源标识符,用于标识资源的位置;

URI的格式:

需要记住,URI的固定前缀,是content://

如何自定义

ContentResolver

如何创建

ContentResolver resolver = getContentResolver();

如何增删改查

resolver.query()、insert()、update()、delete()

HttpURLConnection

get和post请求的区别

get的数据是在HTTP的头部传送的,而post的数据则是在HTTP请求的内容里传送。

简单的说:post传输数据时,不需要在URL中显示出来,而get方 法要在URL中显示

基本操作

  • 创建url对象:URL url = new URL(httpUrl);(httpUrl是自定义的网址)
  • 创建HttpURLConnection对象:HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
  • 设置请求方式(默认get):httpURLConnection.setRequestMethod("GET");
  • 建立连接:httpURLConnection.connect();
  • 获取请求状态码: httpURLConnection.getResponseCode();

MediaPlayer

prepare():完成视频播放前的准备工作

setDataSource():设置多媒体数据来源

如何创建:

MediaPlayer mediaPlayer = new MediaPlayer();

MediaPlayer mediaPlayer = MediaPlayer.create();

简答题

简述Android体系结构

  • 应用程序层:包括各类与用户直接交互的应用程序,或由java语言编写的运行于后台的服务程序;例如:SMS短信,电话拨号,图片浏览器,日历,游戏, 地图,web浏览器等程序,以及开发人员开发的其他应用 程序
  • 应用程序框架层:

  • 系统运行库层:
    • 程序库:C库、媒体库、Surface Manager、WebKit、SGL、3Dlibraries、FreeType、SSL、SQLite
    • Android 运行库:每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例

关于JVM和Dalvik VM:

JVM:执行class文件(字节码 )

Dalvik VM:执行dex文件(Dalvik Executes缩写)

Dalvik最大的好处在于可以根据硬件实现更大的优化,这更适合移动设备

  • Linux 内核层:Android的核心系统服务依赖于Linux内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型

*简述Android的四大组件及其功能

①Activity:用于界面展示与用户交互

②Service:Service是Android系统四大组件之一,它是一种长生命周期的,没有可视化界面,运行于后台的一种服务程序,用于执行后台任务

③BroadcastReceiver:对发送出来的Broadcast进行过滤并响应,用于传递/通知某种事件

④ContentProvider:提供了应用程序之间共享数据的方法,一个应用程序可以通过ContentProvider将自己的数据暴露出去;应用程序通过ContentProvider访问数据而不需要关心数据具体的存储及访问过程,这样既提高了数据的访问效率,同时也保护了数据

简述Android系统特点

在内存和进程管理方面,Android有自己的运行时和虚拟机;

Android将界面设计与程序逻辑分离,界面布局使用XML文件,有利于界面的修改和维护;

Android提供轻量级的进程间通讯机制Intent,使跨进程组件通信和发送系统广播成为可能

Android提供Service作为无用户界面、长时间后台运行组件;

支持快速、高效的数据存储

为了跨进程共享数据,Android提供ContentProvider接口

可以无需了解数据源、路径的情况下,对共享数据进行查询、添加、删除和更新等操作

*简述Activity的生命周期

答案1:Activity生命周期指Activity从启动到销毁的过程

Activity表现为四种状态:

  1. 活动状态Active:Activity在用户界面中处于最上层,完全能被用户看到,能够与用户进行交互。
  2. 暂停状态Pause:Activity在界面上被部分遮挡,不再处于用户界面的最上层,且不能够与用户进行交互。(如弹出选择框时)
  3. 停止状态Stop:Activity被其他Activity全部遮挡,界面完全不能被用户看到。(如玩游戏时来电了)
  4. 非活动状态Dead:Activity没有启动或者被finish()。

答案2:

onCreate():创建活动,做一些数据初始化的操作

onStart():由不可见变为可见

onResume():可以与用户进行交互,位于栈顶

onPause():暂停,启动或恢复另一个活动时调用

onStop():停止,变为不可见

onRestart():由停止状态变为运行状态

onDestroy():销毁

简述Activity栈的工作流程

  1. Activity栈后进先出
  2. 新的Activity启动之后入栈,处于活动状态,如果按了返回键或者Activity被finish,则该Activity出栈,位于非活动状态;
  3. 位于栈底的暂停状态或者停止状态的Activity被系统强制终止后也会出栈,变为非活动状态

简述Activity生命周期的事件回调函数

简述Android架构的MVC模式

MVC目的:M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式,C可确保M和V的同步,一旦M改变,V能同步更新

简述如何设置View的宽度

①通过wrap_content设置:自适应内容,表示和自身内容一样的长度

②通过match_parent(fill_parent)设置,表示和父组件一样的长度

③设置具体的宽度:android:layout_width="xxdp"

④在代码中通过setLayoutParams来设置

*简述6种常见的页面布局(分别有什么特点)

RelativeLayout

相对布局是一种非常灵活的布局方式;

通过指定界面元素与其他元素的相对位置关系,来确定界面中所有元素的布局位置;

优点:能够最大程度保证在各种屏幕尺寸的手机上正确显示界面布局


常用布局:

居中:

margin(设置组件与父容器的间距):

padding(设置组件内部元素间的间距):

*LinearLayout

线性布局是常用的一种布局方式,支持横向和纵向排列子视图

通过设置android:orientation来确定是垂直还是水平布局

android:orientation="vertical" 垂直布局(垂直布局时:每行仅包含一个界面元素)

android:orientation="horizontal" 水平布局 (默认)(水平布局时:所有界面元素都在一行)

FrameLayout

FrameLayout中所有界面对象都是从屏幕的左上角(0,0)开始布局,不能指定位置;

多个组件层叠排列,上一层的会覆盖下一层的控件;

第一个添加的组件放到最底层,最后添加的显示在最上面

TableLayout

表格布局以行列的形式管理子元素,每一行是一个TableRow布局对象,当然也可以是普通的View对象;TableRow表现为一个水平LinearLayout,里面的元素会水平排列

GridLayout

Android4.0新支持的布局

网格布局将用户界面划分为网格,可以方便地实现等分、不等分的布局;界面元素可随意摆放在网格中,网格布局比表格布局更灵活;

在网格布局中界面元素可以占用多个网格

AbsoluteLayout

绝对布局能通过指定界面元素的坐标位置,来确定用户界面的整体布局。已经不推荐使用

绝对布局不能够根据不同屏幕对界面元素进行位置调整

简述Intent和Bundle的作用

Intent是一种组件之间消息传递机制,它是一个动作的完整描述:包含了动作产生组件、接收组件和传递的数据信息;Intent主要用途有启动Activity、Service,在Android系统上发布Broadcast消息

Bundle类是一个存储和管理key-value值对的类,多应用于Activity之间相互传递值

*简述Intent启动Activity的两种启动方式

显示启动

在Intent中指明要启动的Activity类

代码示例:

隐式启动

无需指明具体启动哪一个Activity,而由Android系统根据Intent的动作和数据来决定启动哪一个Activity

代码示例:

简述Intent双向传递数据的原理

简述消息广播标识串的用途

  1. 发送广播时:用于创建Intent对象,Intent intent = new Intent("广播标识串");
  2. manifest中注册时用:作为BroadcastReceiver的intent-filter的action name值
  3. 处理消息时:在onReceive()方法中作为消息类型的判断用

*简述Service的类型(两种启动方式的不同)

简述Service的生命周期

在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用 onStartCommand()方法。如果调用startService()方法前服务已经被创建,多次调startService() 方法并不会导致多次创建服务,但会导致多次调onStartCommand() 方法。

如果调用方法前服务已经被绑定,多次调用bindService()并不会导致多次创建服务及绑定(也就是 onCreate()和onBind()方法并不会被多次调用)。

简述SharedPreferences及其三种访问模式

SharedPreferences是一种轻量级的数据保存方式

通过SharedPreferences可以将NVP(Name/Value Pair,名称/值对)保存在Android的文件系统中,而且SharedPreferences完全屏蔽对文件系统的操作过程;SharedPreferences不仅能够保存数据,还能够实现不同应用程序间的数据共享

SharedPreferences支持三种访问模式

  1. 私有(MODE_PRIVATE):仅有创建程序有权限对其进行读取或写入。
  2. 全局读(MODE_WORLD_READABLE):不仅创建程序可以对其进行读取或写入,其他应用程序也读取操作的权限,但没有写入操作的权限。
  3. 全局写(MODE_WORLD_WRITEABLE):创建程序和其他程序都可以对其进行写入操作,但没有读取的权限。

简述访问其他应用程序的SharedPreferences必须满足的三个条件

  1. 共享者需要将SharedPreferences的访问模式设置为全局读或全局写
  2. 访问者需要知道共享者的包名称和SharedPreferences的名称,以通过Context获得SharedPreferences对象
  3. 访问者需要确切知道每个数据的名称和数据类型,用以正确读取数据

简述Android文件存储的方式

Android使用的是基于Linux的文件系统

  1. 内部存储:在内部存储器上进行文件写入和读取
  2. 外部存储:在SD卡上进行存储;SD卡使用的是FAT(File Allocation Table)的文件系统,不支持访问模式和权限控制,但可以通过Linux文件系统的文件访问权限的控制保证文件的私密性
  3. 资源文件:程序开发人员可以将程序开发阶段已经准备好的原始格式文件和XML文件分别存放在/res/raw和/res/xml目录下,供应用程序在运行时进行访问

原始格式文件可以是任何格式的文件,例如视频格式文件、音频格式文件、图像文件和数据文件等等,在应用程序编译和打包时,/res/raw目录下的所有文件都会保留原有格式不变

/res/xml目录下的XML文件,一般用来保存格式化的数据,在应用程序编译和打包时会将XML文件转换为高效的二进制格式,应用程序运行时会以特殊的方式进行访问

列举一些系统ContentProvider

进程的基本概念

简述Handler消息处理机制

  1. 不直接在子线程中进行 UI 操作,子线程通过 Handler 将Message 传送出去
  2. 主线程中的Handler接收这个Message,然后进行 UI 等相关操作

简述TCP/IP网络层次结构

简述什么是socket

网络上的两个应用程序之间的通信是分层进行的,socket是应用程序进行网络通信的接口

简述端口号的作用

如果要发起网络连接,不仅需要知道远程机器的地址或名字。而且,还需要一个端口号。客户端和服务器必须事先约定所使用的端口,如果系统两部分所使用的端口不一致,那就不能进行通信

简述HttpURLConnection的基本工作流程

get:

post:

简述什么是Fragment及其优点

Fragment(碎片)是一种可以嵌入在Activity中的 UI 片段,它能让程序更加合理和充分地利用屏幕空间

优点:

Fragment可以轻松地创建动态灵活的UI设计,可以适应不同的屏幕尺寸,从手机到平板电脑

Fragment可将Activity分离成多个可重用的组件,每个都有它自己的生命周期和UI

Fragment是一个独立的模块,紧紧地与Activity绑定在一起。可以在运行中动态地移除、加入、替换等。

Fragment 替代TabActivity做导航,性能更好

Fragment 在4.2版本中新增嵌套fragment方法,能够生成更好的界面 效果

Fragment做局部内容更新更方便,原来为了到达这一点要把多个布局 放到一个Activity里面,现在可以用多个Fragment来代替,只有在需要的时候才加载Fragment,提高性能

简述传感器的分类

编程题

补充:toast的使用

Toast 在应用程序上浮动显示少量信息给用户,它永远不会获得焦点,不影响用户的输入等操作

基本用法:

Toast toast=Toast.makeText( 参数1,参数2,参数3 );

toast.show();

参数1:当前的上下文环境;getApplicationContext()或者是某个Activity.this

参数2:要显示的字符串

参数3:显示时间的长短:Toast.LENGTH_SHORT或 Toast.LENGTH_LONG

基本控件的属性(View)

(有可能就是给出一个页面,填写如何设置控件的属性来实现这个页面)

如何新建菜单

菜单资源示例:

这里的名称和创建时的名称对应,上面是main.xml,这里就得是R.menu.main

同样,这里的R.id.menu_item1应该为R.id.menu1(我是从不同的代码拼接的,注意区分)

***双向传递数据的核心代码框架

A端收到回传的数据:

双向传递数据示例(求和)

***双向传递数据+自定义广播示例

系统广播示例(监听拨打电话)

(如何添加广播的代码要会)

(这一部分代码也要会,记住如何startActivity)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/24338.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java学习路线(13)——Collection集合类:List集合与Set集合

一、集合类体系结构 二、部分Collection类型对象 Collection集合特点 List系列集合是有序、可重复、有索引。 ArrayList&#xff1a;有序、可重复、有索引LinkedList&#xff1a;有序、可重复、有索引 Set系列集合是无序、不重复、无索引。 HashSet&#xff1a;无序、不重复…

下载YouTube视频的一种方法

文章目录 工具名称下载方法使用方法1.只下载音频2.下载音频转换成mp3&#xff08;加上-x –audio-format参数&#xff09;3.下载视频&#xff08;带音频&#xff09;ID&#xff1a;22 | EXT&#xff1a;mp4 | 1280*720 下载的数据集&#xff1a;YouCook2 工具名称 yt-dlp 下载…

ajax使用

说明&#xff1a;ajax是一门异步处理请求的技术&#xff1b;可以实现不重新加载整个页面的情况下&#xff0c;访问后台后服务&#xff1b;比如百度搜索引擎&#xff0c;输入关键字后&#xff0c;下面会实时出现待选项&#xff0c;这就是一种异步处理请求的技术。 原生Ajax 原…

chatgpt赋能python:Python中未定义变量的默认值

Python中未定义变量的默认值 在Python编程中&#xff0c;有时候我们会使用未经定义的变量。如果这些变量没有被定义&#xff0c;那么它们将没有任何值。在这篇文章中&#xff0c;我们将讨论Python中未定义变量默认值的问题&#xff0c;并深入研究为什么这些默认值如此重要。 …

如何保证三个线程按顺序执行?不会我教你

&#x1f468;‍&#x1f393;作者&#xff1a;bug菌 ✏️博客&#xff1a;CSDN、掘金、infoQ、51CTO等 &#x1f389;简介&#xff1a;CSDN|阿里云|华为云|51CTO等社区博客专家&#xff0c;历届博客之星Top30&#xff0c;掘金年度人气作者Top40&#xff0c;51CTO年度博主Top12…

linux内核内存管理slab

一、概述 linux内存管理核心是伙伴系统&#xff0c;slab&#xff0c;slub&#xff0c;slob是基于伙伴系统之上提供api&#xff0c;用于内核内存分配释放管理&#xff0c;适用于小内存&#xff08;小于&#xff11;页&#xff09;分配与释放&#xff0c;当然大于&#xff11;页…

基于html+css的图展示99

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

运动员最佳配对问题——算法设计与分析(C实现)

目录 一、问题简述 二、分析 三、代码展示 四、结果验证 一、问题简述 问题描述&#xff1a;羽毛球队有男女运动员各n人。给定2个n*n矩阵P和Q。P[i][j]是男运动员i和女运动员j配对组成混合双打的男运动员竞争优势&#xff1b;Q[i][j]是男运动员i和女运动员j配合的女运动员竞…

SSM框架学习-拦截器

1. 简介 在Spring框架中&#xff0c;拦截器是一种很重要的组件&#xff0c;它们允许在请求到达控制器之前或之后执行一些代码。拦截器在请求处理的特定点进行拦截&#xff0c;然后通过逻辑来决定是否将控制器的处理传递给下一个处理程序。 在Spring中&#xff0c;拦截器是由实现…

KVM虚拟化技术学习-基础入门

1.虚拟化技术概述 虚拟化[Virtualization]技术最早出现在 20 世纪 60 年代的 IBM ⼤型机系统&#xff0c;在70年代的 System 370 系列中逐渐流⾏起来&#xff0c;这些机器通过⼀种叫虚拟机监控器[Virtual Machine Monitor&#xff0c;VMM]的程序 在物理硬件之上⽣成许多可以运⾏…

Codeforces Round 764 (Div. 3)

比赛链接 Codeforces Round 764 A. Plus One on the SubsetB. Make APC. Division by Two and PermutationD. Palindromes ColoringE. Masha-forgetful A. Plus One on the Subset Example input 3 6 3 4 2 4 1 2 3 1000 1002 998 2 12 11output 3 4 1题意&#xff1a; 你可…

计算机网络考试多选题汇总Ⅱ

https://cadyin.blog.csdn.nethttps://blog.csdn.net/qq_38639612?spm1010.2135.3001.5421 计算机网络考试多选题汇总 1、在Windows中&#xff0c;任务管理器的作用是() A&#xff0e;终止未响应的应用程序 B&#xff0e;终止进程的运行 C&#xff0e;查看系统当前的信息 …

车载网络测试 - CANCANFD - 基础篇_01

目录 问题思考&#xff1a; 一、为什么需要总线? 二、什么是CAN总线? 三、为什么是CAN总线? 四、曾经的车用总线 1、SAEJ1850(Class2) 2、SAEJ1708 3、K-Line 4、BEAN 5、 byteflight, K-Bus 6、D2B 五、当前的车用总线 1、CAN 2、LIN 3、FlexRay 4、MOST 六…

python-sqlite3使用指南

python下sqlite3使用指南 文章目录 python下sqlite3使用指南开发环境sqlite3常用APICRUD实例参考 开发环境 vscode ​ 开发语言&#xff1a; python vscode SQLite插件使用方法&#xff1a; 之后在这里就可以发现可视化数据&#xff1a; sqlite3常用API Python 2.5.x 以上…

E往无前 | 腾讯云大数据 ElasticSearch 高级功能:Cross Cluster Replication实战

前言 Elasticsearch在platinum版本中&#xff0c;推出了Cross Cluster Replication特性&#xff08;以下简称CCR&#xff09;&#xff0c;也即跨集群远程复制。 该特性可以解决两类问题&#xff1a; 1&#xff0c;数据迁移&#xff1b; 2&#xff0c;异地备份。 本文以实战为主…

微服务和领域驱动

一、微服务 1.1 什么是微服务 微服务就是一些协同工作的小而自治的服务。 关键词&#xff1a; 小而自治 -- 小 “小”这个概念&#xff0c;一方面体现在微服务的内聚性上。 内聚性也可以称之为单一职责原则&#xff1a;“把因相同原因而变化的东西聚合到一起&#xff0c;…

企业电子招投标采购系统源码之登录页面-java spring cloud

​ 信息数智化招采系统 服务框架&#xff1a;Spring Cloud、Spring Boot2、Mybatis、OAuth2、Security 前端架构&#xff1a;VUE、Uniapp、Layui、Bootstrap、H5、CSS3 涉及技术&#xff1a;Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monitor、…

202312读书笔记|《赶时间的人》——灰暗的从前会成为照亮未来的光,艰难的生活里,诗歌是那陡峭的另一面

202312读书笔记|《赶时间的人》——灰暗的从前会成为照亮未来的光&#xff0c;艰难的生活里&#xff0c;诗歌是那陡峭的另一面 《赶时间的人》 作者王计兵&#xff0c;一个外卖员的诗&#xff0c;饱含对生活的热情&#xff0c;向上的力量&#xff0c;仿若身在炼狱&#xff0c;心…

【计算机网络】3、IO 多路复用:select、poll、epoll、reactor | 阻塞非阻塞、同步异步

文章目录 一、select()1.1 用法1.1 实战 二、poll()2.1 用法2.2 实战 三、阻塞、非阻塞3.1 非阻塞 IO3.1.1 read()3.1.2 write()3.1.3 accept()3.1.4 connect()3.1.5 非阻塞IO select() 多路复用实战 四、epoll()4.1 epoll_create()4.2 epoll_ctl()4.3 epoll_wait()4.4 实战4.…

Dubbo源码篇07---SPI神秘的面纱---原理篇---下

Dubbo源码篇07---SPI神秘的面纱---原理篇---下 引言根据name获取扩展实例对象获取默认扩展实例对象按条件批量获取扩展实例对象实例演示 小结 引言 上篇文章&#xff1a; Dubbo源码篇06—SPI神秘的面纱—原理篇—上 我们追踪了getAdaptiveExtension获取自适应扩展点的整个流程…