自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Flutter时间转换工具类

时间转换

2022-12-05 16:32:50 903 1

转载 选择排序

#include<iostream>using namespace std; void swap(int &x, int &y){ int tmp; tmp = x; x = y; y = tmp;} void selectSort(int a[], int n){ int i, j, pos; for(i = 0; i < n - 1; i++)//进行n-1次选择 { pos = i; //pos记录最小元素的位置 for(j =.

2021-11-21 23:49:06 293

转载 冒泡排序

#include<iostream>using namespace std; void swap(int &x, int &y){ int tmp; tmp = x; x = y; y = tmp;} void bubbleSort1(int a[], int n){ int i, j; for(i = 0; i < n - 1; i++) for(j = 0; j < n - 1 - i; j++) if(a[j] > .

2021-10-30 14:19:17 285

转载 Golang 操作Excel文件

日常开发中会遇到处理Excel文件的相关操作,这里推荐一款应用比较广泛的操作Excel的开源工具Excelize。Excelize是一个用Go语言编写的库,提供了一组允许您写入和读取XLSX / XLSM / XLTM文件的功能。支持读写由Microsoft Excel™2007和更高版本生成的电子表格文档。通过高度兼容性支持复杂的组件,并提供了流式API,用于从工作表中生成或读取包含大量数据的数据。该库需要Go版本1.10或更高版本。可以使用go的内置文档工具查看完整的API文档,也可以在go.dev

2021-10-29 13:33:08 857

转载 字符串的连接

#include<iostream>using namespace std; void myStrLink(char *head, char *tail){ while(*head) head++; //不能写成while(*head++); while(*head++ = *tail++);} int main(){ char head[20] = "hello"; char tail[10] = "world"; myStrLink(head,.

2021-10-29 13:15:09 117

转载 希尔排序

#include<iostream>using namespace std; void shellSort(int a[], int n){ int i, j, pivotKey, gap; for(gap = n/2; gap > 0; gap--) { for(i = gap; i < n; i++) { pivotKey = a[i]; for(j = i - gap; j >= 0 && a[j] > pivot.

2021-10-28 18:11:32 56

转载 C#中的setter和getter

C#中的setter和getter和Objective C中的setter和getter(dot syntax / 点语法)有异曲同工之妙,现简要介绍一下C#中的setter和getter:using System; class A{ private int data; public int MyData { set { data = value; } get {

2021-10-25 13:02:07 914

转载 编写函数实现求余运算

#include<iostream>using namespace std; int mod(int x, int y){ return x - x / y * y;} int main(){ cout << 8 % 3 << endl; cout << mod(8, 3) << endl; cout << 8 % -3 << endl; cout << mod(8.

2021-10-24 17:21:14 459

转载 判断n是否为a的x次方(n, a, x都为正整数)

#include<iostream>using namespace std; bool isPower(int n, int a){ //思路很巧妙 while(0 == n % a) n /= a; if(1 == n) return true; return false;} //如果base是2,则可巧用位运算bool is2Power(int n){ return !(n & (n - 1));} int main(){ in.

2021-10-24 17:19:56 86

转载 二进制中1的个数 (某公司校园招聘网测题目)

#include<iostream>using namespace std; int getNumber1(int n){ int r = 2, sum = 0; while(n)//范式:整数n对应的r进制中的各位数字为下面的n % r (逆序) { if(1 == n % r) sum++; n /= r; } return sum;} int getNumber2(int n){ int sum = 0; while(n) { if(1.

2021-10-24 17:19:26 56

转载 二进制中1的个数 (某公司校园招聘网测题目)

#include<iostream>using namespace std; int getNumber1(int n){ int r = 2, sum = 0; while(n)//范式:整数n对应的r进制中的各位数字为下面的n % r (逆序) { if(1 == n % r) sum++; n /= r; } return sum;} int getNumber2(int n){ int sum = 0; while(n) { if(1.

2021-10-24 17:18:46 60

转载 打印前20个平凡数(某公司校园招聘笔试题目)

humble数的定义:humber = pow(2, a1) * pow(3, a2) * pow(5, a3) * pow(7, a4); 其中 a1, a2, a3, a4均为非负整数,且不全为0; 打印前20个平凡数的程序为:#include<iostream>using namespace std; bool isHumbleNumber(int number){ while(number % 2 == 0) number /= 2; while(number %

2021-10-24 17:17:50 52

转载 素数判断(某公司实习生招聘笔试题目)

