面试

1. spring5源码 -- IOC容器设计理念和核心注解的作用

我只是一个虾纸丫 提交于 2021-01-30 13:52:37
可以学习到什么? 0. spring整体脉络 1. 描述BeanFactory 2. BeanFactory和ApplicationContext的区别 3. 简述SpringIoC的加载过程 4. 简述Bean的生命周期 5. Spring中有哪些扩展接口及调用机制 一. spring源码整体脉络介绍及源码编译 1.1. 什么是IOC ioc是控制反转, 这是一种设计理念, 用来解决的是层和层之间, 类和类之间的耦合问题. 比如,现在有A, B两个类, 在A类中引用了B类. 那么如果有一天, B类要被替换掉, 我们会怎么办呢?如果B类被引用了100次, 我们要替换100次? 现在呢, A是直接调用B, 如果我们间接的调用B, 将B包装起来, 如果以后将B换成C, 只需要在包装类里面替换就可以了. 我们不需要修改A类. 这就是控制反转. Spring使用了ioc, Spring.ioc(A, B) 将A和B的引用都存在ioc中, spring会帮我们维护好, 完全不用担心. 当我们在A中要使用B的时候, 使用B对应的接口, 然后使用@Autowired注解 A { @Autowired private IB b; } 什么时候把B换掉了, 不痛不痒的, 只需要把新的类放到IoC中就可以了. 1.2. Spring源码的整体脉络梳理 Spring IoC是一个容器, 在Spring

重磅!印度封禁59款中国APP!微信抖音微博均在列!

