撸一撸Spring Framework-IoC-资源管理利器(Resource、ResourceLoader、ResourcePatternResolver)

使用Flutter撸一个视频播放APP(有福利哦~) 使用Flutter撸一个视频播放APP(有福利哦~) 基于苹果CMS8.0的资源站收集视频播放APP。 视频资源来源:从网上的各大资源收集站中获取视频资源,他们大都支持苹果CMS8.0的接口方法获取。 应用截图 首页 视频播放 资源管理 设置 项目地址 GitHub项目地址 release包可直接下载安装 苹果CMS8.0接口说明 api接口仅供提供数据,可以直接在苹果CMS后台联盟采集中加入-并提供给他人采集。 联盟资源分配唯一标识ID,用来区别绑定分类,这个ID一般由苹果 阅读详情

   撸一撸Spring Framework-IoC系列文章目录

我们经常需要读取外部资源到应用中,比如文本文件、properties文件、图片文件等。这些资源可能位于不同的位置,比如文件系统、classpath下的资源、或者远程服务器上的资源。通常,我们需要通过不同的API分别加载不同类型路径的资源,有诸多不便之处 

 Spring提供了Resource系列接口解决上述问题,API非常友好、强大

Resource:是对诸如文件系统资源、classpath资源、URL资源等各种资源的抽象

ResourceLoader:提供了统一的加载Resource的方法,它通过资源路径前缀自动匹配相应的资源类型,为开发者屏蔽了使用不同Resource实现的差异

ResourcePatternResolver:比ResourceLoader更强大,支持以通配符的方式加载所有满足条件的资源

Spring内部就通过Resource系列接口进行资源加载,比如我们定义的xml文件、properties文件、@ComponentScan扫描的java类文件等,都是通过这套接口进行加载的

除此之外,Resource相关接口可以脱离Spring独立使用,我们可以通过如下方式加载不同类型资源:

//资源加载器(ResourceLoader接口的默认实现类)
ResourceLoader resourceLoader=new DefaultResourceLoader();
//通过指定不同前缀的资源路径,加载不同类型的资源
//通过文件系统绝对路径加载资源
Resource resource = resourceLoader.getResource("file:D:/code/spring/src/main/resources/demo.xml");
//通过相对于当前项目根目录的相对路径加载资源
Resource resource = resourceLoader.getResource("file:src/main/resources/demo.xml");
//加载classpath下的资源
Resource resource = resourceLoader.getResource("classpath:demo.xml");
Resource resource = resourceLoader.getResource("classpath:com/example/spring/ResourceLoaderDemo.class");
//通过https url加载优快云上的一篇博客资源  
Resource resource = resourceLoader.getResource("https://blog.youkuaiyun.com/wb_snail/article/details/108134550");
(tips:按通配符加载一组资源的方式,下文会有说明)

拿到Resource后,可以调用Resource#getInputStream获取资源输入流,读取其内容:

InputStream inputStream=resource.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
while (true) {
    String line = reader.readLine();
    if (line == null)
        break; 
    System.out.println(line);
} 
reader.close();

如果你想通过与Spring集成的方式使用ResourceLoader,可以这样操作:

1、实现ResourceLoaderAware接口,Spring容器启动过程中回调注入ResourceLoader实例

2、@Autowired ResourceLoader resourceLoader(Spring容器启动过程中,会向BeanFactory中注入一些特殊的对象(包括ResourceLoader对象 ),特殊是因为它们没有被定义为bean,它们是spring内部的组件,spring允许我们通过@Autowire来使用它们)

3、使用ApplicationContext,ApplicationContext继承于ResourceLoader,实际上通过前两种方式拿到的ResourceLoader对象,就是ApplicationContext(默认情况下,由于AbstractApplicationContext继承于DefaultResourceLoader,使用ApplicationContext进行资源加载时,最终还是会由DefaultResourceLoader执行)

Resource接口比较核心的方法有:

getInputStream():继承于InputStreamSource接口,返回资源对应的输入流,用于读取资源

exists():返回资源是否存在的标识

getFile():如果资源存在于文件系统中,返回对应的文件对象,否则抛出FileNotFoundException(比如ByteArrayResource这种只在内存中存在的资源)

getURL():返回资源对应的URL(java.net.URL),URL是资源定位符,上述例子中的"file:D:/demo.xml"、"classpath:demo.xml"、"https://blog.youkuaiyun.com/wb_snail/article/details/108134550"都是URL的String表示形式

Resource继承体系如下(体系比较大,这里只挑选了一些比较常见的Resource实现):

