上下文

【Spring】浅谈ContextLoaderListener及其上下文与DispatcherServlet的区别

自作多情 提交于 2019-12-26 23:54:39
【Spring】浅谈ContextLoaderListener及其上下文与DispatcherServlet的区别 原文:https://www.cnblogs.com/weknow619/p/6341395.html 一般在使用SpingMVC开发的项目中,一般都会在web.xml文件中配置ContextLoaderListener监听器,如下: <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> 在开始讲解这个之前先讲讲web工程的上下文,对于一个web容器,web容器提供了一个全局的上下文环境,这个上下文就是ServletContext,其为后面Spring IOC容器提供宿主环境。 在web容器启动时会触发容器初始化事件,contextLoaderListener监听到这个事件后其contextInitialized方法就会被调用,在这个方法中,spring会初始化一个启动上下文,这个上下文就是根上下文,也就是WebApplicationContext,实际实现类一般是XmlWebApplicationContext,这个其实就是spring的IoC容器,这个IoC容器初始化完后

Java并发编程-理解上下文切换

旧城冷巷雨未停 提交于 2019-12-26 18:56:13
在多线程编程中,线程个数一般要大于CPU个数,而每个CPU在同一时刻只能被一个线程使用,为了让用户感觉多个线程同时执行,CPU资源的分配采用了时间轮转的策略,也就是给每个线程分配一个时间片,线程在分配时间片内占用CPU执行任务,使用完时间片后,就会处于就绪状态并让出CPU让其它线程占用,这就是上下文切换。 线程上下文切换时机 1、当前线程的CPU时间片使用完成处于就绪状态。 2、当前线程被其它线程中断。 来源: https://www.cnblogs.com/shanyingwufeng/p/9973045.html

微核架构的本质是微核掌握了更多的上下文-----微核架构 = 整体上下文 + 配置组成

江枫思渺然 提交于 2019-12-26 17:35:14
微核架构的本质是微核掌握了更多的上下文, 知道系统是由哪些要素怎么组成的。 知道怎么使用插件来(分步)完成整体的功能。 微核架构 = 整体上下文 + 配置组成 微核架构(microkernel architecture)又称为"插件架构"(plug-in architecture),指的是软件的内核相对较小,主要功能和业务逻辑都通过插件实现。 内核(core)通常只包含系统运行的最小功能。插件则是互相独立的,插件之间的通信,应该减少到最低,避免出现互相依赖的问题。 来源: https://www.cnblogs.com/feng9exe/p/12103182.html

Javascript中apply、call、bind

£可爱£侵袭症+ 提交于 2019-12-26 12:09:31
网上文章虽多,大多复制粘贴,且晦涩难懂,我希望能够通过这篇文章,能够清晰的提升对apply、call、bind的认识,并且列出一些它们的妙用加深记忆。  apply、call   在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。   JavaScript 的一大特点是,函数存在「定义时上下文」和「运行时上下文」以及「上下文是可以改变的」这样的概念。   先来一个栗子: 1 2 3 4 5 6 7 8 9 10 11 function fruits() {} fruits.prototype = { color: "red" , say: function () { console.log( "My color is " + this .color); } } var apple = new fruits; apple.say(); //My color is red   但是如果我们有一个对象banana= {color : "yellow"} ,我们不想对它重新定义 say 方法,那么我们可以通过 call 或 apply 用 apple 的 say 方法: 1 2 3 4 5 banana = { color: "yellow" } apple.say

Java类加载器ClassLoader总结

独自空忆成欢 提交于 2019-12-26 09:55:22
JAVA类装载方式,有两种: 1.隐式装载, 程序在运行过程中当碰到通过new 等方式生成对象时,隐式调用类装载器加载对应的类到jvm中。 2.显式装载, 通过class.forname()等方法,显式加载需要的类 类加载的动态性体现: 一个应用程序总是由n多个类组成,Java程序启动时,并不是一次把所有的类全部加载后再运行,它总是先把保证程序运行的基础类一次性加载到jvm中,其它类等到jvm用到的时候再加载,这样的好处是节省了内存的开销,因为java最早就是为嵌入式系统而设计的,内存宝贵,这是一种可以理解的机制,而用到时再加载这也是java动态性的一种体现 java类装载器 JDK 默认提供了如下几种ClassLoader Bootstrp loader Bootstrp加载器是用C++语言写的,它是在Java虚拟机启动后初始化的,它主要负责加载 %JAVA_HOME%/jre/lib , -Xbootclasspath 参数指定的路径以及 %JAVA_HOME%/jre/classes 中的类。 ExtClassLoader Bootstrp loader加载ExtClassLoader,并且将ExtClassLoader的父加载器设置为Bootstrp loader.ExtClassLoader是用Java写的,具体来说就是 sun.misc.Launcher

javascript高级编程

烂漫一生 提交于 2019-12-25 22:44:35
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script type="text/javascript"> var array=[1,2,3,4,5,6]; var arr=array.map(function(item){ return item*2; }); alert(arr[0]);// 2 ------------------------------------------------ /////变量的作用域 var variable="out"; function func() { variable="in"; alert(variable); } func(); // 打印"in" alert(variable); // 打印"in" -----------------------------

