自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

codeMilk

个人的成长记录

  • 博客(24)
  • 问答 (4)
  • 收藏
  • 关注

原创 树的几种遍历方式

主要记录一下对于二叉树,进行遍历的几种方式,包括:前序遍历中序遍历后序遍历深度优先遍历广度优先遍历我们以下面的这个二叉树结构为例,分别描述一下这几种遍历的方式有什么不同,以及给出java实现的代码。几种遍历的区别我们知道,一个二叉树有根节点,左节点,左节点。我们遍历的顺序肯定先是左节点,再右节点。前序、中序、后序的区别就是根节点的位置。如果根节点在左节点前面,那么就...

2020-03-05 15:22:24 2587

原创 基于Docker的MySQL主从复制环境搭建

1. 前言之前的程序架构可能是这样的一种形式:当程序体量扩大后,我们进行扩展,可能会扩展多个后台服务实例,但数据库还是只有一个,所以系统的瓶颈还是在数据库上面,所以这次的主要任务就是对数据库进行扩展,主要形式为:扩展多台数据库实例,实现读写分离,对于一些写的任务分配到主数据库,对于读的任务使用子数据库进行读取。从而提高系统性能。修改后的架构如下所示:2. 环境预搭建这次使用docke...

2020-01-31 15:01:26 929

原创 Mybatis是如何实现SQL防注入的

Mybatis这个框架在日常开发中用的很多,比如面试中经常有一个问题:$和#的区别,它们的区别是使用#可以防止SQL注入,今天就来看一下它是如何实现SQL注入的。什么是SQL注入在讨论怎么实现之前,首先了解一下什么是SQL注入,我们有一个简单的查询操作:根据id查询一个用户信息。它的sql语句应该是这样:select * from user where id = 。我们根据传入条件填入id进行...

2020-01-06 18:54:52 999

原创 Java位运算符详解

前言之前了解过位运算符,左移等于除以2。但是我在看jdk源码的时候发现了一个>>>三个符号的,不明白这是什么意思,就去搜了一下,发现还挺多的知识点的,就整理了一下。首先我们知道,我们编写的程序最终都是在计算机底层进行的,计算机底层也仅支持0、1两种符号。所以当时网上有个键盘只有0、1两个键,那才是大佬用的键盘。扯远了。。。先来复习一下java的基本类型都占多少字节,占多少位(1字节等于8位)...

2020-01-02 18:07:22 1216

原创 手写红黑树的简单实现

