自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Linux基本面试题

转载自https://www.cnblogs.com/cbslock/p/10136220.html说一些你比较常用linux指令  1.1、ls/ll、cd、mkdir、rm-rf、cp、mv、ps -ef | grep xxx、kill、free-m、tar -xvf file.tar、(说那么十几二十来个估计差不多了)2、查看进程(例:如何查看所有xx进程)  2.1、ps -ef | grep xxx  2.2、ps -aux | grep xxx(-aux显示所有状态)3、

2020-12-10 09:53:50 284

原创 redis的字典(Hash)

字典(Hash)Redis的字典是使用HashTable作为底层实现,一个哈希表存储多个键值对节点。字典结构typedef struct dict { //类型特定函数 dictType *type; //私有数据 void *private; //哈希表 dictht ht[2]; //rehash索引 in trehashidx; //当没有进行rehash时,为-1} dict;type是一个在指向dictType结

2020-11-08 12:49:25 827

原创 【Java】lambda的方法引用

本文将介绍lambda表达式的几种方法引用:静态方法引用、非静态方法引用、构造函数引用。较为特殊的对象方法引用留到下一篇博客来说明。public class Test { //为了展示方便,将函数式接口写于同一类中 @FunctionalInterface public interface Calculate { int calculate(int a, int b); } public static void main(Stri...

2020-08-31 20:39:30 620 2

原创 【springboot】使用easyexcel导出Excel文件

业务场景:今天开发的时候遇到一个需求是将课程信息导出为本地Excel文件,选用的是目前较为方便且学习成本极低的alibabaeasyexcel:easyexcel仓库。导入依赖到POM文件 <!-- poi 相关--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi&lt...

2020-08-13 10:09:13 4176 4

原创 【Mybatis】使用<resultMap>接收一对多查询的结果

业务场景: 今天在工作的时候需要编写一个接口:传入一个userId查出所有由该用户提出的问题,并且将该问题下的所有回答也查出来。 这涉及到了两张表:Question(问题表)和Comment(评论表,包含一个question_id字段指向所属的问题主键ID),这两张表是一对多的关系。 处理思路是写一条SQL语句以question_id为条件将Question左连接Comment,并且使用resultMap进行接收。 resultMap中可用&...

2020-08-04 14:27:48 2655

原创 【Mybatis】Mybatis中的Selective(附例子)

Mapper中的Selective在我们编写CRUD的时候经常遇到,如insertSelective和updateByPrimaryKeySelective,顾名思义他们区别于普通insert和update方法于Selective(选择性)。updateByPrimaryKeySelective与updateByPrimaryKey的区别 当使用updateByPrimaryKeySelective时,他会忽略你注入的值中为null的数据,只更改不为null的值。 而当使用u......

2020-07-29 18:55:44 2299

原创 【Linux】常见目录及其作用

目录名 目录作用 /bin/ 存放系统命令的目录,普通用户和root用户都可以执行,且单用户模式也可以执行 /sbin/ 存放个系统环境配置有关的命令,只有root用户可以使用这些命令进行环境配置,有些命令也可以由普通用户查看 /usr/bin/ 存放系统命令的,是在后期安装的软件的运行脚本,普通用户和roo...

2020-07-17 22:34:29 383

原创 JUC并发包之CountDownLatch、CyclicBarrier和Semaphore(附测试代码)

使用CountDownLatch、CyclicBarrier和Semaphore这三个线程同步器类可以大大减少在Java并发编程中使用wait、norify、join等来实现线程同步的代码量并保证正确性。同时这三个类的使用也各有区别,接下来进行一一介绍。CountDownLatchCountDownLatch经典场景是一个主线程等待多个子线程执行完毕再进行汇总的场景。他的内部维护一个计数器来控制线程同步(实际上是使用AQS来存放计数器的值)。首先在初始化CountDownLatch时我们设..

2020-07-13 21:45:59 180

原创 Jedis连接失败解决:JedisConnectionException: Failed connecting to host localhost:6379

今天在使用Jedis连接redis时报如下错误此时我的redis服务器端已正常打开,经过查看发现没有将bind注释掉以及关闭保护模式。解决方法为修改redis.conf配置,将此句注释。并将protected-mode修改为no之后重启redis-server即可。...

2020-05-13 23:26:26 13183 2

原创 linux中下载及安装redis

作为一个linux小白,在linux环境完成redis下载及安装时遇到了一些坑,通过此文章记录下来。下载rediswget http://download.redis.io/releases/redis-5.0.4.tar.gz通过wget命令进行下载,此步骤需要联网。解压tar -zxvf redis-5.0.4.tar.gz进入下载路径,使用tar -zxvf命令...

2020-05-07 00:14:22 321

原创 Java并发编程——ThreadLocal

我们知道,在多线程访问同一个共享变量的情况下,为了保证不出现并发问题,我们往往需要对其进行同步操作,一般是通过加锁。那么,有没有一种方法,创建一个变量,使得每个线程对其进行访问都是访问自己线程的变量呢?ThreadLocal就可以实现这个操作。何为ThreadLocal ThreadLocal是JDK提供的,位于java.lang包中,它提供了一...

2020-04-26 17:40:05 194 1

原创 JVM中对象的创建细节、内存布局及访问

Java作为一门面向对象语言,在运行过程中无时无刻都伴随着对象的创建。在语言层面,我们常常是用new来进行一个对象的创建,而其在Java虚拟机中的细节却要复杂许多,创建之后的内存布局和访问方式也值得探讨,下面将以HotSpot虚拟机为例进行一一介绍。JVM中对象的创建1、类加载过程 当虚拟机遇到一条字节码的new指令时,首先它会先检查是否能在常量池中定位到一个...

2020-04-22 18:07:42 263

原创 JVM运行时数据区域(JVM内存模型)

Java虚拟机在执行Java程序时会把它管理的内存划分为若干个不同的数据区域,这些区域各有用途,有的会随着虚拟机进程的启动而一直存在,有的会依赖用户线程的启动和结束而创建和销毁,由此可分为线程共享和线程私有的两部分,如图所示(来源自百度百科),下面将进行一一介绍。 程序计数器 程序计数器是一块内存较小的区域,它是线程私有的,是所属线...

2020-04-22 17:22:09 529

原创 一文带你理解散列表(哈希表)

散列表(Hash Table)也叫哈希表,是一种在实际编程过程中被广泛使用的数据结构,但是你是否真的理解它呢?本篇文章将从原理对其进行分析。散列思想下面举一个例子,学校举报运动会,长跑项目总共有60名选手参加,对每个选手按照年级+班级+参赛序号的方法进行编号,我们希望利用编程对每个运动员的个人信息进行存储,并能通过编号进行快速查找。我们采取的办法是,用数组来存储运动员的信息(数组支持时...

2020-03-18 04:07:14 316

原创 初次购买云服务器用于部署项目详细教程

当我们做好一个javaweb项目时,很希望可以将其放在公网上,这时候很多人就会选择购买服务器,本篇文章将从头到尾展示如何购买一个云服务器。购买服务器现在有很多厂商出售各种服务器,这是一种比较快捷方便的方法,而且如果你是大学生,还可以享受学生优惠,我选择的是阿里云服务器,如果你选择的是其他厂商的也没关系,这一步大同小异。一、登录阿里云官网,如果你是第一次使用,先注册并进行学生身份认证。...

2020-03-16 12:12:35 2114

原创 详解二分查找(Binary Search)与其变形------java实现

二分查找是一种简单易懂的快速查找算法,时间复杂度也十分优秀,为O(logn),即使是2的32次方规模的大数据,最多也只需比较32次即可找到。思想分析:二分查找运用了二分思想,在一个有序的数据集合中,每次都跟待查找的区间中点作比较,将待查找的区间缩小一半,直到找到待查找的元素,或者区间被缩小为0。下面给出简单实现的java代码。public int binarySearch(...

2020-03-12 22:22:55 625

原创 桶排序(Bucket sort)------时间复杂度为O(n)的排序方法(一)

之前我们分别分析了时间复杂度分别为O(n²)和O(nlogn)的排序方法,接下来,我们来分析复杂度为O(n)的排序方法,也称为线性的排序方法。 你可能会想,这几种排序方法为什么能做到线性呢?其实,这几种排序方法并不是基于比较的,也有着较为严苛的应用场景。我们先讲桶排序。桶排序(Bucketsort)核心思想:桶排序顾名思义,是将数据放在几个有序的桶内,将每个...

2020-03-10 20:57:14 12265 2

原创 归并排序与快速排序------时间复杂度为O(nlogn)的排序算法

归并排序与快速排序时间复杂度均为O(nlogn),适合大规模的数据排序且很常用,它们都用到了分治思想,将大的问题分解成小问题来解决。接下来我们分别对其进行分析。归并排序(Merge Sort)思路:归并排序的核心思想是先分后合。假如要排序一个数组,先将其从数组中间分解为两部分,分别进行排序,之后再将排好序的两部分按序合并在一起。解决方法:归并排序用到的是分治思想,分治(处理...

2020-03-05 21:44:56 2869 2

原创 冒泡、插入和选择排序------时间复杂度为O(n²)的排序算法

本文通过围绕三个问题来比较冒泡、插入和选择排序这三个排序算法,加深对这三个排序算法的理解。时间复杂度如何(执行效率)?是否是原地排序算法(内存消耗)?排序是否需要申请额外的内存空间。是否是稳定的排序算法(稳定性)?是否会改变相同值元素的前后位置。冒泡排序(Bubble Sort) public int[] bubbleSort(int[] a, int n) { ...

2020-03-03 00:16:51 796

原创 快慢指针判断回文链表------LeetCode(234)

234.回文链表题目:请判断一个链表是否为回文链表。思考:能否用O(n) 时间复杂度和 O(1) 空间复杂度解决此题?分析:题目默认链表为单链表,因为链表与数组不同,数组支持随机访问,根据下标随机访问的时间复杂度为O(1),而链表为O(n)。我们无法通过首尾指针的方法判断是否为回文串。解决思路:我们可以使用一种快慢指针的方法来进行判断。快指针每次前进两个单位,慢指针每次前进一...

2020-02-27 22:58:08 1160 3

原创 数据结构与算法------渐进时间复杂度分析

在初学数据结构与算法的时候,复杂度分析的学习被我选择性忽略了,刷算法题看题解时也是半知半解,也让我在学习数据结构与算法的时候走了不少弯路。在最近迫于实习就业的压力下,我也决定要把这块难啃的骨头啃下。为什么要进行复杂度分析 常常有这样的疑问,对于一段代码执行的时间和占用的空间大小,通过测试完全可以实现监控,为什么还要做复杂度的分析呢?简单的说原因如下。测试结果受...

2020-02-26 23:12:14 3894 3

原创 数据结构之并查集(Union/Find)

1、概念并查集是一种用于处理一些不相交集合(Disjoint Sets)的合并及查询等问题的树形数据结构。下面我们举个例子来引入对并查集的理解。大家都看过古惑仔吧,在香港呢分布着很多的帮派,而每个帮派都有一个老大,比如什么洪兴老大蒋天生,铜锣湾陈浩南。各个帮派人数众多,小弟们通过大哥们相连,而大哥的大哥的最终大哥就是共同的老大,所以拐了很多个弯最终还是同个帮派的人,由共同的老大连接着,...

2018-08-27 17:32:26 739

原创 排序算法之堆排序(Heap Sort)——C语言实现

堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。算法分析在学习堆排序之前我们要先了解堆这种数据结构。堆的定义如下:n个元素的序列{k1,k2,···,kn}当且满足以下关系时,称之为堆。      若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶子结...

2018-08-21 16:44:21 54804 17

原创 数组下标为负数的问题(C语言)

早上看到了这样一道C语言指针题result:4 和 空int arr[5]对这个数组 来说:arr[-1]是合法的,他指向a[0]的前一个元素。但是不建议这样书写,因为a[-1]的地址是不确定的, 可能会影响到系统运行。如果同上面一题一样加上指针,可以巧妙地解决某些问题。下面贴上代码段,帮助理解。#include &lt;stdio.h&gt;int main(vo...

2018-08-20 12:25:21 23632 1

原创 Java学习笔记——String类

在Java语言中字符串必须包含在一对双引号(" ")之内,换句话说,被双引号(" ")包围的都是字符串,不能作为其他数据类型来使用,如"1+2"的输出不是3。一、字符串的创建1、String(char a[ ])2、String(char a[ ],int offset,int length)用于截取字符串的某一段,offset:开始截取字符串的位置,length:要截取的长度。 ...

2018-08-19 23:35:56 261

原创 排序算法之选择排序(Selection Sort)——Java实现

选择排序的基本思想是:每一趟在n-i+1(i=1,2...,n-1)个记录中选取关键字最小的记录作为序列的第i个元素。思路分析一趟简单选择排序的操作为:,先假设第i(从第一个坐标开始)个关键字为最小值,通过n-i次关键字的比较,选出关键字最小的记录,并和第i个记录进行交换。下面我们以第一躺比较为例来介绍。在第一趟开始时,我们先假定第一个元素是最小值,然后依次与后面的元素进行...

2018-08-18 21:47:51 2528 1

原创 排序算法之希尔排序(Shell‘s Sort)——C语言实现

希尔排序(Shell‘s Sort)又称“缩小增量排序”,它也是一种属插入排序类的 算法。希尔排序的基本思想是:先将整个待排序列分割成若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。思路分析下面 来看一下图解(图片来源于网络图片原地址)      从上图我们可以知道希尔排序需要一个增量序列来控制每一趟的分组,将分组中的元素...

2018-08-17 22:10:41 3697 2

原创 Java学习笔记:数组及其基本操作

数组是具有相同数据类型的一组数据的集合,在Java中将数组看作一个对象。1、数组的创建及初始化①一维数组a.先声明,再用new运算符分配内存声明一维数组有两种形式(以int类型为例)(1)数组元素类型 数组名字[ ]; int arr[ ];(2)数组元素类型[ ] 数组名字;int[ ] arr;声明数组后,还不能真正使用数组,需要为其分配内存空间,语法格式如下:...

2018-08-17 20:57:00 264

原创 Java学习笔记:Java中的加号“+”

在今晚学习Java时惊奇地发现Java中有“System.out.println("赋值后c的值为:"+c);”这样的与c语言不同的语法,本着打破砂锅问到底(xue dao si)的精神,稍微整理了一下,下面是整理出来的Java中加号+的用法。①算术运算符这个部分与c语言类似就不过多阐述,直接贴代码public class First { public static void ma...

2018-08-02 22:18:49 3537 2

原创 数据结构之栈(Stack)——C语言实现

1、栈的定义栈(Stack)是限定仅在表位进行插入或删除操作的线性表。对栈来说,表尾端有特殊含义,称为栈顶(top),相应的,表头端称为栈底(bottom)。 我们可以把栈形象化地看成是叠砖块的过程,在一次性只能搬动一块砖块的前提下(砖块真的很重!),我们能进行的操作是:在顶部拿走一块砖块或者放下一块砖块。 砖块的放下与拿走就是我们所说的栈的进栈...

2018-07-27 11:19:28 11152 6

空空如也

空空如也

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

TA关注的人

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