- 博客(37)
- 收藏
- 关注
原创 将图片转换成base64再转成utf-8的作用
先将图片数据转换成字节串,然后将这个自己串以base64的编码(每3个字节转换成4个字节)形式进行编码,编码后依旧是字节串的形式(一般情况下我们都是对字符串进行字节编码,但是这里是对字节串进行字节编码,要注意区分),再以utf-8的形式进行解码得到字符串。这样我们就成功的将图片二进制数据转换成了字符串了,然后存储下来。这样的文件就可以在大部分协议中进行传输了。将图片转换成base64再转成utf-8的作用(作为个人笔记保存)对应的解码成图片数据就应该是。
2024-04-15 17:47:20 337
原创 python中装饰器的定义和使用以及原理
把这个代码就当作一个普通的函数,这个debug函数做了什么?就是接受一个参数,然后定义了一个函数,然后返回这个新定义新的函数wrapper罢了,至于这个wrapper里面到底在做什么,我们先不要管。总之就是返回了wrapper这个函数。#首先就是定义了一个可以接受任何所有变量的函数print("现在在执行装饰器中的代码")print("接下来要执行调用了装饰器的代码"+func.__name__)#然后将上面接受的这些变量全部传给func,就进而实现了能将对应的参数传给func的功能。
2024-01-03 16:04:24 859
原创 softmax回归加交叉熵损失函数求导
其梯度是真实概率和预测概率的区别。这个式子可以这么形容。当然也可以联想到一定的逻辑关系。因为我们最终的目的是让预测的概率和真实的概率一样的。这也是为什么我们用softmax()作为我们回归函数的原因吧。其梯度与真实概率和预测概率的区别。这个式子就是求偏导后推出来的。经过softmax层得到。对类别进行一位有效编码。如果i = y的话就是。上面两个式子结合就是。
2023-08-04 20:45:45 154
原创 sql相关子查询的理解以及联合查询的部分理解
where这个命令,将相关表或者联合表A,B中每一个记录都进行对比,比如A中的a1和B中的b1进行对比筛选,符合之后对其select。去里面查,拿的是外面的这个记录的department_id字段去比较查出来的AVG,然后外层对比,如果可以则筛选成功,接着。想清楚这么个逻辑就能搞清楚,比如我们在进行where筛选的时候,是不是每个employees中的记录都要拿去筛选。而筛选的就是salary这个字段,所以每个记录筛选的时候呢,都会执行子查询,然后子查询了又会根据拿到的这个记录。
2023-05-31 20:53:28 173
原创 sql语句执行过程
(LEFT / RIGHT)JOIN …ON 多表的连接条件。WHERE 不包含聚合函数的过滤条件。HAVING 包含聚合函数的过滤条件。
2023-05-31 20:52:43 79
原创 sql语句执行过程
(LEFT / RIGHT)JOIN …ON 多表的连接条件。WHERE 不包含聚合函数的过滤条件。HAVING 包含聚合函数的过滤条件。
2023-05-31 14:57:56 53
原创 java中明明已经有了字节流,为什么还要设置一个字符流
因为字节流在传输字符流的时候,是不管你是不是字符或者什么的,就只传输二进制序列,那么当你传输完后,想要识别这些序列的时候,就会需要再重新解码,而且在解码的时候,可能会出现编码错误。首先,字符流是根据一个字符一个字符进行传输的,默认是utf-8,也就是说,只有当识别二进制代码判断出是一个字符的时候,就会传输,但是并不是所有二进制代码序列都有对应的字符,即无法识别的二进制序列,这个时候会默认将此段二进制序列更改为默认的二进制序列,而不再是原来的真实的序列了。那么字符流能做到的,字节流都能做到。
2023-04-25 10:42:39 599
原创 Java中Collection和Map的区别和联系——主要是概念性和理解性的东西
java中的几个集合框架的设计思想和底层逻辑始终容易忘,而且容易分不清楚这里自己写一下做个整合,主要是概念性的东西,具体代码和各自的方法没有描述。
2023-04-17 11:58:56 386
原创 关于为什么String类型在System.out.println()中输出的是数据结果,而不是和其他引用数据一样是地址?
详细解释了java中为何String类型的数据可以直接输出数据内容,而其他对象则只会输出地址值
2022-12-01 15:20:43 599
原创 关于多态中可能出现equals细节问题———String类型变量赋予常量的时候,其地址位置及常量池相关知识
关于多态中误用==去比较string类型所造成的细节问题
2022-11-30 20:38:51 109
原创 JAVA中super()和this()为什么只能作为构造器的第一句出现?
关于super和this在规定上的解释以及为什么要出现在第一行,和为什么不能同时出现的合理性解释
2022-11-18 18:00:01 818
原创 Vue项目中图片还未加载完获取相关数据等执行函数应该执行的地方
今天在用vue做项目的时候发现到了一些问题,在获取一些需要加载图片的组件时,比如获取这些组件的offsetTop属性,就动不动就会报出undefined错误,原因就是图片没有彻底加载完问题:在哪里才能获取到正确的offsetTop呢?created肯定不行,压根不能获取元素mounted也不行,组件虽然渲染挂载完成,但是图片数据还没有获取到updated中获取到的数据的回调中也不行,DOM还没有渲染完,只是数据刷新了又不是DOM加载完了,记住这里的dom是浏览器上的dom不是vue上的组件,mou
2021-02-25 16:51:30 705
原创 js中防抖函数debounce及父子周期执行顺序的应用
js中防抖函数debounce()在开发网站时,我们有时候需要一直监听某些事件,事件触发就访问后台,请求数据,但是我们知道,如果手机端的网页是当我们每次请求的都是大量数据时,需要刷新一下页面长度,才能有效的使用better-scroll,但是过于频繁的刷新也会影响效率,比如,在手机上看某些商城的时候,一直往下滑会一直有数据请求,也会一直刷新页面长度但是每请求一次图片就刷新一次长度会导致过于频繁,如果每请求<img :src="goodsItem.show.img" alt="" @load="i
2021-02-23 10:00:00 420
原创 vue中组件的父子组件各生命周期顺序问题
vue中组件的父子组件各生命周期顺序问题vue中每个组件的生命周期应该是这样的,beforeCreate -> created -> beforeMount -> mounted -> beforeUpdate -> updated -> beforeDestory -> destoryed而如果组件之前有父子关系,其顺序应该是,父组件创建->子组件创建->子组件挂载->父组件挂载,所以当涉及到父子组件的通信所相关的问题和操作的时候,要注意到
2021-02-22 10:54:18 157
原创 Vuex——Mutation传递参数
众所周知,我们在用vue时,使用状态管理插件vuex的时候,需要改变状态信息或者共享信息的时候需要通过mutation去改变变量,而当我们用mutations时,需要传递参数的时候应该怎么处理? methods: { addition() { this.$store.commit('increment') },}这是一个组件实例,需要调用store中的mutations中的increment state: { counter:1000, } muta
2021-02-01 17:35:26 2365
原创 matched&meta获取当前路由中的meta信息注意
const routes = [ { //协议头://host/query path: '/home', component: Home, meta: { title: '首页' }, children: [ { path: 'news', component: HomeNews }, { path: 'message', compon
2021-01-29 09:04:30 4389
原创 调用$router.push()时报出Uncaught (in promise)错误
用this.$router.push()时会返回一个异常,那是因为用push或者replace时会返回一个promise对象,而并没有捕获所以有Uncaught (in promise)错误,因此我们只要捕获就好了第一种方法是直接捕获在push()后调用一个catch方法this.$router.push(this.path).catch(err=>err)第二种方法是重写原型中的push方法import Router from 'vue-router' const original.
2021-01-28 16:17:13 1603
原创 vue懒加载———javascript如何动态加载模块?
如何动态加载模块?python和JavaScript都是通过import去导入其他包或者模块,而我们的编译器在编译时候会直接处理import语句,所以自然就导致import最先就执行了,但是这样有个问题,如果某些模块的加载只是在特定操作下才用得到,那么如果用户打开页面就加载这些模块,造成了时间的浪费,所以有了动态加载。if (x === 3) { import profile from './profile/Profile';}以上代码会报错,就算不报错也会直接最先执行impory语句。那么
2021-01-28 15:26:08 920 2
原创 vue如何给插槽slot设置样式?
vue如何给插槽slot设置样式?slot是vue的使用中非常重要的一个标签,但是对于这样的标签也有些许问题,如果我们想直接对slot进行样式的编写呢?给slot添加一个id或者class?,不管是静态的class还是动态绑定的class,在实例使用插槽的时候,会直接替换掉<template> <div id='text'> <slot :class="{active: isActive}" name="item-text"></slot> <
2021-01-27 18:02:03 21124 4
原创 vue组件化思想应用之tabbar
vue组件化思想应用之tabbarApp.vue调用了TabBar.vue和TabbarItem.vue其中App.vuehtml代码<template> <div id="app"> <tab-bar> <tab-bar-item v-for="(value,name) in tabbar" :key="name"> <img slot="item-icon" :src="require('./asset
2021-01-27 16:52:56 127
原创 vue之v-bind踩坑系列——绑定src
vue之v-bind踩坑系列之绑定srcv-bind在绑定img标签中的src属性时,vue会把相对地址解析成字符串,而非路径所以会导致图片无法正常显示无法生效的代码`<tab-bar-item v-for="i in 4"> <img slot="item-icon" :src="'./assets/img/tabbar/'+tabbaricon[i-1]+'.svg'" alt=""></tab-bar-item>`data(){ retur
2021-01-27 16:01:04 1265 1
转载 2020-10-17
作者:大卫德刘链接:https://www.zhihu.com/question/404926433/answer/1318010429来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。定义变量得到的内存,在它被定义的作用域结束之后(一般就是定义语句所在的大括号),就会被释放,而malloc得到内存可以存活到被free的时间例如int *f() { int n = 10; return &n;}int *g() { in.
2020-10-17 15:04:19 149
原创 原码和反码的原理以及表示范围的缘由详情解析
原码和反码的原理以及表示范围的缘由详情解析‘这片文章是为了说服我自己的,以自己教自己的视角写的,大家参考参考即可,不喜勿喷’//,我们只看负数,因为只有负数的原补反不同,//1)首先看下纯小数的原码,补码,反码,x是真值,假设字节长度为n,真值意思就是是它原本的值,比如//-0.10000,换成十进制就是-0.5;n就是计算机的位数,说白了就是一串编码有多少位,其中第一位一般表示符号位//原码:就是要表示出他的正负号,即如果为负数,那么小数点前面的二进制位要为1,反之则为0,那么如何计算?//[
2020-06-11 15:47:20 1166
原创 双链表的操作——创建初始增删改
双链表的操作#include <stdio.h>#include <stdlib.h>typedef int ElemType;typedef struct DNode{ ElemType data; struct DNode *prior,*next;}DNode,*DLinkList;bool InitDlinkList(DLinkList &L){ L=(DNode *)malloc(sizeof(DNode)); if(
2020-06-05 11:08:35 92
原创 数据结构单链表所有操作,创建,初始,增删改查逆置
#include<stdio.h>#include <stdlib.h>typedef int ElemType;typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*LinkList;bool InitList(LinkList &L){ //带头节点(没有值的节点,只有next指针的结构体初始化,且头节点值本就为空 L = (LNode *)mallo.
2020-06-05 09:56:22 174
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人