自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(165)
  • 资源 (3)
  • 收藏
  • 关注

原创 字节跳动内推-前端工程师-抖音电商

前端开发工程师 - 抖音电商base 杭州、北京、上海职级范围 p5-p8职位描述1、负责头条核心级商业产品的前端研发工作,包括C端产品以及B端中后台系统的前端架构设计、开发与优化,覆盖Web应用、多端组件库、数据可视化等多个方向;2、参与公司前端工程化体系建设,逐步提升研发效率、研发质量,通过前端技术的不断产出驱动业务的发展;3、与产品经理、设计师、后端工程师一起,提升产品的用户体验,打造卓越的互联网产品;4、关注前端前沿技术发展,能够将新知识传递给团队,并且转化到潜在项目中。职位要求1

2021-02-26 20:31:08 745 2

原创 字节跳动内推-前端开发工程师-抖音电商

职位描述1、参与抖音电商数据可视化相关产品的建设,为抖音电商生态内的商家,达人,机构等角色提供优质的数据产品;2、参与抖音电商数据大屏相关产品的建设,为抖音电商的内部运营及生态内的商家,达人,机构等角色提供实时大屏服务;3、参与抖音电商数据可视化基建建设,提供高质量的可视化图表组件库,支撑抖音电商数据产品的发展;4、参与抖音电商3D渲染引擎的建设,为数据大屏提供3D渲染能力,支撑抖音电商数据大屏的发展;5、参与抖音电商大屏搭建业务的建设,支持数据大屏业务的高速迭代;6、持续的性能优化和技术升级,

2021-02-26 20:29:56 557

原创 字节跳动内推-电商物流中台后台研发工程师

资深服务端开发工程师-电商物流中台base 杭州、北京、上海职级范围 p5-p8hc 100+职位描述1、承担字节跳动电商物流中台的研发,支撑包括抖音电商在内的多个业务仓储物流相关需求。2、对标行业不断拓展现有的物流中台能力,优化系统性能和稳定性,支撑业务高速扩张。职位要求1、精通Java/Golang/PHP中的一种或者多种语言,有较强的架构能力和良好代码规范;2、熟悉GNU Linux,熟悉SQL,并了解常用的SQL优化技巧、熟悉MySQL,并掌握常用性能优化技巧;3、熟悉Memca

2021-02-26 20:27:00 579 2

原创 int转字符串

