自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python爬虫实战-爬取历史天气数据

最近项目需要对合肥市历史天气数据进行爬取,分析了几个天气数据网站,最终选择天气后报网站. 将实现过程遇到的问题以及下来,供以后参考。步骤分析这里我使用的是Python中的requests库BeautifulSoup库进行爬取,自己在实现的过程中主要可分为以下几个大步骤。1.熟悉requests库和BeautifulSoup的使用:requests主要是与HTTP请求相关的库,在我们的爬虫中...

2020-03-03 17:15:47 10036 13

原创 我的2018个人总结与2019展望

在2018年最后的几个小时里,我也总结一下自己在这一年里所做的主要事情,回顾一下自己一路的成长以及做这些事情对我的意义和收获,自己未来还需要做怎样地改进等等。初入项目我在大二大三时做过学校的创新项目,可能是意犹未尽,也可能是喜欢做项目过程中解决问题的过程以及对自己代码能力的锻炼,总之,自己心里一直对做项目充满期待,希望有一天也能独立负责一个项目。怀着这样的心情,当老师问我未来研究生道路选择时,...

2020-03-03 17:15:20 3768 5

原创 MySQL基础学习3: 多表查询详解及实践

在数据库的查询中,经常涉及到不止一个表的查询,如用户与订单表的查询,商品与订单的查询等。熟练掌握多表查询相关语句能让我们处理更加复杂的数据库操作。多表查询主要有笛卡尔积,内连接和外连接,下面通过用户表和订单表的例子来解释多表查询的相关操作。创建用户和订单表建表语句如下:-- 用户表(user)create table `user` ( ...

2019-02-02 18:35:04 597

原创 MySQL优化实践: 使用Explain分析和优化MySQL查询过程

最近项目中使用的数据达到了百万级别,如果不进行优化,在查询时速度就会很慢,现在想的是先在SQL语句上加上进行优化,但有时候MySQL并不会像我们预想的那样使用索引。MySQL提供了Explain命令能够很好地查看sql语句执行情况,是否使用了索引,查询的记录数等等。where中进行函数运算我在项目中需要以时间为筛选条件,如查询2018-01-01到2018-05-31之间的记录数,但我的字段的...

2018-12-28 16:29:33 297

原创 Java学习资源整理(超级全面)

这里整理一些自己平常搜集的比较好的关于Java的学习资源,主要包括博客站点、书籍、课程等。了解Java最新资讯这部分主要是了解与Java相关的动态以及信息,能够拓展我们的视野以及寻找一些好的idea。每天早晚都可以刷一刷,可以说是每日必逛。下面列出我采取的几种方式。1.关注twitter上的Java组织以及大牛许多大牛或公司会在twitter上发布有关Java的最新动态及相关资源,多逛逛说...

2018-10-06 10:28:09 744 1

原创 Python flask中mysql查询返回json格式数据

在进行web项目开发时,经常需要查询数据库并返回json格式给前端,Java中可以使用JSONObject或mybatis直接就可以映射成map结构,而python中返回的是元组的形式(('a',1,2), ('b',2,3), ...)。下面提供几种在python flask中转换为json格式的方式。循环遍历最简单粗暴的方式就是遍历结果集,使用字典进行包装,最后使用flask的jsonif...

2020-03-03 17:17:15 8455 2

原创 阿里云服务器部署Java Web项目全过程

最近需要将一个Java Web项目部署到服务器上,方便多人共享访问。这也是我第一次接触服务器之类的东西,也花了一点时间,最终总算部署成功,写下一篇文章记录以便日后回顾。购买服务器第一步当然是需要购买一台服务器了,我选择的是阿里云的ECS,对于新用户有一定的优惠活动。服务器徐购好后可以在管理控制台下看到自己服务器的配置情况。我买的是centos7 1核2G的,详情如下:本地主机连接服务器购...

2020-03-03 17:17:01 2475 3

原创 Linux下Python虚拟环境使用

使用虚拟环境进行项目管理的好处很多,主要可以防止不同包的冲突以及不同项目可能需要的同一个包的版本也不一样。Python下的虚拟环境管理有Pipenv,virtualenv,之前一直使用Pipenv来进行管理,但最近发现Python3自带了虚拟环境支持,虽然功能可能没有Pipenv强大,但相对来说方便简单一点。创建虚拟环境首先创建一个项目目录,然后进入该项目目录下,执行命令python3 -m...

2020-03-03 17:16:48 2283

原创 Python数据可视化01: mpld3安装与使用

Python可视化工具使用最多的应该是matplotlib库了,今天推荐一款感觉不错的python数据可视化库: mpld3,结合了matplotlib和d3.js库,能够绘制出漂亮可交互的图形。mpld3能够导出HTML代码以及在jupyter notebook中使用。下面主要介绍mpld3安装中遇到的问题以及初次使用。安装安装很简单,输入命令:pip install mpld3可能还会...

2020-03-03 17:16:34 4016 1

原创 Echarts结合百度地图API绘制热力图

最近项目中需要使用echarts与百度地图API结合来绘制事故发生热力图,在将其与百度地图结合的过程中遇到了一些问题,现将其过程与解决方案记录下,以供日后参考。echarts中结合百度地图API的热力图demo:http://gallery.echartsjs.com/editor.html?c=xSJNKs7EX使用步骤1.引用echarts与百度地图扩展js文件<!--引入百度地...

2020-03-03 17:16:20 14811 6

原创 hexo博客绑定域名以及增加gitment评论

文章目录购买域名将博客同时部署至Github和Coding创建coding仓库修改_config.yml文件域名解析添加gitment评论注册OAuth Application修改主题下的_config.yml配置初始化评论总结与感想最近在NameSilo上注册了个域名,并将hexo博客同时部署到Github Page和Coding Page中以及绑定域名,在其中遇到了一些问题,将整个过程记录下...

2020-03-03 17:16:02 335

原创 Java中的fail-fast机制

什么是fail-fast机制fail-fast是一种错误检测机制,一般意义上的fail-fast是当我们的代码可能出现异常情况时,会立即抛出异常并中断执行,而不是继续执行。相反就是fail-safe机制。在java中的fail-fast机制通常是指在集合中使用迭代器遍历时,当多个线程对同一集合进行操作时,就可能会产生fail-fast。比如当一个线程A通过迭代器正在遍历集合时,另一个线程又对该...

2019-07-09 12:49:06 270

原创 HashMap源码解析(JDK8)

整体介绍HashMap实现Map接口,用于存储key-value结构,能够根据其key快速查找其value。底层实现为采用一个table数组的hash表,数组中的每一项为一个链表结构。对于每个key,先计算其hash值,然后根据hash值计算其在table数组中的位置,若该位置没有元素,则直接将其放置在该位置,否则,则出现hash冲突,需要遍历查看其所在bucket是否已经有该key了(通过ha...

2019-07-08 17:22:38 265

原创 JVM的内存布局

总体划分Java种由JVM来管理内存的分配和回收,JVM将内存区域总体可以分为堆区和非堆区,非堆区又分为JVM栈,方法区,本地方法栈,程序计数器等。其中堆区和方法区为所有线程共享的数据区,其他为各个线程私有的数据区。Java堆Java堆是JVM所管理的最大的一块区域了,也是我们最关心的。几乎所有的对象实例都在这里分配。(JIT与逃逸分析技术使得对象也可以在栈上分配)Java堆是垃圾收集器...

2019-07-04 13:25:22 166

原创 Java对象创建的过程

1. 执行类加载过程虚拟机遇到一条new指令时,首先检查该对象对应的类是否已被加载、解析和初始化过,如果没有,则先执行相应的类加载过程。2. 为对象分配内存类加载检查通过后,虚拟机就会为新生对象分配内存(对象所需的内存大小在类加载完成后便可完全确定),为对象分配内存的任务相当于从Java堆中划分出一块确定大小的内存,根据Java堆中内存是否是规整的(是否规整由采用的垃圾收集器是否带有压缩整理...

2019-07-04 13:21:13 184

原创 Java中的接口与抽象类

抽象类和接口都是用来体现OOP中的抽象概念,都可以用来实现多态。1. 抽象类抽象类表达的是“is-a”的关系,是对多个具体类公共部分的抽象,定义了子类是什么(如Bird、Duck本质上都是Animal,即可以将其抽象为Animal类),由于抽象类没有足够的信息,是不完整的,所以必须由具体的子类来继承它并实现抽象方法。抽象类定义如果一个类含有抽象方法(abstact修饰的方法),则其为抽象类...

2019-06-28 15:31:41 162

原创 剑指offer--旋转数组的最小数字

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解法分析import java.util.ArrayList;public class Solution {...

2019-06-28 15:28:38 245

原创 剑指offer--用两个栈实现队列

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解法import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new ...

2019-06-28 15:27:45 149

原创 项目中使用Jmeter进行性能测试

在web项目中,需要对网站并发以及页面响应时间等性能进行测试,人为观察肯定不行,这时就需要使用压力测试工具,Jmeter是一款基于Java的压力测试工具,简单强大。下面主要记录自己项目中使用Jmeter进行测试的过程。1. 安装Jmeter安装Jmeter之前需要先配置好Java环境,Jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi...

2019-05-29 11:24:27 3638 2

原创 二分搜索树中删除结点(Java实现)

二分搜索树的定义为:(1)所有左子树中的结点小于等于根节点(2)所有右子树中的结点大于等于根节点(3)其任意子树也满足(1), (2)(注意是所有结点)二分搜索树删除结点主要可以分为以下三种情况:(1)被删除的结点为叶子结点:直接将其置为空即可;(2)被删除的结点只有左孩子或右孩子,用其左孩子或右孩子替代即可;(3)被删除的结点左右孩子都不为空:可以采取两种做法:a. 寻找其左...

2019-05-17 16:20:46 582

原创 递归中更新值的几种方式

在做递归相关的题目时,经常需要在递归的过程中对返回结果进行更新或维护某个值作为判断条件,主要可以通过将该值作为成员变量、作为参数传递、在返回值中更新等三种方式,采用的方式不同,最终的递归程序就会不同。下面以LeetCode的404-Sum of Left Leaves为例讲解三种方式如何实现。题目大意主要是说让我们求一颗二叉树的所有左叶子值之和。Example: 3 / \ ...

2019-05-16 11:11:10 1609

原创 mybatis批量insert报错原因分析

最近在项目中需要使用mybatis的批量插入功能,但是不知道为什么出现奇怪的错误,调试了很久,最终解决。我的最初的mybatis批量插入语句如下: <insert id="insertDfldBatch" useGeneratedKeys="true" keyProperty="id"> insert into dfld_new4 (way,sjdwz,ejdwz,...

2019-03-28 09:45:35 3310

原创 二叉树非递归遍历的通用解法

最近在跟慕课网上《玩转算法面试》这门课,老师讲的很不错,其中有一节提到了用栈来模拟二叉树的前序,中序,后序遍历。二叉树的遍历的递归解法很简单,但有时面试或做题时往往会要求写出非递归的形式,一般教科书上实现的前序,中序和后序遍历的非递归形式差别都比较大,特别是后序遍历,很难理解。那有没有一种通用的迭代解法能适于这三种遍历呢?下面介绍一下这种通用解法。基本思想先给出前序遍历的递归形式代码如下:...

2019-03-14 19:41:44 1032

原创 Java中Redis存储复杂json格式数据并返回给前端

问题背景在Java Web项目中,经常需要前端请求数据,后台从数据库中查询并计算最后返回json格式数据给前端。而每次请求都需要计算一次可能比较浪费时间,这时我们可以将计算好的结果保存在redis中,下次请求时先判断redis中是否已经存在,如果是则直接从redis里取出返回,因为是在内存中,所以比较快。而自己在项目中遇到的json格式数据比较复杂,下面记录一下redis存储对象和json格式数...

2019-03-06 17:03:46 7068 2

原创 《Java编程的逻辑》笔记8: 剖析ArrayList

Part3 泛型与容器第9章 列表和队列9.1 剖析ArrayList基本原理 ArrayList内部是基于一个动态扩容的数组实现的,其实例变量声明如下:private static final int DEFAULT_CAPACITY = 10;private static final Object[] EMPTY_ELEMENTDATA = {};private static...

2019-02-23 21:28:19 206

原创 《Java编程的逻辑》笔记7: 泛型

Part3 泛型与容器第8章 泛型8.1 基本概念和原理1.什么是泛型 泛型将接口的概念进一步延伸,"泛型"字面意思就是广泛的类型,类、接口和方法代码可以应用于非常广泛的类型,代码与它们能够操作的数据类型不再绑定在一起,同一套代码,可以用于多种数据类型,这样,不仅可以复用代码,降低耦合,同时,还可以提高代码的可读性和安全性。2.简单的泛型类 public class P...

2019-02-23 10:10:50 244

原创 《Java编程的逻辑》笔记6: 常用基础类

Part2 面向对象第7章 常用基础类7.1 包装类包装类有什么用呢?Java中很多代码(比如后续文章介绍的集合类)只能操作对象,为了能操作基本类型,需要使用其对应的包装类,另外,包装类提供了很多有用的方法,可以方便对数据的操作。基本类型和包装类的相互转换 boolean b1 = false;Boolean bObj = Boolean.valueOf(b1);boolean...

2019-02-19 21:36:01 459

原创 关于ajax传递大数据量后台接收失败的问题记录

今天项目中需要在前端对数据进行处理后使用ajax请求传递给java后台,结果后台始终接受不到(为null),代码如下:function saveProj(lm, data) { $.ajax({ async: false, url: '/RoadProj/SaveProjection', type: 'post', dataType: 'json', data: {'lm'...

2019-01-12 22:34:35 2312 2

原创 MySQL基础学习2: 多表的设计以及表之间的关系

多表设计以及之间的关系系统设计中,实体之间的关系(数据库表)有三种:一对一,一对多,多对多.实例:把网上商城里面用的实体创建成表,并且将他们之间建立关系.一对多举例:用户和订单一个用户可以有多个订单--用户表CREATE TABLE `user`( id INT PRIMARY KEY auto_increment, username VARCHAR(20));--订单表C...

2018-12-22 20:59:04 895

原创 MySQL基础学习1:基本概念以及单表CURD操作

基本概念什么是数据库本质上是一个文件系统,通过标准的SQL语句对数据进行CURD操作. 关系型数据库存放实体与实体之间关系的数据库,例如用户购物下订单,订单包含商品.他们之间的关系可以通过E-R图表示。数据库发展历程如下所示:没有数据库,使用磁盘文件存储数据;层次结构模型数据库;网状结构模型数据库;关系结构模型数据库,使用二维表格来存储数据;关系-对象模型数据库;No-sql...

2018-12-22 20:43:49 426

原创 《Java编程的逻辑》笔记5: 异常

Part2 面向对象第6章 异常程序在运行过程中出现错误,有的是外部原因如网络,有的是内部原因如内存不够,更多的是程序的编程错误,比如变量未初始化就直接调用实例方法6.1 初识异常NullPointerException(空指针异常)package com.xinyue.part2;public class ExceptionTest { public static ...

2018-12-22 12:52:49 207

原创 《Java编程的逻辑》笔记4: 接口与内部类

Part2 面向对象第5章 类的扩展5.1 接口的本质很多时候,我们实际上关心的,并不是对象的类型而是对象的能力,只要能够提供这个能力,类型并不重要接口声明了一组能力,但它自己并没有实现这个能力,它只是一个约定,它涉及交互两方对象,一方需要实现这个接口,另一方使用这个接口,但双方对象并不直接互相依赖,它们只是通过接口间接交互定义接口public interface MyCom...

2018-12-12 17:13:59 234

转载 我的Java后端书架

我的Java后端书架 (2016年暮春3.0版)3.0版把一些后来买的、看的书添补进来,又或删掉或降级一些后来没有再翻开过的书。更偏爱那些能用简短流畅的话,把少壮不努力的程序员所需的基础补回来的薄书,而有些教课书可能很著名,但干涩枯燥,喋喋不休的把你带回到大学课堂上昏昏欲睡,不录。&nbsp;1. 操作系统与网络的书《Linux内核设计与实现 第3版》Robert Love...

2018-12-11 15:13:52 227

原创 《Java编程的逻辑》笔记3: 类的继承

Part2 面向对象第4章 类的继承使用继承一方面可以复用代码,公共的属性和行为可以放到父类中,而子类只需要关注子类特有的就可以了;另一方面,不同子类的对象可以更为方便地被统一处理。4.1 基本概念根父类Object默认toString方法:Point p = new Point(2, 3);System.out.println(p.toString());//out: ...

2018-12-11 14:32:28 225

原创 《Java编程的逻辑》笔记2: 类的基础

Part2 面向对象第3章 类的基础3.1 类的基本概念实例变量(方法)和类变量(方法)区别对象内存分配和数组变量类似,都有两块内存:一块存放实际内容,一块存放实际内容的位置。声明变量本身只会分配存放位置的内存空间,这块空间还没有指向任何实际内容。(引用类型: 本身不存储数据,而只是存储实际内容的位置)p = new Point(): 至少做了两件事:1)分配内存,以存...

2018-12-09 22:14:21 185

原创 《Java编程的逻辑》笔记1: 编程基础与二进制

Part1 编程基础与二进制第一章 编程基础1.1 数据类型和变量1.2 赋值基本数据类型和数组类型数字常量默认是int, 小数常量默认是doublelong a = 3232343433Lfloat f = 333.33f数组类型和基本类型内存空间表示为什么数组要用两块空间?1.3 基本运算long a = 2147483647*2 和 long a = 2...

2018-12-08 14:31:59 208

原创 git pull错误:error: Your local changes to the following files would be overwritten by merge

经常需要用两台电脑来同步代码,有时候在一台电脑上修改后忘记git pull,而在另一台电脑上git pull了,结果下次git pull就会出现 error: Your local changes to the following files would be overwritten by merge的错误,解决方法如下:1. 如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下...

2018-10-18 10:01:46 456

原创 ubuntu下安装flask-mysqldb问题记录

python中使用mysql的包有pymysql和mysqldb,同样地,flask也为其提供了扩展:flask-mysql(貌似基于pymysql),flask-mysqldb,但flask-mysql只支持python2,而flask-mysqldb同时兼容python2和python3。在虚拟环境中安装flask-mysqldb:pip install flask-mysqldb出现如...

2018-10-10 16:49:44 725 1

原创 git使用笔记1:结合Github远程仓库管理项目

git是一个十分好用的版本控制工具,我们经常在本地使用git进行项目开发,Git 并不像 SVN 那样有个中心服务器,如果想要通过 Git 分享你的代码或者与其他开发人员合作,就需要将数据放到一台其他开发人员能够连接的服务器上。我们经常使用GitHub作为远程仓库。创建远程仓库要想将本地项目传到GitHub上,首先需要在GitHub上新建一个仓库,填入仓库名,如下图所示:本地项目与远程仓库...

2018-10-07 19:20:48 332

原创 关于LeetCode上链表题目的一些trick

最近在刷leetcode上关于链表的一些高频题,在写代码的过程中总结了链表的一些解题技巧和常见题型。结点的删除指定链表中的某个结点,将其从链表中删除。由于在链表中删除某个结点需要找到该结点的前一个位置,然后将前一个结点的next指针直接绕过该结点即可删除。但找到该结点的前一个位置需要指针遍历,其实还有一种更简单的trick,就是将要删除的结点的值设为该结点的后一个的值,然后删除该结点的后一...

2018-10-07 10:58:36 220

空空如也

空空如也

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

TA关注的人

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