基于《算法》一书的红黑树的插入和删除。看过不同的教材,也有不同的实现方式,但是最终的结果也大致相同,感觉这个比较容易理解,就采用这种的方式来进行简单实现。定义树节点的实体类型private static final boolean RED = true;private static final boolean BLACK = false;/** * 红黑树的节点结构 ...

2020-01-02 17:17:23 1295

原创 将链表转换为树

题目来源今天做了个题:将一个链表里的数据组装树形结构,链表里的数据已经满足树形结构要求这道题描述的很简单,但是有很多种情况。他只说了链表数据满足树形结构要求,并没有说明数据到底是什么样的,也就是题目参数具有多样性,这样其实我们给出一种解决方案就可以。而且也只要求将链表转换为树,并没有说是什么树。所以这道题说难也难,说简单也简单。解题思路最近也将平衡二叉树的原理看了一下,正好借着这...

2020-01-02 17:11:12 1695 1

原创 内网穿透并绑定自己的域名-frp

一:环境需求一台有公网ip的机器,一台内网的机器(以树莓派为例)使用软件:nginx、frpfrp软件地址:https://github.com/fatedier/frp申请自己的域名,并将域名解析到公网ip(可以为三级或四级域名)二:frp配置我们首先需要根据自己的机型下载适合的版本,要注意的是服务器与客户端都要使用同一个frp版本下载地址:https://github.com/f...

2019-04-19 10:30:54 21770 2

原创 只出现一次的数字-LeetCode136

题目是这么说的:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例1:输入:[2,2,1]输出:1示例2:输入:[4,1,2,1,2]输出:4刚开始是这样想的,先进行排序,然后我们两个一组,如果这两个数字一样,则开始下一组。如果不一样,那么第一个就是我们要找的元素。我们这组元素是奇数个,所以如果前面的都是相同的,那最后剩下...

2019-04-17 11:05:16 78

原创 微信支付宝小程序二码合一

随着现在小程序的流行,许多软件也将web页面转入到小程序之中。官方也给出了小程序生成的接口,但是如果我们微信和支付宝小程序都做了,展示两个二维码让用户扫描总是不好的,我们这里就是记录一下如果将微信小程序与支付宝小程序的二维码合并成一个,用户使用微信扫码时跳转到微信小程序,用户使用支付宝扫码时跳转到支付的小程序,并且跳转页面、携带参数都可以我们自定义。​ 其实我用的都是官网给出的文档,只是有时候大...

2019-04-02 09:54:02 10489 7

原创 使用树莓派与花生壳作为个人服务器

最近入手了一个树莓派3B+,准备把它作为个人服务器使用。所以在此记录一下安装与使用过程中的步骤。刷系统去树莓派官网下载系统输入内存卡中,我使用的官方系统Raspberryhttps://www.raspberrypi.org/downloads/ 。下载完成后刷入内存卡中。设置远程ssh访问使用文本编辑器写一个空文件命名为ssh存放到内存卡boot下更新设置我使用的是桌面版,连接显...

2019-02-15 21:44:51 4654 1

原创 利用goaccess实时监控nginx的访问日志

​ 这篇文章主要写一下我在利用goaccess对nginx生成的访问日志时的经历。​ 最终会生成一个下面类似的网页:​ 这篇文章主要写一下我在利用goaccess对nginx生成的访问日志时的经历。​ 最终会生成一个下面类似的网页:​ 我们在nginx配置文件中可以对总体的访问或单个项目的访问生成日志,我们可以对日志生成网页更加直观的查看访问信息。这是我在nginx配置文件中的配置:...

2018-12-20 16:21:33 1582

原创 nginx和tomact使用https

总体的流程如下:进入网站(http或https)-> nginx(存储静态信息,页面,图片等)如果需要走后台(tomact),对后台项目名称进行拦截,比如我们在A静态项目中需要访问B后台项目中的接口,那么我们对B文件利用nginx进行分发。由于A访问B文件会有跨域问题,我们在nginx解决跨域。 nginx.conf文件#user nobody;user root; // ...

2018-11-28 16:19:44 276

原创 微信小程序支付

微信小程序支付流程:先直接上代码public Object devicePay(int userId,String deviceCode, double money,String time) { ResultBean result = new ResultBean(); //判断设备是否存在 Device isExist = deviceDao.se...

2018-11-20 13:10:36 399

原创 java对二维码个性修改

​ 最近有一个业务需求,生成微信小程序二维码,中间的logo变成用户上传的logo,下方添加上一行文字​ 网上有一些图片覆盖或者添加文字的代码,但是没有两种情况都进行的代码,对找到的代码进行了一些拼凑踩了一些坑最终完成了需求,生成二维码,中间logo改变为用户上传的图片,二维码下方添加上一行文字。/** * 将酒店二维码,酒店logo,酒店名合并到一张图片中。 * @...

2018-11-14 17:25:08 1505

原创 网络租车系统

毕业设计-基于SSM架构的网络租车系统项目来源:之前就做了一个简易的租车都不能说是项目的项目,就是将数据库中的信息在页面以表格形式展示,输入租车天数,租赁数量确定租车信息。所以毕业设计以此为思路做一个项目。项目代码地址https://github.com/liunaijie/car-project 。里面包含论文项目说明:项目定位是一个租车平台,即将线下租车公司...

2018-06-10 10:23:54 2478 4

原创 IDEA导入elipse项目

选择导入类型,我们是导入的elipse项目,如果导入的是maven项目则选择maven 这里是导入文件路径。默认即可 选择导入的项目。 选择jdk版本,如果没有则可以点击绿色加号添加。 项目导入后点击 file -> project structure 或点击右上侧的图标修改项目。 点击 project 修改项目的jdk版本,和编...

2018-05-15 09:31:50 417

原创 卸载Oracle

由于Oracle安装之后卸载并不简单,所以将自己这几天的经验总结一下。 首先将计算机服务中的Oracle服务停掉。 将Oracle开头的都停止。 然后是将服务文件删除。 在运行窗口输入regedit,打开注册表。然后展开HKEY_LOCAL_MACHINE\SOFTWARE,找到oracle,删除。 找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl...

2018-05-07 14:04:12 159

原创 java实现经典算法

冒泡排序/***冒泡排序*比较相邻的两个元素,如果第一个比第二个大则将两个交换顺序*i<numbers.length 控制排序轮数 一般为数组长度减1次,因为最后一次循环只剩下一个数组元素,不需要对比,同时数组已经完成排序了*j<numbers.length-i 因为经过一个排序后,最大(或最小)的元素都已经放到了数组的最后一位,下次不用再进行比较。所以长度改变*/public voi

