element

【JAVA SE基础篇】41.Collection方法

人盡茶涼 提交于 2020-08-20 07:48:07
1.Collection中的方法 Collection表示一组对象,他是集中、收集的意思。Collection接口有两个子接口List和Set接口 Cooleantion中的方法: 1.boolean add(Object element):增加元素到容器 2.boolean remove(Object element):从容其中删除元素 3.boolean contains(Object element):容器中是否包含该元素 4.int size():容器中元素的数量 5.boolean isEmpty():容器是否为空 6.void clear():清空容器中所有元素 7.Iterator iterator():获得迭代器,用于遍历所有元素 8.boolean containsAll(Collection c):本容器是否包含C容器中的所有元素 9.boolean addAll(Collection c):将容器C中所有元素增加到本容器 10.boolean remove(Collection c):移除本容器和容器C中都包含的元素 11.boolean retainAll(Collection c):取本容器和容器C中都包含的元素,移除非交集元素 12.Object[] toArray() :转化成Object数组 例(基本方法): 例(数学集合相关的方法): 来源:

你不知道的React 和 Vue 的20个区别

痞子三分冷 提交于 2020-08-20 06:08:15
前言 面试竞争力越来越大,是时候撸一波Vue和React源码啦; 本文将前2个月面试总结成从20个层面来对比Vue和React的源码区别; 文章有点长,可以收藏,慢点品尝; 如果需要了解API的区别,请戳: Vue 开发必须知道的 36 个技巧 React 开发必须知道的 34 个技巧 文章源码: 请戳 ,原创码字不易,欢迎star! 1.Vue和React源码区别 1.1 Vue源码 来张Vue源码编译过程图 图片来源: 分析Vue源码实现 1.1.1 挂载 初始化$mounted会挂载组件,不存在 render 函数时需要编译(compile); 1.1.2 compile 1.compile 分为 parse,optimize 和 generate,最终得到 render 函数; 2.parse 调用 parseHtml 方法,方法核心是利用正则解析 template 的指令,class 和 stype,得到 AST; 3.optimize 作用标记 static 静态节点,后面 patch,diff会跳过静态节点; 4.generate 是将 AST 转化为 render 函数表达式,执行 vm._render 方法将 render 表达式转化为VNode,得到 render 和 staticRenderFns 字符串; 5.vm._render 方法调用了 VNode

Python爬取某宝商品数据案例:100页的价格、购买人数等数据

試著忘記壹切 提交于 2020-08-20 05:37:20
前言 随着互联网时代的到来,人们更加倾向于互联网购物,某宝又是电商行业的巨头,在某宝平台中有很多商家数据,今天带大家使用python+selenium工具获取这些公开的。 本篇文章适合Python零基础、对爬虫数据采集感兴趣的同学! 环境介绍: python 3.6 pycharm selenium time selenium简介 自动化测试工具,驱动浏览器帮助我们获取到渲染之后的数据 模仿人的行为操作浏览器(用户行为加上代码逻辑的结合) 安装模块 pip install selenium 步骤 安装Webdriver 打开Google浏览器,点击进入设置界面 进入界面后点击关于Chrome,然后找到你Google浏览器的版本,安装Webdriver要对应浏览器的版本 导入模块 import time import re import csv from selenium import webdriver from selenium.webdriver import ActionChains from 淘宝爬虫 import constans 入口测试代码 def search_product(key): """ 模拟搜索商品,登陆账户,获取最大页数 """ driver.get( ' http://www.taobao.com ' ) driver.find_element_by

Python+Selenium练习篇之8-点击复选框-Checkbox

守給你的承諾、 提交于 2020-08-20 02:30:52
本文介绍Selenium中,如何操作复选 框-Checkbox,最终的方法还是click()。 本来想还是继续采用for语句来把所有的复选框勾选一遍,例如这样的场景:注册一个网站勾选身份或者职业的时候,由于没有找到合适的demo网站。这里还是以百度举例,登录时,勾选下次自动登录: 相关脚本代码如下: # coding=utf-8 import time from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get( ' https://www.baidu.com ' ) driver.implicitly_wait( 8 ) driver.find_element_by_xpath( " //*[@id='u1']/a[7] " ).click() time.sleep( 1 ) driver.find_element_by_xpath( " //*[@name='memberPass'] " ).click() time.sleep( 1 ) driver.find_element_by_xpath( " //*[@name='memberPass'] " ).click() 由于这个勾选是默认选中的,这里方便观察点击效果,点击了两次。如果有多个复选框

详解React 元素渲染

瘦欲@ 提交于 2020-08-20 01:29:11
元素是构成 React 应用的最小单位,它用于描述屏幕上输出的内容。 const element = <h1>Hello, world!</h1>; 与浏览器的 DOM 元素不同,React 当中的元素事实上是普通的对象,React DOM 可以确保 浏览器 DOM 的数据内容与 React 元素保持一致。 将元素渲染到 DOM 中 首先我们在一个 HTML 页面中添加一个 id="example" 的 <div> : <div id="example"></div> 在此 div 中的所有内容都将由 React DOM 来管理,所以我们将其称为 "根" DOM 节点。 我们用 React 开发应用时一般只会定义一个根节点。但如果你是在一个已有的项目当中引入 React 的话,你可能会需要在不同的部分单独定义 React 根节点。 要将React元素渲染到根DOM节点中,我们通过把它们都传递给 ReactDOM.render() 的方法来将其渲染到页面上: const element = <h1>Hello, world!</h1>; ReactDOM.render( element, document.getElementById('example') ); 更新元素渲染 React 元素都是不可变的。当元素被创建之后,你是无法改变其内容或属性的。