设N(N >=4)为合数,则必有N = i * j; 1 < i, j < N, 不妨设 i <=j, 则有 2 <= i <= floor(sqrt(N)), 也就是说,如果N为合数,则必有因子在2到floor(sqrt(N))之间,素数判断程序如下:#include<iostream>#include<cmath>using namespace std; bool isPrime(int n){ if(n < 2)...

2021-10-24 17:17:01 63

转载 利用递归求阶乘(某公司校园招聘笔试题目)

#include<iostream>using namespace std; int fun(int n){ if(0 == n) return 1; return n * fun(n - 1);} int main(){ cout << fun(5) << endl; return 0;}

2021-10-24 17:16:21 57

转载 单例模式(某公司校园招聘笔试题目)

单例(singleton)模式, 顾名思义,也就是说类只有一个实例。在计划生育很普遍的今天,我们很容易理解单例模式:首先判断这个家庭是否生了一个孩子,如果没有生,则允许这个家庭生一个,如果已经生了一个,就不能再生孩子了。 如果外界需要知道这个家庭的信息,那么只需要问该家庭的一个孩子就可以了。如果外界需要10询问这个家庭的信息,没有必要问这个家庭的10个孩子。相反,只需要10次问同一个孩子就可以了,可见,有时候,一个孩子已经足够给外界提供信息。很多人说,孩子生得太多了,花销大。这就是单例!...

2021-10-24 17:15:28 122

转载 两个小程序入门C#

语言是用来表达思想的,语言虽然千差万别,但也大同小异,下面以两个非常简单的控制台应用程序来入门C#程序1:using System; class Example{ static void Main() { int[] a = new int[10]; //注意和C/C++相区别 int i; for (i = 0; i < 10; i++) a[i] = i; for (i

2021-10-24 17:13:31 146

转载 APM - Prometheus监控系统初探

Wikihttps://en.wikipedia.org/wiki/Prometheus_(software)Prometheus 是从 2012 年开始在SoundCloud开发的, 当时该公司发现他们现有的指标和监控解决方案(使用 StatsD 和Graphite)不足以满足他们的需求。具体而言,他们确定了 Prometheus 旨在满足的需求,包括:多维数据模型、操作简单、可扩展的数据收集和强大的查询语言,所有这些都在一个工具中。 该项目从一开始就是开源的,尽管没有明确宣布,但也开始被 Bo

2021-10-24 17:07:45 254

原创 vue 实现 excel 导入(二)

1.页面部分<template> <div class="app-container"> <!-- 导出功能 --> <div class="el-toolbar"> <div class="el-toolbar-body" style="justify-content: flex-start;"> <!-- 导出功能 --> <el-button type="

2021-10-14 19:35:59 100 1

原创 vue 实现 excel 导入(一)

1.创建监听器import com.alibaba.excel.context.AnalysisContext;import com.alibaba.excel.event.AnalysisEventListener;import com.baiyee.sdgt.cmn.mapper.DictMapper;import com.baiyee.sdgt.model.cmn.Dict;import com.baiyee.sdgt.vo.cmn.DictEeVo;import org.sprin

2021-10-14 19:33:20 114 1

转载 什么是3D

3D是three-dimensional的缩写,就是三维图形。在计算机里显示3D图形,就是说在平面里显示三维图形。不像现实世界里,真实的三维空间,有真实的距离空间。计算机里只是看起来很像真实世界,因此在计算机显示的3D图形,就是让人眼看上就像真的一样。人眼有一个特性就是近大远小,就会形成立体感。计算机屏幕是平面二维的,我们之所以能欣赏到真如实物般的三维图像,是因为显示在计算机屏幕上时色彩灰度的不同而使人眼产生视觉上的错觉,而将二维的计算机屏幕感知为三维图像。基于色彩学的有关知识,三维物体边缘的凸出部分一.

2021-10-12 18:25:02 1454

原创 移动应用安全需求分析

移动应用系统组成基于智能手机的移动应用系基本组成包括三部分:①一是移动应用,简称App;②二是通信网络,包括无线网络、移动通写完了及;③三是应用服务端,由相关的服务器构成,负责处理来自App的相关信息或数据。移动应用安全分析移动应用安全威胁主要有以下类型:①移动操作系统平台安全威胁;②无线网络攻击;③恶意代码;④移动应用代码逆向工程;⑤移动应用程序非法篡改。Android系统组成概要Android是一个开源的移动终端操作系统,其系统结构分成:①Linux内核