InputStreamSource:Resource的父接口,只有一个getInputStream()方法

WritableResource:可写资源,它的方法getOutputStream()可以返回资源的输出流

FileSystemResource:文件系统资源,可通过File对象、文件系统绝对路径、Path对象(如Paths.get("D:/demo.xml"))来构建(tips:Spring在处理@ComponentScan定义的包路径下的class文件时,会将它们加载为FileSystemResource)

ClassPathResource:classpath下的资源(tips:Spring在处理@PropertyResource、@PropertyResources时,相关配置文件会被加载为ClassPathResource)

UrlResource:引用了一个java.net.URL对象,可以访问任何可以用URL表示的资源(file、https、ftp等资源)

ServletContextResource:web应用资源,资源路径以相对于web应用根目录的路径表示,比如new ServletContextResource("/WEB-INF/demo.xml")

ByteArrayResource:通过一个二进制数组创建的资源,比如new ByteArrayResource(new String("hello").getBytes(StandardCharsets.UTF_8))

Resource几乎可以表示任何类型的底层资源,除了Spring已经实现的多种资源类型外,你还可以实现自己的Resource(比如DB中的资源),你可以向ResourceLoader中注册一个ProtocolResolver,然后就可以使用ResourceLoader以与其他类型资源无差别的方式加载你的资源。相关源码如下

public class CustomResource {
	public static void main(String[] args) {
		DefaultResourceLoader resourceLoader=new DefaultResourceLoader();
		//注册自定义ProtocolResolver
		resourceLoader.addProtocolResolver(new DbProtocolResolver());
		//通过"db:"为前缀的路径加载db中的资源
		Resource dbResource=resourceLoader.getResource("db:dataSource_fileDB/table_file/column_content");
	}
}

//自定义Resource
public class DbResource extends AbstractResource {
	private final String path;
    ...
}

/**
 * 实现ProtocolResolver,针对前缀为"db:"的url,返回DBResource
 */
public class DbProtocolResolver implements ProtocolResolver {
	
	private static final String DB_URL_PREFIX="db:";
	
	@Nullable
	public Resource resolve(String location, ResourceLoader resourceLoader){
		if(location.startsWith(DB_URL_PREFIX)){
			return new DbResource(location.substring(DB_URL_PREFIX.length()));
		}
		return null;
	}
}

//以下是DefaultResourceLoader中相关部分的源码
public class DefaultResourceLoader implements ResourceLoader {

    //一组ProtocolResolver实例
	private final Set<ProtocolResolver> protocolResolvers = new LinkedHashSet<>(4);

	public DefaultResourceLoader() {
	}

    //调用该方法,注册你自定义的ProtocolResolver
	public void addProtocolResolver(ProtocolResolver resolver) {
		Assert.notNull(resolver, "ProtocolResolver must not be null");
		this.protocolResolvers.add(resolver);
	}

	@Override
	public Resource getResource(String location) {
		Assert.notNull(location, "Location must not be null");

        //加载资源时,优先通过你注册的ProtocolResolver加载资源
		for (ProtocolResolver protocolResolver : getProtocolResolvers()) {
			Resource resource = protocolResolver.resolve(location, this);
			if (resource != null) {
				return resource;
			}
		}

		if (location.startsWith("/")) {
			return getResourceByPath(location);
		}
		else if (location.startsWith(CLASSPATH_URL_PREFIX)) {
			return new ClassPathResource(location.substring(CLASSPATH_URL_PREFIX.length()), getClassLoader());
		}
		else {
			try {
				// Try to parse the location as a URL...
				URL url = new URL(location);
				return (ResourceUtils.isFileURL(url) ? new FileUrlResource(url) : new UrlResource(url));
			}
			catch (MalformedURLException ex) {
				// No URL -> resolve as resource path.
				return getResourceByPath(location);
			}
		}
	}
}

ResourceLoader仅支持匹配单个资源,其扩展接口ResourcePatternResolver支持以通配符的方式加载所有满足条件的资源,比如"classpath*:META-INF/spring.handlers"、"classpath:META-INF/*.properties"、"/WEB-INF/*-context.xml"、"file:D:/resources/*.properties"

注意"classpath:"和"classpath*:"的区别,后者会把classpath下所有jar包也作为查找目标,@ComponentScan可以扫描jar包下的@Component,正是利用了这个特性,Spring通过查找spring.handlers文件实现SPI也是一样道理

ResourcePatternResolver支持三种通配符:

*:匹配资源路径中的任意字符

?:匹配资源路径中的单个字符

如"*.xml"可以匹配到a.xml、ab.xml,而"?.xml"只能匹配到a.xml

