自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 爬虫再体验--爬取当当书籍--进阶篇

爬取当当书籍–进阶篇 伪装浏览器,随机user-agent抓包,模仿ajax请求,获取json数据数据存储到数据库中

2017-08-22 15:04:48 4057 1

原创 Process finished with exit code -1073741819 (0xC0000005)---BUG解决方案

Process finished with exit code -1073741819 (0xC0000005)

2022-01-05 17:16:58 1558

原创 设计模式—工厂模式

工厂模式1.简单工厂模式目的为了把客户与具体服务给分离,达到一个解耦的目的,去除了客户端对具体产品的依赖1.对于调用者来说,工厂隐藏了复杂的逻辑处理过程,调用者只需关心结果,无需在意具体实现过程,去除了对产品的依赖。2.对于工厂来说,工厂要对结果负责,保证生产出符合规范的产品。怎么做的把**服务(或者说产品)**外包出去,外包给工厂,让工厂来决定应该用哪个具体子类来实例化。这样做能把客户类和具体子类的实现解耦,客户类不再需要知道有哪些子类以及应当实例化哪个子类。客户类往往有多个,如果不使用

2021-08-08 13:54:29 126

原创 数据库索引相关知识

索引1.索引基础是什么是一种用于快速查询数据的数据结构。(类似于目录)常见的数据结构有:B树B+树Hash优缺点优点加快数据检索速度保持数据库表中每一行的唯一性(通过创建唯一性索引)缺点查的时候爽,改的时候麻烦创建和维护索引是有开销的,且在更新数据时,负担会变重,效率会降低(索引也要随之更新)占用一定的物理文件空间。索引未必一定能提高查询性能(数据量小时,杀鸡用宰牛刀)2.数据结构2.1 Hash表Hash表可以快速检索数据,接近O(1),用的拉链式(链地址

2021-08-01 20:59:42 358

原创 计算机网络基础知识

计算机网路基础知识1.体系结构物理层物理层(physical layer)的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异,数据链路层将上层的数据,无比特差错的传输到相邻节点目标机网络层三个基本问题:封装成帧透明传输差错检测网络层实现在复杂的网络上,选择合适的网间路由和交换结点,让主机A尽可能的找到主机B运输层为进程之间提供端到端的逻辑通信应用层精确定义网络应用进程之间的通信规则,通过应用进程之间的交互来完成特定的互联网应用2.T

2021-08-01 18:04:14 253 2

原创 设计模式—单例模式

单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。目的单例模式(Singleton)的目的是为了保证在一个进程中,某个类有且仅有一个实例。因为这个类只有一个实例,因此,自然不能让调用方使用new Xyz()来创建实例了。所以,单例的构造方法必须是private,这样就防止了调用方自己创建实例,但是在类的内部,是可以用一个静态字段来引用唯一创建的实例的:public class Singleton { // 静态字段引用唯一实例: private static fin

2021-07-20 10:47:48 87

原创 JVM—类加载机制

类加载机制概述是什么?是Java虚拟机把描述类的数据从Class文件中加载到内存,并对数据进行校验、转换解析和初始化,最终变成可以被虚拟机直接使用的Java类型的过程。语言特性动态加载动态连接如果是一个面向接口的类,在运行它之前,就不知道到底运行的是哪个实现类类加载的时机类的生命周期经历7个阶段:什么时候被“初始化”?遇到 new、getstatic、putstatic或invokestatic,这四条指令时反射调用先初始化其父类虚拟机启动时,指定一个执行的主类(mai

2021-07-05 09:36:44 53

原创 JVM—垃圾回收与内存分配

1. 垃圾回收与内存分配为啥要了解垃圾回收集和内存分配?排查各种内存溢出、内存泄漏以及达到高并发的瓶颈时,需要对这些自动化的技术进行必要的手动调节与监控。要解决的三个问题Who—哪些对象需要回收?When—什么时候回收?How—如何回收?内存分配与回收的主要战场线程共享的部分Java堆方法区因为太多不确定性,运行时才知道创建哪些对象,创建多少个对象。而线程私有的部分,需要的内存在编译的时候就确定了,不需要过多的干预。2. 对象你死没死?1.引用计数算法给予引用时+1,

2021-07-05 09:36:14 95

原创 JVM—内存模型

什么是JVM是一个通过在实际的计算机上模拟各种计算机功能的虚拟计算机,也是JAVA语言“Write Once ,Run Anywhere~”的核心技术。JDK、JRE和JVM 三者是什么关系?官方图很显然,JDK是JRE的超集,除了包含JRE以外,还包含一些编译调试程序和应用的工具。(包括java、javac、JAVA API)JRE是JVM的超集,包含JVM,并且还包含一些JAVA核心类库、运行程序和应用的其他组件。(JAVA SE API子集 + JVM)JVM主要的工作是解释字节码指

2021-07-05 09:31:38 73

原创 剑指Offer17——Java解法

class Solution { public void printNumber(char[] number){ //0不打印 //找到第一个非0 int i=0; while(i<number.length && number[i] == '0'){ i++; } //找到,开始打印 while(i<number.length){

2021-03-11 22:01:06 87

原创 LeetCode刷题小记——二叉树的最大深度

二叉树的最大深度么事刷一刷文章目录二叉树的最大深度题目解法自顶向下自底向上总结自顶向下自底向上自底向上题目解法思路:基于二叉树遍历的基础之上,带有层的信息即可。方法:自顶向下(先序遍历)自底向上(后序遍历)自顶向下思路:孩子的层数总是根节点的层数+1,所以当我们遍历到叶子节点时,更新最大层数值即可。代码如下:/** * Definition for a binary tree node. * public class TreeNode { * int val;

2020-12-06 21:57:46 138

原创 LeetCode刷题小记——二叉树的层寻遍历

LeetCode刷题小记——层序遍历没事就刷刷文章目录LeetCode刷题小记——层序遍历题目解法迭代递归题目开始干解法迭代——利用队列递归迭代顺序:从上到下,从左到右。很有秩序,多适合用队列啊!迭代的写法其实类似于图的BFS(广度优先搜索)思想:利用队列的先进先出的特点,每次出队一个节点,就把他的孩子往后排,按照左、右的顺序加入队尾(年轻然要讲武德,不许插队)。思路:初始化,根节点入队出队,并把它的孩子加入队尾重复step 2代码:/** * Definiti

2020-12-05 22:07:22 132

原创 Java子函数是否会直接改变主函数中的值,Integer等包装类为什么搞特殊?

Java子函数是否会直接改变主函数中的值,Integer等包装类为什么搞特殊?在读《剑指Offer》时,看到一个字符串操作的讲解,引发一个思考:Java语言中,子函数是否会直接改变主函数中的值?答:分情况。两种情况:基本数据类型:简单的值传递,不会改变主函数中的值。引用类型(对象的引用):引用的值传递(相当于指针的地址传递)可以改变对象属性的值。数组也是一种引用。实际上是引用的值传递(两个引用指向同一个对象,可以理解为对象的地址传递)这个时候只能改变引用所指向对象的属性,而不是对对

2020-12-02 16:06:06 772

原创 LeetCode刷题小记——二叉树的后序遍历

LeetCode——二叉树的后序遍历么事就来刷一刷!方法:递归非递归模仿系统栈二次翻转法递归写法先中后一个鬼样子。上代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val)

2020-12-01 22:25:06 161 4

原创 LeetCode刷题小记——二叉树的中序遍历

二叉树的中序遍历没事就练练方法:两大类递归非递归模仿系统栈(模仿递归的过程)手工辅助栈(利用栈的特点)递归写法代码奉上/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this

2020-11-30 11:19:11 266 1

原创 LeetCode刷题小记——二叉树的先序遍历

LeetCode刷题小记——树的先序遍历没事就来刷一刷题目给你二叉树的根节点 root ,返回它节点值的 前序 遍历。输入:root = [1,null,2,3]输出:[1,2,3]总共分两大类:递归非递归(迭代)模拟系统栈手工辅助栈递归递归就不说了,太简单。class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer&

2020-11-29 21:42:25 209

原创 Git学习小记 常用命令总结

Git命令总结git命令众多,但是常用的就那么几个,本文章总结我练习时,常用(必用)的命令起步git init 初始化仓库状态git status查看当前的状态git status -s 查看缩写的状态(看起来更简洁清晰)git log 查看日志git log --oneline 把日志呈现在一行(看起来更简洁清晰)git log --oneline --graph以图形的方式呈现loggit diff查看修改的内容基本操作git add <file> 添加某个文件到暂存

2020-08-13 20:20:23 109

转载 安装MySql 5.7

1.下载MySQL 我用的是5.7.24打开下载链接:https://dev.mysql.com/downloads/windows/installer/5.7...

2020-05-31 11:45:44 167

原创 Git 时空穿梭

Git 时空穿梭这次玩一玩Git的核心技能—时空穿梭在Quick Start中我们了解到,Git是一个版本控制系统,那么咱们就来控制一下版本。首先,看一下readme.md的版本有哪些。用git log命令查看git log readme.md 输出:commit 9624d8b969e4e0e36acd63ea5be199f2f5efa7e9 (HEAD -> master)...

2020-03-18 18:38:06 173

原创 GIt 学习小记 Quick Start

Git简介Git是什么?Git是目前世界上最先进的分布式版本控制系统(没有之一)Git有什么特点?高端大气上档次Git如何产生的呢?这是个比较有意思的故事,简单的来说,就是牛人对现有的版本控制工具感到不爽,干脆自己写一个得了。牛人就是这么牛啊!(感觉自己好菜,望尘莫及)牛人是当今最流行的服务器系统Linux创始人Linus。Git也就是为了管理开发Linux发明的。Git安...

2020-03-13 17:29:05 121

原创 《文献管理与信息管理》课程小记 第一周

第一周1.为什么人类发展的速度和时代更替的速度越来越快了呢?答:信息的传播方式更加便利了。2.读研的意义何在?全球视野面对未知事物的勇气解决问题的能力在持续努力中形成习惯任何成功的人都是优秀的研究者3.如何让一个人快速成长创业科研4.衡量创新的标准5个字:省时省力爽5.学习的策略专注可怕的不是我们有缺点,可怕的是我们没有优点向牛人学习找书网页...

2020-03-11 16:55:57 116

原创 LeetCode攻坚战--两数相加

两数相加题目描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -...

2019-11-27 20:38:20 65

原创 牌型种数

小明被劫持到X赌城,被迫与其他3人玩牌。 一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。 这时,小明脑子里突然冒出一个问题: 如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?import java.util.Arrays;public class Test3 { static int sum = 0...

2018-03-28 15:30:56 348

原创 暴力求解---组合(n选m个元素进行组合)

有时候不考虑顺序(即1 2 3 与 3 2 1 算同一个),无法使用全排列,用组合才能解决问题 这里整理了一下我常用的组合算法: 思路:主要利用List存取元素(数组也行),在取的时候注意怎么取就行了!import java.util.ArrayList;import java.util.List;public class Combine{ static List&lt;Int...

2018-03-21 17:24:27 672

原创 暴力求解 --- 全排列

对于求解范围比较小的问题来说,暴力求解(也称枚举、穷举法)是最简单直接的方式。思想:将n个元素看做n层,利用元素交换,让剩余可选元素(元素不可重复)在当前层都出现一次。 import java.util.Arrays;public class Demo { public static void main(String[] args) { int[] a =...

2018-03-21 17:19:05 888

原创 jsp更换图片,干掉缓存

去除缓存jsp的缓存有利有弊,后台更换图片,前台却无法及时显示,都是缓存惹的祸,是不是很烦恼?一句话干掉它加个在img的src中加上一个时间戳 把此行代码&lt;img src="${item.articlePic }"&gt;改成&lt;img src="${item.articlePic }?r=&lt;%=System.currentTimeMillis()...

2018-03-13 17:41:37 2420

原创 蓝桥杯 承压计算

承压计算X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。每块金属原料的外形、尺寸完全一致,但重量不同。 金属材料被严格地堆放成金字塔形。 7 5 8 7 8 8 ...

2018-03-07 18:00:14 803 1

原创 蓝桥杯 纸牌三角形

纸牌三角形A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每个边的和相等。 下图就是一种排法(如有对齐问题,参看p1.png)。这样的排法可能会有很多。如果考虑旋转、镜像后相同的算同一种,一共有多少种不同的排法呢?请你计算并提交该数字。注意:需要提交的是一个整数,不要提交任何多余内容。思路: 读完题,首先想到的就是暴力求解(全排...

2018-03-07 17:40:39 671

原创 算法训练 求先序排列

问题描述   给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度输入格式   两行,每行一个字符串,分别表示中序和后序排列 输出格式   一个字符串,表示所求先序排列  样例输入   BADC   BDCA 样例输出 ABCD**思路:对于一棵树,后序排列的最后一项一定是先序排列的第一项(根节点),同理,对于子树也是满足的。配合着中序

2018-02-01 19:47:37 381

原创 蓝桥杯-最大最小公倍数

问题描述 已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。输入格式 输入一个正整数N。输出格式 输出一个整数,表示你找到的最小公倍数。 样例输入 9 样例输出 504 数据规模与约定 1 刚看到这道题的时候,果断暴力+回溯啊,我估计大部分同学和我一样的想法,胸有成竹的撸起袖子开干。 写完后,用题中的数据已测试,OK,提交代码。 结果傻眼

2018-01-28 19:23:37 297

原创 基础练习 2n皇后问题

基础练习 2n皇后问题问题描述   给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。 输入格式   输入的第一行为一个整数n,表示棋盘的大小。   接下来n行,每行n个0或1的整数,如果一个整数为1,

2018-01-27 18:33:07 494

原创 基于Java发送邮件

基于Java进行邮箱验证或激活账户,利用邮箱发送一些通知消息

2017-09-06 16:50:12 314

原创 小小贪吃蛇——JAVA

java_se基础贪吃蛇有源码。并附上教程还有直接可以运行的程序

2017-08-26 14:29:28 1104 1

原创 整理的300多个User-Agent,拿去玩

整理的300多个User-Agent.

2017-08-22 14:15:24 3841

空空如也

空空如也

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

TA关注的人

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