2017-11-27 15:52:41 3016 5

原创 Cassandra的安装与集群部署

一:前提 安装jdk1.8以上,python2.7 二:安装Cassandra Cassandra的下载地址:http://cassandra.apache.org/download/ 下载后将文件解压到某目录下, 然后配置环境变量 CASSANDRA_HOME为你解压的目录, path为%CASSANDRA_HOME%\bin 然后用管理员身份运行cmd(不然可能提示权限不够) ...

2017-11-22 15:18:45 4255 1

原创 list循环添加相同的map

list里面嵌套map,如果map相同,后面的map信息会替代前面的map信息,所以要将map的new放在循环里如果将map放在循环外,list的信息将全为最后一个map的信息Map map=new HashMap();List list=new ArrayList();for (int i=0;i&lt;10;i++){ map.put("first",i); map...

2017-09-25 10:55:04 1755 2

原创 前端ajax获取从后台传回的数据

这个是官网的地址 https://aui.github.io/art-template/zh-cn/docs/api.html这里的数据全是从后台传过来的,今天说一下如何操作。jsp页面:&amp;lt;div class=&quot;concrete-message&quot;&amp;gt; &amp;lt;/div&amp;gt;&amp;lt;script type=&quot;text/html&q

2017-08-16 20:42:25 5414

原创 添加节点

做项目时遇到添加节点时的一些坑: 添加节点可以用的方法有很多: 1. append() 向每个匹配的元素内部追加内容 $(A).append(B) 将B添加到A内部最后面 $("<p>a</p>").append("<span>b</span>") =><p>a<span>b</span></p> 2. appendTo() 类似append (A)

2017-08-14 17:07:14 1061

原创 js随笔

JavaScript常用输出方式 document.write() 可向文档写入 HTML 表达式或 JavaScript 代码 alert() 将信息以警告框的形式展现 innerHTML 获取或者设置对象的HTML内容 基本语句 JavaScript的语法和Java语言类似,每个语句以;结尾,语句块用{…} 注释 以//开头直到行末的字符被视为行注释

2017-07-28 09:58:08 188

原创 前端html随笔

浏览器调试工具: Elements(页面元素) 使用元素面板可以自由的操作DOM和CSS来迭代布局和设计页面 Console(控制台) 在开发期间,可以使用控制台面板记录诊断信息,或者使用它作为 shell在页面上与JavaScript交互。 Sources(源代码) 在源代码面板中设置断点来调试 JavaScript,或者通过 Workspaces(工作

2017-07-27 19:21:03 211

空空如也

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

TA关注的人

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