自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 使用云数据库,国庆快速开发一个微信小程序

国庆七天,如果不想峡谷、王者七日游,就来跟我一起开发个小程序吧,不需要多高的技术,只要你会一点点前端css、html知识,不需要你了解后端语言,更不需要单独部署一个后端服务,十分简单!之前我写过一个特别小白的从零开始学小程序大家有兴趣可以先看看,这篇文章不仅会讲到基础知识,还会跟进一步,使用微信小程序特有的云函数、数据库、存储,让你更加熟悉微信小程序生态。这次我们打算做一个『梗百科』小程序,用户可以在小程序上搜索常见的梗,比如yyds、绝绝子等等。大家可以先看看效果:新建工程申请账号点击 htt

2021-10-04 11:40:51 2351 6

原创 Go工程管理和业务实践

Go工程和依赖管理基本机制依赖管理机制的变迁GoPath—>GoVendor---->GoModGoPath:会要求工程代码要保存在GoPath/src的目录下面。同时要求你的依赖库也要是这个目录下面的:$GOPATH/src/yourProject/$GOPATH/src/gorm :如果依赖了gorm编译的时候会直接使用GoPath/src目录下的代码。Go Get下载的代码也会放在GoPath中。往往我们在安装Go以后,通过go env查看我们的Go Path,

2021-06-27 13:33:03 150 1

原创 Frequently Asked Questions: Go的map操作为什么不定义为原子操作

Go的map操作为什么不定义为原子操作?经过漫长的讨论,我们决定maps平常的使用不需要保证多协程的并发安全。而当需要考虑多协程并发安全的时候,往往map是一个更大的数据结构或者计算过程的一部分,这这些早就被同步锁住了。因此如果要求所有的map操作都先获取一个互斥锁反而会降低大部分程序运行速度,而换来一丁点儿的安全提升。这其实不是一个简单的决定,因为它意味着不受控制的map设计可能会导致程序崩溃。Go后续版本不会排除原子实现map。当需要的时候,比如运行一个不信任的代码的时候,一些方法可以实现map的访

2021-06-11 22:25:03 262

原创 Frequently Asked Questions :Go为什么用协程替代线程?

Go没有提供断言。不可否认,断言十分方便。但是按我们的经验来看,程序员往往会因为不想思考如何更好的处理异常,而滥用断言。更好的异常处理意味着,当服务遇到非致命的错误,仍然会继续运行。精确的错误类型会让程序员定位错误更加快速。我们知道这是一个争议点,Go语言和其他现代语言有许许多多不同点,也是因为我们认为这些设计是值得做的尝试。...

2021-06-02 23:15:53 156

原创 FAQ : Go为什么没有异常

