- 博客(46)
- 资源 (1)
- 收藏
- 关注

原创 程序员必备心理学——心流
心理学之心流前言一、“心流”是什么?二、心流的好处二、如何进入心流心流状态的四个阶段第一个阶段:挣扎第二个阶段:放松第三个阶段:心流第四个阶段:巩固进入心流的技巧总结题外话前言你是否常常感觉自己明明学习了一整天,但是就是感觉没有太多的收获。这个时候除了你的学习方向等问题之外,也可能是你的学习方法太低效了。作者本人就经常有这种情况,好在偶然间在b站刷到一个大佬的这个心理学方法论。个人感觉这个方法论对我的学习效率有很大的提高,它就是心理学中的“心流”状态。一、“心流”是什么?心理理论之父、积极心理学
2021-01-20 13:39:07
1081
5
转载 java程序在内存中的存储分配情况
java程序在内存中的存储分配情况一、堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身栈区:1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中2.每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。3.栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)
2021-07-29 11:43:06
234
原创 docker基础篇
docker基础篇文章目录docker基础篇是什么能干什么一次构建、随处运行企业级三要素安装配置阿里云镜像加速运行hello-world运行底层原理docker容器和虚拟机(VM)的区别常用命令帮助命令镜像命令docker images 列出本机上的镜像docker search 某个XXX镜像的名字docker pull 某个镜像的名字docker rmi 删除本地一个或多少镜像容器命令新建并启动容器列出当前所有**正在运行**的容器退出容器启动容器重启容器停止容器强制停止容器删除已停止的容器后台启动一
2021-03-27 10:20:41
278
原创 Mysql语句优化
Mysql语句优化文章目录Mysql语句优化1.LIMIT语句2.隐式转换3.关联更新、删除4.混合排序5.EXISTS语句6.条件下推7.提起缩小范围8. 中间结果集下推1.LIMIT语句分页查询是最常见的查询场景之一,通常也是最容易出问题的地方,你真的会写分页查询语句吗?常见写法:SELECT * FROM userORDER BY creat_timeLIMIT 1000,10;当然可以加上组合索引,提高性能。上面的语句基本可以解决90%的分页查询,但是到LIMIT子语句变成 L
2021-03-20 14:39:27
236
1
原创 2 观察者模式(设计模式笔记)
2 观察者模式(别名:发布-订阅)概念定义对象间的一种一对多的依赖关系,当一个对象状态发生变化时,所以依赖于它的对象都得到通知并被自动更新。模式的结构与使用角色主题(Subject)观察者(Observer)具体主题(ConcreteSubject)具体观察者(ConcreteObserver)结构Subject依赖于Observer最重要!!!package Observer;/** * @author chx * @version 1.0 * @descript
2021-03-15 16:29:45
218
原创 1 单例模式(设计模式笔记)
1 单例模式概述:使得一个类的对象成为系统中的唯一实例。具体实现:构造函数私有化限制实例的个数懒汉式(时间换空间)public class Singleton2 { public static Singleton2 singleton2; private Singleton2(){} public static Singleton2 getInstance() throws InterruptedException { if(singleton
2021-03-15 16:28:06
87
原创 第三章 UML类图简介(设计模式笔记)
第三章 UML类图简介3.1类3.2接口名字层必须有<>3.3 泛化(继承)关系箭头终点端指向父类(空心三角形)3.4 关联(组合1)关系B类是A类的成员变量 ,称A关联B。 箭头终点端指向B3.5 依赖(组合2)关系B类是A类的某个方法的参数 ,称A依赖B。 箭头终点端指向B(虚线)3.6 实现关系箭头终点端指向接口(虚线,空心三角形)3.7 注释...
2021-03-15 16:25:13
136
原创 面向对象的几个基本原则(设计模式笔记)
第二章 面向对象的几个基本原则2.1 面向抽象原则设计一个类时,不应面向具体的类,而且面向抽象类或接口。2.2开—闭原则 设计应当对扩展开发,对修改关闭。2.3多用组合少用继承 最终目的降低耦合。继承: 直接用extends继承父类组合:关联 将父类作为子类的属性来调用组合:依赖 将父类作为子类传入的参数来调用2.4高内聚—低耦合原则...
2021-03-15 16:20:38
97
原创 JVM类的加载器及加载过程
类的加载器及加载过程类的加载过程加载—>验证—>准备—>解析—>初始化加载:通过一个类的全限定类名获取此类的二进制字节流将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口链接(验证、准备、解析):验证:确保Class文件的字节流包含信息符合当前虚拟机要求;保证加载类的正确性,不会危害虚拟机的自身安全;准备:为变量分配默认值(不包括final修饰的);不
2021-03-07 17:41:24
190
1
原创 Spring面试题(下)
Spring面试题(下)文章目录Spring面试题(下)1.什么是面向切面编程(AOP)2.面向切面编程(AOP)的作用3.AOP的实现方式4.事务控制的场景5.如何实现AOP6.spring中实现通知7.spring中基于AOP实现事务8.spring中实现声明式事务1.什么是面向切面编程(AOP)AOP:全称是Aspect Oriented Programming 即:面向切面编程简单的说就是我们把重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的原有代码
2021-03-06 18:13:29
95
原创 Spring面试题(上)
Spring面试题(上)简述Spring框架为什么使用Spring(优缺点)Spring七大模块Spring中的设计模式什么是控制反转(IOC)控制反转(IOC)的作用如何使用控制反转(IOC)进行解耦BeanFactory和ApplicationContext的区别ApplicationContext接口的实现类怎么把对象给Spring容器管理bean的作用范围和生命周期实例化Bean的三种方式Spring的依赖注入Spring中的常用注解1.简述Spring框架Spr
2021-03-06 18:10:23
245
原创 《深入理解Java虚拟机》——第二章
第2章 Java内存区域与内存溢出异常Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。2.1 概述 相对于c、c++在内存管理方面java把控制内存的权力基本都交给了java虚拟机,这样做的好处无疑是非常明显的,开发人员就算对内存管理一无所知也可以进行程序的编写,然而一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那排查错误、修正问题将会成为一项异常艰难的工作。2.2 运行时数据区域 [外链图片转存失败,源站可能有
2021-02-26 16:40:58
195
1
转载 Java 位运算符 &、|、^、~、<<、>>、>>>
撸了N久的代码,但是突然冒出来个位运算,我就蒙蔽了,这是什么?我是谁?我在干什么?我在哪?https://www.cnblogs.com/SunArmy/p/9837348.html
2021-02-26 12:35:44
223
原创 懒癌写算法(滑动窗口)
本文提供一个滑动窗口的算法模板,主要参照leetcode上fuxuemingzhu大佬的思路。文章目录前言一、模板代码&思路模板思路二、具体使用题目代码总结前言《挑战程序设计竞赛》这本书中把滑动窗口叫做「虫取法」,我觉得非常生动形象。因为滑动窗口的两个指针移动的过程和虫子爬动的过程非常像:前脚不动,把后脚移动过来;后脚不动,把前脚向前移动。作者:fuxuemingzhu链接:https://leetcode-cn.com/problems/get-equal-substrings-wi
2021-02-05 16:14:09
127
2
原创 SpringMVC学习笔记(一)续篇——详细配置
提示:主要介绍一些springmvc的常用组件的配置及使用文章目录前言一、入门案例的执行过程分析二、入门案例中的组件分析三、常用的注解分析@RequestMapping@RequestParam@RequestBody@PathVariable@RequestHeader@CookieValue@ModelAttribute@SessionAttributes总结前言springmvc是基于组件来进行开发的,所以在正式开发之前需要把需要的组件先配置上。本人菜鸡一枚,如有错误请轻喷。一、入门案
2021-01-30 15:51:15
127
原创 SpringMVC学习笔记(一)
文章目录前言一、 SpringMVC 的基本概念概念三层架构MVC 模型二、 SpringMVC的入门程序创建WEB工程,引入开发的jar包配置核心的控制器(配置DispatcherServlet)编写springmvc.xml的配置文件编写index.jsp,success.jsp和HelloController控制器类配置&启动tomcat总结前言每日毒鸡汤:你如果努力,你有诗和远方也没用,生活对你虽远必诛。提示:以下是本篇文章正文内容,下面案例可供参考一、 SpringMVC 的基
2021-01-28 22:32:28
111
原创 mybatis学习笔记2
详解mybatis配置文件前言一、Maven依赖二、SqlMapConfig.xml(主配置文件)基本配置额外配置配置别名引入属性文件进行配置总结前言本文将较为详细的阐述mybatis的配置文件一、Maven依赖mybatis所需依赖: <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId&
2021-01-20 14:55:58
208
1
原创 LeeCode( 位运算)136_只出现一次的数字
LeeCode( 位运算)136_只出现一次的数字题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/single-number著作权归领扣网络所有。商业转载请联系官
2021-01-19 09:38:10
134
原创 LeeCode( 模拟)57_插入区间
LeeCode( 模拟)57_插入区间题目:给出一个无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。示例 1:输入:intervals = [[1,3],[6,9]], newInterval = [2,5]输出:[[1,5],[6,9]]示例 2:输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]输出:[[
2021-01-17 10:19:54
125
原创 LeeCode( 优先队列)45_跳跃游戏 II
LeeCode( 贪心算法)45_跳跃游戏 II题目:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。说明:假设你总是可以到达数组的最后一个位置。来源:力扣(LeetCode)链接:https://lee
2021-01-14 14:22:02
175
原创 JavaWeb项目部署服务器并配置ssl证书教程
JavaWeb项目部署服务器并配置ssl证书教程相信大家学了1.2年的编程后可能已经学会了自己写web项目,但是也只能在自己本地玩耍,十分的打击学习热情(主要是没办法跟朋友装杯)。本文是一篇较为详细的从配置服务器开始的web项目部署教程。准备工作:一个服务器(本文采用阿里云的轻量型服务器)一个可以在本地运行的javaweb项目(本文采用ssm+mysql项目)一双手(en。。。)部署流程:购买服务器 —> 配置服务器的java环境和mysql等等 —> 把本地项目打成war包上
2021-01-13 13:51:00
3036
1
原创 LeeCode( 优先队列)239_ 滑动窗口最大值
LeeCode( 优先队列)239_ 滑动窗口最大值题目:给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值[1 3 -1] -3 5 3 6 7 31 [3
2021-01-13 11:39:44
204
1
原创 LeeCode( 排序)215_ 数组中的第K个最大元素
LeeCode( 排序)215_ 数组中的第K个最大元素题目:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。来源:力扣(LeetCode)链接:https://leetcode-cn.com/
2021-01-12 11:16:10
120
原创 LeeCode( 动态编程)42_接雨水
LeeCode( 动态编程)42_接雨水题目:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例 2:输入:height = [4,2,0,3,2,5]输出:9提示:n == height.leng
2021-01-07 10:39:00
131
原创 LeeCode( dfs)329_矩阵中的最长递增路径
LeeCode( dfs)329_矩阵中的最长递增路径题目:给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。示例 1:输入: nums =[[9,9,4],[6,6,8],[2,1,1]]输出: 4解释: 最长递增路径为 [1, 2, 6, 9]。示例 2:输入: nums =[[3,4,5],[3,2,6],[2,2,1]]输出: 4解释: 最长递增路径是 [3
2021-01-06 18:51:17
121
原创 LeeCode( 堆)218_天际线问题
LeeCode( 堆)218_天际线问题题目:城市的天际线是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。给你所有建筑物的位置和高度,请返回由这些建筑物形成的 天际线 。每个建筑物的几何信息由数组 buildings 表示,其中三元组 buildings[i] = [lefti, righti, heighti] 表示:lefti 是第 i 座建筑物左边缘的 x 坐标。righti 是第 i 座建筑物右边缘的 x 坐标。heighti 是第 i 座建筑物的高度。天际线 应该表示为由 “关键
2021-01-05 10:02:17
231
原创 LeeCode( 递归,迭代)21_合并两个有序链表
LeeCode( 递归,迭代)21_合并两个有序链表题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-sorted-lists著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注
2021-01-04 10:31:56
151
原创 LeeCode( dfs,bfs)课程表
LeeCode( dfs,bfs)课程表题目:你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]]输出: true解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。示例 2:输入: 2, [[
2021-01-03 23:38:50
185
原创 LeeCode( LRU 最近最少使用)LRU 缓存机制
LeeCode( LRU 最近最少使用)LRU 缓存机制题目:运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组
2021-01-02 17:43:17
294
原创 LeeCode(无向图,dfs,bfs)133_克隆图
LeeCode(无向图,dfs,bfs)133_克隆图题目:给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。class Node {public int val;public List neighbors;}测试用例格式:简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1(val = 1),第二个节点值为 2(val = 2),以此类推。该图在测试用例中使用邻接列表表示。
2021-01-02 11:53:48
207
2
原创 LeeCode(哈希表)128_ 最长连续序列
LeeCode(哈希表)128_ 最长连续序列题目:给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。进阶:你可以设计并实现时间复杂度为 O(n) 的解决方案吗?示例 1:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。示例 2:输入:nums = [0,3,7,2,5,8,4,6,0,1]输出:9来源:力扣(LeetCode)链接:https://le
2021-01-01 18:05:16
233
原创 LeeCode(递归,队列)101_对称二叉树
LeeCode(递归,队列)101_对称二叉树题目:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ 2 2/ \ / 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1/ 2 2\ 3 3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/symmetric-tree著作权归领扣网络所有。商业转载请联系官
2020-12-31 15:10:46
95
原创 LeeCode(回溯,dfs)17_电话号码的字母组合
LeeCode(回溯,dfs)17_电话号码的字母组合题目:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。来源:力扣(LeetCode)链接:https://leetcode-cn.com/p
2020-12-31 11:11:33
116
原创 LeeCode (二叉树,堆栈)94_二叉树的中序遍历
LeeCode (二叉树,堆栈)94_二叉树的中序遍历题目:给定一个二叉树的根节点 root ,返回它的 中序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,3,2]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[2,1]示例 5:输入:root = [1,null,2]输出:[1,2]来源:力扣(LeetCode)链接:https://leetc
2020-12-30 21:10:00
206
原创 LeeCode(位,dfs)78_子集
LeeCode(位,dfs)78_子集题目:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/subsets著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题思
2020-12-29 17:10:52
127
原创 LeeCode(排序)56_合并区间
LeeCode(排序)56_合并区间题目:给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: intervals = [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: intervals = [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。来源:力扣(LeetCode)
2020-12-29 15:00:04
111
原创 LeeCode(动态规则,贪心算法)44_通配符匹配
LeeCode(动态规则,贪心算法)44_通配符匹配题目:给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。‘?’ 可以匹配任何单个字符。‘*’ 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。示例 1:输入:s = “aa”p = “a”输出: false解释: “a” 无法匹配 “aa” 整个字
2020-12-28 16:14:20
298
原创 LeeCode(堆,链表 )23_合并K个升序链表
LeeCode(堆,链表 )23_合并K个升序链表题目:给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6
2020-12-28 10:16:35
228
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人