**:匹配任意层级,比如"mapper/**/*Mapper.xml"可以匹配到mapper/RoleMapper.xml、mapper/order/OrderMapper.xml、mapper/order/goods/GoodsMapper.xml

Spring Framework中,ResourcePatternResolver的唯一有效实现是PathMatchingResourcePatternResolver,ApplicationContext也继承于ResourcePatternResolver,默认情况下,其getResources方法会委托给PathMatchingResourcePatternResolver执行

可以通过两种方式使用ResourcePatternResolver的能力 :

//使用PathMatchingResourcePatternResolver加载
ResourcePatternResolver resourcePatternResolver=new PathMatchingResourcePatternResolver();
Resource[] resources=resourcePatternResolver.getResources("classpath*:META-INF/spring.handlers");

//使用ApplicationContext加载
AnnotationConfigApplicationContext applicationContext=new AnnotationConfigApplicationContext();
applicationContext.refresh();
Resource[] resources=applicationContext.getResources("classpath*:META-INF/spring.handlers");
  • 和ResourceLoader一样,ResourcePatternResolver同样支持脱离Spring容器使用,通过直接new PathMatchingResourcePatternResolver()的方式使用,非常方便
  • 默认情况下,ApplicationContext#getResources方法会委托给PathMatchingResourcePatternResolver执行,因此只要可以拿到ApplicationContext实例,也可以进行基于正则的批量资源加载
TorrentToMagnet PHP 转换BT种子到 磁力链 立即下载

相关推荐

JAVBus 老司机爬虫.zip

爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

撸一撸Spring Framework-IoC-概述

Spring Framework中最核心的模块就是IoC容器(Inversion of Control,控制反转),其他模块如aop、aspectjs、Data Access等都在此基础上展开,我们就从IoC开始旅程 IoC也称为依赖注入(DependeccyInjection,DI),注意,这二者是替代关系,并不是网上广泛传播的、极具迷惑性的"思想和实现"的关系

wb_snail的博客 7万+

AUTOSAR—TM模块介绍及使用概要

根据所要测量的场景不同,有1us16bit、1us24bit、1us32bit、100us32bit四种类型可选;TM模块在服务层,提供一些基于时间的服务功能,如测量CPU和任务的负载,周期执行一些回调函数。2、对于需要在不同时间执行不同逻辑的周期任务中,可以搭建时间状态机:参考Tm用户手册;定时器复位、获取时间宽度、定时器转换、定时器同步、繁忙等待。偏移定时器实例的参考时间,直接将定时器数值进行偏移;以1us16bit定时器类型为例,讲几个常用函数。同步两个定时器,把源定时器时间值给到目的定时器。

qq_42479987的博客 604

撸一撸Spring Framework-IoC-BeanDefinition

BeanFactory会从配置元信息中加载beanDefinition,并将其注册到BeanDefinitionRegistry中,之后创建、管理bean的工作,都要依赖于beanDefinition。容器启动过程中加载beanDefinition,注册beanDefinition,从容器获取bean时(getBean),容器如何使用beanDefinition完成bean的创建工作

wb_snail的博客 4万+

Kindle电子书DRM破解全攻略:从下载到转换的完整流程(含最新DeDRM插件配置)

本文详细介绍了2025年最新Kindle电子书DRM移除的完整实战流程。针对亚马逊加密机制的升级,文章重点讲解了如何配置最新的DeDRM插件、从新版Kindle客户端提取密钥,并利用Calibre完成电子书的解密与格式转换,为个人备份提供了一套可行的解决方案。

weixin_29279153的博客 1716

华为C语言笔试题(附答案)

华为C语言笔试题(附答案)     1、局部变量能否和全局变量重名?   答:能,局部会屏蔽全局。要用全局变量,需要使用 ":: "   局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。  

峰云四起 3030

撸一撸Spring Framework-IOC-实现通用功能的利器(PostProcessor机制)

撸一撸Spring Framework-IoC系列文章目录 IoC概述 BeanFactory ApplicationContext BeanDefinition BeanWrapper 资源管理利器(Resource与ResourceLoader) 配置管理(Environment与PropertySource) 不简单的泛型(ResolvableType) 考虑下下面这个使用文件服务上传文件的简单程序,要把它正常运行起来,Spring要做哪些事情呢? public class Appli..

wb_snail的博客 6万+

Keil uVision5 STM32 startup_stm32f10x_md_vl.s error A3906U Malformed via file target not created..

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 2763

撸一撸MVP吧

