自定义博客皮肤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)
  • 收藏
  • 关注

转载 BIO NIO AIO IO多路复用

目录   一、基础概念 一、阻塞和非阻塞 二、同步和的异步 三、阻塞非阻塞和同步异步的结合 同步阻塞: 同步非阻塞: 异步阻塞: 异步非阻塞: 二、BIO模型  (Blocking IO)同步阻塞IO  BIO特点 三、NIO模型(Non-blocking IO) NIO特点: 四、IO多路复用模型 IO多路复用和NIO的区别 ...

2022-02-23 17:04:50 740

原创 volatile关键词

继上一篇文章提到的Java内存模型的原子性、可见性、有序性问题,针对性讨论一下volatile关键字的作用。synchronized主要修饰方法和代码块,而volatile修饰变量,都是在多线程同步中起作用。volatile修饰共享变量(类的成员变量、类的静态成员变量),具有如下性质:(1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了该变量的值,这新值对其他线程来说是立即可见的。如何理解可见性呢?它会强制将线程工作区变量缓存的修改操作立即写入主存;同时会导致其他CPU中对应的缓存行无

2022-02-22 15:15:42 189

原创 Java内存模型的原子性、可见性、有序性问题

在Java虚拟机规范中试图定义一种**Java内存模型(Java Memory Model,JMM)**来屏蔽各个硬件平台和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。为了获得较好的执行性能,Java内存模型并没有限制执行引擎使用处理器的寄存器或者高速缓存来提升指令执行速度,也没有限制编译器对指令进行重排序。也就是说,在java内存模型中,也会存在缓存一致性问题和指令重排序的问题。Java内存模型规定所有的变量都是存在主存当中(类似于物理内存),每个线程都有自己的工

2022-02-22 14:50:25 459

原创 简述Java的悲观锁和乐观锁概念

synchronized是悲观锁,线程一旦得到锁,其他需要锁的线程就挂起的情况就是悲观锁。synchronized关键字会让没有得到锁资源的线程进入阻塞状态,而后在争夺到锁资源后恢复为运行状态,这个过程中涉及到操作系统用户模式和内核模式的转换,代价比较高。CAS(Compare And Swap)操作是乐观锁,其实是无锁算法,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直到成功为止。CAS机制当中使用了3个基本操作数:内存地址V,预期值A,要修改的新值B。更新一个变量的时候,只

2022-02-21 20:28:52 1321

原创 HashMap、HashTable、ConcurrentHashMap之间的联系和区别

HashMap使用数组+链表的结构,默认情况下数组大小为16①存储(put)根据key的hashCode重新计算hash值, 搜索指定hash值在对应table中的索引,遍历这一索引位置的链表,有相同key值将value进行替换,新加入的Entry放在链头,最先加入的放在链尾。②读取(get)根据hash算法来决定其在数组中的存储位置(索引),再根据equals方法(判断key值)决定其在该数组位置上的链表中的存储位置。③扩容(resize)当hashmap中的元素个数超过数组大小*load

2022-02-21 15:31:52 410

原创 抽象类和接口

抽象类① 声明时需要abstract关键字,抽象类不能被实例化,类的其它功能和普通类一样;② 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类;接口① 以interface来声明,接口并不是类,属于不同的概念,类描述对象的属性和方法,接口则包含类要实现的方法;② 接口中所有的方法必须是抽象方法,Java 8之后接口中可以使用default 关键字修饰的默认方法;③ 接口不能包含成员变量,除了public static final 类型变量;④ 接口中不能含有静态代码块以及静态方法(用

2021-12-24 19:14:14 62

原创 Java代码中static、final、static final的使用

static可以修饰属性,方法,代码段{},内部类(静态内部类或嵌套内部类),注意:不能修饰局部变量(方法中的变量)static修饰的属性在类加载的准备阶段会分配到类中的内存,并给一个初始值(例如int赋值0,对象赋值null),在类加载的初始化阶段,根据代码执行初始化,因此也可以不在代码部分进行赋值。初始化后能改变,所有对象都只有同一个值,不创建对象也能调用static修饰的属性、方法等,直接用类名调用。static修饰代码段也是会在类加载的过程按顺序依次被执行,并且只执行一次final可以

2021-12-24 18:34:13 541

原创 开始使用jupyter notebook出现的问题

项目场景:Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。下载安装Anaconda的时候,会自动装对应的Python版本的,我安装的版本是Anaconda版本:4.8.1Python版本:3.7.1问题描述:ERROR: Cannot uninstall ‘ipykernel’. It is a distutils installed project and thus we cannot accurately determine

2020-10-19 18:36:53 3005 1

原创 简单理解D-S证据理论

简单理解d-s证据理论前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言font color=#999AAA >提示:以下是本篇文章正文内容,一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn a

2020-10-14 16:54:19 22649 15

原创 使用matlab计算两个证据间的Jousselme距离

人生第一篇博客,也是为了迎接自己的研究生学习新阶段,希望能沉下心做更多的积累。这是我毕业设计在做证据理论研究的时候遇到的问题,当时百度不出一个具体清晰的算法实现代码,然后自己摸索一下,也算有个比较清晰的处理。(主要是这个方向可能太冷门了…)计算公式整体思路假设在识别框架 Θ 下,存在两个证据 E1 和 E2 及其基本信任分配函数 m1和 m2,焦元分别是 Ai和 Bj,将 m1 和 m2 视为行向量,则证据 m1和 m2间的 Jousselme距离可以表示重点在于D,其中 D 为2NX2N对称矩阵(

2020-09-18 17:22:09 3307 14

空空如也

空空如也

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

TA关注的人

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