J-IM

for in 和 for of 的区别

笑着哭i 提交于 2020-08-04 19:12:48
1、for...in 循环:只能获得对象的键名,不能获得键值 for...of 循环:允许遍历获得键值 var arr = ['red', 'green', 'blue'] for(let item in arr) { console.log('for in item', item) } /* for in item 0 for in item 1 for in item 2 */ for(let item of arr) { console.log('for of item', item) } /* for of item red for of item green for of item blue */ 2、对于普通对象,没有部署原生的 iterator 接口,直接使用 for...of 会报错 var obj = { 'name': 'Jim Green', 'age': 12 } for(let key of obj) { console.log('for of obj', key) } // Uncaught TypeError: obj is not iterable 可以使用 for...in 循环遍历键名 for(let key in obj) { console.log('for in key', key) } /* for in key name for in

Android 11 首个测试版来了,这五大重点更新值得你关注

蹲街弑〆低调 提交于 2020-08-04 14:32:53
摘要 新增「对话」通知、整合音乐控件、新增「仅一次」权限许可、自动填充显示在键盘上方、截图录屏更好用了。 由于美国当地的一些原因,本来预计在 6 月 3 日举行的 Android 开发者大会宣布推迟,不过 Google 在 6 月 11 日早上推出了 Android 11 首个 Beta 版,并在 YouTube 频道发布了关于新版本的线上讲解视频。 极 客之选(微信:GeekChoice)也第一时间将手中的 Pixel 3a 升到了 Android 11 Beta 版。需要说明的是,这个版本主要是面向开发者进行测试,有很多功能还不完善,所以这篇文章我们只向大家介绍 Android 11 在功能层面的一些新特性。 新增「对话」通知,通知栏逻辑更加统一 原生 Android 对于手机的通知管理一向很严格,或者说很复杂。本次不出意外的,Google 依然对通知进行了调整,新增了「对话」层级位于所有通知上方,再往下是「提醒通知」和「无声通知」。 对话层级就是将所有通讯信息整合起来,并优先显示。旁边会显示未读消息数,可以直接在通知栏里进行回复。右下角的按钮是新增功能「对话泡」,它可以将一组对话以图标的形式浮在所有应用上方,随意拖动,来消息时可以优先看到,点击进入窗口模式进行回复。 是不是有点眼熟?没错,这个功能就类似于魅族之前推出的小窗模式+气泡通知,它让应用有了三种展示层级,图标、窗口

java bean的拷贝

