千锋教育

Java培训丨Python培训丨IT培训机构
千锋首页关于我们视频教程学习路线编程教材
私信 关注
千锋教育官方博客
码龄4年

千锋教育一直秉承“做真实的自己,用良心做教育”的理念,致力于打造IT教育全产业链人才服务平台。面授课程包含HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算+信息安全培训、全栈软件测试培训、大数据+人工智能培训、物联网+嵌入式培训、Unity游戏开发培训、区块链、PHP全栈+服务器集群培训、网络安全、红帽RHCE认证,采用全程面授高品质、高体验培养模式,教学大纲紧跟企业需求,拥有全国一体化就业保障服务,成为学员信赖的IT职业教育品牌。

  • 2,368,730
    被访问量
  • 779
    原创文章
  • 348
    作者排名
  • 4,827
    粉丝数量
  • 于 2017-03-14 加入CSDN
获得成就
  • 获得1,172次点赞
  • 内容获得1,159次评论
  • 获得8,134次收藏
荣誉勋章
兴趣领域
  • #后端
    #Python#分布式#MySQL#Go/GoLang#Java#C/C++#Linux#PHP#架构#Swift
TA的专栏
  • 870028642:JAVA大数据学习交流
    374篇
  • Java小白课堂
    133篇
  • 一起学Python
    199篇
  • WEB前端集中营
    141篇
  • 零基础入门UI设计
    35篇
  • Linux
    24篇
  • Go语言基础教程
    8篇
  • 软件测试要学什么
    25篇
  • C语言
    68篇
  • 新媒体
    1篇
  • Goweb开发实战教程
    10篇
  • 网络安全
    3篇
  • Unity3D
    5篇
  • 程序员面试攻略
    6篇
  • 千锋就业榜
    3篇
  • UI学习路线
    18篇
  • java学习路线
    44篇
  • python学习路线
    47篇
  • WEB前端开发
    26篇
  • 千锋动态
    41篇
  • 千锋双选会
    6篇
  • python学习资料
    53篇
  • java学习资料
    32篇
  • UI学习资料
    16篇
  • 大数据学习路线
    6篇
  • 大数据学习资料
    12篇
  • html5学习路线
    10篇
  • html5学习资料
    39篇
  • 就业喜报
    2篇
  • 千锋故事
    8篇
  • 行业动态
    5篇
  • 面试技巧
    5篇
  • 人工智能
    9篇
  • 软件测试
    41篇
  • unity视频教程
    4篇
  • 软件测试教程
    42篇
  • 云计算
    6篇
  • java教程
    52篇
  • 面试题
    8篇
  • 物联网
    34篇
  • 嵌入式
    20篇
  • 大数据
    49篇
  • Python学习
    58篇
  • Python
    59篇
  • 互联网
    27篇
  • IT
    56篇
  • 程序员
    20篇
  • 面试指南
    1篇
  • go语言
    31篇
  • 软考
    11篇
  • 千锋发布会
    8篇
  • 网络营销
    33篇
  • PMP
    16篇
  • 千锋书籍
    6篇
学习资源免费获取群:857914305
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

安装Ceph集群(二)

注 意: 版本更新非常快,有问题要看官方文档官方文档:http://docs.ceph.com 准备环境 系统版本:centos7.4 x86_64 server 硬件配置:5台vm,1核1G内存,每台node角色的机器至少挂载1块不低于5个G的空闲盘为osd存储 ​ 主机名 ip role admin 192.168.153.130 admin.
转载
43阅读
0评论
0点赞
发布博客于 2 天前

分布式存储Ceph(一)

存储分类 1.本地文件系统 ntfs(wind)、ext2、ext3、ext4、xfs ext2不带日志,3和4带有日志:文件系统的日志作用(防止机器突然断电):所有的数据在给磁盘存数据之前会先给文件系统的日志里面存一份,防止机器突然断电之后数据没有存完,这样它还可以从日志里面重新将数据拷贝到磁盘。 2.网络文件系统----做远程共享 非分布式 nfs 网络文件系统--称之
转载
48阅读
0评论
0点赞
发布博客于 2 天前

编译安装LNMP生产环境

一、编译安装 MySQL1、编译安装mysql5.71、清理安装环境:关闭防火墙和selinux # yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y # userdel -r mysql # rm -rf /etc/my* # rm -rf /var/lib/mysql2、创建mysql用户 [root@mysql-server ~]# useradd -r mysql -M -s /bin/
转载
32阅读
0评论
0点赞
发布博客于 2 天前

Ansible-playbook剧本

playbook是ansible用于配置,部署,和管理被控节点的剧本。通过playbook的详细描述,执行其中的tasks,可以让远端主机达到预期的状态。playbook是由一个或多个”play”组成的列表。 当对一台机器做环境初始化的时候往往需要不止做一件事情,这时使用playbook会更加适合。通过playbook你可以一次在多台机器执行多个指令。通过这种预先设计的配置保持了机器的配置统一,并很简单的执行日常任务。工作原理:playbook格式playbook由YMAL语言编写。便于人理
转载
10阅读
0评论
0点赞
发布博客于 2 天前

JavaScript——编程风格

