Entry

假如用王者荣耀的方式学习webpack

不问归期 提交于 2020-05-09 21:09:06
英雄介绍 崴博.派克诞生于遥远西方的勇士之地,拥有着高超的机械技艺,善于运用各种工具来实现一些看似不可能完成的事。游历王者大陆时机缘巧合遇到了年轻的墨子,与之成为好友。后协助大宗师墨子建造了大陆第一雄城,被后人称为上古文明终结后最伟大的奇迹——长安!长安以“方舟”为驱动核心中枢,配合层出不断的机关,守护着华丽的大明宫。派克为人低调,不喜出现在大众视野,他是需求人性启迪的理想主义者,信奉者唯有光荣进化才能实现人类的全部潜能。 姓名: 崴博.派克(webpack) 热度排名: T0 胜率: 98% 登场率: 80%(中大型项目90%) Ban率: 10% 操作难度: ★★★★★ 技能: 被动:(自成长型魔械技术) cd:0秒 派克开场就会携带者他的专属装备【loader】,能够提供给他属性,并且能在商店里升级为进阶物品【plugin】,从而增强他的技能。 虹吸能量(entry 入口) 派克指定初始装备开始进化的准备,期间享受韧性加成20%,升级后可指定多个装备进化。 (entry用于指定入口文件,可配置一个或多个。) 基础使用: module.exports = { entry: './path/to/my/entry/file.js' // 默认可配置一个路径字符串 }; 复制代码 进阶使用: 字符串:默认普通路径字符串 ./src 。 const config = { entry:

Dubbo(七):redis注册中心的应用

徘徊边缘 提交于 2020-05-09 16:22:33
  上篇我们讲了Dubbo中有一个非常本质和重要的功能,那就是服务的自动注册与发现,而这个功能是通过注册中心来实现的。上篇中使用zookeeper实现了注册中心的功能,同时了提了dubbo中有其他许多的注册中心的实现。   今天我们就来看看另一个注册中心的实现吧: redis 1. dubbo在 Redis 中的服务分布   dubbo在zk中的服务体现是一个个的文件路径形式,如 /dubbo/xxx.xx.XxxService/providers/xxx 。 而在redis中,则体现是一个个的缓存key-value。具体分布如下:     /dubbo/xxx.xx.XxxService/providers: 以hash类型存放所有提供者列表, 每个hash的字段为 url -> expireTime     /dubbo/xxx.xx.XxxService/consumers: 以hash类型存放所有消费者列表, 每个hash的字段为 url -> expireTime     /dubbo/xxx.xx.XxxService/configurators: 存放配置信息     /dubbo/xxx.xx.XxxService/routers: 存放路由配置信息   如上,同样,redis也是以service为粒度进行存储划分的。 2. Redis 组件的接入  

Java中HashMap底层实现原理(JDK1.8)源码分析

扶醉桌前 提交于 2020-05-09 16:00:00
这几天学习了HashMap的底层实现,但是发现好几个版本的,代码不一,而且看了 Android 包的HashMap和JDK中的HashMap的也不是一样,原来他们没有指定JDK版本,很多文章都是旧版本JDK1.6.JDK1.7的。现在我来分析一哈最新的JDK1.8的HashMap及性能优化。 在JDK1.6,JDK1.7中,HashMap采用位桶+链表实现,即使用链表处理冲突, 同一hash值的链表都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。 而JDK1.8中,HashMap采用位桶+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树 ,这样大大减少了查找时间。 简单说下HashMap的实现原理: 首先有一个每个元素都是链表(可能表述不准确)的数组,当添加一个元素(key-value)时,就首先计算元素key的hash值,以此确定插入数组中的位置,但是可能存在同一hash值的元素已经被放在数组同一位置了,这时就添加到同一hash值的元素的后面,他们在数组的同一位置,但是形成了链表,同一各链表上的Hash值是相同的,所以说数组存放的是链表。而当链表长度太长时,链表就转换为红黑树,这样大大提高了查找的效率。 当链表数组的容量超过初始容量的0.75时,再散列将链表数组扩大2倍,把原链表数组的搬移到新的数组中

备战详解22道Java面试常问集合框架面试真题,让面试官无话可说!

半腔热情 提交于 2020-05-09 12:06:43
简介 集合框架:用于存储数据的容器。 集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。 任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。 接口 :表示集合的抽象数据类型。接口允许我们操作集合时不必关注具体实现,从而达到“多态”。在面向对象编程语言中,接口通常用来形成规范。 实现 :集合接口的具体实现,是重用性很高的数据结构。 算法 :在一个实现了某个集合框架中的接口的对象身上完成某种有用的计算的方法,例如查找、排序等。这些算法通常是多态的,因为相同的方法可以在同一个接口被多个类实现时有不同的表现。事实上,算法是可复用的函数。 它减少了程序设计的辛劳。 集合框架通过提供有用的数据结构和算法使你能集中注意力于你的程序的重要部分上,而不是为了让程序能正常运转而将注意力于低层设计上。 通过这些在无关API之间的简易的互用性,使你免除了为改编对象或转换代码以便联合这些API而去写大量的代码。它提高了程序速度和质量。 Java 集合框架图如下: 面试解析 1.ArrayList 和 Vector 的区别。 这两个类都实现了 List 接口(List 接口继承了 Collection 接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以按位置索引号取出某个元素,并且其中的数据是允许重复的,这是HashSet

修改ELF可执行文件entry入口感染一个程序

懵懂的女人 提交于 2020-05-09 11:27:16
前面的文章在介绍如何将代码注入Linux内核模块的时候,我提到 “修改ELF文件或者PE文件的入口,让它跳到自己的逻辑”这件事很容易。 真的很容易吗?是的,真的很容易。本文就是要演示这个的。 还记得熊猫烧香病毒吧,包括它在内的早期计算机病毒都是靠这种方式来注入自己的代码并实现自我复制的,当然,它不一定修改的是入口地址,但肯定是修改了ELF/PE文件。 若想修改ELF文件,我们先要了解ELF文件的结构,这个只需要花10分钟大致浏览即可,本文不会花篇幅介绍ELF的相关概念。 <elf.h>头文件里已经包含了足够的数据结构和API供我们对ELF可执行文件进行修改,我们用就是了。 本文演示的例子很简单,就是感染一个既有的LEF可执行文件,首先,我们先提供该可执行文件的代码: // hello.c int main ( ) { printf ( "aaaaaaaaaaaaa\n" ) ; } 我们将它编译成hello可执行文件。 接下来我们尝试用另一个程序去修改它的入口,新的入口逻辑如下: if ( fork ( ) == 0 ) { exec ( "/bin/aa" ) ; } else { goto orig_entry ; } 我们肯定不能往ELF文件里直接注入C代码,就好像我们不能往血管里注射拉面汤一样。所以我们必须得到上述逻辑的汇编指令码。 如何得到指令码呢?

MySQL事务控制语句(学习笔记)

你。 提交于 2020-05-08 21:08:14
MySQL事务控制语句(学习笔记) MySQL事务控制语句 在mysql命令行的默认下,事务都是自动提交的,sql语句提交后马上会执行commit操作。因此开启一个事务必须使用begin,start transaction,或者执行 set autocommit=0; 可以使用的事务控制语句 start transction | begin : 显示的开启一个事务 commit (commit work) commit work与completion_type的关系,commit work是用来控制事务结束后的行为,是chain还是release的,可以通过参数completion_type来控制,默认为0(或者NO_CHAIN),表示没有任何操作 与commit效果一样。当completion_type=1的时候 [sql] view plain copy mysql> set names utf8; Query OK, 0 rows affected (0.00 sec) mysql> create table t(a int, primary key (a))engine=innodb; Query OK, 0 rows affected (0.29 sec) mysql> select @@autocommit; + --------------+ | @

c#.net怎么实现web端上传超大文件

谁说我不能喝 提交于 2020-05-08 19:32:44
ASP.NET上传文件用FileUpLoad就可以,但是对文件夹的操作却不能用FileUpLoad来实现。 下面这个示例便是使用ASP.NET来实现上传文件夹并对文件夹进行压缩以及解压。 ASP.NET页面设计:TextBox和Button按钮。 TextBox中需要自己受到输入文件夹的路径(包含文件夹),通过Button实现选择文件夹的问题还没有解决,暂时只能手动输入。 两种方法:生成rar和zip。 1.生成rar using Microsoft.Win32; using System.Diagnostics; protected void Button1Click(object sender, EventArgs e) { RAR(@"E:\95413594531\GIS", "tmptest", @"E:\95413594531\"); } /// /// 压缩文件 /// /// 需要压缩的文件夹或者单个文件 /// 生成压缩文件的文件名 /// 生成压缩文件保存路径 /// protected bool RAR(string DFilePath, string DRARName,string DRARPath) { String therar; RegistryKey theReg; Object theObj; String theInfo;

前端性能优化之谈谈通用性能指标及上报策略

…衆ロ難τιáo~ 提交于 2020-05-08 19:20:05
背景 性能优化是所有前端人的追求,在这条路上,方法多种多样。这篇文章,说一下可以怎样定义性能指标及上报。 指标 FP 含义 FP,全称 First Paint ,翻译为 首次绘制 ,是时间线上的第一个 时间点 ,它代表网页的第一个像素渲染到屏幕上所用时间,也就是页面在屏幕上首次发生视觉变化的时间。 统计逻辑 通过performance.getEntriesByType('paint’),取第一个pain的时间。如: function getFPTime ( ) { const timings = performance.getEntriesByType( 'paint' )[ 0 ]; return timings ? Math .round(timings.startTime) : null } 复制代码 FCP 含义 FCP,全称 First Contentful Paint ,翻译为 首次内容绘制 ,顾名思义,它代表浏览器第一次向屏幕绘 内容 。 注意:只有首次绘制文本、图片(包含背景图)、非白色的canvas或SVG时才被算作FCP。 统计逻辑 通过performance.getEntriesByType('paint’),取第二个pain的时间,或者通过Mutation Observer观察到首次节点变动的时间。如: const domEntries = [] const

.Net Core2.2 + EF Core + DI,三层框架项目搭建教程

一笑奈何 提交于 2020-05-08 18:55:49
笔记:   近两年.Net Core发展的很快,目前最新版为3.0预览版,之前在网上买了一本1.1版书籍都还没来得及看呢,估计现在拿出来看也毫无意义了。已多年.net工作经验,看书不如 直接 实际上手来得快,遇到问题再度娘吧。 正好最近公司不忙时,抽空亲手搭建 .Net Core项目熟悉一下,说起.net那最自豪的就是VS编译器了,强大的辅助功能很多中小型项目只需要下一步就可以创建完成。这里我们还需要简单封装一下,使用仓储模式对数据访问层封装和Service层封装,通过.net自带DI依赖注入进行创建对象。对于初学者的我只能简单的封装一下,接下来我会一一讲解框架的思路,如有更好的方案或不明的地方欢迎留言。转载请备注来源: https://www.cnblogs.com/han1982/p/11058788.html 下面是已搭建好的框架结构: 第一步:创建解决方案 使用Visual Studio 2019编译器创建解决方案,默认安装vs2019自带的.NET Core 2.1,创建.NET Core 2.2版需要下载SDK安装。 https://dotnet.microsoft.com/download/visual-studio-sdks?utm_source=getdotnetsdk&utm_medium=referral 接下来可以创建项目了,首先创建的是数据访问层

下载歌曲的时候嫌麻烦?打造专属你的音乐下载器

耗尽温柔 提交于 2020-05-08 17:42:26
前言 前面已经做出了一个只属于自己的音乐播放器,那怎么能没有一个音乐下载器呢 之前大家有没有过从电脑上下载歌曲MP3文件放到手机内存卡的经历,随着时代发展,现在的各大音乐软件已经成为播放器,下载音乐是要收费的,现在教大家从零开始可以通过python通过爬虫爬取音乐,教大家打造自己的音乐下载器。 知识点: 1.python基础知识 2.requests库 3.urllib库 4.BeautifulSoup 环境: windows + pycharm + python3 适合零基础的同学 1、导入工具 import os from urllib.request import urlretrieve from tkinter import * import requests from selenium import webdriver 2、界面 # 创建界面 root = Tk() # 标题 root.title( ' 网易云音乐下载器 ' ) # 设置窗口大小 root.geometry( ' 560x450 ' ) # 标签控件 label = Label(root,text= ' 请输入歌曲名称: ' ,font=( ' 华文行楷 ' ,20 )) # 标签定位 label.grid() # 输入框 entry = Entry(root,font=( ' 隶书 ' ,20 ))