自闭症网瘾萝莉.ら 提交于 2020-07-29 06:16:29
1.bean copy package com.qimh.springbootfiledemo.utils; import org.apache.poi.ss.formula.functions.T; import java.lang.reflect.Field; /** * @author * bean 复制 */ public class BeanCopy { /** * bean 的拷贝 * @param srcBean--原始bean * @param destClazz--目标class对象 * 这个<T> T 表示的是返回值T是泛型 * T是一个占位符,用来告诉编译器,这个东西先给我留着,等我编译的时候,告诉你。 * https://www.cnblogs.com/jpfss/p/9929108.html */ public static <T> T beanCopy(Object srcBean,Class<T> destClazz) throws IllegalAccessException, InstantiationException, NoSuchFieldException { if (null != srcBean && null != destClazz){ //获取目标bean的实例 T destBean = destClazz.newInstance

初创公司风险投资:一场全垒打的比赛

流过昼夜 提交于 2020-07-28 18:48:15
   在不确定的经济条件下,风投这十年步履蹒跚,但始终未变的方向是寻找具有颠覆性的企业。   过去的十年里,风险资本迅猛增长。   在数十亿美元退出、硅谷初创企业爆炸式增长以及软银 1000 亿美元愿景基金大规模融资的推动下,全球年度资本投资从 2010 年到 2019 年增长了近 13 倍,达到 1600 亿美元。与此同时,超大轮投资(投资额在 1 亿美元以上)数量从 2016 年到 2018 年几乎增长了两倍。    图 | 过去十年全球 VC 投资额及投资数量统计(来源:CB Insights)   然而, 新冠肺炎带来的经济下行在一定程度上抑制了投资交易 。投资于种子轮公司的风投越来越少,据统计 2020 年 3 月,美国整体风投交易同比下降 22%。疫情让投资者在投资时更加挑剔,他们更倾向于把钱交给那些证明自己有足够实力经受住疫情带来的冲击,并在经济回升时可以实现增长的公司。   但其实风险投资在很多方面都可以抵御短期风险,原因很简单,风险投资是长期的。VC 并不一定要投资那些在短期之内会有巨大增长的初创公司;他们真正希望寻找到的是那些能在 10 年后成长为行业内顶尖的公司。   总体而言,风险投资的基本策略从来没有改变过。他们更愿意 将赌注押在具有突破性技术/产品或是从根本上改变一个行业的初创公司上 。   在这份报告中,我们将通过解释风险投资中的关键定义

又开始「挤牙膏」?英特尔7纳米芯片发布时间推迟到2022年

若如初见. 提交于 2020-07-25 19:39:06
  机器之心报道    参与:魔王、小舟    英特尔推迟 7 纳米芯片上市时间,意料之中?      在今年 4 月举办的 2020 英特尔中国年度战略分享会上,英特尔宣布其芯片工艺提升速度已经全面恢复,「2020 年 10 纳米制程全面铺开,2021 年进入 7 纳米时代」。   然而,就在刚刚,英特尔宣布由于 7 纳米制程遇到问题,7 纳米芯片发布时间推迟,最早将于 2022 年问世,也可能推迟到 2023 年。   英特尔 2020 年第二季度财报显示,原定于 2021 年底推出的 7nm CPU 芯片将推迟 6 个月。其主要原因在于当前 7nm 制程存在问题,实际生产进度比内部目标落后了一年。   英特尔 CEO Bob Swan 表示,7 纳米制程存在问题,7 纳米芯片推迟 6 个月意味着产品至少要到 2022 年才能上市。   相比之下,英特尔的竞争对手 AMD 基于 7nm 架构的 Ryzen 4000 芯片已经上市数月,远远领先于英特尔。    7 纳米遇阻,10 纳米扳回一城?   不过,对英特尔而言也有好消息:他们正按计划发布第 11 代 Tiger Lake 芯片,这款芯片有望在今年晚些时候取代第 10 代 Ice Lake 芯片,应用到笔记本电脑中,Tiger Lake 芯片将集成 Xe GPU。   英特尔还计划在 2021 下半年推出新的客户端 CPU

Python学习心得体会总结,不要采坑

徘徊边缘 提交于 2020-05-08 06:38:50
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者:樱桃小丸子0093 大家要持续关注哦,不定时更新Python知识哦! Python 作为一个近年备受好评的语言,它的一些优点让人无法忽视。Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。它的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。Python 还是交互式语言: 这意味着,可以在一个Python提示符,直接互动执行写程序。它 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。优点如此的多最终我选择了它。 因为刚刚学,所以首先要先安装python环境。另外项目实战也是核心,如果你缺项目练习,去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面很多新教程项目 1.Python环境搭建(windows环境) 1.下载地址: https://www.python.org/downloads/windows/ 选择适合自己电脑的位数来下载安装包(ps :x86代表着32位系统的

python日记—class & 装饰器

情到浓时终转凉″ 提交于 2020-05-07 16:06:12
#面向对象 class Student: def __init__(self, name, grade): #self相当于java中的this self.name = name self.grade = grade def introduce(self): print('hi! I`m ' + self.name) print('my grade is:' + str(self.grade)) def change_grade(self, new_grade): self.grade = new_grade Jim = Student('Jim', 82) Jim.introduce() Jim.change_grade(90) Jim.introduce() #装饰器的应用 def add_candles(cake_func): def insert_candles(): return cake_func() + " and candles" return insert_candles @add_candles def make_cake(): return "cake" print(make_cake()) 来源: oschina 链接: https://my.oschina.net/jugier/blog/4269336

阿里程序员推荐的9款最佳编程字体

﹥>﹥吖頭↗ 提交于 2020-05-06 00:02:57
1、Consolas Consolas是一套等宽字体的字型,属无衬线字体,由Lucas de Groot设计,这套字型使用了微软的ClearType字型平滑技术,非常好看 2、Menlo Menlo也是一个无衬线等宽字体,由Jim Lyles设计,首次出现于2009年8月上市的Mac OS X Snow Leopard系统内建字体之一。Menlo 之前是 Xcode 中的默认字体,是 DejaVu Sans Mono 的衍生品。 3、Source Code Pro Source Code Pro 是 Adobe 公司号称最佳的编程字体。而且还是开源的。它非常适合用于阅读代码,支持 Linux、Mac OS X 和 Windows 等操作系统,而且无论商业或个人都可以免费使用。 4、Monaco Monaco 字体是 OS X 系统默认的字体,与 Consolas 一样都非常适合程序开发人员,很明显一股浓浓的苹果风味 5、Hack Hack 是一种专门用来显示编程语言的字体,其基于 Bitstream Vera 和 DejaVu 项目的开源字体, 0O以及 1lI等都清晰可辨,是码农的福音。 6、Fira Code Fira 是 Mozilla 公司 主推的字体系列。Fira Code 是其中的一员,专为写程序而生。出来具有等宽等基本属性外,还加入了编程连字特性(ligatures)

巴菲特2020年股东大会4万字实录收藏版

梦想的初衷 提交于 2020-05-05 19:43:37
建议大家全文详细阅读。 有的地方我会解读以下(红字),但没解读的地方价值也很大。 来源:新浪财经 新浪财经 北京时间3日上午讯 首次完全线上举行的巴菲特股东大会刚刚结束,虽然受疫情影响,今年巴菲特老先生只能和伯克希尔非保险业务副董事长格雷格-阿贝尔相隔数英尺,在奥马哈体育场内面对场地中数千个空椅子问答,但众多的股东还是通过CNBC记者贝基-奎克远程向巴菲特提出了诸多不乏尖锐的问题,而巴菲特在长达4个半小时的会议中精神矍铄,妙语连珠,虽然禁足令之下老先生的头发有些长而凌乱。 新浪财经现将全场对话实录整理如下: 巴菲特:以前我都习惯和查理在这里讲话,但是查理今年已经96岁了,他的生命还挺强健,但是今年可能最好的选择就是让芒格先生不要过来。查理对新的生活正在适应,他已经加上了Zoom,加到他的每日日程中,他每天通过Zoom和不同的人开会。从技术上来讲,他把我超越过去了。我要跟大家保证的是,查理的状态良好,他明年会回来,而且我们希望明年的时候一切会恢复正常。 我们本应该到场的另外一位是我们的副董事长,负责我们保险业的杰特-简恩,他在纽约,这一次他也觉得从那边旅行来奥马哈开会也是不合适的。阿贝尔现在在台上,是我们这边的另一位副董事长,保险业务之外的所有业务都由他负责。格雷格所领导的行业现在大概是有1500亿资源,尤其是拥有12万员工,他做这个工作已经有两年了。如果是没有阿贝尔来帮我

1 手写Java ArrayList核心源码

独自空忆成欢 提交于 2020-05-05 00:53:16
手写ArrayList核心源码 ArrayList是Java中常用的数据结构,不光有ArrayList,还有LinkedList,HashMap,LinkedHashMap,HashSet,Queue,PriorityQueue等等,我们将手写这些常用的数据结构的核心源码,用尽量少的代码来揭示核心原理。 下面我们来手写ArrayList的核心源码 首先我们定义一个QArrayList,不要问为什么叫QArrayList,因为我之前写过Qt,仅此而已。源码 public class<T> QArrayList ,Java中的ArrayList的底层就是用一个Object[] 结构来保存数据的。我们也要定义一个Object[] 属性。 而且我们还要定义一个默认的数据的大小,以便在调用默认构造函数的情况下使用。 private final int DEFAULT_LIST_SIZE = 8; 还要定义一个 int mSize 变量, mSize 默认为0 , 代表下一个可以存放数据的数组的索引 , 代表下一个可以存放数据的数组的索引 , 代表下一个可以存放数据的数组的索引 重要的事情说三遍 到现在为止我们的类如下: public class QList<T> { //默认的数组的大小 private final int DEFAULT_LIST_SIZE = 8; //存放数据的地方