自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (1)
  • 收藏
  • 关注

原创 爬虫养成记——先跨进这个精彩的世界(女生定制篇)

本文由图雀社区成员 灿若星空 写作而成,欢迎加入图雀社区,一起创作精彩的免费技术教程,予力编程行业发展。如果您觉得我们写得还不错,记得 点赞 + 关注 + 评论 三连????????????,鼓励我们写出更好的教程????发刊词这是一套基于实战的系列教程,从最简单的爬虫程序开始,授人予渔,详细剖析程序设计的思路,完整展现爬虫是如何一步步调试到最终完成。分享关于爬虫的各种知识、技巧,旨在帮助大家认识爬虫、设...

2020-03-05 20:18:54 30971 156

原创 【⭐️大厂干货】阿里程序员私藏提效IntelliJ IDEA插件大放送️ ~

要问对后端程序员最重要的软件是哪个?IntelliJ IDEA说第二,估计没有其他软件可以称第一。在工作过程中我发现对于这么重要的软件,有些开发同学竟然把它“打扮”的甚是简陋,能实现高级功能的插件,没有!能简化繁琐操作的插件,不用!真的有种想抢过来他的电脑,帮他重装一遍的冲动。但读书人的事怎么能用抢呢?于是来分享一下这些我精挑细选的好插件,帮助同学们和加班熬夜说再见。

2023-12-20 21:27:00 1570

原创 调用一个RPC服务的三重境界

基于大厂开发实践经验,演进式地讲述面向过程与面向对象思维方式的不同

2023-11-15 19:57:03 160

原创 关于看Spring源码的几点杂感

业界的浮躁打开B站学习编程,各种XXX源码解析、深入理解XXX源码的视频五花八门(大部分内容粗制滥造,尤其是图灵、马士兵这俩机构的视频,妥妥营销号,标题党!令人作呕!);培训机构也喜欢贩卖焦虑,推出各种源码讲解课程;去知乎上逛逛也是讲:要看XX源码,深入学习才能成为大神。图灵马士兵看源码正确步骤?那些直接叫你看源码的人一定是没有看过源码的人。源码不是学习教材,是一个工业化的产物!所以其中必然包括了处理各种业务场景的复杂逻辑,直接看源码势必绕进这繁琐的细节当中,迷失

2022-04-27 21:55:42 1089 1

原创 【踩坑】微信小程序配置服务器域名后仍然网络错误

现象明明配置好了服务器域名,以及HTTPS,可还是请求失败。原因可能是HTTPS证书除了问题,使用 https://myssl.com/ 检查一下

2021-09-15 15:53:51 2148

原创 JavaScript Canvas实现图片拼接与上传(全面且详细,解决图片跨域问题,已踩坑)