本篇文章我们将讨论如何将新的语法应用在编码实践当中,与传统的 JavaScript 语法结合在一起,写出合理的、易于阅读和维护的代码。所谓"编程风格",指的是编写代码的规则。不同的程序员,往往有不同的编程风格。而且这里的风格包括语法上的编程风格和格式上的编程风格。一.块级作用域let 取代 var - 语法上的编程风格1.ES6 提出了两个新的声明变量的命令:let和const。其中,let完全可以取代var,因为两者语义相同,而且let没有副作用。if (true) { le
转载
21阅读
0评论
0点赞
发布博客于 2 天前

JS实用技巧断点调试详解

调试能力是一个程序员的生存根本,可是很多初学者却忽视调试。今天我们就来讨究一下JS的调试技巧。本文章将会详细列举JS相关的各种实用调试技巧。如果您是JS的初学者,那么这篇文章将对您有很大的帮助。为什么要调试?程序就是函数堆砌起来的,程序的运行就是函数的执行过程。而通过JS调试,我们可以更为直观的追踪到在程序运行中,函数的执行顺序,以及各个参数的变化。这样我们就可以快速的定位到问题所在。1.什么是JS调试?在程序运行中,我们总会遇到各种bug,而通过代码的追踪代码的运行顺序从而定位到问题.
转载
28阅读
0评论
0点赞
发布博客于 4 天前

项目上线流程

1.代码打包当我们完成一个项目开发的时候,下一步肯定会要把这个项目放到互联网上进行发布,此时我们就得先通过打包命令npm run build来对项目进行打包。在命令行工具中运行(需进入项目路径):npm run build稍等片刻后如果提示如下信息则表示打包成功:打包成功后会在当前项目目录下多出一个dist目录:在打包之前一定要将之前开发过程中使用反向代理的操作给去除掉,一上线代理就失效了。同时需要注意解决数据接口的跨域请求问题。注意:打包之后得到的这...
转载
19阅读
0评论
0点赞
发布博客于 4 天前

微信小程序学习笔记(二)-- 开发之框架

一、小程序框架介绍(了解)小程序框架包含小程序的配置、框架接口、场景值、WXML 和 WXS 等二、小程序的配置(精通)小程序的配置分为全局配置、页面配置以及sitemap 配置1、全局配置小程序根目录下的 app.json 文件用来对微信小程序进行全局配置。文件内容为一个 JSON 对象​下面介绍一下常用的配置选项1.1 pages用于指定小程序由哪些页面组成,每一项都对应一个页面的 路径(含文件名) 信息。文件名不需要写文件后缀,框架会自动去寻找对于位置的 .js
转载
31阅读
0评论
1点赞
发布博客于 4 天前

微信小程序学习笔记(一)了解微信小程序

一、什么是小程序(了解)小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。二、小程序的种类(了解)微信小程序、支付宝小程序、头条小程序、百度小程序、QQ小程序三、小程序的发展史(了解)四、小程序的优势(了解)对于开发者而言,小程序开发门槛相对较低,难度不及APP,能够满足简单的基础应用,适合生活服务类线下商铺以及非刚
转载
38阅读
0评论
0点赞
发布博客于 4 天前

Ansible之Role角色

Role角色roles则是在ansible中,playbooks的目录组织结构。而模块化之后,成为roles的组织结构,易读,代码可重用,层次清晰。实战目标:通过role远程部署nginx并配置 两台机器配置本地解析 [root@ansible-server ~]# vim /etc/hosts 192.168.1.9 ansible-server 192.168.1.13 ansible-web4 [root@ansible-web4 ~]# vim /etc/hosts
转载
12阅读
0评论
0点赞
发布博客于 4 天前

教你如何用CSS修改图片颜色

看到题目是不是吓了一跳?css竟然还有这个操作?还真是第一次听说~原理嘛,其实很简单的,用到的就是 CSS3 滤镜filter中的drop-shadow,该滤镜可以给图片非透明区域添加投影。你可以理解为下图它实现的效果看上去就像使原来的对象离开页面,然后在页面上显示出该对象的投影。是有一点类似box-shadow,但是二者还是有显著差别的,我后面会写一篇专门的文章来比较二者的差别。先来看一下语法:filter:drop-shadow(水平阴影偏移距离 垂直阴影偏移距离 投射...
转载
27阅读
0评论
0点赞
发布博客于 10 天前

img标签与background属性插入图片的差

img图片与background的差异小伙伴们都知道在网页当中要插入一张图片可以使用img,但是有些小伙伴在接触background之后,容易把这两个图片插入方式搞混,那么我们一起来详细的看一下吧 img是一个html标签,我们想要在网页中实现图片的插入,直接在img的属性src中写入图片路径就可以啦~<img src="img/pic.jpg" alt="">通过background实现插入图片,background是一个CSS提供的背景属性,是用来做修饰的,那么我们就需要先
转载
35阅读
0评论
0点赞
发布博客于 10 天前

浅谈vue的双向数据绑定

各位朋友好,在一些面试场景,尤其是大厂面试vue的时候,经常提及到一个非常重要的概念,叫做双向数据绑定。大家其实对于这个问题不会很陌生,vue中采用mvvm的模式,内置vm将view层与model层两者进行关联,任何一方的变化都会让另外一方受到影响。那回答完后,面试官还会继续追问,请回答一下你理解的双向数据绑定背后的原理是什么?那今天我们就一起探讨一下vue的背后的一些方式实现。通过查阅一些其他资料,包括尤大大博客的对于实现双向数据绑定做了一定的解释。所谓要实现双向数据绑定,vue中内部采用了.
转载
33阅读
0评论
0点赞
发布博客于 10 天前

JS中各种姿势的遍历,你知道几个?

前言:对于前端的循环遍历我们知道有针对js数组的length,forEach()、for of(),map()方法 针对js对象的for/in语句(for/in也能遍历数组,但不推荐)为什么不推荐,之前文章里讲过:千锋HTML5学院:for-in与不可枚举​zhuanlan.zhihu.com这篇文章主要介绍了js常见遍历操作,结合实例形式分析了javascript for循环、for of、for each、for in 及map遍历简单操作技巧,需要的朋友可以参考下一、遍历.
转载
31阅读
0评论
1点赞
发布博客于 10 天前

vue组件缓存之keep-alive正确使用姿势

先来看一个项目中的需求作为苦逼的前端开发者,我们无时无刻都要面对产品经理提的各种需求, 比如下图这个场景场景:从首页的点击导航进入列表页,列表页点击列表进入 该 数据详情页从详情页返回,希望列表页缓存,不重新渲染数据,这样会提高用户体验。分析一下这样需求,如果是小程序的话,默认列表页就会缓存,因为小程序的运行环境是微信客户端,当我们打开一个页面会新建一个webview,所有列表页和详情页是两个webview,当我们进入详情页,列表页webview,只是会在详情页web
转载
35阅读
0评论
0点赞
发布博客于 10 天前

你不知道的作用域

如果你是一个前端工程师,那么JavaScript的作用域你一定不会陌生。你知道的可能是 JavaScript中有传统的函数级作用域 和 全局作用域 ES6 let const 的块级作用域但是还有一个你不知道的块级作用域的存在,今天我们就来扒一扒这些鲜为人知的小秘密我们先来看看下面这个段代码,请思考一下结果是什么。function fn() { var foo = 1; if (true) { foo = 2; function foo(
转载
43阅读
0评论
1点赞
发布博客于 29 天前

JavaScript Modules使用向导

如果你是JavaScript的新手,诸如模块捆绑器与模块加载器,Webpack与浏览器,AMD与CommonJS之类的术语,可能会变得不知所措,但了解它对Web开发人员至关重要,下面我们就一起来看看。什么是模块?好的作者将他们的书分为章节,优秀的程序员将其程序分为模块,好的模块是高度独立的,具有独特的功能,可以根据需要对它们进行改组,删除或添加,而不会破坏整个系统。为什么要使用模块?可维护性模块是独立的。设计良好的模块旨在尽可能减少对代码库各部分的依赖,从而使其能够独立增长和改进。当模块与
转载
42阅读
0评论
0点赞
发布博客于 29 天前

如何在React项目中使用ECharts图表库

引言在项目的开发中,对于我们前端开发人员而言,总是无法避免需要对数据进行可视化分析和设计的需求。但事实上,如果单纯的依靠Html5 Canvas想要快速地创建简洁,美观,炫酷的可视化作品难度极大且可维护性差。而现如今随着技术的迭代更新发展,已经出现很多可靠,易用,操作便捷,可交互,跨平台的一些可视化解决方案如ECharts,HighCharts,,Chart.js等。于是在本文中,我们以ECharts为例,来尝试将可视化解决方案应用于React-当前最流行的前端框架之一。 ​ 因为React的性能优越,
转载
52阅读
0评论
0点赞
发布博客于 29 天前

接口安全你了解多少?

前后端分离式开发需要进行数据交互,传输的数据被偷窥、被抓包、被伪造时有发生,那么如何设计一套比较安全的API接口方案呢?并不是所有的接口都需要考虑安全的,有些接口是公开的,任何人只要知道地址都可以调用,对于一些项目中需要用户登录才能访问的接口才需要考虑安全问题。一般解决的方案有以下几类:token令牌认证(jwt)AK(app key)&SK(secret key)【用户名&密码】时间戳超时验证+签名算法字符串URL签名(算法,非对称算法)数据脱敏(防范数据库数据泄露).
转载
63阅读
0评论
0点赞
发布博客于 29 天前

flex弹性盒子中flex-grow与flex的区别

大家在使用flex布局的时候很多情况下都会用到flex-grow这个属性,flex-grow属性用于设置父元素剩余空间的瓜分比例,flex属性是flex-grow、flex-shrink和flex-basis属性的简写属性 ,通常我们认为flex-grow:1;与flex:1;是同一个意思,就是将子元素瓜分父容器的剩余空间1份。但你是不是在实践中发现了二者的一点区别呢?如下:这是一个宽700px的弹性盒子,其中红绿蓝每个子元素的宽度都为100px。我们分别使用flex-gro...
原创
38阅读
0评论
0点赞
发布博客于 1 月前

如何使用 vue + intro 实现后台管理系统的新手引导

引言为了让用户更好的适应新版,或更方便使用公司内部系统,可以加入新手指引功能。如果你也想在自己的网页加入用户指引,那就试试在vue中使用 Intro.js 吧,它能够很轻松的制作出新手指引的效果。一、效果介绍话不多说,咱们先来上一张图看看效果那激动人心的时刻到了,我们如何vue中使用 Intro.js 在呢?二、Intro.js2.1、Intro.js的安装Intro.js是一个轻量级的js库,用于创建一步一步的产品引导,支持使用键盘的前后方向键导航,使用 Enter .
原创
53阅读
0评论
0点赞
发布博客于 1 月前

shell 编程-Expect

expect的安装[root@qfedu ~] yum -y install expect实现批量修改密码,批量推送ssh的公钥,进行远程ssh连接,任何批量操作的基本都能处理。No.2 expect的语法-------通过expect可以实现将交互式的命令变为非交互式执行,不需要人为干预(手动输入)是一个免费的编程工具, 用来实现自动的交互式任务, 而无需人为干预. 说白了 expect 就是一套用来实现自动交互功能的软件如果能够在工作中熟练的使用Shell脚本就可以很大程度的提高工作
原创
38阅读
0评论
0点赞
发布博客于 1 月前

自动化运维神器Ansible

1.自动化运维工具对比 1.Puppet:基于 Ruby 开发,采用 C/S 架构,扩展性强,基于 SSL,远程命令执行相对较弱 2.SaltStack:基于 Python 开发,采用 C/S 架构,相对 puppet 更轻量级,配置语法使用 YAML,使得配置脚本更简单.需要配置客户端以及服务器端。每台被控制节点需要安装agent 3.Ansible:基于 Python开发,分布式,无需客户端,轻量级,配置语法使用YAML 及 Jinja2模板语言,更强的远程命令执行操作2.ansible简
原创
47阅读
0评论
0点赞
发布博客于 1 月前

做了这么多的请求和响应,你知道都干了些啥吗?

程序来自于生活,web应用中的B端和S端的交互与人的交互是一模一样的。只是,比生活中的稍微多了一丢丢(因为,计算机没有眼睛,没法看到。所以,把人能够看到的东西也得说清楚)。B-----》S: 发送请求时,B端需要给S端说清楚我发的是什么,我用什么发的,发的方式是什么,你给我响应时,需要响应啥类型等等(这就是我下一个主题要说的请求报文)。S-----》B:响应时,S端也要告诉B端 我给你发的是什么,发的什么类型,什么时间,服务器用的什么软件,响应的状态码,协议的版本等等(这就是我下一个主题要说的响
转载
71阅读
0评论
0点赞
发布博客于 1 月前

微信小程序学习笔记(二)-- 开发之框架

一、小程序框架介绍(了解)小程序框架包含小程序的配置、框架接口、场景值、WXML 和 WXS 等二、小程序的配置(精通)小程序的配置分为全局配置、页面配置以及sitemap 配置1、全局配置小程序根目录下的 app.json 文件用来对微信小程序进行全局配置。文件内容为一个 JSON 对象​下面介绍一下常用的配置选项1.1 pages用于指定小程序由哪些页面组成,每一项都对应一个页面的 路径(含文件名) 信息。文件名不需要写文件后缀,框架会自动去寻找对于位置的 .js
转载
123阅读
0评论
0点赞
发布博客于 1 月前

微信小程序学习笔记(一)-- 了解微信小程序

一、什么是小程序(了解)小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。二、小程序的种类(了解)微信小程序、支付宝小程序、头条小程序、百度小程序、QQ小程序三、小程序的发展史(了解)四、小程序的优势(了解)对于开发者而言,小程序开发门槛相对较低,难度不及APP,能够满足简单的基础应用,适合生活服务类线下商铺以及非刚
转载
84阅读
0评论
0点赞
发布博客于 1 月前

Immutable.js学习笔记

JavaScript数据修改的问题看一段大家熟悉的代码const state = { str: '教育', obj: { y: 1 }, arr: [1, 2, 3]}const newState = state​console.log(newState === state) // true由于js的对象和数组都是引用类型。所以newState的state实际上是指向于同一块内存地址的, 所以结果是newState和state是相等的。尝试修改一下数据
转载
33阅读
0评论
0点赞
发布博客于 1 月前

React学习笔记(四)

组件通信父组件与子组件通信父组件将自己的状态传递给子组件,子组件当做属性来接收,当父组件更改自己状态的时候,子组件接收到的属性就会发生改变 父组件利用ref对子组件做标记,通过调用子组件的方法以更改子组件的状态,也可以调用子组件的方法..子组件与父组件通信父组件将自己的某个方法传递给子组件,在方法里可以做任意操作,比如可以更改状态,子组件通过this.props接收到父组件的方法后调用。跨组件通信在react没有类似vue中的事件总线来解决这个问题,我们只能借助它们共同的父级组件来实现
转载
53阅读
0评论
0点赞
发布博客于 1 月前

数组扁平化

概念:用于将嵌套多层的数组“拉平”,变成一维的数组方法一:通过concat将二维数组转化为一维数组原理:通过将扩展运算符,将数组内部展开,并通过concat连接两个字符串的方式返回一个新的数组 let a = [12, 3, 45, [6, 7, 8]] console.log(a) // [12, 3, 45, Array(3)] console.log([].concat(...a)) // [12, 3, 45, 6, 7, 8]方法二:使用数组方法join和字符串方
转载
102阅读
0评论
0点赞
发布博客于 2 月前

重写事件抛发接收机制原理

关于js中事件侦听和抛发机制的一些基础简单重构,通过这个简单重构了解中介者模式的工作方式,以下就是要做的简单重构方案思路:创建EmitterTarget类和EmitterEvent类。EmitterTarget类主要使用了中介模式+观察者模式其中EmitterTarget类的实例化属性list充当中介角色,每当执行add方法时,给EmitterTarget类的实例化对象注册事件名称及触发函数;每当该对象执行remove方法时,从list列表中移除注册的事件及触发函数;dispatchEv
转载
56阅读
0评论
0点赞
发布博客于 2 月前

JavaScript学习笔记(二十二)原型及原型链

原型原型的出现,就是为了解决构造函数的缺点 也就是给我们提供了一个给对象添加函数的方法 不然构造函数只能给对象添加属性,不能合理的添加函数就太 LOW 了prototype每一个函数天生自带一个成员,叫做 prototype,是一个对象空间 即然每一个函数都有,构造函数也是函数,构造函数也有这个对象空间 这个prototype对象空间可以由函数名来访问function Person() {}​console.log(Person.prototype) // 是一个对象...
转载
62阅读
0评论
0点赞
发布博客于 2 月前

前端技术笔记系列:React学习笔记(三)

组件的生命周期React中组件也有生命周期,也就是说也有很多钩子函数供我们使用, 组件的生命周期,我们会分为四个阶段,初始化、运行中、销毁、错误处理(16.3之后)初始化在组件初始化阶段会执行constructor static getDerivedStateFromProps() componentWillMount() / UNSAFE_componentWillMount() render() componentDidMount()更新阶段props或state的改变可能
转载
54阅读
0评论
0点赞
发布博客于 2 月前

前端技术笔记系列:React学习笔记(二)

组件的数据挂载方式属性(props)props是正常是外部传入的,组件内部也可以通过一些方式来初始化的设置,属性不能被组件自己更改,但是你可以通过父组件主动重新渲染的方式来传入新的props属性是描述性质、特点的,组件自己不能随意更改。之前的组件代码里面有props的简单使用,总的来说,在使用一个组件的时候,可以把参数放在标签的属性当中,所有的属性都会作为组件props对象的键值。通过箭头函数创建的组件,需要通过函数的参数来接收props:import React, { Comp...
转载
62阅读
0评论
0点赞
发布博客于 2 月前

纯css实现太极阴阳鱼动画

今天看到一个有意思的效果,闲来无事做一个:把2d静态的太极图改成了3d,阴极和阳极分到了两个平面里实现旋转效果,这个好实现,重点是实现它的透明效果,平面太极图显示出两极是用另加的块元素挡住底面的颜色,但如果上图的两极用遮挡来实现效果的话并不能实现透明,将遮挡的块设为透明又会显示出底面原本的样子,所以这个思路不对。那就只能将底面本身变为透明,但怎么实现既透明又能出现这种样子呢?渐变,而且为了能出现圆的样子选择了径向渐变。效果:路明确,开始操作一个极分成四个块,圆头,肚子,...
转载
58阅读
0评论
0点赞
发布博客于 2 月前

话题:什么是前端工程化?

虽然前端工程化的概念兴起还没几年的时间,但是对于“工程化”这个词并不是一个新鲜词了,在其他软件开发的领域很早就已经有了高度的工程化,例如Web服务端开发。只不过那个时候,前端工程师并没有工程化的意识,也没有必要对前端进行工程化的操作,毕竟在那个时期,前端的开发工作只能算是整个项目开发过程中的“附属品”。那为什么这几年,前端工程化的概念又突然成为了热点话题了呢?要想讲好前端工程化其实并不容易,我就从下面几个方面入手,对前端工程化的概念做个简单的讲解,仅仅是个人理解,希望大家多多交流讨论。1、前端为什么要工
转载
99阅读
0评论
0点赞
发布博客于 2 月前

从赛博朋克2077看未来互联网科技的发展

《赛博朋克 2077》 2020年年末最火热的没有之一的3A游戏大作,主角被扔进了科技发达的2077年,科技并没有给所有的人带来更美好的生活,而是一个更加撕裂的美国社会。玩家被丢入了一个黑暗的未来社会。故事发生在一个叫做"夜之城(Night City)"的大都会,以它为背景游戏讲述了这样一个人挣扎的故事,他从小在街头长大,一直试图在贫民窟中间找到自己的出路,在帮派和产业巨头的无尽斗争中生存下去,在这个充满污垢和罪恶的城市中成长。毒品、暴力、贫穷和专政并没有在2077年消失,几十年过去了,人们仍然保留着那份贪
转载
136阅读
0评论
0点赞
发布博客于 2 月前

前端学习笔记系列:Vue学习笔记(四)

服务端渲染什么是服务器端渲染 (SSR)?Vue.js是构建客户端应用程序的框架。默认情况下,可以在浏览器中输出 Vue 组件,进行生成 DOM 和操作 DOM。然而,也可以将同一个组件渲染为服务器端的 HTML 字符串,将它们直接发送到浏览器,最后将这些静态标记"激活"为客户端上完全可交互的应用程序。服务器渲染的 Vue.js 应用程序也可以被认为是"同构"或"通用",因为应用程序的大部分代码都可以在服务器和客户端上运行。为什么使用服务器端渲染 (SSR)?更好的 SEO,由于搜索引.
转载
67阅读
0评论
0点赞
发布博客于 2 月前

前端学习笔记:React学习笔记(一)

React的起源和发展React起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设Instagram 的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。React与传统MVC的关系轻量级的视图层库!A JavaScript library for building user interfacesReact不是一个完整的MVC框架,最多可以认为是MVC中的V(View),甚至React并不非常.
转载
72阅读
0评论
0点赞
发布博客于 2 月前

前端面试题:企业面试真题--054

插入排序的基本思路是什么?第一步:从第二位(当前元素)开始从后向前查找;第二步:若新元素(当前元素的前面)大于当前元素,将新元素移到下一位置;第三步:重复2,直到在有序区找到大于或等于新元素的位置;第四步:将当前元素插到上面找到的位置;第五步:重复2~4;function insertionSort(arr) { var len = arr.length; var i = 1; var j; var buffer; for (; i < ...
转载
60阅读
0评论
0点赞
发布博客于 2 月前

当我们在谈论一个城市节奏快的时候,我们到底在说什么?

大城市的节奏比小城市快,这几乎是所有长期居住在大城市人的感受,不过我们也会发现一个有趣的现象,那就是通常表达这种感受的人,一定不是当地人。你比如说,我们就很少听到有北京当地人说北京的生活节奏很快。所谓的节奏快,到底是不是一种客观存在的事实呢?难道真的是北上广开了加速器吗?不知道开车的朋友有没有这样的感受,当你走在空旷的高速公路上的时候,你经常会诧异的发现,自己的车速在不经意间已经飙到了120迈,但你居然没什么感觉。可是,当你走在市区的街道上,只要速度超过了60迈,你都会觉得车快要飞起来,
转载
89阅读
0评论
0点赞
发布博客于 2 月前

企业前端面试题:企业面试真题--055

给定整数n和m,写一个dispatch,把1~n尽量平均地分成m个组.示例:var n = 2;var m = 2;dispatch(n, m); // [[1], [2]];思路:问题转化为将n个小球放到m个框子里边; 计算每个框子至少可以放多少个小球: Math.floor(n/m),注意取整; 计算剩下多少个小球: left = n % m,剩下的小球放到前left个框子里边; 将相关数据填充到框子里边即可.function dispatch(n, m) {
转载
48阅读
0评论
0点赞
发布博客于 2 月前

前端笔记系列:node学习笔记(三十八)

一、什么是NodeJS?1、Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。2、Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。3、Node.js 的包管理器 npm,成为世界上最大的开放源代码的生态系统。简单的说 Node.js 就是运行在服务端的 JavaScript。扩展;I : input即输入端口o : output即输出端口CPU与外部设备、存储器的链接和数据交换都需要通过接口设备来实现,前者称为I/O接口,
转载
62阅读
0评论
0点赞
发布博客于 2 月前

前端笔记系列:Vue学习笔记(三)

一. 状态管理 Vuex1. Vuex使用Vuex是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.(1)state:单一状态树 ,每个应用将仅仅包含一个 store 实例。this.$store.state.状态名字...mapState(["title"])(2)getters:可以从store 中的 state 中派生出一些状态,getters的返回值会根据它的依赖被缓存起来,且只
转载
110阅读
0评论
0点赞
发布博客于 2 月前

教你用Python实现自动扫雷,你就是最亮的仔~

扫雷,相信80、90后的小伙伴肯定不陌生,在电脑还没有彻底普及的年代,能够玩上扫雷和纸牌就已经非常不容易了,今天小千就来给大家分享一期使用Python代码实现自动扫雷的教程,代码都在文章中,同学们可以学习和参考一下。自动扫雷一般分为两种,一种是读取内存数据,而另一种是通过分析图片获得数据,并通过模拟鼠标操作,这里我用的是第二种方式。一、准备工作我的版本是 python 3.6.1python的第三方库:win32api win32gui win32con Pillow num
转载
80阅读
0评论
0点赞
发布博客于 2 月前

讲清楚重排或回流、重绘

为了让项目的运行效率更高,减少开销,需要对重排、回流、重绘有一定的了解。重排和回流其实是一回事。浏览器渲染浏览器在渲染页面的时候,大致是以下几个步骤:解析html生成DOM树,解析css,生成CSSOM树,将DOM树和CSSOM树结合,生成渲染树; 根据渲染树,浏览器可以计算出网页中有哪些节点,各节点的CSS以及从属关系 - 回流 根据渲染树以及回流得到的节点信息,计算出每个节点在屏幕中的位置 - 重绘 最后将得到的节点位置信息交给浏览器的图形处理程序,让浏览器中显示页面回流回流
转载
69阅读
0评论
0点赞
发布博客于 2 月前

键盘的顺序为什么不是ABCD ?

我们现在所使用的电脑键盘,最早是从打字机键盘发展而来的。那么现在的电脑键盘顺序为什么没有按照正常的字母顺序来排列呢?其实,最早的打字机键盘就是按照字母顺序排列的也就是说键盘左上角的字母顺序是ABCDEF在19世纪,打字机是主要的办公工具,使用率极高这就浮现出了打字机原始的设计缺陷一旦打字员打字速度过快,相邻两个字母的连动杆和字锤可能会卡在一起后来一位名叫科托斯夫拉森肖而斯的美国人发现了这一问题。他通过研究字母的使用频率,把英文中出现频率较高的字母分开摆放,形成了现
转载
52阅读
0评论
0点赞
发布博客于 2 月前

企业面试真题:企业面试真题--052

选择排序的基本思路是什么?第一步:在未排序的序列中找到最大(小)的元素与第1个元素交换;第二步:在剩余未排序元素中继续寻找最大(小)的元素与第2个元素交换;第三步:以此类推,直到排序完毕.function selectionSort(arr) {var i = arr.length - 1;var j;var buffer;var special; // 最大或最小值的位置// 采用倒序,提高查找性能for (; i >= 0; i--) {specia..
转载
37阅读
0评论
0点赞
发布博客于 2 月前

Linux防止暴力破解密码脚本

1.认识记录linux记录安全的日志 [root@testpm ~]# cd /var/log/ [root@testpm log]# ls | grep secure secure 2.该日志的内容查看 [root@testpm log]# tail -f secure #表示ssh身份验证失败 Aug 29 23:35:03 testpm sshd[111245]: pam_unix(sshd:auth): authentication failure; logname= uid=0 ..
转载
61阅读
0评论
0点赞
发布博客于 2 月前

Linux禁止root用户远程登陆

认识sshd_congfig配置文件 [root@testpm ~]# vim /etc/ssh/sshd_config ​ #Port 22 #监听端口,默认监听22端口 【默认可修改】 #AddressFamily any #IPV4和IPV6协议家族用哪个,any表示二者均有 #ListenAddress 0.0.0.0 #指明监控的地址,0.0.0.0表示本机的所有地址 【默认可修改】 #ListenAddress :: #指明监听的IPV6的所有地址格式 ​ #Pr
转载
45阅读
0评论
0点赞
发布博客于 2 月前

前端学习入门:Vue学习笔记(一)

一. 了不起的vue1.官方介绍Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。2.渐进式框架做分层设计,每层都可选,不同层可以灵活接入其他方案。而当你都想用官方的实现时,会发现也早已准备好,各层之间包括配套工具
转载
66阅读
0评论
0点赞
发布博客于 2 月前

前端入门学习:Vue学习笔记(二)

一. 数据请求1. fetchwhyXMLHttpRequest 是一个设计粗糙的 API,配置和调用方式非常混乱, 而且基于事件的异步模型写起来不友好。 兼容性不好polyfill//https://github.com/camsong/fetch-ie8 //get fetch("**").then(res=>res.json()).then(res=>{console.log(res)}) fetch("**").then
转载
60阅读
0评论
0点赞
发布博客于 2 月前

body没有高度设置背景色为什么可以全屏显示?

--- 关于html和body的那些事还记得我们开发全屏页面或者是移动端页面时经常会设置一句话html, body { height: 100%; }是不是只知道用?却不知道怎么回事?原因是,当没有内容撑开高度时,html和body的默认高度是0,如果内容想要按照比例或是撑满全屏时,就没办法正常使用百分比而如果只设置body { height: 100%; },这时body以html的高度为基准,但html默认高度也是0,所以需要设置html与body高度同与浏览器等高但!
转载
67阅读
1评论
1点赞
发布博客于 2 月前

企业面试真题——051

试计算100!在不考虑越界的情况下,可以使用递归、for循环等方法一:function factorial(num) { if (num < 0) { return -1; } else if (num === 0 || num === 1) { return 1; } else { return (num * factorial(num - 1)); }}factorial(100);方法二:
转载
51阅读
0评论
0点赞
发布博客于 2 月前

shell编程之awk

一、awk简介awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。可以在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行操作。如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。awk分别代表其作者姓氏的第一个字母。因为它的作者是三个人,分别是Alfred Ah
转载
51阅读
0评论
0点赞
发布博客于 2 月前

大厂如何考虑开发环境与部署方案

阅读指南开发环境的追求 部署方案的要求 大厂环境因素 整合环境因素,导出方案 展望未来 QA首先我们强调一点,任何公司的技术基建都是随时间推移去不断改进和建设的,任何纯技术输出都必然存在它的边界。而业务拓展、组织架构变迁、新兴技术迭代等都是不断发生的,这意味着技术基建必然也是不断改进的。拿整个互联网来说,也是由“石器时代”不断演变而来。而一切解决方案都是为了针对某类需求。开发环境的追求作为团队中的开发者一员,无疑要追求美好的开发体验,具体可以列举为:高效的编译速度 屏蔽
转载
58阅读
0评论
0点赞
发布博客于 2 月前

小程序中云函数的使用

什么是云函数?为何要用最近在做小程序开发的时候,发现在创建小程序的时候可以勾选一个使用云开发的选项。这里面就提供了云操作相关的功能。说白了,就是小程序内部帮助我们构建了一个云服务器,我们可以在这服务器上面进行后端数据库一些较为复杂的业务实现了。使用了云开发后,更大强度的丰富了我们与后端的直接操作。那激动人心的时刻到了,我们如何使用云开发中的云函数呢?创建目录与云函数第一步,在微信开发者工具中创建目录与新建nodejs云函数接下来,需要将此目录在projec...
转载
72阅读
0评论
0点赞
发布博客于 2 月前

shell 编程-Expect

No.1 expect的安装[root@qfedu ~] yum -y install expectNo.2 expect的语法-------通过expect可以实现将交互式的命令变为非交互式执行,不需要人为干预(手动输入)是一个免费的编程工具, 用来实现自动的交互式任务, 而无需人为干预. 说白了 expect 就是一套用来实现自动交互功能的软件在实际工作中我们运行命令、脚本或程序时, 都需要从终端输入某些继续运行的指令,而这些输 入都需要人为的手工进行. 而利用 expect 则可以根据
转载
49阅读
0评论
0点赞
发布博客于 2 月前

2021最新Java学科全阶段视频教程(从入门到精通)

本学习路线包含了千锋教育Java学科全阶段视频教程(从入门到精通),涵盖了你所需要掌握的所有java前沿技术及知识点!2021年度全网最新,史上最全Java学习路线,从基础到项目实战应有尽有,牛批卡拉斯!注:新发教程会不定期更新,记得持续关注哦~4分钟了解java的前世今生:https://www.bilibili.com/video/BV1Wy4y1r7CaJAVA视频教程全套(1000集)Java全套教程(上集):1000集巨制 — 从...
原创
218阅读
0评论
0点赞
发布博客于 2 月前

消息系统Kafka笔试题:kafka 高效读写的因素

1.在磁盘只做Sequence I/O 顺序读写kafka 生产者写数据是有序的,即 Partition 内部有序,数据以 append 的方式顺序追加写入。Consumer 消费数据也是有序的,指定 offset 后顺序读出 offset 之后的数据。顺序读写可以避免磁盘读数据时的多次寻道和旋转延迟2.传统的IO流程举个例子说明传统IO流程,比如:从磁盘读取数据,然后从Socket发送到网络传统IO流程:1、第一次:将磁盘文件,读取到操作系统内核缓冲区;2、第二次:将内核缓.
转载
62阅读
0评论
0点赞
发布博客于 2 月前

消息系统Kafka笔试题:Kafka 底层的文件存储结构

分区目录文件, Partition 命名规则为:【topic 名称】+【从 0 开始的有序序号】drwxr-x % 2 root root 4096 Jul 26 19:35 kafka-topic-01-0drwxr-x % 2 root root 4096 Jul 24 20:15 kafka-topic-01-1drwxr-x % 2 root root 4096 Jul 24 20:15 kafka-topic-01-2 # 分区目录中的日志数据文件和日志索引文件-rw-r----- .
转载
56阅读
0评论
0点赞
发布博客于 2 月前

V8的垃圾回收和内存限制

前言在第三次浏览器大战中,来自Google的Chrome浏览器凭借优异的性能成为聚光灯下的焦点。而Chrome的成功离不开站在其背后的JavaScript引擎V8。随着V8的出现,让JavaScript彻底摆脱了作为脚本语言性能低下的形象。V8出色的性能让JavaScript出现在高性能后台服务程序开发的舞台上。也正是因为这样的契机,在2009年,Node的创始人Ryan Dahl选择了V8作为Node的JavaScript脚本引擎。在事件驱动、非阻塞I/O模型的设计下实现了Node。但是需要了
转载
40阅读
0评论
0点赞
发布博客于 2 月前

JavaScript学习笔记(二十一)构造函数

面向对象首先,我们要明确,面向对象不是语法,是一个思想,是一种编程模式。 面向: 面(脸),向(朝着) 面向过程: 脸朝着过程 =》 关注着过程的编程模式 面向对象: 脸朝着对象 =》 关注着对象的编程模式 实现一个效果 在面向过程的时候,我们要关注每一个元素,每一个元素之间的关系,顺序,。。。 在面向过程的时候,我们要关注的就是找到一个对象来帮我做这个事情,我等待结果 例子 : 我要吃面条 面向过程 用多少面粉 用多少水 怎么和面 怎么切面条 做开水.
转载
48阅读
0评论
0点赞
发布博客于 2 月前

JavaScript学习笔记(二十)DOM动画效果

​ function move( ele , attr , target){ // 1. 关闭开启定时器; clearInterval( ele.timer ); ele.timer = setInterval( function(){ // 2. 计算速度; if(attr === "opacity"){ var iNow = parseInt(get...
转载
43阅读
1评论
1点赞
发布博客于 2 月前

2021最新python学习视频教程

本文包含了千锋教育Python学习路线全阶段视频教程(从入门到精通),涵盖了你所需要掌握的所有前沿技术及知识点!2021年全网最新,史上最全Python学习路线,从基础到项目实战应有尽有,牛批卡拉斯!注:新发教程会不定期更新,记得持续关注哦~ P...
转载
295阅读
0评论
0点赞
发布博客于 2 月前

全面解析display属性

大家都知道display可以转换元素类型,但是大多人其实对于display的属性值,比较熟悉的只是block和inline以及inline-block和none,对于其他属性值,了解都比较一般,在平时开发过程中也不太用得到其他的属性值,但是每次用这个属性的时候,脑海里都会冒出来,其他的属性值,设置了会是怎么样、有什么样的特点,这个奇奇怪怪的想法,所以找了个时间,写下这篇文章, 跟我有相同可爱想法的伙伴,如果感兴趣的,可以驻步瞄一眼哟;一、css规定,元素类型有两大类,一类是块状元素,一类是行内元素,首先
转载
69阅读
0评论
0点赞
发布博客于 2 月前

如何用Vue + Mint UI实现上拉加载更多

引言:上拉加载更多在移动端不论是在 app 里面还是在页面中都是必不可少的,以下是 mint-ui 中上拉加载更多的总结。一、在项目中使用 mint-ui 需要先安装查看官网(1)安装:npm i mint-ui --save(2)在 vue 中 main.js 引入import MintUi from 'mint-uiimport 'mint-ui/lib/style.css全局使用:Vue.use(MintUi)二、上拉加载更多展示三、逻辑解析1.上拉加.
转载
73阅读
0评论
0点赞
发布博客于 2 月前

JavaScript学习笔记(十九)ES6

ES6新增的内容之前的都是 ES5 的内容 接下来我们聊一下 ES6 的内容let 和 const 关键字我们以前都是使用 var 关键字来声明变量的 在 ES6 的时候,多了两个关键字 let 和 const,也是用来声明变量的 只不过和 var 有一些区别1、let 和 const 不允许重复声明变量// 使用 var 的时候重复声明变量是没问题的,只不过就是后面会把前面覆盖掉 var num = 100 var num = 200// 使用 let 重复声明变.
转载
56阅读
0评论
0点赞
发布博客于 2 月前

JavaScript学习笔记(十八)ES5

ES5我们所说的 ES5 和 ES6 其实就是在 js 语法的发展过程中的一个版本而已 比如我们使用的微信 最早的版本是没有支付功能的 随着时间的流逝,后来出现了一个版本,这个版本里面有支付功能了 ECMAScript 就是 js 的语法 以前的版本没有某些功能 在 ES5 这个版本的时候增加了一些功能 在 ES6 这个版本的时候增加了一些功能 因为浏览器是浏览器厂商生产的 ECMAScript 发布了新的功能以后,浏览器厂商需要让自己的浏览器支持这些功能 这..
转载
47阅读
0评论
0点赞
发布博客于 2 月前

云计算:shell 编程-SED

sed:stream editor(流编辑器)的缩写是一种在线非交互式编辑器,它一次处理一行内容。这样不断重复,直到文件末尾。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等非交互式编辑器,一次处理一行内容。 支持正则表达式 与grep一样,sed在文件中查找模式时也可以使用正则表达式(RE)和各种元字符,用于查找和替换,以下是sed支持的元字符: 使用基本元字符集 ^, $, ., *, [], [^], \< \>,\(\) 使用扩
转载
46阅读
1评论
0点赞
发布博客于 2 月前

Mac那些好用的软件(持续更新)

很多同学入手了梦寐以求的苹果电脑,但却发现其操作系统与Windows大相径庭!不会使用怎么办?不用担心,我们可以借助软件的力量。一款实用的Mac软件不仅能够使你的工作效率显著提高,同时它还能帮助你更快地熟悉系统。一、Alfred 4:Mac聚焦搜索(Spotlight)的升级版,功能太强了,用了不会后悔1. 介绍Alfred,想必大家就算没用过也耳闻过。Alfred是一个让你可以丢掉鼠标的神器。很多读者可能之前认为Alfred的学习成本高,或者感觉它太复杂,而望之却步。其实Alfred并非高不可
转载
79阅读
2评论
0点赞
发布博客于 2 月前

基于TS手写前端MVC框架简单实现购物车功能

一、后端TS版搭起MVC架构的web服务器注意点:1.用TS写node服务器需要先下node API的TS库2.通过引入文件,通过回调方式,将参数传入引入文件进行不同层的联动操作3.事件侦听,抛发的方式完成路由操作项目目录说明:1.main: 0)入口文件 1)创建了main单例,在当前页面执行main实例的init方法,即直接node main.js开启服务 2)init方法中根据引入的sever类,创建server对象开启web服务 3)main
转载
60阅读
1评论
0点赞
发布博客于 2 月前

云计算:shell 编程-数组

什么是数组? 数组也是一种变量,常规变量只能保存一个值,数组可以保存多个值 ​ #普通数组:只能用整数作为数组的索引--默认值从0开始 下标 #关联数组:可以使用字符串作为数组的索引数组定义 普通数组定义: [root@linux-server script]# books=( linux shell awk sed ) ---在python中叫列表 ​ 引用:${array_name[index]} #引用 ​ [root@linux-server script]# e..
转载
44阅读
1评论
0点赞
发布博客于 2 月前

前端面试题-企业面试真题--050

深度优先算法最常用的是在DOM树查找中的实现设计思路:修改nextElement的查找方式,如果有子节点,则下一个元素就是它的第一个子节点,否则,判断是否有相邻的节点,如果有返回它的相邻元素,如果即没有子节点也没有相邻节点,就返回父节点的下一个相邻节点,然后重新进入循环队列。<div id="id-data-structure"> 我是body</div>function getElementById(node, id) { while(node)
转载
47阅读
1评论
0点赞
发布博客于 2 月前

JavaScript学习笔记(十六)Event事件(下)

EVENT(下) 今天来聊一聊事件的执行机制 什么是事件的执行机制呢? 思考一个问题? 当一个大盒子嵌套一个小盒子的时候,并且两个盒子都有点击事件 你点击里面的小盒子,外面的大盒子上的点击事件要不要执行 事件的传播就像上面那个图片一样,我们点击在红色盒子身上的同时,也是点击在了粉色盒子上 这个是既定事实,那么两个盒子的点击事件都会触发 这个就叫做事件的传播 当元素触发一个事件的时候,其父元素也会触发相同的事件,父元素的父元素也会触发相同的事件 就像上面的图片一样 点.
转载
53阅读
0评论
0点赞
发布博客于 2 月前

JavaScript学习笔记(十七) 正则

正则正则表达式,又名 “规则表达式” 由我们自己来书写 “规则”,专门用来检测字符串是否符合 “规则” 使用的 我们使用一些特殊的字符或者符号定义一个 “规则公式”,然后用我们定义好的 “规则公式” 去检测字符串是不是合格var reg = /\d+/var str1 = '123'var str2 = 'abc'console.log(reg.test(str1)) // trueconsole.log(reg.test(str2)) // false 上面的变量reg...
转载
34阅读
0评论
0点赞
发布博客于 2 月前

AJAX的第二春!fetch!!!

曾经的我们是那么的年少。然鹅,时光荏苒,岁月如梭,一代新人换旧人。我们已经三十出头,成为了程序员中的大哥。现如今,互联网界瞬息万变,最新技术层出不穷。Vue、Axios、React、Redux、Angular、Node...等等等等。万幸的是,底层的东西是不变的。所以,我们今天就来聊一聊,那些底层的东西。说起AJAX,相信大多数程序员都会本能的想起XMLHttpRequest。没错,XHR(小黄人)陪伴我们度过了许多岁月。但是,小黄人诞生的岁月,处于互联网的原始阶段。各大浏览器你方唱罢我
转载
36阅读
0评论
0点赞
发布博客于 2 月前

前端面试题-企业面试真题--049

有一个数组,里面只存在 * 和 字母,比如 ['*', 'd', 'c', '*', 'e', '*', 'a', '*']。现在需要把这个数组中的所有星号移动到左边,所有的字母移动到右边,所有字母的顺序不能改变。(加分项:考虑时间复杂度和空间复杂度)function parse(arr){ var counter = 0; for(var i = 0; i < arr.length; i++){ //找到所有*号,进行移除 if(arr[i
转载
41阅读
0评论
0点赞
发布博客于 2 月前

如何在课堂上提问才显得不傻?

有一个数组,里面只存在 * 和 字母,比如 ['*', 'd', 'c', '*', 'e', '*', 'a', '*']。现在需要把这个数组中的所有星号移动到左边,所有的字母移动到右边,所有字母的顺序不能改变。(加分项:考虑时间复杂度和空间复杂度)function parse(arr){ var counter = 0; for(var i = 0; i < arr.length; i++){ //找到所有*号,进行移除 if(arr[i
转载
41阅读
0评论
0点赞
发布博客于 2 月前

Java面试题系列:Java数据类型及类型转换

对于初级或部分中级Java程序员来说,关于Java数据类型的面试题是属于比较高频的一个考点,关于数据类型的面试题及笔试题还是比较多的。一. Java数据类型1. 概述Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型在编译时就已经完全确定了。由于是statical typed,也就导致了Java语言是强类型(Strong typed)的。强类型则意味着每个变量都属于某一种类型,每个表达式也都属于某一种类型,并且每种类型都是严格定义的。而数据类型则限制了该
转载
54阅读
0评论
0点赞
发布博客于 2 月前

JAVA技术分享:单号的生成

一.订单号生成的原则:1.全局的唯一性2.自增长3.长度的要求4.具有一定的可读性5.保密,不可推测性6.效率性二.实现方案常见的ID生成策略。 1. 数据库自增长序列或字段 2. UUID 3. UUID的变种*【UUID to Int64;NHibernate在其主键生成方式中提供了Comb算法(combined guid/timestamp)】 4. Redis生成ID 5. Twitter的snowflake算法 6. 利用zookeeper的znode生成唯一ID
转载
54阅读
0评论
0点赞
发布博客于 2 月前

GitLab结合Git小乌龟实现dev,master,release等不同代码分支合并

GitLab结合Git小乌龟实现dev分支,合并代码到release,master等不同分支的操作步骤本案例以dev分支合并代码到master分支为例,Git小乌龟图形化界面步骤为:1.提交dev分支的新代码到本地和远程仓库中:①.进入到dev分支的目录下;②.提交代码到dev的本地和远程仓库中:右键dev目录的任意位置---->Git Sync...--->Fetch & Rebase---->填写必要的提交信息,Ok...不需要过多的操作---->
转载
99阅读
0评论
0点赞
发布博客于 2 月前

和你讲一讲NodeJS中的Events(事件触发器)

在Node.js中,Event是非常核心的模块,大部分的核心模块基本上都有用到或者继承了该模块。Event模块和我们之前在Javascript中学习的EventTarget接口很类似。对于该模块我们能做的不仅仅是简单的使用还可以在该模块的基础上做出扩展,你想想JS中的onclick、onmousemove不罗嗦,直接上代码!因为事件模块属于比较抽象的东西,所以不太适合用大篇幅的语言来描述它,所以我决定直接上代码,先实现功能看效果再说。下面就一起来体验下这个模块的功能吧。对自定义类进行扩展..
转载
48阅读
0评论
0点赞
发布博客于 2 月前

教你js生成二维码-QrCodeJS

二维码又称QR Code,是一个近几年来移动设备上很流行的一种编码方式它比传统的一维码(条形码)能存更多的信息,也能表示更多的数据类型。按照一定规律排列组成的几何图形构成,它巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念生活中的应用也是非常的广泛人们的生活方方面面都离不开二维码,而且她也给人们带来了极大的便利。<br><br> (二维码自动识别)二维码有哪些优缺点:优点:1.高密度编码,信息容量大。 2.编码范围广。 3.容错能力强,具有
转载
62阅读
0评论
0点赞
发布博客于 2 月前

实时计算引擎Spark笔试题:Spark 内存管理模型&动态内存管理

内存结构图动态内存管理1.设定基本的存储内存和执行内存区域(spark.storage.storageFraction参数),该设定确定了 双方各自拥有的空间的范围。2.双方的空间都不足时,则存储到硬盘;若己方空间不足而对方空余时,可借用对方的空间;(存储空间不足是指不足以放下一个完整的Block)。3.执行内存的空间被对方占用后,可让对方将占用的部分转存到硬盘,然后“归还”借用的空间。4.存储内存的空间被对方占用后,无法让对方“归还”,因为需要考虑Shuffle过程中的很多因素,实
转载
63阅读
0评论
1点赞
发布博客于 2 月前

实时计算引擎Spark笔试题:Spark Shuffle 机制

说明:Spark是目前大数据中非常流行的运算框架,Spark的Shuffle机制是完成运算最重要的一环,面试时经常会被问到.在Spark中,Shuffle分为map阶段和reduce阶段,也可称之为shuffle write和shuffle read阶段,Spark在1.1以前的版本一直是采用Hash Shuffle的实现的方式,到1.1版本时参考Hadoop MapReduce的实现开始引入Sort Shuffle,在1.5版本时开始Tungsten钨丝计划,引入UnSafe Shuffle优化内存及
转载
49阅读
0评论
1点赞
发布博客于 2 月前

前端面试题:企业面试真题—046

写一个通用的事件侦听器函数var EventHandler = (function(){ function EventAdapter(ev){ //使用适配器包装Event对象 return { clientX: ev.clientX, clientY: ev.clientY, ... //处理兼容 stopPropagation: funct
转载
65阅读
0评论
1点赞
发布博客于 2 月前

前端面试题:企业面试真题—047

请实现单例模式function singleton(){ if(!singleton.instance){ singleton.instance = { ... ... } } return singleton.instance;}还有另一种写法 (懒汉式)var singleton = (function(){ var instance; return func.
转载
49阅读
0评论
0点赞
发布博客于 2 月前

JavaScript学习笔记(十五)Event事件(上)

EVENT(上)之前我们简单的了解过一些事件,比如onclick/onload/onscroll/ ...今天开始,我们详细的学习一些事件什么是事件一个事件由什么东西组成 触发谁的事件:事件源触发什么事件:事件类型触发以后做什么:事件处理函数var oDiv = document.querySelector('div')​oDiv.onclick = function () {}// 谁来触发事件 => oDiv => 这个事件的事件源就是 oDiv/...
转载
65阅读
0评论
1点赞
发布博客于 2 月前

NB-IoT是什么?

如今,“万物互联”的时代帷幕已被物联网悄然拉开。“万物互联”时代,首先要解决“物”与“网”的连接问题,所以连接技术决定了物联网发展的走向。为满足物联网设备的连接需求,lpwan(low power wide area network,低功耗广域网)应运而生。lpwan 专为低带宽、低功耗、远距离、大量连接的物联网应用而设计。物联网连接技术的世界从来没有霸主一统江湖。以lora为代表的非授权频段物联网和以NB-IoT为代表的授权频段物联网,各自攻城略地。什么是NB-IoT?NB-IoT是指窄
原创
701阅读
3评论
1点赞
发布博客于 2 月前

随手记—RFID电子标签的种类及应用

1、概念:RFID全称(Radio Frequency Identification),中文叫射频识别。它是一种非接触的自动识别技术,其基本原理是利用射频信号和空间耦合(电感或电磁耦合)或雷达反射的传输特性,实现对被识别物体的自动识别。他也是一种通信技术,可通过无线电讯号 耦合识别特定目标并读写相关数据,而无 需识别系统与特定目标之间建立机械或光学接触。RFID是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,可工作于各种恶劣环境,因此应用的场景多样化
原创
75阅读
0评论
0点赞
发布博客于 2 月前

实时计算引擎Spark笔试题:Spark Streaming 反压机制(Back Pressure)

Spark Streaming 反压机制是1.5版本推出的特性,用来解决处理速度比摄入速度慢的情况,简单来讲就是做流量控制。当批处理时间(Batch Processing Time)大于批次间隔(Batch Interval,即BatchDuration)时,说明处理数据的速度小于数据摄入的速度,持续时间过⻓或源头数据暴增,容易造成 数据在内存中堆积,最终导致Executor OOM。反压就是来解决这个问题的。spark streaming的消费数据源方式有两种:1. 若是基于Receiver的数据源,
原创
67阅读
0评论
0点赞
发布博客于 2 月前

实时计算引擎Spark笔试题:Spark Catalyst 查询优化器原理

这里我们讲解一下SparkSQL的优化器系统Catalyst,Catalyst本质就是一个SQL查询的优化器,而且和 大多数当前的大数据SQL处理引擎设计基本相同(Impala、Presto、Hive(Calcite)等)。了解Catalyst的SQL优化流程,也就基本了解了所有其他SQL处理引擎的工作原理。*SQL优化器核心执行策略主要分为两个大的方向:基于规则优化(RBO)以及基于代价优化(CBO),基于规则优化是一种经验式、启发式地优化思路,更多地依靠前辈总结出来的优化规则,简单易行且能够覆盖
原创
48阅读
0评论
0点赞
发布博客于 2 月前

实时计算引擎Spark笔试题:一些常见的比较总结

1Sparkrepartition和coalesce的区别1.1. repartition只是coalesce接口中shuffle为true的实现1.2. 不经过 shuffle,也就是coaleasce shuffle为false,是无法增加RDD的分区数的,比如你源RDD 100个分区,想要变成200个分区,只能使用repartition,也就是coaleasce shuffle为true。1.3. 如果上游为Partition个数为N,下游想要变成M个PartitionN >..
原创
50阅读
0评论
0点赞
发布博客于 2 月前

你的能力要配的上你的年纪

我不知道在读这篇文章的你有没有看过一个职场真人观察类综艺《令人心动的offer》,在第2季里面有一个实习生,叫做丁辉,从该节目播出的第1期他就迅速登上了热搜榜,几乎每期都有他的热搜,这个被称为2020年最热实习生--"背水一战"的丁辉在最新一期的节目里,被淘汰了,如果你没有看过这档综艺,可能你会觉得不就是被淘汰么,正常呀;如果你看过这档综艺,你可能会为丁辉的淘汰气愤不平,甚至你会期待他能够翻转逆袭。不管是节目组黑幕还是综艺效果,丁辉在第5期的时候还是被淘汰了,说实话作为一个观众我看到这个结果的时候也很生..
原创
1358阅读
4评论
13点赞
发布博客于 2 月前

如何使用 react + antd 实现后台管理系统的二级菜单

一、效果介绍话不多说,咱们先来上一张图看看效果二、准备工作1、创建项目npx create-react-app my-react-admin2、安装需要的依赖npm i antd -S3、创建项目基本结构my-react-admin public src api banner.js nav.js pro.js user.js components // 公共组件 layout // 布局结构 main // 主界面结构
原创
179阅读
0评论
0点赞
发布博客于 2 月前

JavaScript学习笔记(十四)DOM

DOM(下)DOM 就是我们 html 结构中一个一个的节点构成的 不光我们的标签是一个节点,我们写的文本内容也是一个节点,注释,包括空格都是节点DOM节点DOM 的节点我们一般分为常用的三大类元素节点/文本节点/属性节点 什么是分类,比如我们在获取元素的时候,通过各种方法获取到的我们叫做元素节点(标签节点) 比如我们标签里面写的文字,那么就是文本节点 写在每一个标签上的属性,就是属性节点元素节点我们通过getElementBy...获取到的都是元素节点属性节点我...
原创
60阅读
0评论
1点赞
发布博客于 2 月前

巧用CSS cross-fade()实现背景图像半透明效果

前段时间有挺火的一个小游戏,拿两张图片叠加在一起,看看复合人物的效果,用css怎么实现呢?可能大部分人想到的是将两个img用定位的方式叠加在一起,分别设置透明度,当然这个办法是可行的,其实css还提供了一个cross-fade()方法,讲两张图片作为背景图引入,可以实现相同的效果。cross-fade()函数可以让两张图像半透明混合。 例如HTML<div class="box"></div>css.box { width: 600px; heig..
原创
58阅读
0评论
0点赞
发布博客于 2 月前

JS中的参数传递详解

JS语法中的传递参数,对于初学者是一个非常重要的概念。很多小伙伴在学习“值传递”和“引用传递”时,会有不少烦恼。今天我们就来通过各种姿势全方位剖析JS中的值传递。本文章将会用10分钟时间无死角的解析JS的传参方式,希望能对您有所帮助。先说结论,JS只有值传递,没有引用传递。这句话可能会颠覆一些小伙伴的认知,但请先别急,马上你将会赞同我。1. 值传递是什么?在函数传参的过程中,实参将数值传递给形参。EXP:function fun(x) { console.log(x);}
原创
51阅读
0评论
0点赞
发布博客于 2 月前

云计算:云计算的可用性怎么样?

IT 的概念即信息技术,其中“I”代表信息(或数据),“T”代表技术(或计算),技术是用来处理信息的,所以说 I 是目的,T 是手段,T 是为 I 服务的。与 T 关联的安全主要是“计算可用性”,如果由于 T 的原因,人们无法处理 I,那么这种情况就称为计算不可用。计算不可用会导致人们无法处理全部或者部分数据,而断电、断网、软/硬件故障、缺少应用软件、忘记账号或密码等都会导致全部或部分计算不可用。相对于传统 IT 系统而言,云计算的确增加了一个可能产生故障的环节——云端,而且一旦云端崩溃..
转载
62阅读
0评论
0点赞
发布博客于 2 月前

云计算:云计算安全性有哪些?

信息安全的首要目标是保护我们的系统和应用所处理的数据资料。随着单位组织陆续把应用迁移到云端,甚至是迁移到几年前不可想象的外部或公共云端,传统的数据安全措施面临巨大挑战,随“云”而来的资源弹性、多租户、全新的物理和逻辑架构及抽象层控制,迫切寻求新的数据安全策略。在云计算时代,如何安全地管理信息是所有组织不得不面临的一项艰巨任务,即使那些暂时还不用云计算的机构也不例外。管理信息具体包括内部数据管理、云迁移,以及被分散于多个单位组织的应用和服务中的数据的安全保障。信息管理和数据安全在云计算时代..
转载
91阅读
0评论
0点赞
发布博客于 2 月前