数据持久化技术具体是什么?数据持久化的四种方式有哪些?
数据持久化技术具体是什么?
数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称. 数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、XML、二进制流等。cmp和Hibernate只是对象模型到关系模型之间转换的不同实现。
数据持久化技术是指将应用程序中的数据保存在磁盘或其他存储介质中,以便在应用程序关闭后或系统崩溃时仍能保存数据。这种技术是现代计算机应用程序中不可或缺的一部分,因为它确保了数据的可靠性和完整性,并且使数据在多个应用程序之间共享变得更加容易。
数据持久化技术是现代计算机应用程序中不可或缺的一部分。它涉及将应用程序中的数据保存在磁盘或其他存储介质中,以便在应用程序关闭后或系统崩溃时仍能保存数据。这种技术可以确保数据的可靠性和完整性,并且使数据在多个应用程序之间共享变得更加容易。数据持久化技术还可以提高应用程序的性能和可扩展性。
延伸阅读:
数据持久化技术的优缺点
数据持久化技术有以下优点:
可靠性:数据持久化技术可以确保数据在应用程序关闭或系统崩溃时不会丢失。
完整性:数据持久化技术可以确保数据在存储和检索过程中不会被破坏或篡改。
共享性:数据持久化技术使得多个应用程序可以共享数据,从而提高了应用程序的效率和可扩展性。
数据持久化技术也有以下缺点:
性能:某些数据持久化技术(例如关系型数据库)的性能可能会受到影响,尤其是在处理大量数据时。
复杂性:某些数据持久化技术(例如关系型数据库)的实现和维护可能会很复杂。
成本:某些数据持久化技术(例如关系型数据库)可能需要付出高昂的成本,尤其是在处理大量数据时。
数据持久化的四种方式有哪些?
所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案:
plist文件(属性列表)
preference(偏好设置)
NSKeyedArchiver(归档)
SQLite 3
CoreData
plist文件
plist文件是将某些特定的类,通过XML文件的方式保存在目录中。
可以被序列化的类型只有如下几种:
NSArray;
NSMutableArray;
NSDictionary;
NSMutableDictionary;
NSData;
NSMutableData;
NSString;
NSMutableString;
NSNumber;
NSDate;
1.获得文件路径
NSString*path=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES).firstObject;
NSString*fileName=[pathstringByAppendingPathComponent:@"123.plist"];
2.存储
NSArray*array=@[@"123",@"456",@"789"];
[arraywriteToFile:fileNameatomically:YES];
3.读取
NSArray*result=[NSArrayarrayWithContentsOfFile:fileName];
NSLog(@"%@",result);
4.注意
只有以上列出的类型才能使用plist文件存储。
存储时使用writeToFile: atomically:方法。 其中atomically表示是否需要先写入一个辅助文件,再把辅助文件拷贝到目标文件地址。这是更安全的写入文件方法,一般都写YES。
读取时使用arrayWithContentsOfFile:方法。
Preference
1.使用方法
//1.获得NSUserDefaults文件
NSUserDefaults*userDefaults=[NSUserDefaultsstandardUserDefaults];
//2.向文件中写入内容
[userDefaultssetObject:@"AAA"forKey:@"a"];
[userDefaultssetBool:YESforKey:@"sex"];
[userDefaultssetInteger:21forKey:@"age"];
//2.1立即同步
[userDefaultssynchronize];
//3.读取文件
NSString*name=[userDefaultsobjectForKey:@"a"];
BOOLsex=[userDefaultsboolForKey:@"sex"];
NSIntegerage=[userDefaultsintegerForKey:@"age"];
NSLog(@"%@,%d,%ld",name,sex,age);
2.注意
偏好设置是专门用来保存应用程序的配置信息的,一般不要在偏好设置中保存其他数据。
如果没有调用synchronize方法,系统会根据I/O情况不定时刻地保存到文件中。所以如果需要立即写入文件的就必须调用synchronize方法。
偏好设置会将所有数据保存到同一个文件中。即preference目录下的一个以此应用包名来命名的plist文件。
NSKeyedArchiver
归档在iOS中是另一种形式的序列化,只要遵循了NSCoding协议的对象都可以通过它实现序列化。由于决大多数支持存储数据的Foundation和Cocoa Touch类都遵循了NSCoding协议,因此,对于大多数类来说,归档相对而言还是比较容易实现的。
1.遵循NSCoding协议
NSCoding协议声明了两个方法,这两个方法都是必须实现的。一个用来说明如何将对象编码到归档中,另一个说明如何进行解档来获取一个新对象。
遵循协议和设置属性
//1.遵循NSCoding协议
@interfacePerson:NSObject//2.设置属性
@property(strong,nonatomic)UIImage*avatar;
@property(copy,nonatomic)NSString*name;
@property(assign,nonatomic)NSIntegerage;
@end
实现协议方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15//解档
-(id)initWithCoder:(NSCoder*)aDecoder{
if([superinit]){
self.avatar=[aDecoderdecodeObjectForKey:@"avatar"];
self.name=[aDecoderdecodeObjectForKey:@"name"];
self.age=[aDecoderdecodeIntegerForKey:@"age"];
}
returnself;
}
//归档
-(void)encodeWithCoder:(NSCoder*)aCoder{
[aCoderencodeObject:self.avatarforKey:@"avatar"];
[aCoderencodeObject:self.nameforKey:@"name"];
[aCoderencodeInteger:self.ageforKey:@"age"];
}
特别注意
如果需要归档的类是某个自定义类的子类时,就需要在归档和解档之前先实现父类的归档和解档方法。即 [super encodeWithCoder:aCoder] 和 [super initWithCoder:aDecoder] 方法;
2.使用
需要把对象归档是调用NSKeyedArchiver的工厂方法 archiveRootObject: toFile: 方法。
NSString*file=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES).firstObjectstringByAppendingPathComponent:@"person.data"];
Person*person=[[Personalloc]init];
person.avatar=self.avatarView.image;
person.name=self.nameField.text;
person.age=[self.ageField.textintegerValue];
[NSKeyedArchiverarchiveRootObject:persontoFile:file];
需要从文件中解档对象就调用NSKeyedUnarchiver的一个工厂方法 unarchiveObjectWithFile: 即可。
NSString*file=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES).firstObjectstringByAppendingPathComponent:@"person.data"];
Person*person=[NSKeyedUnarchiverunarchiveObjectWithFile:file];
if(person){
self.avatarView.image=person.avatar;
self.nameField.text=person.name;
self.ageField.text=[NSStringstringWithFormat:@"%ld",person.age];
}
3.注意
必须遵循并实现NSCoding协议
保存文件的扩展名可以任意指定
继承时必须先调用父类的归档解档方法
SQLite3
之前的所有存储方法,都是覆盖存储。如果想要增加一条数据就必须把整个文件读出来,然后修改数据后再把整个内容覆盖写入文件。所以它们都不适合存储大量的内容。
1.字段类型
表面上SQLite将数据分为以下几种类型:
integer : 整数
real : 实数(浮点数)
text : 文本字符串
blob : 二进制数据,比如文件,图片之类的
实际上SQLite是无类型的。即不管你在创表时指定的字段类型是什么,存储是依然可以存储任意类型的数据。而且在创表时也可以不指定字段类型。SQLite之所以什么类型就是为了良好的编程规范和方便开发人员交流,所以平时在使用时最好设置正确的字段类型!主键必须设置成integer
2. 准备工作
准备工作就是导入依赖库啦,在iOS中要使用SQLite3,需要添加库文件:libsqlite3.dylib并导入主头文件,这是一个C语言的库,所以直接使用SQLite3还是比较麻烦的。
3.使用
创建数据库并打开
操作数据库之前必须先指定数据库文件和要操作的表,所以使用SQLite3,首先要打开数据库文件,然后指定或创建一张表。
/**
*打开数据库并创建一个表
*/
-(void)openDatabase{
//1.设置文件名
NSString*filename=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES).firstObjectstringByAppendingPathComponent:@"person.db"];
//2.打开数据库文件,如果没有会自动创建一个文件
NSIntegerresult=sqlite3_open(filename.UTF8String,&_sqlite3);
if(result==SQLITE_OK){
NSLog(@"打开数据库成功!");
//3.创建一个数据库表
char*errmsg=NULL;
sqlite3_exec(_sqlite3,"CREATETABLEIFNOTEXISTSt_person(idintegerprimarykeyautoincrement,nametext,ageinteger)",NULL,NULL,&errmsg);
if(errmsg){
NSLog(@"错误:%s",errmsg);
}else{
NSLog(@"创表成功!");
}
}else{
NSLog(@"打开数据库失败!");
}
}
执行指令
使用 sqlite3_exec() 方法可以执行任何SQL语句,比如创表、更新、插入和删除操作。但是一般不用它执行查询语句,因为它不会返回查询到的数据。
/**
*往表中插入1000条数据
*/
-(void)insertData{
NSString*nameStr;
NSIntegerage;
for(NSIntegeri=0;i<1000;i++){
nameStr=[NSStringstringWithFormat:@"Bourne-%d",arc4random_uniform(10000)];
age=arc4random_uniform(80)+20;
NSString*sql=[NSStringstringWithFormat:@"INSERTINTOt_person(name,age)VALUES('%@','%ld')",nameStr,age];
char*errmsg=NULL;
sqlite3_exec(_sqlite3,sql.UTF8String,NULL,NULL,&errmsg);
if(errmsg){
NSLog(@"错误:%s",errmsg);
}
}
NSLog(@"插入完毕!");
}
查询指令
前面说过一般不使用 sqlite3_exec() 方法查询数据。因为查询数据必须要获得查询结果,所以查询相对比较麻烦。示例代码如下:
sqlite3_prepare_v2() : 检查sql的合法性
sqlite3_step() : 逐行获取查询结果,不断重复,直到最后一条记录
sqlite3_coloum_xxx() : 获取对应类型的内容,iCol对应的就是SQL语句中字段的顺序,从0开始。根据实际查询字段的属性,使用sqlite3_column_xxx取得对应的内容即可。
sqlite3_finalize() : 释放stmt
/**
*从表中读取数据到数组中
*/
-(void)readData{
NSMutableArray*mArray=[NSMutableArrayarrayWithCapacity:1000];
char*sql="selectname,agefromt_person;";
sqlite3_stmt*stmt;
NSIntegerresult=sqlite3_prepare_v2(_sqlite3,sql,-1,&stmt,NULL);
if(result==SQLITE_OK){
while(sqlite3_step(stmt)==SQLITE_ROW){
char*name=(char*)sqlite3_column_text(stmt,0);
NSIntegerage=sqlite3_column_int(stmt,1);
//创建对象
Person*person=[PersonpersonWithName:[NSStringstringWithUTF8String:name]Age:age];
[mArrayaddObject:person];
}
self.dataList=mArray;
}
sqlite3_finalize(stmt);
}
4.总结
总得来说,SQLite3的使用还是比较麻烦的,因为都是些c语言的函数,理解起来有些困难。不过在一般开发过程中,使用的都是第三方开源库 FMDB,封装了这些基本的c语言方法,使得我们在使用时更加容易理解,提高开发效率。
FMDB
1.简介
FMDB是iOS平台的SQLite数据库框架,它是以OC的方式封装了SQLite的C语言API,它相对于cocoa自带的C语言框架有如下的优点:
使用起来更加面向对象,省去了很多麻烦、冗余的C语言代码
对比苹果自带的Core Data框架,更加轻量级和灵活
提供了多线程安全的数据库操作方法,有效地防止数据混乱
注:FMDB的gitHub地址
2.核心类
FMDB有三个主要的类:
FMDatabase
一个FMDatabase对象就代表一个单独的SQLite数据库,用来执行SQL语句
FMResultSet
使用FMDatabase执行查询后的结果集
FMDatabaseQueue
用于在多线程中执行多个查询或更新,它是线程安全的
3.打开数据库
和c语言框架一样,FMDB通过指定SQLite数据库文件路径来创建FMDatabase对象,但FMDB更加容易理解,使用起来更容易,使用之前一样需要导入sqlite3.dylib。打开数据库方法如下:
NSString*path=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES).firstObjectstringByAppendingPathComponent:@"person.db"];
FMDatabase*database=[FMDatabasedatabaseWithPath:path];
if(![databaseopen]){
NSLog(@"数据库打开失败!");
}
值得注意的是,Path的值可以传入以下三种情况:
具体文件路径,如果不存在会自动创建
空字符串@"",会在临时目录创建一个空的数据库,当FMDatabase连接关闭时,数据库文件也被删除
nil,会创建一个内存中临时数据库,当FMDatabase连接关闭时,数据库会被销毁
4.更新
在FMDB中,除查询以外的所有操作,都称为“更新”, 如:create、drop、insert、update、delete等操作,使用executeUpdate:方法执行更新:
//常用方法有以下3种:
-(BOOL)executeUpdate:(NSString*)sql,...
-(BOOL)executeUpdateWithFormat:(NSString*)format,...
-(BOOL)executeUpdate:(NSString*)sqlwithArgumentsInArray:(NSArray*)arguments
//示例
[databaseexecuteUpdate:@"CREATETABLEIFNOTEXISTSt_person(idintegerprimarykeyautoincrement,nametext,ageinteger)"];
//或者
[databaseexecuteUpdate:@"INSERTINTOt_person(name,age)VALUES(?,?)",@"Bourne",[NSNumbernumberWithInt:42]];
5.查询
查询方法也有3种,使用起来相当简单:
-(FMResultSet*)executeQuery:(NSString*)sql,...
-(FMResultSet*)executeQueryWithFormat:(NSString*)format,...
-(FMResultSet*)executeQuery:(NSString*)sqlwithArgumentsInArray:(NSArray*)arguments
查询示例:
//1.执行查询
FMResultSet*result=[databaseexecuteQuery:@"SELECT*FROMt_person"];
//2.遍历结果集
while([resultnext]){
NSString*name=[resultstringForColumn:@"name"];
intage=[resultintForColumn:@"age"];
}
6.线程安全
在 多个线程中同时使用一个FMDatabase实例是不明智的。不要让多个线程分享同一个FMDatabase实例,它无法在多个线程中同时使用。 如果在多个线程中同时使用一个FMDatabase实例,会造成数据混乱等问题。所以,请使用 FMDatabaseQueue,它是线程安全的。以下是使用方法:
创建队列。
FMDatabaseQueue*queue=[FMDatabaseQueuedatabaseQueueWithPath:aPath];
使用队列
[queueinDatabase:^(FMDatabase*database){
[databaseexecuteUpdate:@"INSERTINTOt_person(name,age)VALUES(?,?)",@"Bourne_1",[NSNumbernumberWithInt:1]];
[databaseexecuteUpdate:@"INSERTINTOt_person(name,age)VALUES(?,?)",@"Bourne_2",[NSNumbernumberWithInt:2]];
[databaseexecuteUpdate:@"INSERTINTOt_person(name,age)VALUES(?,?)",@"Bourne_3",[NSNumbernumberWithInt:3]];
FMResultSet*result=[databaseexecuteQuery:@"select*fromt_person"];
while([resultnext]){
}
}];
而且可以轻松地把简单任务包装到事务里:
[queueinTransaction:^(FMDatabase*database,BOOL*rollback){
[databaseexecuteUpdate:@"INSERTINTOt_person(name,age)VALUES(?,?)",@"Bourne_1",[NSNumbernumberWithInt:1]];
[databaseexecuteUpdate:@"INSERTINTOt_person(name,age)VALUES(?,?)",@"Bourne_2",[NSNumbernumberWithInt:2]];
[databaseexecuteUpdate:@"INSERTINTOt_person(name,age)VALUES(?,?)",@"Bourne_3",[NSNumbernumberWithInt:3]];
FMResultSet*result=[databaseexecuteQuery:@"select*fromt_person"];
while([resultnext]){
}
//回滚
*rollback=YES;
}];
FMDatabaseQueue 后台会建立系列化的G-C-D队列,并执行你传给G-C-D队列的块。这意味着 你从多线程同时调用调用方法,GDC也会按它接收的块的顺序来执行。
相关阅读
-
ntfs和fat32具体有什么区别详情?ntfs和...
ntfs和fat32具体有什么区别详情?ntfs和fat32的区别介绍一、支持分区... -
百度搜有惊喜具体是什么意思?百度搜索...
百度搜有惊喜具体是什么意思?在这个夏日大家肯定都听说了百度搜有惊... -
百度网盘下载的文件在哪个位置?百度网...
百度网盘下载的文件在哪个位置?使用百度网盘下载了一些文件以后,很... -
超星学习通网页版学生登录入口?学习通...
超星学习通网页版学生登录入口?学习通是常用的学习工具,可以随时进... -
数据持久化技术具体是什么?数据持久化...
数据持久化技术具体是什么?数据持久化就是将内存中的数据模型转换为... -
生活中常用的办公平台有哪些?微软offic...
生活中常用的办公平台有哪些?一、微软 Office 365微软 Office 3...
精彩推送
-
2024 年助力品牌全域经营 SaaS 工具
海量智能是一家专注于智能营销工具研发和用户运营解决方案的创新型 -
实现全流程国产化 蜜巢政务大模型3.0重...
2024年7月4日,2024世界人工智能大会暨人工智能全球治理高级别会议 -
加速“人工智能+”总台研究院主办活动来啦
“人工智能必须是发展与治理同步,政府要划定边界,特别要在国际上加 -
国科微全系边端AI芯片闪耀WAIC2024:加...
7月4日,2024世界人工智能大会(以下简称“WAIC2024”)在上海开幕 -
钛虎科技机器人震撼发布:T170A“瑶光”...
2024年7月4日 —— 在全球瞩目的2024世界人工智能大会(WAIC)暨人... -
拐点已在眼前,北汽蓝谷积聚向上势能
伴随着中国新能源汽车市场的高速发展,各家新能源汽车企业的表现都备 -
年轻员工猝死频发:沃民高科AI引擎驱动...
在科技快速发展的今天,高强度的工作节奏已成为许多行业尤其是科技 -
强者恒存!曙光存储重磅新品再破存力上限
6月25日,曙光存储召开了主题为“先进存力,凝聚数据要素”的新品暨... -
国产“Omniverse”诞生! 联想新视界重...
近年来,以英伟达Omniverse为代表的元宇宙平台在元宇宙国际竞争中呈 -
丝芭传媒旗下美踏元宇宙和鹦鹉人启动内...
6月26日,丝芭传媒旗下酝酿已久的创新AIGPT及AIGC生成工具APP“鹦鹉 -
李德毅院士:人类的四种基本认知模式
编者按人类认知的整个活动,就是如何解释、解决人类在生存和繁衍过 -
视觉生成式AI如何引领各行各业创新?CVP...
导语:50+ 论文成果、CVPR 自动驾驶大挑战赛“端到端规模驾驶“获 -
AI下半场 宁畅智算中心以全栈全液助推...
当前,人工智能以前所未有的速度塑造各行各业,全国范围内对智算中 -
身怀全栈全液能力 宁畅打造智算中心部...
当前,人工智能以前所未有的速度塑造各行各业,全国范围内对智算中 -
淘宝直播“勇往直前的CEO”再添一员,AI...
自淘宝推出勇往直前的CEO计划以来,一大拨企业家正涌向淘宝直播间。6... -
存算“全能王”!中科可控重磅发布新一...
当前,人工智能应用快速落地、多模态大模型加速迭代,亿万数据让计 -
高能来袭|联想拯救者携手《黑神话:悟空...
从2020年首次发布实机演示视频以来,《黑神话:悟空》便在全球范围 -
YYDS!联发科携最新AI创新应用亮相COMPUTEX
近日,备受全球瞩目的COMPUTEX 2024科技展会在热烈的氛围中拉开帷 -
广西村支书用AI制作视频带货,网友:接...
近日,一则广西勒水村的新闻屡见报端,当地村民用AI做短视频带货,推广 -
COMPUTEX 2024开展:联发科大秀全景AI...
在最近开幕的COMPUTEX 2024科技展会上,联发科展示了其最新的AI技 -
“AI+全场景”!中科可控AI工作站来袭
近年来人工智能技术极速发展,“AI+”已然成为行业用户对于体验升级... -
阿丘科技:生成式AI与行业视觉大模型驱...
5月21日,阿丘科技CEO黄耀应邀参加北京机器视觉助力智能制造创新发展 -
AI赋能 智赢百业 中国移动成功举办AI+...
5月25日,在第七届数字中国建设峰会期间,中国移动举办了以“AI赋能 -
直击2024年数字中国峰会中国移动AI+行业...
5月25日,数字中国峰会中国移动AI+行业分论坛在福建福州盛大召开, -
5月23日-27日@数字中国建设峰会,每日互...
一年一度,相约福州。5月23日至27日,第七届数字中国建设峰会系列活 -
天工AI搜索解读《如懿传》的“招黑体质”
《如懿传》又“火”了。同为“宫斗”题材的清宫戏,相比于至今仍在... -
AVK119简介:SCI 最新的变频涡旋压缩机
AVK119采用三菱电机专利的最新椭圆形涡旋技术设计,与相同尺寸的压 -
普惠AI破局视觉智能化 中小企业迎来发...
在数字化转型浪潮席卷全球之际,视觉智能化作为AI技术的重要分支,正 -
官宣!仰韶彩陶坊酒连续十一年荣膺“黄...
三月三,拜轩辕。在中国传统文化的传承中,这一敬拜黄帝先祖的节日 -
全国人大代表、中国移动辽宁公司总经理...
“数字乡村建设有助于促进农业全面升级、农村全面进步、农民全面发 -
热辣滚烫 盈出精彩|LG gram Pro AI...
LG gram于今年1月份上市了首款AI超轻薄本。它延续了轻薄长续航的基 -
从这部微电影开始,传承一杯“家乡味”
年中,一曲土中带潮的《恐龙抗狼》,火爆全网;年终,一支笑中带泪 -
生成式AI就绪 英特尔发布第五代至强可...
实用化 AI 算力又升上了一个新台阶。随着AI大模型加速迭代,智能 -
泰瑞应急数字孪生底座赋能防灾减灾,提...
近年来,灾害频发,给人们的生命和财产安全带来了巨大威胁。为提升 -
借助AI 数字人,光谷电商科技为什么成...
随着AI技术的蓬勃发展,数字化时代的大幕正式拉开。在这个时代,电 -
性价比提升超30%,腾讯云发布新一代基于...
基础设施的硬实力,愈发成为云厂商的核心竞争力。11月24日,腾讯云 -
山东原创《丝路》动画片央视首播
由枣庄市一甲动漫制作股份有限公司打造的大型原创52集《丝路》动画 -
2023深圳高交会今日开展,AI创新先睹为快!
2023深圳高交会今日盛大开幕,数据显示有超过100个国家和地区组团, -
2023深圳高交会IT展盛况:AI技术成焦点...
11月15日-19日,中国国际高新技术成果交易会(简称:高交会)在深圳 -
2023第二届长三角国际汽车产业及供应链...
2023第二届长三角国际汽车产业及供应链博览会将于2023年10月26-28日 -
“全球精品家轿”2024款艾瑞泽5焕芯上市...
畅销全球80多个国家和地区、斩获全球100万用户的艾瑞泽5,再次焕新 -
Colossal-AI助力智能化升级新时代
在这个快速发展的数字化时代,人工智能(AI)作为推动社会进步的核 -
当远铁路跨焦柳线特大桥成功转体
10月11日凌晨,湖北铁路集团当远铁路跨焦柳线特大桥转体成功,为当 -
微盟集团同时入选恒生人工智能、传媒指...
9月25日,恒生指数公司推出恒生人工智能主题指数和恒生传媒指数,微 -
锐进 求新 创无限 | 品达集团产品战...
2023年9月20日,“锐进、求新、创无限” 品达集团产品战略发布会暨 -
生态出海高歌猛进,海外月销3万辆,日系...
如今,中国汽车迎来了百年一遇的窗口期,同时汽车市场也进入了白热 -
孙树峰院士:激光技术的革命,开启未来...
9月1日,在智能制造助力高质量发展高峰论坛上,俄罗斯自然科学院外籍院 -
国产车赢麻了!中国品牌车企占泰国电动...
国产车赢麻了!中国品牌车企占泰国电动车市场8成份额 -
2023新思科技开发者大会:以创新引领航...
中国上海–9月8日,芯片行业年度嘉年华“2023新思科技开发者大会”... -
基于Android™ 14 Beta的 ColorOS 1...
9月11日,OPPO开启了基于Android™14Beta的ColorOS14全球公测尝鲜,首 -
公司回应禁止管理层买、开理想汽车:情...
公司回应禁止管理层买、开理想汽车:情况属实、律师 理想官方表态 -
上市告吹后 开心汽车宣布并购威马
上市告吹后开心汽车宣布并购威马 -
格局打开!小米汽车获SIG认证:支持苹果...
格局打开!小米汽车获SIG认证:支持苹果CarPlay -
TrendForce集邦咨询: NAND Flash第四...
Sep 11,2023----近日,三星(Samsung)为应对需求持续减弱,宣布9月起扩 -
真“自动挡”来了!特斯拉新款Model 3...
真“自动挡”来了!特斯拉新款Model3可自动选择前进后退 -
“人工智能+”,点燃智能制造发展新引擎...
近日,21ic有幸采访了辽宁省人工智能学会理事长李鸿儒教授,围绕“... -
全国唯一综合性种植资源库 四川省种质...
9月9日,第二届天府国际种业博览会暨四川省种质资源中心库揭牌仪式在成 -
问界M9率先用上!华为AR-HUD有多强:75...
问界M9率先用上!华为AR-HUD有多强:75寸画幅彻底干掉仪表盘 -
一万买到多少续航?新势力又出奇怪榜单...
一万买到多少续航?新势力又出奇怪榜单:特斯拉倒数第一 -
无锡相关部门回复网友反映某学校使用过...
2023年9月8日14时50分,有网友反映无锡市梁溪区连元街小学午餐使用了过 -
礼让救护车、搬抬婴儿车……青岛街头,...
救护车呼啸而至,驾驶员快速打方向盘让出生命“通道”;乘客推婴儿... -
我要打十个!消息称华为ADS 2.0年底开...
我要打十个!消息称华为ADS2 0年底开城数量调整:覆盖全国 -
坚守三尺讲台 潜心教书育人(教育时评)
金秋九月,1800多万名人民教师迎来属于自己的节日——第三十九个教... -
联想S205CPU更换(联想s205)
来为大家解答以上问题,联想S205CPU更换,联想s205很多人还不知道,现 -
获近40亿补贴!中国电池制造商国轩高科1...
获近40亿补贴!中国电池制造商国轩高科147亿在美建厂计划敲定 -
2023年9月9日云南省南瓜批发价格行情
2023年9月9日云南省南瓜批发市场价格最新行情监测显示:2023年9月9日云 -
西甲官方:马竞vs塞维利亚将在12月23日补赛
西甲官方宣布,此前由于暴雨延期的第四轮马竞vs塞维利亚的比赛,将会推 -
国家统计局:8月份居民消费价格同比上涨...
证券时报网讯,据国家统计局,2023年8月份,全国居民消费价格同比上涨0 -
10天内至少24城“认房不认贷”,效果如...
从“认房又认贷”到“认房不认贷”,一字之别的背后,是13年来我国... -
哈尔滨多车加油后开出不远就熄火 加油...
哈尔滨多车加油后开出不远就熄火加油站:进水了、已赔付 -
坚守三尺讲台 潜心教书育人(教育时评)
金秋九月,1800多万名人民教师迎来属于自己的节日——第三十九个教... -
长江通信:9月8日融资买入553.36万元,...
9月8日,长江通信(600345)融资买入553 36万元,融资偿还567 15万元, -
八音之韵丨来听听大音希声的太古之音
于高山流水之间 聆听声律之美 于明月松林之中 感受万物空明 这是人 -
华为加持的阿维塔新车 敢要价40万?
华为加持的阿维塔新车敢要价40万? -
抽奖券怎么写(抽奖卷模板)
今天之间网超哥来为大家解答以上的问题。抽奖券怎么写,抽奖卷模板相信 -
2035年停售燃油车不现实 世界第四大汽...
2035年停售燃油车不现实世界第四大汽车集团:我要卖到2050年 -
中国首款自研车规级7纳米芯片 “龙鹰一...
中国首款自研车规级7纳米芯片“龙鹰一号”性能如何?稍差于骁龙8155 -
行业首个!Flyme Auto获得泰尔“卓越级...
行业首个!FlymeAuto获得泰尔“卓越级”认证魅族:遥遥领先 -
领克08正式上市:92英寸无界AR-HUD 20.88万起
领克08正式上市:92英寸无界AR-HUD20 88万起 -
车评头条:中期提速能力意外 海马M3 1...
汽车已经成为人们生活的必须品了,很多车的适不适合自己很生疏,现在汽 -
近况曝光!72岁知名老戏骨街头被偶遇,...
所以如今有网友在社交平台上晒出偶遇到郑则仕,并且对方还如此精神,就 -
dnf二次觉醒任务(二次觉醒任务流程)
很多人对dnf二次觉醒任务,二次觉醒任务流程不是很了解那具体是什么情 -
暑假出游景点(暑假出游好去处)
诸多的对于暑假出游景点,暑假出游好去处这个问题都颇为感兴趣的,为大 -
兆邦基地产(01660.HK):张彧获委任为执...
格隆汇9月8日丨兆邦基地产(01660 HK)公告,董事会宣布:(i)许志聪已获 -
广汇能源遭遇外资抛售49.6万股|外资买卖
外资卖出:广汇能源(600256)(600256)于2023年9月7日遭遇外资抛售,数 -
白露至 各地一片农忙景象
白露节气已至,各地农民抢抓农时,田间地头一片农忙景象。在湖北省襄阳 -
张艺谋遗憾《坚如磐石》迟到:于和伟的...
极目新闻记者戎钰国庆档看什么?由张艺谋执导的都市罪案题材电影《坚如 -
警察叔叔发布“挑战令”全市7248人挑战成功
9月8日,第三届“百日零违法文明交通好榜样”颁奖仪式在清城区举行... -
或将采用“国风”设计:哪吒X内饰公布 ...
或将采用“国风”设计:哪吒X内饰公布专为年轻人打造 -
三种配色 7座布局 广汽合创MPV V09内...
三种配色7座布局广汽合创MPVV09内饰曝光10月13日上市首发 -
担保期过不过怎么办
担保期是否已经届满,需要根据具体情况分析。1、如果在担保合同中约定 -
中国正在开展HCFCs加速淘汰行动
中新社北京9月8日电(记者阮煜琳)中国生态环境部大气环境司有关负责人8 -
大众再放大招:ID.6 CROZZ 限时官降4....
大众再放大招:ID 6CROZZ限时官降4 5万售价25 89万起 -
138度超广角!70迈3K夜视流媒体后视镜将...
138度超广角!70迈3K夜视流媒体后视镜将开售:一次能看三车道 -
乘联会:8月乘用车市场零售192万辆,同...
乘联会:8月乘用车市场零售192万辆,同比增长2 5%,零售,乘联会,乘用车市场 -
载歌载舞打一个生肖 载歌载舞打一个生...
小枫来为解答以上问题。载歌载舞打一个生肖,载歌载舞打一个生肖具体是 -
交付1.2万成合资黑马!别克E5迎首次OTA...
交付1 2万成合资黑马!别克E5迎首次OTA:上电逻辑不再反人类 -
阿塞拜疆vs比利时比赛预测 阿塞拜疆vs...
阿塞拜疆vs比利时比赛预测,风暴体育讯北京时间9月9日21:00,新赛季欧 -
工行首席技术官:银行业财富管理面临挑...
工行首席技术官:银行业财富管理面临挑战,数字化转型是大势所趋,工行, -
“原子弹之父”奥本海默开什么车?凯迪...
“原子弹之父”奥本海默开什么车?凯迪拉克认领:1941款敞篷经典