JavaScript 究竟是怎样执行的?

假装没事ソ 提交于 2019-12-25 22:23:54
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 摘要: 理解 JS 引擎运行原理。 作者:前端小智 原文: 搞懂 JavaScript 引擎运行原理 Fundebug 经授权转载,版权归原作者所有。 一些名词 JS 引擎 — 一个读取代码并运行的引擎,没有单一的“JS 引擎”;每个浏览器都有自己的引擎,如谷歌有 V。 作用域 — 可以从中访问变量的“区域”。 词法作用域 — 在词法阶段的作用域,换句话说,词法作用域是由你在写代码时将变量和块作用域写在哪里来决定的,因此当词法分析器处理代码时会保持作用域不变。 块作用域 — 由花括号{}创建的范围 作用域链 — 函数可以上升到它的外部环境(词法上)来搜索一个变量,它可以一直向上查找,直到它到达全局作用域。 同步 — 一次执行一件事, “同步”引擎一次只执行一行,JavaScript 是同步的。 异步 — 同时做多个事,JS 通过 浏览器 API 模拟异步行为 事件循环(Event Loop) - 浏览器 API 完成函数调用的过程,将回调函数推送到回调队列(callback queue),然后当堆栈为空时,它将回调函数推送到调用堆栈。 堆栈 —一种数据结构,只能将元素推入并弹出顶部元素。 想想堆叠一个字形的塔楼; 你不能删除中间块,后进先出。 堆 — 变量存储在内存中。 调用堆栈 — 函数调用的队列

Spring源码分析之IoC容器初始化

蹲街弑〆低调 提交于 2019-12-25 16:44:58
本文首发于 cdream 个人博客(点击获得更加阅读体验) 欢迎转载,转载请注明出处 作为一个java程序员,保守估计一年里也都有300天要和Spring有亲密接触~~像我这种怕是每天都要撸撸Spring,所以这次也要做个深入了解!这次就来看看Spring是怎么 初始化IoC容器的 😄 注:阅读本文时一定要在IDE进行跳转 我们都是知道Spring为企业级应用提供了丰富的功能,而这些功能底层都依赖于底层最核心的两种特性IOC和AOP。 IOC实现里主要包括两部分,一个是IOC容器初始化,另外一个是依赖注入,由于两部分是相对独立的部分,所以分成不同文章讲解,本篇主要 讲述IOC容器的初始化 。 一、IoC的概念 控制反转 (Inversion of Control,缩写为 IoC ),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的 耦合度 。其中最常见的方式叫做 依赖注入 (Dependency Injection,简称 DI ),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。 上面这个概念是来自维基百科,在 Expert Spring MVC and Web Flow 和 Expert One-on-One J2EE

涨姿势!一文了解深度学习中的注意力机制

早过忘川 提交于 2019-12-25 16:39:20
全文共 11413 字,预计学习时长 33 分钟 图源:Unsplash “每隔一段时间,就会出现一种能改变一切的革命性产品。” ——史蒂夫·乔布斯(SteveJobs) 这句21世纪最知名的言论之一与深度学习有什么关系呢? 想想看。计算能力的提升带来了一系列前所未有的突破。 若要追根溯源,答案将指向注意力机制。简而言之,这一全新概念正在改变我们应用深度学习的方式。 图源:Unsplash 注意力机制是过去十年中,深度学习研究领域最具价值的突破之一。 它催生了包括Transformer架构和Google的BERT在内的自然语言处理(NLP)领域的许多近期突破。如果你目前(或打算)从事NLP相关工作,一定要了解什么是注意力机制及其工作原理。 本文会讨论几种注意力机制的基础、流程及其背后的基本假设和直觉,并会给出一些数学公式来完整表达注意力机制,以及能让你在Python中轻松实现注意力相关架构的代码。 大纲 l 注意力机制改变了我们应用深度学习算法的方式 l 注意力机制彻底改变了自然语言处理(NLP)甚至计算机视觉等领域 l 本文将介绍注意力机制在深度学习中的工作原理,以及如何用Python将其实现 目录 1.什么是注意力? 1. 深度学习是如何引入注意力机制的 2. 了解注意力机制 2.使用Keras在Python中实现简单的注意力模型 3.全局与局部注意力 4

apply,call,bind的区别

﹥>﹥吖頭↗ 提交于 2019-12-25 07:29:41
apply、call 在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。 JavaScript 的一大特点是,函数存在「 定义时上下文」和「 运行时上下文」以及「 上下文是可以改变的」这样的概念。 先来一个栗子: 1 2 3 4 5 6 7 8 9 10 11 function fruits() {} fruits.prototype = { color: "red" , say: function () { console.log( "My color is " + this .color); } } var apple = new fruits; apple.say(); //My color is red 但是如果我们有一个对象banana= {color : "yellow"} ,我们不想对它重新定义 say 方法,那么我们可以通过 call 或 apply 用 apple 的 say 方法: 1 2 3 4 5 banana = { color: "yellow" } apple.say.call(banana); //My color is yellow apple.say.apply(banana); //My color is yellow 所以