go语言入门int转字符串这里的目的是输出固定位数的字符串形式的intpackage mainimport "fmt"func main() { // int转字符串时,需要固定位数,不足补0。 // 这是一个固定写法,%010d 的意思是不足十位前面补0 其中的010可以拆解为0 和 10 这个10就是位数 x := fmt.Sprintf("%010d", 1111) fmt.Println(x)}...

2021-02-09 17:33:28 663

原创 8、接口

go语言入门接口声明一个接口type InterfaceName interface{ Foo()string}怎么实现一个接口首先定义一个struct给指定类型添加一个方法实现接口的定义:一个struct实现了所有接口的方法,默认为实现了接口,无需关键字再次声明需要注意的点在go语言中有两种类型,一种是基底类型,一种是指针类型type Foo struct { Name string Age int32}func (f *Foo) Grow() { f.Age++

2021-02-02 11:21:22 69

原创 7、关于指针的理解

go语言入门指针在go语言中,有两个操作符&和* 那么这两个操作符有啥作用呢。这个要从基本说起了。“&”: 取值的指针“*”:取指针的值我们操作的是指针还是值?请问下面代码中的a是一个指针还是一个值?func main(){ var a = 2}我们使用代码来验证。(下面代码是可以通过编译的)很明显,答案:a是一个值func main() { var a = 2 recvValue(a) fmt.Println(a) recvPointer(&a)

2021-02-01 13:58:13 74

原创 6、go关键字

go语言入门go关键字go fmt.Println("Go!")上面这个语句就启动另一个协程,执行fmt.Println("Go!")多线程(协程)调度第一种 sleep使用sleep控制调度package mainimport ( "fmt" "time")func main() { go fmt.Println("Go!") time.Sleep(100 * time.Millisecond)}第二种 sync类似java中的CountDo

2021-01-31 19:22:53 106 2

原创 5、panic——异常处理

go语言入门panic用于抛出一个运行时异常,会向上传播,直到某个方法中使用了recover的内建函数接收了这个异常,程序才会恢复需要配合defer函数使用,这样才符合接收异常的语句。而且defer语句要写在可能发生异常的代码之前以下例子会输出这些内容Enter mainEnter outerFuncEnter innerFuncFatal error: Occur a panic!package mainimport ( "errors" "fmt")func inn

2021-01-29 14:48:42 287 2

原创 4、error处理

go语言入门error——异常处理Go语言的函数可以一次返回多个结果。这就为我们温和地报告错误提供了语言级别的支持因此只要类型实现了Error方法的都可以认为是error接口的实现type error interface { Error() string}如何判断是否异常error是接口类型,零值是nil,所以只要判断是否等于nil即可知道要判断一个异常时对应类型的异常,使用==判断error于EOF比较func main(){ file,error= os.Open("/

2021-01-29 14:20:21 135

原创 3、defer语句

go语言入门defer延迟执行一条语句,当一个程序被正常执行并退出前一刻或者异常退出前一刻。不能执行内建函数和unsafe类的函数内建函数执行顺序当一个函数中存在多个defer语句时,它们携带的表达式语句的执行顺序一定是它们的出现顺序的倒序使用defer作用域外变量的注意事项变量作用域问题defer是在程序执行完退出前执行的,因此拿到的变量是最终的状态func deferIt() { fmt.Println() for i := 0; i < 5; i++ { defer

2021-01-29 13:59:17 104

原创 2、条件分支和循环(select、for、switch、if)

go语言入门条件分支if语句可以包含初始语句,类似for的初始语句func main() { var num int if num = 4; num < 5 { num+=2 }else if num<3 { num+=3 }else { num+=10 } fmt.Println(num)}func main() { var num int // 标识符的重声明 num被再次声明,那么if内部使用的是重声明后的,其他作用域任然使用的是第一次声明的

2021-01-28 22:44:23 282 1

原创 1、源码文件

go语言入门go源码文件名称以.go为后缀,内容以go语言代码组织的文件多个go源码文件是需要用代码包组织起来的分类命令源码文件声明自己属于main代码包、包含无参数声明和结果声明的main函数被安装后,相应的可执行文件会被存放到gobin指向的目录或者<当前工作区目录>/bin下命令源码文件是go程序的入口,但不建议把程序都写在一个文件中注意:同一个代码包中强烈不建议直接包含多个命令源码文件库源码文件不具备命令源码文件的那两个特征的源码文件被安装后,相应的归档文件会被存

2021-01-28 20:43:02 1222

转载 md5哈希函数

原创作品,出自 “晓风残月xj” 博客,欢迎转载,转载时请务必注明出处(http://blog.csdn.net/xiaofengcanyuexj)。由于各种原因,可能存在诸多不足,欢迎斧正!一、MD5概念 MD5,全名Message Digest Algorithm 5 ,中文名为消息摘要算法第五版,为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。上面这段话话引用自百度百科,我的理解MD5是一种信息摘要算法,主要是通过特定的hash散列方法将文本信息转换成简短的信息摘要,压缩+加

2020-12-08 14:29:55 2384

原创 五年后端经验如果会这些可以吊打面试官

2020-12-07 21:54:24 113

原创 云原生相关名词Istio发音

云原生相关名词Istio发音服务网格词汇 Istio,希腊语言中大概是风帆的意思, 发音 [iːst’iəʊ] ,相当于中文的 伊斯特亿欧

2020-11-12 08:35:52 7238

原创 mongo入门到放弃

mongodb索引二级索引、唯一索引、复合索引、地理空间索引、全文索引如果一个文档没有对应的索引键,那么索引会将其作为null存储。唯一索引插入多个不存在的键文档时就会报错。使用稀疏索引(与mysql中的概念不同),只会对存在的键建立索引。搭配唯一索引使用,运行集合存在多个没有唯一索引键的文档。ttl索引,对某个字段指定过期时间。到达时间后,文档会被删除。每分钟执行。可以修改ttl的过期时间聚合集合支持某一时刻过期支持固定大小。双端队列,覆盖插入。支持文件存储不支持

2020-11-01 20:42:45 253 1

原创 kafka入门到放弃

Kafka学习笔记broker在zookeeper目录/brokers/ids创建自己id的临时节点,并订阅该路径broker停机、网络分区或者长时间垃圾回收停顿,broker会断开连接,监听broker列表的kafka组件会收到此消息关闭broker也会消失,但是重启后会立即加入集群向kafka生产者和消费者注册拦截器,当异常发送时,把消息发送到第三方存储系统。再丢回原始的topic控制器集群第一个启动的broker通过在zk创建一个临时节点/controller让自己成为控制器

2020-10-29 21:30:08 121 2

原创 avro hello world

根据需要的java类定义avro对象{"namespace": "com.dj.serialization", "type": "record", "name": "User", "fields": [ {"name": "name", "type": "string"}, {"name": "favorite_number", "type": ["int", "null"]}, {"name": "favorite_color", "type": ["string"

2020-10-29 09:39:04 114

原创 大而全的JAVA复习

笔记1.类加载1.1什么是类加载类加载是一种机制,总共分为五个步骤:加载、验证、准备、解析、初始化。验证、准备、解析统称为连接1.2类加载的过程加载根据类的全限定名获取此类的二进制字节流根据字节流所代表的静态数据结构转化为方法区的运行时数据结构在虚拟机堆中创建Class对象作为此类数据的访问入口验证验证阶段的工作量在虚拟机的类加载子系统中占了很大一部分。因为类的二进制字节流的来源多样,所以需要验证上是否符合当前虚拟机的规范文件格式验证元数据验证字节码验证符号引用验证准

2020-10-27 20:31:38 376

原创 kafkaManager安装部署

kafkaManager安装部署下载cmak。 高版本的cmak需要jdk11yum install java-11-openjdk安装cmak第一步解压cmakunzip cmak-3.0.0.5.zip第二步修改application.conf的zk地址修改为以下zk地址cmak.zkhosts="192.168.159.133:2181,192.168.159.134:2181,192.168.159.135:2181"第三步启动cmaknohup sh cmak -D

2020-10-27 20:30:09 157

原创 kafka集群安装部署

zk集群配置ipnamezk home角色192.168.159.133zk1/data/zookeeper/apache-zookeeper-3.5.8主节点192.168.159.134zk2/data/zookeeper/apache-zookeeper-3.5.8从节点192.168.159.135zk3/data/zookeeper/apache-zookeeper-3.5.8从节点kafka集群配置ipnamekafka

2020-10-27 20:27:58 388

原创 zookeeper集群部署

zookeeper集群部署机器ipnamezk home角色192.168.159.133zk1/data/zookeeper/apache-zookeeper-3.5.8主节点192.168.159.134zk2/data/zookeeper/apache-zookeeper-3.5.8从节点192.168.159.135zk3/data/zookeeper/apache-zookeeper-3.5.8从节点部署第一步解压zookeepe

2020-09-22 22:58:35 126

原创 长尾效应

引言二八法则:在正态曲线分布中,百分之二十的区域占据了百分之八十的量。长尾效应长尾效应的想法是与二八法则相悖的。长尾效应认为:正态曲线分布中,突出的部分称为头,两边称为尾部。认为尾部的需求是无穷无尽的,累加起来可能超过了头部的需求。例子一Amazon有超过一半的销售量都来自于在它排行榜上位于13万名开外的图书。如果以Amazon的统计数据为依据的话,这就意味着那些不在一般书店里出售的图书要比那些摆在书店书架上的图书形成的市场更大例子二Google是一个最典型的“长尾”公司,其成长历程就是把广

2020-09-20 20:18:10 550

原创 一文讲清AOP原理

引言aop的使用已经在另一篇文章中写过,详见MVC和springboot两种环境下使用AOP,本文主要目标是弄清spring是怎么解析<aop:aspectj-autoproxy/> 标签,并且织入的过程是怎么实现的。本文只做主要概述,详细的过程见spring源码深度解析标签是怎么解析的spring在启动时,解析applicationContext会判断是否是自己认识的标签,如果不是那么会找对应的标签解析器处理。自定义标签解析器需要按上图中一样存放。spring.handlers放解析

2020-09-20 17:20:36 129

原创 MVC和springboot两种环境下使用AOP

引用AOP是面向切面编程,适合把通用的对象行为整合在一起,写成通知。 本文通过两个例子介绍mvc和springboot两种环境下使用aopMVCapplicationContext.xml<?xml version="1.0" encoding="UTF-8" ?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema

2020-09-20 15:28:30 135

原创 ES使用入门

背景es部署在了ip为192.168.159.132虚拟机的docker上,端口为9200。还部署了kibana,端口为5601。es基础知识不同类型的存储有不同的叫法,对于会mysql的我来说无非是一种映射关系。mysqlesmongodb数据库数据库索引数据库表表类型集合行行文档文档字段字段字段字段索引(数据库)操作创建索引 curl -XPUT 'localhost:9200/foo'查看索引curl 'loca

2020-09-12 20:31:36 336

原创 ES安装部署

安装部署运行环境centos7.5的虚拟机启动esdocker run -d -p9200:9200 --name es elasticsearch启动kibana192.168.159.132 更换为你本机的ip地址docker run -d -p5601:5601 -e ELASTICSEARCH_URL=http://192.168.159.132:9200 --name kibana kibana访问kibana地址localhost:5601至此es单节点es部署完毕,可用于

2020-09-11 20:23:39 130

原创 高性能MySQL读书笔记——开天辟地

引言本书学习目标是熟知并能够给同事讲解数据库表的设计、索引的设计、常见的查询优化。第一章MySQL服务器的架构图Mysql服务器是三层架构。第一层是连接池,授权认证,安全等第二层是Mysql比较有意思的部分。大多数Mysql的核心服务功能都在这一层,包括查询解析,分析、优化、缓存以及所有的内置函数,所有的跨存储引擎的功能都在这一层实现:存储过程,触发器,视图。第三层包含了存储引擎。存储引擎负责Mysql中数据的存储和读取。服务器通过API与存储引擎进行通信。这些接口屏蔽了不同存储引擎之间的

2020-08-26 09:28:12 118

原创 高手之路——服务负载均衡设计与实践

服务负载均衡设计与实践负载均衡系统硬件F5A10Radware软件LVS4层Nginx7层HAProxy4层或7层反向代理VS正向代理==正向和反向代理的区别:用户是否知道代理的存在正向代理典型场景是使用VPN访问墙外网站和公司网络。反向代理典型场景是用户通过Nginx访问服务器,用户认为Nginx就是服务器。==负载均衡算法...

2020-08-20 23:34:11 92

原创 docker部署etcd集群

引言单机部署三节点。机器ip:192.168.159.131执行命令REGISTRY=quay.io/coreos/etcdETCD_VERSION=v3.3.8TOKEN=my-etcd-tokenCLUSTER_STATE=newNAME_1=node1NAME_2=node2NAME_3=node3HOST_1=192.168.159.131HOST_2=192.168.159.131HOST_3=192.168.159.131CLUSTER=${NAME_1}=http:/

2020-08-13 22:26:27 140

原创 图解HTTP读书笔记

第六章http的请求报文和响应报文demo如下请求报文get / HTTP/1.1HOST: Hackr.jpAccept:text/html,application/jsonConnection:keep-aliveCache-Control:max-age=0响应报文HTTP/1.1 304 Not ModifiedServer:ApacheDate:XXXXXXConnection:close请求报文的格式是:请求行-请求头-请求主体。响应报文的格式是:状态行-响应头-

2020-08-12 22:48:47 134

原创 工具记录

javabean映射MapStruct在编译器自动生成代码。 支持基本的类型自动转换,支持字段自定义的转换。 一组bean的转换需要声明一个方法,使用注解。配置还算简单orika在运行期执行映射。支持基本的类型自动转换无需声明接口,要支持不同字段转换需要写代码。支持字段自定义的转换。一个通用方法即可映射相同字段名的两个对象。 配置简单...

2020-08-12 12:57:16 88 2

转载 Spring自定义标签的解析演示

在很多情况下,我们需要为系统提供可配置化支持,简单的做法可以直接基于Spring的标准Bean来配置,但配置较为复杂或者需要更多丰富控制的 时候,会显得非常笨拙。一般的做法会用原生态的方式去解析定义好的xml文件,然后转化为配置对象,这种方式当然可以解决所有问题,但实现起来比较繁琐, 特别是是在配置非常复杂的时候,解析工作是一个不得不考虑的负担。Spring提供了可扩展Schema的支持,这是一个不错的折中方案,完成一个自定义 配置一般需要以下步骤:[1] 设计配置属性和JavaBean[2] 编写XS

2020-07-26 18:18:43 84

原创 605. 种花问题

题目假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回True,不能则返回False。示例 1:输入: flowerbed = [1,0,0,0,1], n = 1输出: True示例 2:输入: flowerbed = [1,0,0,0,1], n = 2输出: F

2020-07-26 16:50:36 75

原创 643. 子数组最大平均数 I

题目给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。示例 1:输入: [1,12,-5,-6,50,3], k = 4输出: 12.75解释: 最大平均数 (12-5-6+50)/4 = 51/4 = 12.75 注意:1 <= k <= n <= 30,000。所给数据范围 [-10,000,10,000]。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-

2020-07-26 16:13:37 85

原创 1122. 数组的相对排序

给你两个数组,arr1 和arr2,arr2中的元素各不相同arr2 中的每个元素都出现在arr1中对 arr1中的元素进行排序,使 arr1 中项的相对顺序和arr2中的相对顺序相同。未在arr2中出现过的元素需要按照升序放在arr1的末尾。示例:输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]输出:[2,2,2,1,4,3,3,9,6,7,19]

2020-07-26 12:56:35 111

原创 MySQL技术内幕:InnoDB存储引擎读书笔记

引言本书介绍InnoDB的体系结构和工作原理,并结合InnoDB的源代码讲解了它的内部实现机制。why比what重要通过阅读本书,你将理解InnoDB存储引擎是如何工作的,它的关键特性的功能和作用是什么,以及如何正确地配置和使用这些特性。第一章 介绍MySQL体系结构和对比存储引擎实例是一个mysql server进程数据库是一个物理操作系统文件MySQL的体系结构连接池组件SQL接口组件查询分析器组件优化器组件缓冲组件插件式存储引擎物理文件InnodbInnodb是表

2020-07-21 22:53:03 246

原创 从Oracle官网了解G1

引言官网地址:https://www.oracle.com/technetwork/tutorials/tutorials-1876574.htmlG1提取到以下关键字:G1不是实时的垃圾回收器。G1的目标是用来替换CMS。 CMS是老年代收集器,配置parNew 和paraller scavenge新生代收集器使用。G1可以回收新生代和老年代G1是使用region作为管理内存的最小单位。young generation的region分布不是连续的region的类型:在G1中也是有you

2020-07-11 22:59:34 559

原创 缓存面试题

项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果?如何使用如何使用是回答用缓存来干嘛了。 回答点:缓存能用来干嘛,项目中的缓冲用来干嘛了。缓存当然是用来缓冲存储层的数据的和计算后的结果。在我们项目这使用了以上两种。 xxxx and xxxx为什么使用回答这个为什么使用的时候围绕两点:性能和高并发。缓存了计算后的结果,节省了计算时间,那么自然性能就上来了。缓存了存储层的数据,后续请求无需再次访问数据库,那么并发自然也就上来了。MySQL的QPS到2000已经是单机的瓶颈了,

2020-07-05 00:34:56 1109

原创 深入浅出Mysql的读书总结

深入浅出Mysql的读书总结

2020-07-03 21:25:46 305

accounts.json

这个是es官网入门案例的样本集,也是我博客中es入门的数据样本集。这个是es官网入门案例的样本集,也是我博客中es入门的数据样本集。这个是es官网入门案例的样本集,也是我博客中es入门的数据样本集。这个是es官网入门案例的样本集,也是我博客中es入门的数据样本集。

2020-09-11

韩顺平 轻松搞定网页设计 html+css+js笔记完整版

网上韩顺平HTML的教学视频,老师做的笔记。网上韩顺平HTML的教学视频,老师做的笔记

2019-10-05

ojdbc6,ojdbc14

连接oracle数据库的驱动jar包,ojdbc14.jar.当遇到hibernate包sessionFactory错误时,有可能是因为驱动不兼容导致

2017-11-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除