Amp

List 接口

随声附和 提交于 2020-08-16 09:00:09
与 Collection 源码比较 List 接口继承自 Collection 接口,从源码来分析List 的定义和两者提供的方法有什么区别。 /** * 有序集合,也称为序列。平时就叫列表。 * 该接口的用户可以精确控制列表中每个元素的插入位置。 * 用户可以通过其整数索引(列表中的位置)访问元素,并在列表中搜索元素。 */ public interface List< E > extends Collection< E > { // Query Operations /** * 返回此列表中的元素个数。 * 如果大于 Integer.MAX_VALUE 就返回 Integer.MAX_VALUE * 和 Collection 没区别 */ int size () ; /** * 如果此列表不包含任何元素就返回 true * 和 Collection 没区别 */ boolean isEmpty () ; /** * 如果此列表包含指定的元素就返回 true * 通常,当且仅当至少包含一个元素 e 满足 (o==null ? e==null: o.equals(e)) 返回 true * @throws ClassCastException 如果指定元素的类型与此列表不兼容就抛出此异常 * @throws NullPointerException 如果指定的元素是

云小课 | “VPC连接”知多少

早过忘川 提交于 2020-08-16 07:37:56
摘要: 华为云提供了丰富的网络服务,可满足多种网络互连场景。 同Region的两个VPC怎么连通?” “跨Region的两个VPC又怎么连通?” “VPC内的ECS搭建了一个应用,需要访问Internet,怎么弄?” “某客户的业务一部分在香港,一部分在大陆,怎么经济可靠的连接起来?” “某客户既有本地的数据中心,又想把一部分业务放到云上,怎么玩?” …… …… 网络域大家族提供了丰富的云产品,满足大家的各种网络互连需要。既有适用简单场景的单兵作战利器,也有适用复杂场景的组合拳。 来来来,我们一起来看看^_^ 连接Internet VPC内的云资源连接公网(Internet),可以通过如下云产品实现。 连接VPC VPC与VPC之间要建立连接,可以通过如下云产品实现。 连接IDC 对于自建本地数据中心(IDC)的用户,由于利旧和平滑演进的原因,并非所有的业务都能放置在云上,这个时候就可以通过如下产品构建混合云,实现云上VPC与云下IDC之间的互连。 今天的分享就到这里, 点击了解更多 ,虚拟私有云等着您! 点击关注,第一时间了解华为云新鲜技术~ 来源: oschina 链接: https://my.oschina.net/u/4526289/blog/4340319

Mysql的SQL优化指北

吃可爱长大的小学妹 提交于 2020-08-16 07:05:15
要知道怎么优化首先要知道一条SQL是怎么被执行的 首先我们会连接到这个数据库上,这时候接待你的就是连接器。连接器负责跟客户端建立连接、获取权限、维持和管理连接。 MySQL拿到一个查询请求后,会先到查询缓存看看,之前是不是执行过这条语句。 然后分析器先会做“词法分析”,MySQL需要识别出里面的字符串分别是什么,代表什么。接着要做“语法分析”,根据词法分析的结果,语法分析器会根据语法规则,判断你输入的这个SQL语句是否满足MySQL语法。 然后执行优化器,优化器是在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联(join)的时候,决定各个表的连接顺序。 MySQL通过分析器知道了你要做什么,通过优化器知道了该怎么做,于是就进入了执行器阶段,开始执行语句。开始执行的时候,要先判断一下你对这个表T有没有执行查询的权限,如果没有,就会返回没有权限的错误。 所以SQL优化工作都是优化器的功劳,而我们要做的就是写出符合能被优化器优化的SQL。 我们在这里假设有一张表person_info,里面有个联合索引idx_name_birthday_phone_number(name, birthday, phone_number)作为一个例子。 由于联合索引在B+树中是按照索引的先后顺序进行排序的,所以在索引idx_name_birthday_phone_number中

usbWin7制作

青春壹個敷衍的年華 提交于 2020-08-16 07:04:31
其实win7已经支持USB启动,只是默认没有开启这个功能。下面我们就开启win7原生的USB启动功能。 1.在打开的注册表编辑器中找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control”,在右侧窗口中找到“BootDriverFlags”双击, 在弹出的对话框中输入数字“4”点确定。 2.找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PnP”,在右侧窗口中找到“PollBootPartitionTimeout”双击, 在弹出的对话框中选择“十进制(D)”,“数值数据”输入数字“15000”或“30000”点确定。 一般得用未部署过的win7,离线编辑注册表 配合某缓存软件就可以用得很好了 修改usb驱动版 http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380147d8c8c4668d4e419ce3b4c413037bfa6663f405a8e906b6075ab485cbaa43625300123b5989cc31d80ac925f75ce786a6459db0144dc5cf4975124b125875b99b81fe5adf142d4ef82&p

看完这篇前后端接口联调再也不用相互甩锅了

落花浮王杯 提交于 2020-08-16 06:17:02
介绍   在前后端分离的开发场景下,不可避免的会有前后端联调。在联调阶段,经常会遇到各式各样的问题,比如乱码问题、前端传的数据(字符串、数组、Json对象)后端无法正常解析等问题。   本文希望从源头着手,理清问题的根本原因,快速定位出现问题的位置,让前后端联调得心应手,让甩锅不再那么容易…… HTTP协议   之所以这里会介绍一下HTTP协议,是因为前后端联调离不开HTTP。了解了HTTP协议,有助于更好的理解数据传输的流程,以及更好的分析出到底是在哪个环节出了问题,方便排查。 1. 简介   首先,http是一个无状态的协议,即每次客户端和服务端交互都是无状态的,通常使用cookie来保持状态。   下图为http请求与响应的大致结构(本部分配图均来自于《HTTP权威指南》): 说明:   从上图中可以看出,HTTP请求大致分为三个部分:起始行、首部、主体。在请求起始行里,表面了请求方法、请求地址以及http协议的版本。另外,首部即是我们常说的http header。 2. HTTP method   下面是常用的HTTP请求方法以及介绍: 说明: 我们常用的一般为get于post。 是否包含主体的意思为请求内容是否带主体。例如,在get方式下由于不带主体,只能使用url的方式传参。 3. Content-type   HTTP传输的内容类型与编码是由Content

Linux系统中虚拟设备文件的各种实用用法

大憨熊 提交于 2020-08-16 05:55:02
大家好,我是良许。 大家知道,在 Linux 下,一切皆文件,对于设备文件也是如此。我们在工作的过程中,经常会看到 /dev/null 这个玩意,那它到底是什么呢? 专业地讲, /dev/null 是一个虚拟设备文件。而对程序而言,这些虚拟设备文件则会被当成真实的文件对待。程序可以向这种数据源请求数据,所得到的数据将由操作系统提供。但是,这些数据并不是从磁盘上读取到的,而是由操作系统动态生成的。虚拟设备文件的一个典型例子就是 /dev/zero 。 然而,当你想向 /dev/null 写入数据时,无论你向 /dev/null 中写入什么数据,最终都会被丢弃,就像被丢入黑洞一样。 既然如此,那么 /dev/null 到底有什么用?要理解这个问题,你首先必须要对 Linux 系统或者 Unix 以及类 Unix 系统的标准输出以及标准错误输出有基本的了解。 标准输出文件与标准错误输出文件 一个命令行程序可以生成两种类型的输出:标准输出与标准错误输出。标准输出会被记录到标准输出文件 stdout ,而标准错误输出会被记录到标准错误输出文件 stderr 。 默认情况下,标准输出文件与标准错误输出文件都与你的终端窗口相关联(或者控制台)。这就意味着任何被输送到标准输出文件或标准错误输出文件的信息都会被显示在你的屏幕上。 但是,通过 Shell 中的重定向,你就可以改变这个行为。比如

区块链公链“三元悖论”专题系列之安全性(Security)

五迷三道 提交于 2020-08-16 05:19:28
上两期我们讲了区块链公链系统“三元悖论”中的 【可扩展性】 和 【去中心化】 ,本期我们结合区块链公链系统中所存在的安全问题和挑战,以及一些实际案例,来讲一下这个系列文章的压轴话题: 安全性(Security) 。 在很多人看来,对于一个系统来说,安全性是必要条件,而非充分条件;甚至有人说,“去中心化”和 “可扩展性” 是“二元悖论”的说法反而比“三元悖论”更为精准,仅仅二元即可说明一个区块链公链系统的性能状况。但实际情况真的是这样吗? 首先,我想引用BTC系统在白皮书中对安全性的描述,来对区块链公链系统的安全性进行一个范围上的定义:以密码学为基础,基于工作量证明(POW)的共识机制,使得整个系统中只要恶意节点的总算力不超过50%,系统就能保证大概率上的安全,并且不会发生致命的“双花”( double spending双重花费问题)欺诈。 从这段文字中可以看出,区块链公链系统的安全范围有两个方面,一是系统自身的安全性(防崩溃机制)方面,二是系统参与者的数据、交易安全性(隐私保护)方面。 区块链公链系统区别于中心化系统的很重要的一部分,就是“安全性”是作为系统中一种性能指标(通过密码学和共识机制等技术作为保障),可根据系统的整体需要,进行弹性选择,甚至在系统迭代过程中可以进行更换。 另外,从本质上讲,区块链技术是一种在信息不对称的情况下,无需相互担保信任或第三方中介参与,采用技术手段

Websphere启停脚本

让人想犯罪 __ 提交于 2020-08-16 04:59:53
#!/bin/bash/ ##################################### ##注意 :使用root用户启动 ##建议was安装使用专门用户 wasadmin,避免使用root用户操作 # chkconfig: 2345 26 80 # description: start and stop webspere server1 with service command ## ##=================================== ##1、创建文件夹 /script/timer ##2、复制文件到文件夹内 ##3、授权 chmod +x /script/timer/initwas.sh ##4、root用户设置定时任务,如下设置:crontab -e,添加命令内容 ##00 23 * * 7 /script/timer/initwas.sh restart >>/logs/initwas.log ##分 时 几号 月 星期[1-7] ##################################### echo "-----------------was operation `date`-----------------------" waspath="/opt/IBM/WebSphere/AppServer/profiles

C++ 九阴真经之参数配置

筅森魡賤 提交于 2020-08-16 04:30:37
日常开发中参数配置是必不可少的,设计一种简单的参数文件格式及简易使用的接口就显得尤为重要。 配置文件格式设计 [System] #周期 STSCycle=60 #延时分钟(单位:分) DelayMin=0 #日志级别 LogLevel=2 该配置文件包括参数组、参数名、参数值、备注 四个元素,可以满足大部分日常开发中简单的参数配置需求。 #ifndef __APPCONFIG_H__ #define __APPCONFIG_H__ /*********************************************************** * @Description: 配置文件加载类 * 1、配置参数以行为单位 * 2、参数格式为:key = value * 3、每一行最多支持255字节 * 4、以#开头的行表示注释 * 5、通过GETPARAM获取参数,参数为key、默认值, 默认值的类型即返回值的类型 * 6、支持类型const char*、std::string、int、double * 示例: CAppConfig::LoadConfigFile("config.ini"); int nPort = GETPARAM("group", "Port", 21); std::string strUser = GETPARAM("group","User",

TabBar修改颜色,动画

你离开我真会死。 提交于 2020-08-16 04:23:57
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{ if ([tabBar.selectedItem.title isEqualToString:NTVLocalized(@"TabBar1", nil)]) { tabBar.tintColor = [UIColor rgb:@"2ED1EF"]; }else if ([tabBar.selectedItem.title isEqualToString:NTVLocalized(@"contacts", nil)]){ tabBar.tintColor = [UIColor rgb:@"FF4888"]; ZGBaseNavigationController *nav = (ZGBaseNavigationController *)[self.viewControllers objectAtIndex:1]; WFCUContactListViewController *contact = (WFCUContactListViewController *) nav.viewControllers.firstObject; [contact loadContact]; }else if ([tabBar.selectedItem.title