自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java 实现快排

快排和堆排是面试中常问的两种排序方式快排的java代码如下堆排序的思想是在待排序的数组中随机取一个数作为基准pivot比pivot小的元素放在pivot的左边,比pivot大的元素放在pivot的右边,然后对左右两边的数组递归的进行这样的步骤public class QuickSortion { public static void main(String[] args) { int[] nums = {7, 6, 7, 11, 5, 12, 3, 0, 1};

2021-09-16 20:15:33 664

原创 堆排序java实现

堆排序是面试中常问的排序方法之一,堆排序的思想是利用堆的性质进行排序一般来说,升序用大顶堆,降序用小顶堆,下面是小顶堆实现升序排序public class HeapSort { /* 堆排序就是将大顶堆的堆顶元素与最后一个元素交换 然后将剩余的n - 1个元素建堆 重复这个过程,最后得到的数组就是排好序的 */ public static void sort(int[] arr) { for (int i = arr.lengt

2021-09-16 17:06:21 137

原创 java用数组实现最小堆

public class BinaryHeap { private static final int DEFAULT_CAPACITY = 10; //默认容量 private int[] array; //底层结构 private int currentSize; //当前存放的元素个数 /* 无参构造 */ public BinaryHeap() { array = new int[DEFAULT_CAPA

2021-09-16 16:50:56 320

原创 线程池的创建方式

线程池一、什么是线程池池化技术在很多地方都有应用,如线程池、数据库连接池、Http连接池等都是池化思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。线程池提供了一种限制和管理资源的方式。每个线程池还维护一些基本信息,如已完成任务的数量。二、使用线程池的好处:**降低资源消耗:**通过重复利用已创建的线程减低线程创建和销毁造成的消耗**提高响应速度:**当任务到达时,任务可以不需要等到线程创建就能立即执行。**提高线程的可管理性:**线程是稀缺资源,如果无限制的创建

2021-09-07 17:43:36 137

原创 并发编程的三个重要特性

并发编程的三个重要特性原子性:一次操作或多次操作,要么所有的操作全部得到执行并且不会受到任何因素的干扰而中断,要么所有的操作都不执行。sychronized可以保证代码片段的原子性。可见性:当一个线程对共享变量进行了修改,另外的所有线程都可以立即看到修改后的最新值,volatile关键字可以保证共享变量的可见性。有序性:禁止java编译器对代码进行重排序优化,volatile关键字可以禁止指令重排序volatile关键字的作用:为了提高程序的处理速度,CPU Cache中会缓存内存数据供CPU使用

2021-09-07 11:13:18 343

原创 为什么单例模式中的懒汉模式要用双重校验锁

为什么单例模式中的懒汉模式要用双重校验锁首先懒汉模式的用双重校验锁的代码如下:public class ST { private static volatile ST st = null; private ST() { } public static ST getInstance() { if (st == null) { synchronized (ST.class) { try {

2021-09-06 22:11:57 1188

原创 Hyperledger Fabric2.0环境部署和部署过程中的问题解决以及fabric-samples的启动

wget https://dl.google.com/go/go1.13.4.linux-amd64.tar.gz 最近的项目涉及到了区块链,所以首先要对区块链的环境进行部署,下面对本次的Hyperledger Fabric2.0部署过程以及部署中遇到的问题与解决方法进行了记录。一 、基础环境整理我的系统是ubuntu20.04 所以本文是基于ubuntu20.04的Fabric环境部署过程的记录1、安装curl:#sudo apt install curl安装成功后查看版本:#curl --v

2020-11-27 10:41:47 639

原创 ubuntu下出现permission denied的解决办法

ubuntu下出现permission denied的解决办法最近需要使用linux系统,就在电脑上安装了vmware虚拟机,在虚拟机上安装了ubuntu20.04系统。学习中用到了docker容器,照着docker学习菜鸟教程的时候在命令行里使用 $ docker run -it ubuntu /bin/bash 来使用ubuntu镜像启动一个容器的时候遇到了 permission denied的问题。原因是权限不足,有很多文章通过chomod命令更改权限为777,但是我感觉很不方便,不适合我这种刚使

2020-11-09 16:15:43 7735

原创 Java第一天

安装java IEDA之后想开始写java 程序,但是提示no SDK ,因为是个小白,不知道SDK 是什么,于是就百度了一下:SDK(software Development Kit)软件开发工具包,是可用于开发面向特定平台的软件应用程序的工具包。举个例子,如果想组装一个飞机,构建模型时,需要一整套物品去组装。SDK相当于组装他们所需的工具,包括装配说明等。API与SDK的区别:一个API 相当于你跟它说要求,他会为你完成任务。而且你不需要知道他是如何做到的,你只需要问你想要的东西。举个例子来理解:你

2020-09-02 22:30:14 112

原创 第一篇

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2020-09-02 22:19:52 92

空空如也

空空如也

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

TA关注的人

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