基本原理计算好位置,把要拼接的图片绘制到画布上,然后再保存,没错就是这么简单。第一步 加载图片此处以加载网络图片为例,为了避免回调地狱 (callback hell),而且都到2021年了,还不会用Promise就有点说不过去了,首先封装一个函数,用于加载图片。可能有初学者对于此方式不太理解,建议先学习一下Promise。function getImg(url) { return new Promise((resolve, reject) => { let img = new Im

2021-02-02 11:31:35 2201

原创 【剑指offer LeetCode】股票的最大利润

题目假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。思路此题根据标签查找,一开始就知道用动态规划,所以思路很明确。动归嘛,首先想到的就是要找 递推 关系啊。根据题意求解最大的利润,股票的价格是不断变化,不到最后一天肯定

2020-12-10 20:48:05 326

原创 一个公式说清楚:动态规划

什么是动态规划Dynamic Programming,DP。Programming 一词指的不是编程,而是安排计划表,也就是说最后的结果不是直接求出来的,而是一次又一次从子问题递归推算而来的。动态规划总是与 记忆化技术(也就是缓存,说白了就是利用数组、局部变量把一些子问题的结果存储起来,避免重复计算)搭配使用,其所要解决的子问题有所重叠,如果能采用记忆化技术那么可大幅度降低时间复杂度。递归:递归地解决子问题记忆:把已经计算的值保存起来现在可以用一个公式来解释什么是动态规划了动态规划 = 递归

2020-12-03 12:26:05 544

原创 阿里云服务器 Could not connect to SMTP host: smtp.163.com, port: 25 (Java发送邮件)

Java发送邮件网上关于Java发送邮件的方法很多,这里介绍一种比较简单的方式,仅需一行代码即可。MailUtil.send("hutool@foxmail.com", "测试", "邮件来自Hutool测试", false);这里是用到了hutool工具包所封装的邮件工具,点此查看相关文档。解决bug在本地开发阶段很容易就可以把邮件发送出去,当把程序部署到阿里云的服务器之后,便会报以下异常:Could not connect to SMTP host: smtp.163.com, port:

2020-12-01 19:01:31 2678 1

原创 探究JVM——从字节码到对象(类加载、ClassLoader、双亲委派机制、方法区类信息、Class对象)

引言众所周知,Java代码被编译器处理成字节码文件,然后存放在计算机的硬盘之上,但程序运行时CPU是与内存打交道的,这就需要把字节码文件加载到内存中去并生成一个个的实例对象,此篇文章将剖析此过程,弄清楚安眠于硬盘中字节码是如何变成生龙活虎的对象滴。ClassLoader 类加载器顾名思意,类加载器的作用就是把Class文件加载到内存,之后生成一个Class对象。class文件可以来自于本地硬盘、jar包、网络流甚至是基于动态代理技术运行时计算生成的,只要符合JVM规范所规定的格式都能被加载。类加

2020-11-30 18:32:40 427

原创 【微服务进阶】带你搞懂Service Mesh(服务网格)

阅读此文需要掌握微服务架构的相关知识何为Service Mesh?Service Mesh是用于处理服务与服务之间通信的专用基础设施层,与应用程序一起部署,但是对应用程序透明。微服务架构之痛大规模微服务群,服务治理问题虽然微服务对应用开发进行了简化,将复杂系统“分而治之”地切分为若干个微服务来分解和降低复杂度,使得这些微服务易于小型开发团队进行开发和维护。但是,复杂度并没有凭空消失。微服务拆分之后,单个微服务的复杂度确实大幅降低,但是由于应用系统被从一个单体拆分为更多的微服务,就带来了更复杂的.

2020-11-23 21:46:47 969

原创 Hello ~ Mr.多线程,听说你很快?

灵魂拷问:多线程一定快吗?有些编程基础的朋友们都知道,我们使用多线程的目的就是为了加快程序的处理速度,但是我想重新问一下用了多线程程序就一定快吗?为了讨论这个问题需要首先分析一下多线程能够提速的核心因素是什么?多线程能够充分利用计算机的硬件资源,现在的CPU都是多核心,使用多线程能够充分发挥CPU的性能从而提高程序的运行速度,这样的解释还不够深入。在笔者看来多线程速度快的核心因素就一句话:把串行执行顺序变为并行执行串行与并行以爬虫为例,下图为单线程爬虫的执行顺序,看箭头的指向,它们首尾衔接依次执

2020-11-21 10:14:15 1035

原创 【官方最佳实践】树莓派安装docker(仅需两步)

树莓派安装docker官网参考链接树莓派最常用的系统为Raspbian,这是基于Debian的一套Linux系统。查询docker官网可以看到这样一句提示Raspbian users cannot use this method!For Raspbian, installing using the repository is not yet supported. You must instead use the convenience script.所以根据官网建议,我们最好是使用,doc

2020-11-17 21:54:05 17898 17

原创 【深入浅出】SpringBoot 自动装配原理 以及 自定义Starter

SpringBoot 自动装配原理剖析及应用(自定义Starter)引言: SpringBoot 为啥这么方便?在早期的Spring + Spring MVC项目开发过程中,需要大量的xml配置,这一点让广大程序员们苦不堪言,web.xml、applicationContext.xml ……这些配置文件拖慢了开发效率,对于新手程序员也十分不友好,直接劝退。Spring团队也意识到了此问题,推出了SpringBoot来解决此问题,其遵循“约定大于配置”的理念,配合各种Starter几乎可以“零配置”编码

2020-11-16 17:50:56 4148

原创 【超方便】树莓派安装ZooKeeper,并搭建ZooKeeper可视化管理UI界面

⚡️来源自实际项目中的工程实践⭐️ 没有晦涩难懂的底层原理,也没有高深莫测的程序算法????简单直白,平铺直叙,一目了然,一学就会。效果图基于docker安装ZooKeeper在docker hub上面并没有ZooKeeper并没有提供ARM32位的镜像,好在有位大神构建了专门应用与树莓派的ZooKeepper镜像,这样就给树莓派开发者提供了极大的便利。step 1:拉取镜像docker pull charlesyan/rpi-zookeeperstep 2 :运行docker ru

2020-11-04 18:45:54 4368

原创 一文概览Java 8 Stream流(用好 Stream 只需要两句话)

什么是StreamJava 8 API添加了一个新的抽象称为流Stream,用于对集合数据进行处理,可以理解为流水线。首先定义好中间的加工步骤(对于数据的各种操作比如筛选,排序,聚合),最后由最终操作得到前面处理的结果。Stream让我可以用一种声明的方式处理数据。让程序员只关注于“做什么”,而不是“怎么做”,极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。举个例子假设我们要对一个列表进行遍历输出,首先想到的方式就是写一个for循环。List<String> li

2020-08-12 16:12:27 3824

原创 【前端实战小技巧】根据环境自动切换API接口地址

⚡️来源自互联网公司实际项目中的设计技巧⭐️ 没有晦涩难懂的底层原理,也没有高深莫测的程序算法????简单直白,平铺直叙,一目了然,一学就会。前言在企业项目日常开发过程中,至少有两台应用服务器,一个用于开发测试使用(测试环境),一个用于供客户访问(生产环境)。在前端项目中,开发测试阶段调用测试环境的API,等正式上线时就要切换调用生成环境的API,这是一个固定不变的套路。对于我们程序员来说,这种单一乏味的工作怎么能亲自动手呢?直接让计算机自己做不就好啦~接下来就分享一个设计小技巧:根据环境自动切换

2020-07-22 18:27:48 7666 1

原创 【解决问题】uniapp、vue 中data 数组更新后页面不同步动态渲染更新

业务场景遍历数组,渲染页面,用户可以对食物类型与分量进行更改。实则就是对数组中对象的属性进行更改。然后在页面中及时渲染出来。错误做法直接对数据元素进行更改,伪代码如下// 不能动态响应this.photoArr[index].weight= 200;这种修改方式确实把数据给更改成功了,在控制台也能够打印出更改后的值,但是页面不会同步更新。原因如下:由于 JavaScript 的限制,Vue 不能检测数组和对象的变化[1]正确做法uniapp// 直接更新数组某个元素的属性,视图上

2020-07-19 18:52:55 11895

原创 【伪类与伪元素】用CSS伪元素(以:before为例)插入图片

【伪类与伪元素】用CSS伪元素(以:before为例)插入图片对于一些小图标类型的图片,若使用<img>略微有些麻烦,iconfont是一个不错的选择用起来也相当灵活,但是所需要步骤较为繁琐,今天介绍一种使用css伪元素快速插入图标的小技巧。效果图伪类 与 伪元素伪类在网上很多篇博客中并未将这两个解释清楚,很多博客直接写到利用css伪类插入图片,这种说法严格来讲是错误的。CSS 伪类 是添加到选择器的关键字,指定要选择的元素的特殊状态[1]。通俗来说就是: 我们要在某个元素处

2020-07-14 19:18:44 26012 1

原创 ThreadLocal 实战用法

ThreadLocal 实战用法ThreadLocal 是什么首先来看一下官方解释:Creates a thread local variable. The initial value of the variable is determined by invoking the get method on the Supplier.创建一个线程本地变量,变量的初始值是有调用get()方法的提供方所决定的。它的作用是在一个线程内部,不同的方法直接共享变量。对于多线程,每个线程都有一份自己的变量

2020-07-08 18:43:33 4138

原创 【解读】《Scalable IO in Java》阅读思考与笔记

《Scalable IO in Java》阅读笔记网络处理流程一个线程对应一个网络连接高性能的奥义:分而治之 事件驱动Reactor模式单线程单reactor多worker线程模式多reactor多worker线程模式《Scalable IO in Java》 出自于java大神Doug Lea,这是一篇关于高性能IO服务的经典文章,文章中梳理了网络服务架构的演化,提出了Reactor反应器模式,这种设计模式是netty等高性能网络框架的基础。网络处理流程服务器对于一次网络请求的处理大概流程如下

2020-07-03 13:16:11 3979

原创 你所需要的跨域问题的全套解决方案都在这里啦!(前后端都有)

导论随着RESTful架构风格成为主流,以及Vue.js、React.js和Angular.js这三大前端框架的日益强大,越来越多的开发者开始由传统的MVC架构转向基于前后端分离这一基础架构来构建自己的系统,将前端页面和后端服务分别部署在不同的域名之下。在此过程中一个重要的问题就是跨域资源访问的问题,通常由于同域安全策略浏览器会拦截JavaScript脚本的跨域网络请求,这也就造成了系统上线时前...

2020-03-30 20:38:12 4817

原创 爬虫养成记--千军万马来相见(详解多线程)

爬虫养成记–千军万马来相见(详解多线程)本文由图雀社区成员 灿若星空 写作而成,欢迎加入图雀社区,一起创作精彩的免费技术教程,予力编程行业发展。如果您觉得我们写得还不错,记得 点赞 + 关注 + 评论 三连????????????,鼓励我们写出更好的教程????前情回顾在上篇教程爬虫养成记–顺藤摸瓜回首掏(女生定制篇)中我们通过分析网页之间的联系,串起一条线,从而爬取大量的小哥哥图片,但是一张一张的爬取...

2020-03-23 10:38:32 166100 5

原创 爬虫养成记--顺藤摸瓜回首掏(女生定制篇)

本文由图雀社区成员 灿若星空 写作而成,欢迎加入图雀社区,一起创作精彩的免费技术教程,予力编程行业发展。如果您觉得我们写得还不错,记得 点赞 + 关注 + 评论 三连????????????,鼓励我们写出更好的教程????前情回顾在上篇教程爬虫养成记——先跨进这个精彩的世界(女生定制篇)中我们已经可以将所有小哥哥的封面照片抓取下来,但仅仅是封面图片在质量和数量上怎么能满足小仙女们的要求呢?在本篇教程中,我...

2020-03-16 10:14:53 12623 5

转载 一杯茶的时间,上手 React 框架开发

React(也被称为 React.js 或者 ReactJS)是一个用于构建用户界面的 JavaScript 库。起源于 Facebook 内部项目,最初用来架设 Instagram 的网站,并于 2013 年 5 月开源。React 性能较高,并且它的声明式、组件化特性让编写代码变得简单,随着 React 社区的发展,越来越多的人投入 React 的学习和开发,使得 React 不仅可以用来开...

2020-03-07 10:32:13 3912

原创 vue+elementUI 后台管理极简模板

vue+elementUI 后台管理极简模板写在前面此篇文章为一篇说明文档,不是教你从零构建一个后台管理系统,而是基于一个实际项目,已经搭建好了一个后台管理系统的基础框架,教你如何在此基础上快速开发自己的后台管理系统,能让读者能在掌握一些基础知识的情况下,也能上手vue后台开发。只有接触项目,才能更好地理解自己所学知识的意义,触类旁通把死知识点变成活学活用的技能。先跑起来# 克隆项目gi...

2020-03-02 20:05:42 21819 2

原创 基于docker实现Redis哨兵模式

基于docker实现Redis哨兵模式下载docker Redis镜像docker pull redis运行容器sudo docker run -d --name redis-0 -p 6380:6379 redis redis-server # 作为主机sudo docker run -d --name redis-1 -p 6381:6379 redis redis-server...

2019-12-03 18:50:31 4837 1

原创 【实验】MySQL多少数据需要建立索引

【实验】MySQL多少数据需要建立索引数据准备采用Python随机生成若干条数据,以备测试使用,代码如下# db.pyimport pymysql# 默认数据返回的是二维列表:# (# (每一行)# (每一行)# )# 加上 cursor=pymysql.cursors.DictCursor后的数据返回格式:# [{'psw': 'e10adc3949ba5...

2019-11-23 13:55:44 13205 1

原创 解决 java.lang.VerifyError: Stack map does not match the one at exception

解决 java.lang.VerifyError: Stack map does not match the one at exception背景在写AOP程序时,测试出现了错误,jdk版本11。问题根源JVM加载class文件时会做字节码校验(bytecode verification)。如果你的class文件是由java源文件通过javac编译出来的,那么基本上不用担心bytecod...

2019-11-22 10:31:15 14049

原创 Java中动态代理的使用

Java中动态代理的使用什么是代理?代理就是代替目标对象去完成某些事情。有一个很火的明星,开通了一个抖音账号,这个账号非常活跃,回复粉丝、到处点赞之类的,但可能并不是真的由本人在维护的。而是在背后有一个其他人 or 团队来运营,我们就可以称他们为代理人,因为他们发表的内容就代表了明星本人的意思。为什么需要代理?实现AOP 面向切面编程将业务核心代码与辅助业务代码解耦。代码实现1.定...

2019-11-20 20:13:49 3898

原创 读书笔记--泛型编程--《写给大忙人的JavaSE 9 核心技术》—第6章

读书笔记–《写给大忙人的JavaSE 9 核心技术》—第6章泛型编程Java是强类型的语言,对于函数中的参数需要声明其类型,当需要实现适用于多中类型的方法和类时,此时需要用到泛型。泛型类public class Test1<K,V> { public test1(K key,V value) { System.out.println(key); ...

2019-11-13 20:25:13 3752

原创 MySQL事务

MySQL事务TCL(Transaction Control Language)事务控制语句,用于控制事务,常用的语句关键字有:COMMIT,ROLLBACK,SAVEPOINT,SET TRANSACTION。事务一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。案例:转账张三丰 1000郭襄 1000update 表 set 张三丰的余额=500...

2019-11-12 21:14:49 4137

原创 读书笔记--《写给大忙人的JavaSE 9 核心技术》—接口和lambda表达式

读书笔记–《写给大忙人的JavaSE 9 核心技术》—第3章接口和lambda表达式接口它可以让你在不提供实现的情况下,指定应该做什么。(主要在设计阶段用得到)示例代码public interface Test1 { // 接口中的方法默认为public public void saySomething(String something); // 在接口中可以定义...

2019-11-11 21:22:23 4860

原创 重温MySQL 之 基础函数

重温MySQL 之 基础函数#一、字符函数#1.length 获取参数值的字节个数SELECT LENGTH('john');SELECT LENGTH('张三丰hahaha');SHOW VARIABLES LIKE '%char%'#2.concat 拼接字符串SELECT CONCAT(last_name,'_',first_name) 姓名 FROM employee...

2019-11-02 20:47:08 3883

原创 读书笔记《写给大忙人的JavaSE 9 核心技术》第一章 基本的编程结构

读书笔记《写给大忙人的JavaSE 9 核心技术》第一章 基本的编程结构关于Java用途的定义Java 不是用来快速完成几个命令的脚本语言,它明确定位为可以从组织有序的类和包以及模块中获益的大型程序的编程语言JShellJava 9中引入的运行Java语句的交互式命令窗口,和Python Node差不多。基本类型8种基本类型有符号整型类型存储需求byte1个...

2019-10-31 20:46:36 4272

原创 Springboot 整合Mybatis 逆向工程(详解版)

Springboot 整合Mybatis 逆向工程(详解版)什么逆向工程分析数据库中数据表,自动生成JavaBean(与数据库表对应的实体类)、dao 接口(数据访问层接口,定义了访问数据的方法)、SQLMap (sql 语句映射文件,与dao层接口类一一对应)step1:写XML配置文件该配置文件定义了如何生成这些代码,详细说明可看代码注释。<?xml version="1.0"...

2019-10-23 21:07:09 5973

原创 神经网络中的梯度下降与反向传播的关系(大白话,通俗易懂版本)

神经网络神经网络就是一个”万能的模型+误差修正函数“,每次根据训练得到的结果与预想结果进行误差分析,进而修改权值和阈值,一步一步得到能输出和预想结果一致的模型。举一个例子:比如某厂商生产一种产品,投放到市场之后得到了消费者的反馈,根据消费者的反馈,厂商对产品进一步升级,优化,从而生产出让消费者更满意的产品。这就是神经网络的核心。神经网络的本质机器学习可以看做是数理统计的一个应用,在数理统计...

2019-07-24 16:51:35 17158 7

原创 机器学习--线性回归

线性回归线性回归(Linear Regression) 是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法核心思想sklearn 文档概述简单线性回归 (一元线性回归)找到一条直线,此直线到每个点的距离之和最小 ==> 最小二乘法(初中所学)import matplotlib.pyplot as pltimport numpy a...

2019-07-18 16:54:17 3927

Springboot 整合Mybatis 逆向工程示例代码.zip

Springboot 整合Mybatis 逆向工程示例代码。这个代码是同名博文的辅助资料,用于帮大家更好地理解文章所讲的内容,更快速地搭建起应用开发的基础框架。

2019-10-23

空空如也

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

TA关注的人

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