自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程池拒绝策略应用场景

线程池拒绝策略应用场景简单回答:详细回答:1.AbortPolicy中止策略:丢弃任务并抛出RejectedExecutionException异常。2.DiscardPolicy丢弃策略:ThreadPoolExecutor.DiscardPolicy:丢弃任务,但是不抛出异常。如果线程队列已满,则后续提交的任务都会被丢弃,且是静默丢弃。3.DiscardOldestPolicy弃老策略:丢弃队列最前面的任务,然后重新提交被拒绝的任务。4.CallerRunsPolicy调用者运行策略:由调用线程处理该任

2021-08-08 15:06:42 252

转载 高性能网络模型

高性能网络模型1 服务端处理网络请求2 I/O模型2.1 概念理论2.2 阻塞式I/O模型(blocking I/O)2.3 非阻塞式I/O模型(non-blocking I/O)2.4 I/O复用模型(I/O multiplexing)2.5 信号驱动式I/O模型(signal-driven I/O)2.6 异步I/O模型(asynchronous I/O)2.5 5种I/O模型总结3 线程模型3.1 传统阻塞I/O服务模型3.2 Reactor模式3.2.1 单Reactor单线程3.2.2 单Reac

2021-08-07 19:54:35 111

原创 GC垃圾回收器

List itemGC 分类与性能指标垃圾回收器概述垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商、不同版本的JVM来实现。由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生了众多的GC版本。从不同角度分析垃圾收集器,可以将GC分为不同的类型。Java不同版本新特性语法层面:Lambda表达式、switch、自动拆箱装箱、enum、泛型API层面:Stream API、新的日期时间、Optional、String、集合框架底层优化:JV.

2021-08-06 11:51:18 180

原创 java String 的hashCode

hash 的定义Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。Java 中 hash 值的含义hash 值主要是用来在散列存储结构中确定对象的存储地址的,提高对象的查询效率,

2021-08-06 11:50:27 412

原创 详细说说进程间通信IPC

Inter-Process Communication定义首先什么是进程间通信,有些人会认为是进程间传递数据,其实并非仅仅如此,communication翻译成通信可能误导了这些人,communication是进程间交流,不仅包括传递数据,还包括一些执行先后顺序的沟通。《现代操作系统》中说,进程间通信包括三个问题。第一个问题是一个进程如何把信息传递给另一个进程。第二个问题是,确保两个或更多的进程在关键活动中不会出现交叉,例如飞机订票系统中的两个进程胃不痛的客户视图争夺飞机上的最后一个座位。第三个问题与

2021-07-15 15:22:52 92

原创 为什么JDK动态代理只能代理接口,不能直接代理类?

为什么JDK的动态代理要基于接口实现而不能基于继承实现?1. 问题在阅读本文之前,可以先思考一下下面几个问题。为什么说JDK的动态代理要基于接口实现,而不能基于继承来实现?在JDK的动态代理中,在目标对象方法内部调用自己的另一个方法时,另一个方法在执行时,为什么没有经过代理对象?2. JDK的动态代理的固定写法JDK的动态代理的写法比较固定,需要先定义一个接口和接口的实现类,然后再定义一个实现了InvocationHandler接口的实现类。然后调用Proxy类的newInstance

2021-06-16 19:30:32 1203

原创 谈谈怎样学习框架

最近学习框架比较多,框架的学习和基础知识(计算机网络、操作系统等)、编程语言的学习不太一样。要更加注重方法。很重要的一点是,学习框架的时候一定要有一个大局观,知道这个框架到底是在解决什么问题,然后是他怎样解决的(传统的解决方案是什么,之前的解决方案的历史是什么),解决的好吗,还有没有其他的方式。最后才是具体怎么用,当然了,框架的应用本身就是十分简单的。有了上面的观点,我一般会先搜索一下百度,看一下大致的概述,比如Netty,看看官网,看看百度百科等,对这个框架在做什么,业内啥地位等有一个大概的了解。这大

2021-05-06 16:13:20 194

原创 详解单例模式的(7种实现)

目录详解单例模式的(7种实现)1. 饿汉式2. 懒汉式3. 懒汉式加锁4. 懒汉式+双锁检查5. 静态内部类6. 登记式7. 枚举谈谈怎样破坏单例模式详解单例模式的(7种实现)单例模式的实现基本都是要基于private的构造函数1. 饿汉式顾名思义,就是很饿,一遇到就要创建。// 饿汉式 ,很饿,一上来就能接受// 问题:可能浪费空间,比如下面的四个数组public class Hungry { private byte[] data1 = new byte[1024*1024];

2021-03-22 22:56:34 54

原创 JAVA Queue LinkedList 实现与ArrayDeque实现的一个小区别

今天做剑指Offer37https://leetcode-cn.com/problems/xu-lie-hua-er-cha-shu-lcof/唯一性嘛,很明显的层序遍历。但是,用Queue<TreeNode>的时候发现,因为之前看JCF的时候一般来说用ArrayDeque实现比较高效,所以我一般都会用ArrayDeque,但是这里是不行的,必须用LinkedList实现,因为LinkedList底层是链表,可以放进存储null,而ArrayDeque底层是Object[] 数组,不能放