吹吹水最近刚刚上班,几天连续加班,做重构,满心激情,像打了鸡血一样。连续几天没去健身了,心里痒痒的,今天果断不加班,回来去健身。回到家里看着有些时间,这几天做的东西也有点心得,赶紧写写东西记录一下。背景首先,项目重构撸了两三天的网络部分,采用的Retrofit+RxJava,这部分后面打算搞个时间再说,然后想到整体架构的时候,我决定采用MVP模式,观摩了google的MVP-TODO项目。比较贱的是

wangjianfengnb 19万+

YOLOv8改进:全网原创首发 | 新颖的多尺度卷积注意力(MSCA),即插即用,助力小目标检测 | NeurIPS2022

多尺度卷积注意力(MSCA),有效地提取上下文信息;1)作为注意力MSCA使用;

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 3840

利用GAT(图论分析工具箱)构建并分析大脑结构协变网络学习笔记

前言 前面我学习了利用DTI构建白质纤维脑网络,并采用GRETNA计算了小世界网络属性。阅读文献发现可以利用灰质体积或皮层指标(皮层厚度、折叠指数、沟深)等构建结构协变网络再进行网络拓扑属性的计算。因此,我采用前面提取的灰质体积和皮质数据进行了结构协变网络分析,特此写下笔记以便后面的学习。 一、数据准备 二、构建结构协变网络 三、全局属性的统计分析 四、局部属性的统计分析 五、网络攻击分析 六、度的分布 ..................

weixin_52073820的博客 7494

资源收集

教程连接 CVS手册 NBearV3中文教程总目录 Python 教程 审视 AJAX 系列(IBM) 掌握 Ajax 系列(IBM) AJAX DHTML教程 DHTML手册 XML教程2 VSS教程 VS2005教程 C 常见问题教程 数据结构教程 UML教程 Google教程 WSS教程 Websharp教程

青草堂 8万+

物理AI:连接数字智能与物理世界的下一代人工智能范式

物理AI正在推动人工智能从纯数字领域向物理世界扩展,实现比特到原子的智能跃迁。与传统AI相比,物理AI具有三大核心差异:1)在物理环境中运行;2)处理多模态传感器输入;3)产生可改变物理状态的输出。其技术栈包含感知层(多模态融合)、决策层(边缘计算)、执行层(运动控制)和连接层(5G/6G通信)。关键技术挑战包括:实时多传感器融合、物理约束下的决策规划、以及高精度执行控制。物理AI的发展面临实时性保障、安全验证等核心挑战,但其在机器人、自动驾驶等领域的应用潜力巨大,正成为智能技术落地的关键突破口。

fudaihb的博客 1707

老司机带带我,我要去找BT资源哟

在上个月月末的时候,给大家分享了一款 老司机专用 BT 资源搜索工具。然,老司机们还没享受多久的欢乐,软件用不起了… 联系我的,评论的不计其数,把作者我也急的团团转。今天,终于重新找到了这款软件的新资源(当然肯定是可以用的了哟),下载地址在之前的文章中也更新了。老司机们快上车–BT资源搜索工具BTSOU是一款BT搜索引擎软件,它可以帮助用户快速搜索到所需要的资源,并提供多个下载源地址,方便用户下载和分享。BT搜索引擎。

牵手就能做朋友的博客 5989

【导航理论&实战篇】四足机器人弹簧倒立摆(SLIP)动力学模型

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对四足机器人动力学模型-VMC、SLIP和浮动机体模型做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章四足机器人弹簧加载倒立摆(SLIP)动力学模型是一种用于描述和分析四足机器人在运动过程中动态特性的理论模型。这种模型将四足机器人的腿部简化为弹簧,而机器人的身体则被视为一个倒立摆,这样的抽象使得研究者能够更容易地分析和控制机器人的运动。提示:以下是本篇文章正文内容。

qq_35635374的博客 804

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

干货分享!骨灰级宅男珍藏的6大资源网站,个个都很强大

2020元旦假不想出门浪,这6个资源丰富的网站,让你宅家也精彩高福利的6大资源网站都在这里了,你绝对用得着,建议收藏 小说、电影、办公……这6个高效资源网站,让你相见恨晚! 节假日不想出去看“人头”,宅在家又怕无聊?想看好一点的电影小说,但动不动要收费?四处找资源,浪费时间浪费精力?今天分享5个高效干货级的资源网站,为你解决这些烦恼! 1、纪录片网站——纪录片天地 这里面有科学探索、社会...

dainikanxiaoshuo的博客 48万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

怒爬某破Hub站资源,只为撸这个鉴黄平台