大憨熊 提交于 2021-01-30 13:48:52
点击上方“ 技术最TOP ”,星标公众号 重磅干货,第一时间送达 技术最TOP 扒最前沿科技动态,聊最TOP编程技术。 关注 昨夜,印度政府突然宣布将禁用59个应用,虽然公告没有明确此次行动针对中国企业,但遭到禁止的应用绝大部分为中国互联网企业所开发,包括Tiktok、微信、快手、百度地图、QQ音乐等诸多中国用户熟知的应用。 禁用这些应用的原因是它们“参与了损害印度主权和领土完整、国防、国家安全以及公共秩序的活动”。 这并不是印度的突然袭击,印度情报机构早前已经向政府请求封禁一批应用。这批名单中的53个疑似和中国有关,大部分和昨晚的名单一致,但线上会议软件Zoom、小米商店Mi Store等早前在列的应用,并未出现在29日的最终名单中。 01 深夜突发,印度封禁59款中国APP 在印度政府发布的公告里,重点提及此次针对移动应用的行动,是基于“国家安全”。公告认为, 被禁止的应用在收集用户数据方面没有符合有关规定。 印度采取行动的法律依据是什么呢?印度的信息技术部声称根据2000年《信息技术法》第69A条以及《2009年信息技术(阻止公众获取信息的程序和保障措施)规则》的相关规定来进行禁止的。 信息技术部称,“已经收到来自各种来源的许多投诉,其中包括关于滥用某些App的报道,这些信息是盗用并以未经授权的方式秘密地将用户数据传输到印度以外的服务器”,“电脑紧急应变小组(CERT-IN

为什么要做数据可视化?可以这样回答

蹲街弑〆低调 提交于 2021-01-30 13:03:02
作者介绍 知春路@伟仔 某不知名数据科学家。 持续写《数据分析》和《数据产品》系列文章,欢迎关注! 各位数据人的小伙伴,大家好,时隔一个多月,又和大家见面了,作为数据人社区建设的参与者,在大牛云集的地方,工作之余,还能有机会在这里跟大家分享自己的所见所思是一件非常荣幸的事情。当然如果自己分享内容恰好能够帮助到一些人,那就更好啦。数据人社区每天都有小伙伴们的分享,干货满满,今天我想和大家分享点轻松些的内容,聊聊人类的发展,聊聊生活中衣食住行,以及聊聊数据可视化。 大家在学习和工作中,都会免不了需要做图表,比如用EXCEL、用PPT,还有用各种高端软件做出的生动图画,可视化呈现通常会是一项分析报告的"最后一公里",这些图表可以很好的帮助大家更好表达内心的想法。但是,大家是否有想过这些图表(可视化行为)为什么会起到这样的作用? 或者,在面对一些外行人看来,加图表是一种"花里胡哨"、"虚头巴脑"行为的无知质疑,我们应该回答? 动图来自,妹爷:"打球就打球,别整那些花里胡哨的!" 带着这样的疑问,伟仔也是查阅了不少的资料,今天尝试着从心理学的角度来跟大家分享一下,为什么要做数据可视化? 01 存在体内的两套“决策系统” 我们每天从早上睁开眼开始,身体就不停在接收外界的信息,大脑需要不停地对这些信息做处理,给出判断和决策,来驱使肢体去行动。著名行为经济学家,出生于以色列的诺贝尔奖得主丹尼尔

十八、深入Python函数

狂风中的少年 提交于 2021-01-30 11:55:39
「@Author:Runsen」 近来,越来越多人使用函数式编程(functional programming)。本文对 Python 中的函数式编程技术进行了简单的入门介绍。 @ 入门 函数式编程 多态 嵌套函数 函数变量作用域 闭包 入门 Python内置了很多有用的函数,我们可以直接调用。 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数。 也可以在交互式命令行通过help(abs)查看abs函数的帮助信息。 调用abs函数: >>> abs(100) 100 >>> abs(-20) 20 >>> abs(12.34) 12.34 函数式编程 在Python中的函数就是为了实现某一段功能的代码段,可以重复利用。 就是以后不要重复造轮子,遇到那个场景就用那个函数,就是函数式编程。 下面,我定义一个 my_func,传入一个Hello World,再打印一个Hello World def my_func (message) : print( 'Got a message: {}' .format(message)) # 调用函数 my_func() my_func( 'Hello World' ) # 输出 Got a message: Hello World 简单的知识点 def是函数的声明 my_func是函数的名称 message

Python详细知识体系总结(2021版)

人走茶凉 提交于 2021-01-30 11:52:19
本文专注整理一些有关Python学习的知识体系。 整理的Python知识体系主要包括基础知识,Python热门的应用方向,推荐书籍,FAQ以及一些常见面试题目,包含了作为一个Python全栈工程师以及数据分析工程师在开发工作和学习中需要用到或者可能用到的绝大部分知识。希望大家可以根据自己感兴趣的方面多多学习。 另:写的内容如有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。 这份【 学习路线 】,仅供大家交流学习使用,捣乱和发广告的勿加。 扫码添加CSDN老师 免费领取学习内容+课程规划 作为程序员技术社区,一直秉承着“成就一亿技术人”的使命,为帮助 Python 小白从 0 开始系统实战各个应用方向,打好 Python 各个应用岗位的核心能力!CSDN 发起了【Python 全栈开发工程师】! Python 全栈开发工程师 帮你打好 Python 核心能力! 1 以就业为导向,制定完善的课程大纲 CSDN 作为国内编程技术社区,国内程序员的聚集地,非常了解当下企业需要的 Python 技术需求。 以就业为导向,Python 训练营课程大纲根据企业需求设定,涵盖了 Python 最为主要的 应用方向: Python 全栈开发、Python 爬虫、Python 数据分析、 Python Web, 人工智能 。 而且,课程最注重实用性,从实际出发讲授 Python 编程语法+

python技术面试题(十八)

左心房为你撑大大i 提交于 2021-01-30 10:29:32
正文共: 992 字 5 图 预计阅读时间:3 分钟 每日分享 Children are wonderfully confident in their own imaginations. Most of us lose this confidence as we grow up. 孩子们对自己的想象力非常自信。但是随着我们的成长,大多数人都失去了信心。 猪猪语录 : 今天的分享由我们的猪猪同学提供。 很多时候蒙蔽我们双眼的不是假象,而是自己的执念。 承认自己并非你所以为的那种人,称得上是一种相当可怕的经历。 python技术面试题(十八) 1.给定一个列表,使用sort对其进行去重操作,从最后一个元素开始。 ids = [ 1 , 4 , 3 , 3 , 4 , 2 , 3 , 4 , 5 , 6 , 1 ] ids . reverse () news_ids = list ( set ( ids )) news_ids . sort ( key = ids . index ) print ( news_ids ) ---------------- [ 1 , 6 , 5 , 4 , 3 , 2 ] sort()函数 语法: list . sort ( self , key = None , reverse = False ) 用于对原列表进行排序。 key ---

.NET面试题系列(十八)常用关键字

会有一股神秘感。 提交于 2021-01-30 10:15:31
序言 const 和 readonly 关键字 private protected public internal的区别 out ref out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。 普通参数是“值类型传递拷贝,引用类型传递引用”,但是都不能在函数内部修改外部变量的指向,这时候要用ref或者out(相当于把变量都传进去了),他们的作用不同:ref的作用“方法内部修改外部变量的引用”;out的作用“方法内部给外部变量初始化,相当于一个函数多个返回值”。 1、使用ref型参数时,传入的参数必须先被初始化,方法中可以不赋值。对out而言,必须在方法中对其完成初始化,方法外部不用初始化,初始化也没用。 2、使用ref和out时,在方法的参数和执行方法时,都要加ref或out关键字。以满足匹配。 3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。 值类型和引用类型 class 和 struct 的区别 class 是引用类型存在堆上,structs是值类型存在栈上。 Dispose()、Close()、Finalize()的区别详解 其实不管是Dispose,Close,Finalize方法﹐最终应该都是执行相同的代码 区别﹕ Finalize方法﹕只能由微软调用

Java并发编程:阻塞队列

試著忘記壹切 提交于 2021-01-30 10:15:12
点击上方“ Java知音 ”,选择“置顶公众号” 技术文章第一时间送达! 作者:海子 http://www.cnblogs.com/dolphin0520/p/3932906.html 知音专栏 Javaweb练手项目源码下载 常用设计模式完整系列篇 100套IT类简历模板下载 Java常见面试题汇总篇 在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。 在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了Dequeue接口)。 使用非阻塞队列的时候有一个很大问题就是:它不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线程间唤醒策略,这个实现起来就非常麻烦。但是有了阻塞队列就不一样了,它会对当前线程产生阻塞,比如一个线程从一个空的阻塞队列中取元素,此时线程会被阻塞直到阻塞队列中有了元素。当队列中有元素后,被阻塞的线程会自动被唤醒(不需要我们编写代码去唤醒)。这样提供了极大的方便性。 本文先讲述一下java.util

如何为 Web 主机做预算

守給你的承諾、 提交于 2021-01-30 08:53:11
每日前端夜话 第284篇 翻译: 疯狂的技术宅 作者:Mokhtar Ali Ebrahim 来源:likegeeks 正文共: 2403 字 预计阅读时间:7分钟 我们都想通过共享托管来省钱,但是对于某些网站,VPS 甚至专用计划都是不可避免的。如果你不得不做一个更高级的计划,这可能意味着你的网站正在成长并获得更多的流量——因此,付出的财务成本将是值得的。 但是,你如何计划该财务成本,并尽可能降低呢?首先,你需要知道网站的目标。 你网站的目标是什么? 为了找出最适合你自己的网络托管计划预算,确定你网站的目标是很非常重要的。无论是太复杂还是不够可扩展,最终都会为次付出代价。 如果你的目标是网站… 在家人和朋友中吸引少量粉丝 作为当地企业的联系点 展示个人的作品或简历 …那么 共享托管(2.75 - 15.00 美元/月) 绰绰有余。但是,如果你希望该网站: 处理中型企业的流量需求 有足够的安全性来处理电子支付 承载成功和活跃的博客 随着流量的增加,保持良好的页面速度和图像加载时间 …你需要升级到 VPS(5 – 80美元/月) 。 唯一需要为 专用计划(80 – 730美元/月) 掏钱的网站是: 面向拥有大量跨国受众并产生大量访问量的公司的页面 电子商务需求特别大的网站,例如存储大量高分辨率产品图片 如果你现在经营的是一个只有几页的小型网站,但目标是最终扩大规模并成为高流量

【译】3条简单的React状态管规则

妖精的绣舞 提交于 2021-01-30 08:32:29
2019年第13期 React组件内部的状态是在渲染之间保持不变的封装数据。 useState() 是React钩子,负责管理功能组件内部的状态。 我喜欢 useState() 确实使状态处理变得非常容易。但是我经常遇到类似的问题: 我应该将组件的状态划分为小状态,还是保持复合状态? 如果状态管理变得复杂,我应该从组件中提取它吗?怎么做? 如果 useState() 用法是如此简单,那么何时需要 useReducer() ? 这篇文章介绍了3条简单的规则,可以回答上述问题并帮助您设计组件的状态。 一个关注点 高效状态管理的首要原则是: 让一个状态变量负责一个关注点。 让一个状态变量负责一个关注点使它符合单一责任原则。让我们来看一个复合状态的例子,即一个包含多个状态值的状态。 状态由一个普通的JavaScript对象组成,该对象具有属性 on 和 count 。 第一个属性 state.on 包含一个布尔值,表示开关。 state.count 保存一个表示计数器的数字,例如,用户单击按钮的次数。 然后,假设您要将计数器增加1: 您必须将整个状态保持在附近才能更新计数。这是一个需要调用的大型构造来简单地增加一个计数器:因为一个状态变量负责两个关注点:开关和计数器。 解决方案是将复合状态分成2个原子状态并计数: on 状态变量仅负责存储开关状态。同样的方法, count 变量仅负责计数器