2021-03-13 19:55:33 215 1

转载 浅析Java中的final关键字

浅析Java中的final关键字谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法。下面是本文的目录大纲:一.final关键字的基本用法二.深入理解final关键字若有不正之处,请多多谅解并欢迎指正。一.final关键字的基本用法在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。下面就从这三个方面来了解一下final关

2021-02-25 09:51:18 19

原创 java CAS操作

什么是悲观锁、乐观锁?在java语言里,总有一些名词看语义跟本不明白是啥玩意儿,也就总有部分面试官拿着这样的词来忽悠面试者,以此来找优越感,其实理解清楚了,这些词也就唬不住人了。synchronized是悲观锁,这种线程一旦得到锁,其他需要锁的线程就挂起的情况就是悲观锁。CAS操作的就是乐观锁,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直到成功为止。在进入正题之前,我们先理解下下面的代码: private static int count = 0; publi

2021-02-22 20:55:41 99

原创 完全二叉树与数组的转换

用数组方式存储完全二叉树(使用场景举例:最大堆)如何存储数组0号元素放元素的个数,1放根节点,后面放其他元素,一共n个元素。怎样找到父节点n/2嘛,就找到了父节点怎样找到左孩子和右孩子节点左孩子:n × 2右孩子:n × 2 + 1怎样确定叶子节点i > n/2 ?大于就是叶子节点因为是完全二叉树,所以需要判断是不是叶子节点,那为什么这么判断呢?因为完全二叉树的节点数量就相当于等比数列增长嘛,比值是2...

2021-02-20 21:19:05 365 1

原创 连接远程CentOS MySQL失败

先挖个坑竟然是因为虚拟机中没有配置转发

2021-01-14 15:08:02 32

原创 JUC学习笔记

前言以下笔记内容来自于B站up主“狂神说java”的JUC视频,感谢秦疆老师!并发编程的本质:充分利用cpu资源。线程的几个状态public enum State { /** * Thread state for a thread which has not yet started. */ // 新生 NEW, /** * Thread state for a runnable thread. A thread in the ru

2021-01-11 16:20:55 81 1

原创 Maven环境搭建 (下载、配置)超详细

Maven可以自动导入包,很方便。下载安装Maven搜索引擎搜索Maven,进入官网 https://maven.apache.org/注意:maven的使用依赖于java,首先需要配置正确的Java环境。不仅要有Java环境,还要有正确的JAVA_HOME环境变量。点击下载链接之后下载对应版本,比如我是windows,就下载zip的,当然也可以下载之前的版本。解压即可。看一下配置文件,可以配置很多东西。比如这里可以配置镜像,maven服务器在国外,下载可能很慢,用镜像就快了。一会下面

2020-12-18 21:48:03 88 1

原创 C++ Eigen库实现矩阵的点乘

最近用C++和python联合编程的时候,python脚本运行tensorflow的速度太慢了,所以自己用c++去写LSTM神经网络的逻辑。LSTM中需要用到矩阵的对应元素相乘,也就是点乘,搜了下没有博客写,就自己去找Eigen的文档。发现Matrix类的默认乘法 * 是叉乘,而点乘dot只能用于向量Remember that cross product is only for vectors of size 3. Dot productis for vectors of any sizes. W

2020-12-17 15:30:30 6000

转载 XShell连接云服务器

XShell连接云服务器前两天买了个阿里云轻量级服务器,想用Xshell连接,但是网站上的教程是putty的。后来找到了开发者社区的博客,连接成功了首先要设置好远程连接的账号和密码,可能还需要设置秘钥比如直接用root的密码以下内容为原博客软件安装完毕后,然后我们就可以使用Xshell连接linux主机了,点击最左边的加号图标,新建一个服务器连接(或者使用文件 – 新建)在主机一栏填写自己的服务器ip地址,端口没有修改过的话一般就是22端口,填写完成后点击确定添加完服务器后我们点击加

2020-12-16 21:38:23 273

原创 JVM学习笔记1 JVM概述

JVM学习笔记1 JVM概述JVM是什么为什么要学习JVMJVM是什么学习JVM,首先要宏观理解JVM是什么。JVM,JAVA Virtual MAchine,JAVA虚拟机。也就是运行在操作系统和JAVA程序之间的一个中间环境。JVM运行在操作系统上,JAVA程序运行在JVM上。JAVA之所以能够做到“一次编写,到处运行”,摆脱硬件的束缚,靠的就是虚拟机,JAVA程序不是直接运行在各个不同的操作系统(Windows,Linux,MacOS等)之上的,而是首先在这些操作系统上安装JAVA虚拟机,也就

2020-12-16 20:54:14 34

原创 ModuleNotFoundError: No module named ‘numpy.core._multiarray_umath‘ 错误解决

numpy报错了ModuleNotFoundError: No module named 'numpy.core._multiarray_umath' 。原因是numpy版本太高啦,自动安装的时候numpy的版本是1.19.4卸载掉重装1.18即可

2020-12-14 10:57:27 232

空空如也

空空如也

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

TA关注的人

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