我们认为把“异常”(exception)机制设计成一个控制结构(control structure)(PS:理解为闭环是否会好一点?)会让代码变得很复杂,例如常见的try-catch-finally的设计。这种设计隐性在鼓励人们把一些诸如打开文件失败等常见的错误,当成是异常。Go采用了一种不一样的设计。对于简单的错误处理,通过Go的多值返回特性能够让报告一个错误变得简单,而且这样不会重载返回值。(PS: 在Java中通过throws exception来实现报告错误,Go是通过直接return error

2021-05-26 00:05:52 274

原创 Frequently Asked Questions :Go为什么没有泛型?

Go为什么没有泛型详细可以见issue:https://github.com/golang/go/issues/43651 ,这个issue已经被认同,不出意外的话在Go的1.18版本就能支持泛型了。Go希望被设计为一个能够被容易持续运行很久的服务端语言(详细可参考这篇文章https://talks.golang.org/2012/splash.article),因此设计的时候聚焦于可拓展性、可阅读性和并发性上,因此当时看来多态编程并不是必不可少的,所以就忽略了。现在语言原来越成熟完善,可以开始考虑泛

2021-05-23 23:47:34 178

原创 Frequently Asked Questions :Go为什么没有一些某某特性?

Go为什么没有一些某某特性?每一种语言要么会有一些新颖的设计,当然也可能会忽略一些人们喜欢的设计。Go语言设计时希望做到更好的编程体验,更快的编译速度,正交性的概念( orthogonality of concepts),以及能够做到基本的并发、垃圾回收。基于以上设计考虑,你所喜欢的特性可能在Go语言中就不那么合适,因为它们或多或少降低了编译速度、降低了设计的整洁,也可能会让基础系统架构变得很复杂。如果因为Go少了某些你想要的特性,请原谅我们,也希望您更加关注Go独特的一些特性。探索这些特性也许会让你感

2021-05-23 23:14:51 60 1

原创 Frequently Asked Questions : Go的字符标识设计

Go的字符标识设计我们避免过于围绕ASCII来设计Go,我们希望增大标识符的容量大小,至少比7位(bit)的ASCII容量要大。组合字符(Combining characters)(PS:Unicode标准认为“基字符”组合成的字符叫做组合字符)不在设计之中,例如梵文。一个Go的规定:标识符只能是字母或者数字,这是一个易懂的同时也充满限制的规则。上述规则有一个缺点。根据定义,一个标识符要被外部引用,首字母必须是大写,而一些由字符组成的标识符无法满足这个规则(首字母大写),因此永远无法被外部引用。目前

2021-05-20 22:52:21 64

原创 Frequently Asked Questions : GO有“运行时”设计吗?

GO有“运行时”设计吗?Go是有“运行时”库(runtime)的,它是每一个Go程序不可缺少的一部分。“运行时”库实现了垃圾回收、并发、栈管理以及其他Go重要的特性。Go的“运行时”库类似于C语言的libc库。但是要知道一点,Go的“运行时”库并不是指虚拟机的设计,这点和Java的“运行时”设计不同(PS:Java的“运行时”,是指JVM)。因为Go程序会提前编译为原生机器代码(可能会是Javascript、WebAssembly…),所以,尽管“运行时”通常描述为某种程序运行的虚拟环境,但是在Go中,

2021-05-20 22:51:42 188

原创 golang的一些学习笔记

注释以后就使用行注释,而不用块注释API网站https://studygolang.com/pkgdoc变量golang变量如果没有赋初值,默认会给零值数据类型:函数,管道,接口(这几个还是比较特殊的)整数类型:默认是int类型,可以通过fmt.printf(“%t”,a) 打印出来具体的类型。字符串:字符串一旦赋值了,就不能再改变了city := “beijing”city[0] = ‘a’ // 这样是不行的数据类型转化例如var int64 a = int

2021-05-04 11:06:49 100

原创 Debug的正确姿势

写在前面的话在开发阶段,debug十分重要,合理使用断点能够帮助我们快速定位问题。但是很可惜几乎没有这类文章来总结,也许是太简单?所以当时我自学的时候十分不确定我debug的姿势是否正确。因此我来分享一下我是如何Debug的吧。(大神可直接跳过)为了涵盖更广的范围,这里我们讲的是从页面请求,到后端整个过程的debug。前提:使用Debug模式启动代码(一般来说,开发过程中run模式其实没什么用)找到请求入口首先要知道请求的url是什么,F12打开开发人员调试器。我们以https://zhuanla

2021-02-17 16:57:38 1299 1

原创 跟着我从零开始自学算法,进入字节大厂

之前我在下面这篇文章中有提到我是怎么准备算法题,不过受限于篇幅和主题,没有展开详解,这里想补充一些细节,更加详细地把我学习算法的经历给大家描绘出来。希望能够对那些和我一样从零开始学算法的人有帮助!转行一年,跳槽字节一、学习数据结构第一步是打基础,我之前有说过算法其实完整来说是数据结构与算法,要先学数据结构,再学算法,因为很多算法题是基于数据结构来考察的,可以说数据结构才是面试的高频题目,诸如买股票这类题目,在面试中沟通和引导面试者的成本太高,出现频率并不高。我学习数据结构的经历不太连续,在我

2020-12-12 21:03:22 403

原创 分布式各种理论学习

分布式学习CAP理论C:一致性。通俗来讲就是对于分布式的系统,如果一个节点改了数据,其他节点要能看到改了以后的数据。官话:通过某个节点的写操作结果对后面通过其他节点的读操作可见。如果能保证就是强一致性,如果允许部分或者全部感知不到就是弱一致性。如果能保证最后能看见,那么就是最终一致性。A:可用性。任何一个没有发生故障的节点,必须在有限的时间内返回合理的结果。P:分区容忍性。指的分布式系统中的某个节点或者网络分区出现了故障的时候,整个系统仍然能对外提供满足一致性和可用性的服务。BASE理

2020-10-23 14:07:48 362

原创 微信小程序分享至朋友圈功能

微信小程序分享至朋友圈功能今天登录微信公众平台看到推送消息,小程序居然开放了分享朋友圈权限。大概看了下,配置很简单就直接搞了。实现前后对比图实现前:实现后配置代码,一共两个部分。onShareAppMessage(),onShareTimeline ()在需要开启分享朋友圈功能的页面的js代码中添加如下: // 开启转发到朋友圈功能 onShareAppMessage: function (res) { if(res.from === 'button')

2020-08-23 14:30:11 1457 1

原创 多线程相关的Demo

多线程相关的DemoCountDownLatch Demo他的作用是,某一个线程等待其他线程执行完才会执行。其他线程的数量取决于CountDownLatch构造函数的值。主要用在一个项目,某些框架要等其他框架加载后在执行。package com.attackOnOffer.Thread;import java.util.concurrent.CountDownLatch;public class CountDownDemo { public static CountDownLatch

2020-08-12 16:36:24 128

原创 分布式各种理论学习

分布式学习CAP理论C:一致性。通俗来讲就是对于分布式的系统,如果一个节点改了数据,其他节点要能看到改了以后的数据。官话:通过某个节点的写操作结果对后面通过其他节点的读操作可见。如果能保证就是强一致性,如果允许部分或者全部感知不到就是弱一致性。如果能保证最后能看见,那么就是最终一致性。A:可用性。任何一个没有发生故障的节点,必须在有限的时间内返回合理的结果。P:分区容忍性。指的分布式系统中的某个节点或者网络分区出现了故障的时候,整个系统仍然能对外提供满足一致性和可用性的服务。BASE理

2020-06-17 00:23:49 157

原创 Kafka 初探

KAFKA学习笔记什么是消息队列?A系统发消息给B系统,不会直接发送过去,而是直接发给消息队列,消息队列进行缓存。消息队列分为一对多推送订阅模式。也分为一对一,消费者主动拿去数据模式。为什么需要消息队列,优点是什么?解耦灵活性,和峰值处理能力。可以应对大量的并发请求AB系统故障了,不会导致队列的消息丢失缓冲异步通讯,就是我A消息发出去,不想B马上处理,也就是放入队列中,消费者想什么时候消费就什么时候消费。kafka基本架构就是生产者、kafka集群,消费者。进一步

2020-06-09 00:04:05 279

原创 Redis再再 深入学习

Redis深入学习一、数据结构类型string ,set get exlist :lpush lpop 用于消息队列set :sadd、smenbers 一键多值,用于标签zset : zadd user:rank score menberzadd user:rank 1 james 21 kate 32 jack 46 frank 258 tom;` james获得1票,kate21票…zrange user:rank james ---- 找到james的票数 --dictz

2020-06-09 00:01:17 151

原创 MYSQL 45 讲 学习笔记

MYSQL 45讲学习笔记一、一条sql是怎么执行的mysql的架构:客户端连接器查询缓存分析器优化器执行器存储引擎二、一条SQL更新是如何执行的重要的日子模块redolog、binlogredolog这里举了一个孔乙己老板赊账记账的故事。一条记录需要更新的时候,innoDB引擎会先把记录写到redo日志中,然后更新内存,这时候算是完成了,等到系统比较空闲的时候,才把redo日志更新到磁盘中。relog的特点:只有在innodb中才有,是几个文件,循环写入(也就是如

2020-05-31 22:08:26 340

原创 记录一些其他算法题

一些其他的算法题给定一个 0-4随机数生成器 如何生成0-6随机数这个实在没想明白怎么做,只能抄写在这里,记一记,背一背。public int rand7(){ while(true){ int a = 5*rand4() + rand4(); // 大于1 相乘 if(a < 21){ // 算出理论范围,然后确定边界 return a % 7; } }}//变形:如果用0-6随机生成器生成0-9随机

2020-05-27 00:08:07 526

原创 排序!排序!排序!

一、概述排序算法是学习编程语言基础过程中躲不开的内容,其实也是很有趣的部分。虽然实际应用还没使用过,但是了解算法的来源以及编码过程对自身逻辑能力的提高非常有帮助。二、代码直接插入关键字:认为前面的是已经排好序的。O(n),O(n^2)public void directInsert(int[] a){ for(int i = 0; i < a.length; i++){ for(int j = i; j>0; j--){ if(a

2020-05-17 22:27:01 137

原创 算法刷题笔记总结记录

算法学习笔记总结记录所有的算法题第一要义就是要明白题目讲什么,明白规律是什么,只有知道了规律才能写代码,才能轮到使用什么方法,什么工具,是用递归?还是循环?进而才能用到你总结的各种经验。下面的题目除了动态规划,其他主要来自剑指offer的题目,而且主要是数据结构题 ,排序算法我们单独整理。一、方法技巧总结:1、递归模板以及使用技巧总结:一般递归如果如果有if --- else ,如果你没有设置全局变量的话,一般是需要两个return的,分别在不同情况作了什么,返回各自这种情况下的结果,如果有全

2020-05-17 22:22:33 929

原创 平衡二叉树学习

平衡二叉树学习一、概述我不会说的很详细,因为我看到了两篇很好的博客,已经说的很好了,如果要复习,就直接看他的博客,我只做提炼,帮助以后复习。二、解释本质平衡二叉树首先是一个二叉查找树。二叉查找树是什么呢?二叉查找树就是根节点一定大于左子树的所有值,一定小于右子树的所有值,并且每个子树都满足该规律。平衡二叉树为了解决什么了,为了解决如果出现链状二叉树,确定某个节点需要找O(n)次,这样...

2020-04-17 00:13:57 141

原创 ThreadPoolExecutor复用流程的一点理解

ThreadPoolExecutor复用流程的一点理解一、背景​ 最近在学并发编程的线程池,看了很多文章和视频,我认为都没有讲到线程池的核心。大家都说线程池能减少创建线程的消耗和销毁时间,但是却不解释是怎么做到的,而仅仅只是不断重复讲如果大于核心线程数会怎么样,大于最大线程数会这么样。。感觉本末倒置了。我觉得得研究一下,不然线程池在我眼里就是个多余的东西。二、前提知识​ 这个可能只是我自己...

2020-03-22 15:20:18 214

原创 内部类,匿名内部类,多个类的总结记录

内部类,匿名内部类,多个类的总结记录开头​ 今天开发遇到个问题,报错信息是NoClassDefFoundError ,找不到类,这个类是个内部类(当时我是这么认为的),也发现服务器上确实没有编译后的内部类class文件。查看本地代码是有内部类的class的,但是这个class不是外部类$内部类.class的形式,也很奇怪。。各种搜索问题NoClassDefFoundError 是jav...

2020-02-26 22:54:10 184

原创 怎么开通微信流量主

介绍腾讯的小程序平台越来越热门,它的盈利模式也是非常简单清晰。开通流量主入口点击下面的网址,左边菜单栏有流量主的选项。https://mp.weixin.qq.com/wxopen/frame?t=promotion/promotion_frame&token=861162187&page=applet/open&lang=zh_CN4、我的微信小程序:这是我...

2020-02-06 14:51:45 555

原创 从零开始学微信小程序开发

从零开始学微信小程序开发–记录​ 疫情严重,被困在家,利用时间学习微信小程序的开发。经过查看各个demo例子选择了个税计数器这个比较简单的业务来开发实践。学习步骤一、准备工作:下载微信开发者工具。使用测试号创建一个项目。下载colorUI格式库开发,下载weiUI,github地址:https://github.com/weilanwl/ColorUI/ github地址:https...

2020-02-04 17:30:15 1851

原创 Shell脚本学习

Shell脚本学习参考视频:https://www.bilibili.com/video/av21303002/?p=601、 编写第一个脚本文件必须以#! /bin/bash 开头,表示是用bash进行解析脚本的shell文件必须有可执行权限 —chmod 744 myShell.sh执行方法:./myShell.sh 也可以绝对路径/home/fongfiafia/shell/my...

2019-08-18 22:30:32 176

原创 二叉树的入门学习(基础篇)

二叉树的最基础学习最近入职一家银行外包公司,处理外包公司需要面试,银行本身也需要面试,听说考java基础和数据结构与算法,我一直想好好学习数据结构与算法,借此机会补充学习一下。一、基本概念1.1 专业术语节点的度:子树的个数树的度:一个树所有节点的度的最大值路径长度:从节点n1到nk的路径长度就是,包含边的个数树的高度/深度:就是层数1.2 二叉树的基本特殊二叉树斜二叉...

2019-07-20 20:58:50 1660

原创 装饰者模式的一个简单例子

装饰者模型的目的是为了在不改变原有类的基础上拓展其功能。其实我对装饰者模型最大的困惑就是,为什么不用继承来实现呢?使用super方法代码多简单!本质上还是没有掌握装饰者模型的结构,所以整理一下。一、测试代码1、写一个接口personpulibc interface Person{ void eat();}2、写一个person实现类manpublic class Man im...

2019-06-17 17:21:13 472

原创 Nginx负载均衡和Memcache的session共享相关文件配置

一个最简单的,入门了解分布式环境部署、Nginx、Memcache的测试方法。一 概述首先要知道分布式环境的部署大致如下图所示:1.1 解释:1.1.1 一个tomcat无法承受大量的访问请求,因此我们会部署多个tomcat,那么问题是,我的请求来了,哪个tomcat去处理呢?1.1.2 这就需要nginx来进行处理,他起到的作用是负载均衡,有两个方法,一个是轮询,如果一共6个...

2019-05-29 22:52:15 282

原创 zTree的简单实现以及bootrap风格的zTree

记录一下zTree的普通实现,模拟从客户端获得json格式数据,zTree自动识别子父类进行填充1 zTree官网下载相应js和css,建立工程如下:2 测试代码demo这里我们模拟的是服务端返回一个json格式的数据,然后zTree根据设置自动判断子类和父类,进行数据填充:A、zNodes是需要填充的json数据,是服务端返回的B、settings的配置是关键:主要是:i...

2019-05-18 20:22:29 707

原创 MyBatis-Generator的使用过程

写一个完整过程,供自己和大家参考:1 新建一个maven项目,不赘述2 写pom.xml文件: 主要是引入mysql驱动文件、mybatis文件、mybatis-generator文件<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchem...

2019-05-18 14:48:20 90

原创 SpringMVC的异常处理方法记录(ControllerAdvice&ExceptionHandle)

一、为什么要有异常处理: 为了用户更好的体验,我们通常使用异常处理来进行信息的反馈,SpringMVC给提供了一个注解ControllerAdvice,使我们做到全局异常控制,现提供简单测试代码。二、异常处理的方式: 1、写一个异常处理类(handleException),里面有处理异常的方法。之后对于每一个可能出现该异常的Controller类继承该异常处 理类,也就是都获...

2019-05-10 20:26:09 576

原创 从NoSuchMethodException异常学习构造器和bean的默认装配方式

在使用Spring容器创建一个对象时,出现了异常:Cause: java.lang.NoSuchMethodException: beans.Student.<init>()1 首先:先理解字面意思:没有对应的方法异常:Student类的init()2 然后:学习过JVM,我们知道init()方法是对象在创建过程,最后一步数据初始化的过程,他调用类的构造器进行初始化。那...

2019-04-24 20:13:56 325

原创 Mybatis的多表关联查询以及延迟加载(LazyLoad)

Mybatis既然封装了JDBC,那么它一定能做到Mysql中的连接查询。一、Mysql的连接查询简单回顾一下Mysql的连接查询:分为两种,一种是内连接,内连接又分为等值连接,非等值连接,自连接;另外一种是外连接,外连接分为左连接(left join)和右连接(right join),两种连接都是表达多个表之间的关系。二者在代码上依靠是否有left或者right来进行区分...

2019-04-23 18:33:59 1216

原创 Mybatis完整测试代码(进阶动态代理)

上篇文章的代码是Mybatis入门代码。下面介绍Mybatis的动态代理。在后续的Mybatis的开发都是使用动态代理。 一 动态代理Q&A Q : 为什么需要动态代理? A : 传统的方法中,我们Dao需要一个接口,一个实现类,在我们的Test层里面需要new一个实现类的对象,使用实现类的 方法,当然了,这个方法回去调用mapper...

2019-04-22 23:41:37 278

原创 Mybatis完整测试代码(入门)

今日完成的Mybatis的入门学习,现进行总结。现提供完整测试代码,初学者可以进行测试学习。主要知识内容包括配置文件/映射文件的编写/日志文件的编写、sqlsession的使用以及封装成工具类。 一 Mybatis概述 1、它是基于Java的持久层框架,内部封装了JDBC,简单点就是用来执行sql语句与数据库进行交互的框架。 2、 与Hibernate的区别是,Myba...

2019-04-22 00:30:12 4129

原创 使用XML配置通过表单访问Servlet的总结

今日学习Spring和Web连用的时候,出现了无法访问Servlet问题,这在以前学习Servlet过程中是没有过的,通过查找各种回答,最后解决了问题,现提供一个完整的测试代码,尽可能把各种原因写全。 一 附上工程路径图片 A 这里需要注意的是web.xml文件必须放在web-inf目录下,这个是和tomcat启动配置有关。二 JSP页面代码 这里需要注意action...

2019-04-21 11:10:03 637

原创 Session和Request的生命周期(大白话)

一、生命周期:(1)SessionSession创建:在你打开一个浏览器开始访问的时候,就创建了。Session关闭:他在你关闭浏览器的时候或者默认时间(Tomcat是30分钟)后会销毁。(2)RequestRequest创建:是在页面向服务端发送一个请求时候,就产生了。这里就把servlet当作服务端Request关闭:有两种情况:A 使用了dispatcher把上级...

2019-03-21 16:46:03 6668

空空如也

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

TA关注的人

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