2021-10-12 18:16:33 466

转载 ssh连接不上

之前执行ssh ip命令一直ok, 最近换环境了, 执行ssh ip命令, 登录不了, 卡住。 man一下, 知道有个-v的用法: -v Verbose mode. Causes ssh to print debugging messages about its progress. This is helpful in debugging connection, authentication, and configuration problems...

2021-10-10 13:17:24 709

转载 mysql分布式锁的坑------ 墨菲定律:有可能出错的事情,终将出错

用mysql唯一key做分布式锁, 虽然简单, 但坑太多, 来看看: 1. 在高并发场景下, 用mysql做分布式锁, 简直是想找死。 这种问题, 不要选mysql分布式锁, 别作死。 2. 业务准备释放锁的时候, 进程被正常重启了, 或者异常崩溃了,或者掉电了, 锁永远无法释放。 这个坑, 踩过。 四个人, 通宵修数据, 呵呵哒。 墨菲定律告诉我们:有可能出错的事情,终将出错。 这种问题,也并不是毫无办法的,有办法。 ...

2021-10-10 13:17:07 236

转载 金额抵扣顺序的测试代码

写个程序,测一个小功能, OK:package mainimport ( "fmt" "sort" ) type Money struct { Principal int // 第二优先级 Interest int // 第一优先级 Time int // 在同一优先级下,再利用时间优先级} func main() { p1 := &Money{100, 80, 2} p2 := &amp...

2021-10-09 08:45:28 66

转载 golang defer的那些坑爹事儿

先来一个最简单的:package main import ( "fmt") func f() { i := 1 fmt.Println("i1 is", i) defer fmt.Println("i2 is", i) defer fmt.Println("i3 is", i)}func main() { f()} 结果:i1 is 1i3 is 1i2 is 1 ...

2021-10-09 08:43:15 156

转载 异步log“丢失“之谜

前段时间,需要修复线上数据,于是写了类似这样一个程序:func main(){ for i := 0; i < 10000000; i++ { // fix users' data log.Infof("fix details") totalInfo += "xxx" } log.Infof("total info is %s", totalInfo) // 太长了 return} 结果,在进程执行完毕后(用ps确认了),没看到最...

2021-10-09 08:38:33 202

转载 tr命令去掉换行符

tr命令很有用,来记录一下:ubuntu@VM-0-15-ubuntu:~$ cat a.txtabcdefhahaheheubuntu@VM-0-15-ubuntu:~$ ubuntu@VM-0-15-ubuntu:~$ ubuntu@VM-0-15-ubuntu:~$ cat a.txt | tr "\n" " "abc def haha hehe ubuntu@VM-0-15-ubuntu:~$ ubuntu@VM-0-15-ubuntu:~$ ubuntu@VM-0-15-

2021-10-09 08:36:31 641

转载 go panic问题一例

panic: runtime error: invalid memory address or nil pointer dereference[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x115dab8] goroutine 1 [running]:crypto/rsa.checkPub(...) /usr/local/Cellar/go/1.12.9/libexec/src/crypto/rsa/r..

2021-10-09 08:34:18 164

转载 mac上更新go版本

go.1.12版本出现编译错误:go: finding github.com/codahale/hdrhistogram latestbuild command-line-arguments: cannot load crypto/ed25519: cannot find module providing package crypto/ed25519 原因是:go版本太旧。

2021-10-09 08:31:51 423

转载 golang中多写了个冒号,差点就呵呵哒了

实际项目中,出现了很低级的错误:package main import ( "fmt") var a int func init() { a := 10 // 这里手误,多了冒号,呵呵哒 fmt.Println("init, a=", a)} func main() { fmt.Println(a)}

2021-10-09 08:30:28 122

转载 mac上的sed: invalid command code .

sed用得很熟,但在mac上执行出错,奇怪:~/hehe$ sed -i "s/taojie/taoge/g" `grep -rl taojie .` sed: 1: "./test.txt": invalid command code .~/hehe$ ~/hehe$ ~/hehe$ sed -i "" "s/taojie/taoge/g" `grep -rl taojie .`~/hehe$ ~/hehe$ ~/hehe$ cat test.txt taog..

2021-10-09 08:29:22 361

转载 golang中的2006-01-02和ParseInLocation

package main import ( "fmt" "time") func main(){ timeFormatDay := "2006-01-02" nowTime := time.Now() endTime := nowTime yesterdayTime := nowTime.AddDate(0, 0, -1) beginTime, _ := time.ParseInLocation(timeFormatDay, yes.

2021-10-09 08:28:23 843

原创 maven网页

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>学生的列表页</title> <link rel="stylesheet" href="/element-ui-2.13.2.css"> <script src="/vue.js"></script> <script.

2021-10-09 08:24:13 81

原创 简单跨域请求和带预检的跨域请求

受浏览器的同源策略限制,JavaSript只能请求本域内的资源。跨域资源共享(Cross-Origin Resource Sharing, CORS)是为解决Ajax技术难实现跨域问题而提出的一个规范,这个规范试着从根本上解决安全的跨域资源共享问题。在此之前,解决此类问题的途径往往是服务器代理、JSONP等,治标不治本。目前基本所有浏览器都已经支持该规范。一个域是由schema、host、port三者共同组成,与路径无关。所谓跨域,是指在http://example-foo.com/域上通过XMLHtt

2021-09-29 14:58:53 688

转载 go panic问题一例

写个工具,发现程序panic了:panic: runtime error: invalid memory address or nil pointer dereference[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x115dab8] goroutine 1 [running]:crypto/rsa.checkPub(...) /usr/local/Cellar/go/1.12.9/libexe.

2021-09-29 13:01:24 124

转载 python求逆矩阵

方法1:from numpy import * import numpy as np A=np.array([[1,2],[3,4]])B=np.linalg.inv(A) print(B) print(np.dot(B,A))方法2: from numpy import * a1 = mat([[1, 2], [3, 4]]) a2 = a1.I print(a2) print(a2*a1)

2021-09-28 18:38:14 6763 1

原创 什么是JDBC,在上面时候会用到它?JDBC访问数据库的基本步骤是什么?

JDBC的全称是Java DataBase Connection,也就是Java数据库连接,我们可以用它来操作关系型数据库。JDBC接口及相关类 在java.sql包和javax.sql包里。我们可以用它来连接数据库,执行SQL查询,存储过程,并处理返回的结果。JDBC接口让Java程 序和JDBC驱动实现了松耦合,使得切换不同的数据库变得更加简单。a、加载(注册)数据库驱动(到JVM)b、建立(获取)数据库连接。c、创建(获取)数据库操作对象。d、定义操作的SQL语句。e、执行数据

2021-09-28 13:55:19 252

原创 为 什 么 说 Synchronized 是 一 个 悲 观 锁 ?乐 观 锁 的 实 现 原 理又 是 什 么

a、Synchronized 显 然 是 一 个 悲 观 锁 , 因 为 它 的 并 发 策 略 是 悲 观 的 :不 管 是 否 会 产 生 竞 争 , 任 何 的 数 据 操作 都 必 须 要 加 锁 、 用 户 态 核 心 态 转换 、 维 护 锁 计 数 器 和 检 查 是 否 有 被 阻 塞 的 线 程 需 要 被 唤 醒 等 操 作 。b、随 着 硬 件 指 令 集 的 发 展 , 我 们 可 以 使 用 基 于 冲 突 检 测 的 乐 观 并 发 策 略 。先 进 行 操 作 , 如 果

2021-09-26 19:26:33 195

原创 get和post的区别?

a、get是用来从服务器上获取数据,而post是用来向服务器传递数据;b、get将表单中数据按照variable=value的形式,添加到action所指向的URL后面,并且两者用"?"连接,变量之间用"&"连接而 post是将表单中的数据放在form的数据体中,按照变量与值对应的方式,传递到action所指定的URL。c、get是不安全的,因为在传输过程中,数据是被放在请求的URL中;而post的所有操作对用户来说都是不可见的。d、get传输的数据量小,这主要应为受url长度限制;而p

2021-09-26 19:25:09 154

转载 手机号码之基数排序

七大常见排序是:冒泡排序、选择排序、插入排序、归并排序、希尔排序、快速排序和堆排序,它们都是基于比较的排序,时间复杂度最好能达到O(NlogN). 三大特殊排序是:计数排序、桶排序和基数排序,它们是非比较的排序,时间复杂度为线性。 在一些笔试面试题目中,排序算法几乎是必然会涉及到的,尤其是对于校招而言。 先来看这样一个问题: 有n个手机号码,试排序,要求时间复杂度尽可能低。 七大常见排序,时间复杂度肯定不符合要求。计数排序适合数据范围...

2021-09-26 19:14:20 477

空空如也

空空如也

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

TA关注的人

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