黄色已经是我们所不容然而却防不胜防的,尤其是对于做内容的工具和平台,所以花了30分钟搭建了一个鉴黄平台,分享给大家。 # 数据准备 找了 N 多资源都不能解决问题,于是怒爬某 Bub资料,备用准备验证鉴黄效果。 # 账号准备 本文使用的是 UCloud 提供的 UAI-Censor,目前他支持图片,暴恐、涉政会陆续上线。他提供了每日2000张免费调用额度,所以无论对于测试还是小众的工具足够了。 1、使用如下链接注册账号 https://urlify.cn/Bj2Y3y 2、创建 UAI-Cen

马小婧QAQ 4万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

撸一撸Spring Cloud Ribbon的原理-负载均衡策略

在前两篇《撸一撸Spring Cloud Ribbon的原理》,《撸一撸Spring Cloud Ribbon的原理-负载均衡器》中,整理了Ribbon如何通过负载均衡拦截器植入RestTemplate,以及调用负载均衡器获取服务列表,如何过滤,如何更新等的处理过程。 因为,负载均衡器最终是调用负载均衡策略的choose方法来选择一个服务,所以这一篇,整理Ribbon的负载均衡策略。   策...

weixin_34253539的博客 3776

撸一撸Spring Cloud Ribbon的原理-负载均衡器

在上一篇《撸一撸Spring Cloud Ribbon的原理》中整理发现,RestTemplate内部调用负载均衡拦截器,拦截器内最终是调用了负载均衡器来选择服务实例。 接下来撸一撸负载均衡器的内部,看看是如何获取服务实例,获取以后做了哪些处理,处理后又是如何选取服务实例的。 分成三个部分来撸: 配置 获取服务 选择服务   配置 在上一篇《撸一撸Spring Cloud ...

weixin_34130389的博客 1万+

撸一撸Spring Framework-IoC-BeanFactory

BeanFactory是Spring IoC中最核心的接口,它承担IoC最基本的职责,即创建并管理各种类的对象。BeanFactory接口只定义了最基础的IOC容器功能,它的扩展接口众多,继承体系设计优雅,堪称经典

wb_snail的博客 1万+

撸一撸Spring Framework-IoC-ApplicationContext

从UML关系上看,ApplicationContext与BeanFactory既有继承关系、又有关联关系。很多ApplicationContext的实现中,都引用了一个DefaultListableBeanFactory对象,并将bean管理操作都委托给它。以下是从GenericApplicationContext及其父类中摘录的一段代码,主要是为了让你感受下它与DefaultListableBeanFactory的关系

wb_snail的博客 1万+

撸一撸 ICML2016的CReLU

此方法来源于: ICML2016  Understanding and Improving Convolutional Neural Networks via Concatenated Rectified Linear Units. 这篇论文~~ 实验代码 :https://github.com/albanie/CReLU 可以在理解原理的基础上撸一遍。 在tenso

zwlq1314521的专栏 4万+

撸一撸ArrayList源码

1、起始大小102、是object[]的数组3、多个构造方法,可以指定大小4、private int size; 表示数组中元素的个数。因为通常情况下,ArrayList后面是有空白位置的,数据并没有把结合填满,因为在扩充元素的时候造成。所以ArrayList是用.size()来请求的大小5、 public ArrayList(Collection&lt;? extends E&gt; c) ;表...

runrun117的博客 39万+

博客资源导航

这是我的博客目录,方便查找。

记录移动开发相关的知识 2万+

血腥大地-第二季(资源破解与管理)

课程继承游戏内容1.主要完成游戏资源的获取,从原血腥大地游戏中获取(不涉及任何商业利益,不能将游戏资源用于其他商业游戏).2.游戏资源的整理以及优化3.游戏纹理资源打包工具的制作4.游戏字体资源打包制作工具

撸一撸简单的操作系统知识

前言 打开浏览器,做个简单计算,我们能看到控制台打印出计算结果,这个过程究竟发生了什么? 一个简单计算 首先,我们使用键盘输入计算式子,指令会被放入内存中,相应的控制器会取出内存中的指令,运算器拿到结果之后仍然会返回给内存,输出设备继续读取内存讲结果展示出来。 那么操作系统是干什么的呢?如果没有操作系统,JS要处理硬件的协调工作,进程之间的切换等等,说到了进程,Node.js问这个的可能性可是很大...

eswang的优快云博客 4万+
上一篇: 撸一撸Spring Framework-IoC-ApplicationContext
下一篇: 撸一撸Spring Framework-IOC-配置管理(Environment与PropertySource)
wb_snail
博客等级 码龄10年 119粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值