Java 泛型,你了解类型擦除吗?

老子叫甜甜 提交于 2020-08-20 00:49:02
作者:frank909 https://blog.csdn.net/briblue/article/details/76736356 泛型,一个孤独的守门者。 大家可能会有疑问,我为什么叫做泛型是一个守门者。这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘与神奇。泛型是 Java 中一个很小巧的概念,但同时也是一个很容易让人迷惑的知识点,它让人迷惑的地方在于它的许多表现有点违反直觉。 文章开始的地方,先给大家奉上一道经典的测试题。 List<String> l1 = new ArrayList<String>(); List<Integer> l2 = new ArrayList<Integer>(); System.out.println(l1.getClass() == l2.getClass()); 请问,上面代码最终结果输出的是什么?不了解泛型的和很熟悉泛型的同学应该能够答出来,而对泛型有所了解,但是了解不深入的同学可能会答错。 正确答案是 true。 上面的代码中涉及到了泛型,而输出的结果缘由是类型擦除。先好好说说泛型。 泛型是什么? 泛型的英文是 generics,generic 的意思是通用,而翻译成中文,泛应该意为广泛,型是类型。所以泛型就是能广泛适用的类型。 但泛型还有一种较为准确的说法就是为了参数化类型

vue+element-ui实现优雅的emoji表情框

岁酱吖の 提交于 2020-08-20 00:45:00
终于把表情包的功能实现了😁,网上很多用本地图库、雪碧图之类的,愣是没找到几个适合我的解决方案,于是从 amio/emoji.json 上面找了一个JSON文件,然后简单实现了自己聊天系统上面的一个默认表情功能。 文章目录 引入JSON文件 Code template css script 效果 JSON文件 参考文章与资源 引入JSON文件 const appData = require ( "../static/utils/emoji.json" ) ; Code template 表情框组件,通过slot插槽按钮触发显示;输入框是一个textarea,我们要把点击选择的表情插入到textarea光标对应的位置之后。 < div class = "chatIcon" > < el - popover placement = "top-start" width = "400" trigger = "click" class = "emoBox" > < div class = "emotionList" > < a href = "javascript:void(0);" @click = "getEmo(index)" v - for = "(item,index) in faceList" : key = "index" class = "emotionItem" > { {

Vue 打包后自定义样式无法覆盖elementUI组件原有样式问题

坚强是说给别人听的谎言 提交于 2020-08-20 00:26:23
Vue 打包后自定义样式无法覆盖 elementUI 组件原有样式问题 by: 授客 QQ : 1033553122 开发环境 Win 10 node-v10.15.3-x64.msi 下载地址: https://nodejs.org/en/ 问题描述 如下为基于elementUI Dialog编写的一个组件,以npm run dev方式运行vue 项目时,自定义样式可以覆盖elementUI组件原有样式,但生产环境运行npm run build打包后的vue项目时,自定义样式却不起作用了。 原因分析 css样式存在引入顺序问题,引入App之后引入的ElementUI样式 解决方法 修改main.js,调整组件引入顺序 import ElementUI from"element-ui" import "element-ui/lib/theme-chalk/index.css" //确保在import APP之前引入 ...略 import App from"./app/App" import router from"./router"// 最后引入路由 来源: oschina 链接: https://my.oschina.net/u/4336916/blog/4297171

ArrayList源码-不常用方法

自古美人都是妖i 提交于 2020-08-20 00:16:37
这篇笔记主要记录一些不常用方法,了解一下可以干什么,有个印象。 改变数组容量 /** * 将该<tt> ArrayList </ tt>实例的容量调整为列表的当前大小。 * 应用程序可以使用此操作来最大程度地减少<tt> ArrayList </ tt>实例的存储。 */ public void trimToSize () { modCount ++ ; if ( size < elementData . length ) { elementData = ( size == 0 ) ? EMPTY_ELEMENTDATA : Arrays. copyOf ( elementData , size ) ; } } /** * 如有必要,增加此<tt> ArrayList </ tt>实例的容量,以确保它至少可以容纳最小容量参数指定的元素数。 * * @param minCapacity the desired minimum capacity */ public void ensureCapacity ( int minCapacity) { int minExpand = ( elementData != DEFAULTCAPACITY_EMPTY_ELEMENTDATA ) // any size if not default element table ? 0 //

IdentityServer4实现OAuth2.0四种模式之授权码模式

杀马特。学长 韩版系。学妹 提交于 2020-08-19 23:25:24
接上一篇:IdentityServer4实现OAuth2.0四种模式之隐藏模式 授权码模式隐藏码模式最大不同是授权码模式不直接返回token,而是先返回一个授权码,然后再根据这个授权码去请求token。这比隐藏模式更为安全。从应用场景上来区分的话,隐藏模式适应于全前端的应用,授权码模式适用于有后端的应用,因为客户端根据授权码去请求token时是需要把客户端密码转进来的,为了避免客户端密码被暴露,所以请求token这个过程需要放在后台。 一,服务端配置 1,添加客户端 新建一个支持授权码模式的客户端,请求token时需要客户端密码,所以需要设置clientSecret。登录成功后重定向地址依然用之前建立的HTML页面。 new Client() { //客户端Id ClientId="apiClientCode", ClientName="ApiClient for Code", //客户端密码 ClientSecrets={new Secret("apiSecret".Sha256()) }, //客户端授权类型,Code:授权码模式 AllowedGrantTypes=GrantTypes.Code, //允许登录后重定向的地址列表,可以有多个 RedirectUris = {"https://localhost:5002/auth.html"}, //允许访问的资源