自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Java】Java使用回调函数的优雅方式

Java使用回调函数的优雅方式Java8新增了函数式接口,函数式接口中只有一个接口方法,这个接口方法可以与一个静态方法或者某个实例对象的方法进行绑定。通过这种方式,我们可以将一个函数式接口做成一个回调。例如有如下场景:有多台服务器Server,对外提供服务;有一个控制中心Controller,Controller需要统计Server对外提供服务的次数,或者说Server提供了服务需要让Controller得到一个通知。现在我们有如下的实现。@FunctionalInterfaceinterfac

2020-07-01 13:57:05 1367

原创 【LeetCode】多线程—H2O生成(Java)

LeetCode多线程——H2O生成(Java)题目1117. H2O 生成,两种线程分别氧 oxygen 和氢 hydrogen(分别打印O和H),目标是组织这两种线程来产生水分子,即最终打印出来的序列中每3个里有2和H和一个O。核心思想就是等待+通知,率先完成工作的A类线程需要等待B类线程也要完成工作,继而B类通知A类线程继续。我们可以使用信号量、Synchronized+wait/notify、Lock+Condition、CyclicBarrier等方法进行实现。解法一(信号量)生产一个H

2020-06-14 01:08:57 626

原创 【MySQL】select查询结果为空与select一个空结果集的区别

select查询结果为空与select一个空结果集的区别如图,select一个空表直接提示Empty set,如果直接select一个空结果集,会返回一行包含NULL的结果。例如leetcode数据库中176. 第二高的薪水,查薪水表中第二高的薪水,要求返回第二高的薪水值或者NULL。直接查询的话,如果原表中薪水值的数量少于2个,那么就会直接返回empty set。select distinct Salary as SecondHighestSalary from Employee o

2020-06-13 20:37:40 3960

原创 【JVM】实例化对象的流程

实例化一个对象的完整流程是怎样的呢?网上总结初始化顺序是怎么来的呢?下面以一个未加载过的子类对象实例化为例:需要实例化一个子类对象时,首先检查到其有继承于一个未加载过的父类, 则: 先对父类进行类加载,并进行初始化,对父类执行初始化就是执行父类的类构造器<clinit>()方法,该方法将执行父类的静态变量赋值代码和静态代码块(按照书写顺序); 然后对子类进行加载,并进行...

2020-03-26 02:20:22 409

原创 【Java】Java打印时报StackOverflowError

打印时报StackOverflowError,排查时发现两个JavaBean在互相调用对方的toString方法,最终导致StackOverflowError,所以如果使用IDE自动生成toString方法时需要注意一下了,要避免相互调用代码如下:部门实体类:public class Dept { private int deptId; private Str...

2019-06-06 17:27:37 479

原创 【Java】多层if-else逻辑判断优化——卫语句

读码出高效时,提到了使用卫语句实现超过3层的if-else的逻辑判断代码简单来说就是将多层if-else逻辑拆分为多个if语句级联,拆分得到的if语句就是卫语句。例如:public void doWork() { if (isBusy()) { // Busy状态下的操作 return; } if (isDown())...

2019-06-05 20:00:27 2987

原创 【GitLab】华为弹性云服务器GitLab搭建

环境Ubuntu 18.04 server 64bitGitLab 11.9.8基本步骤1. 安装依赖apt-get install curl openssh-server ca-certificates postfix -y2. 安装 GitLab-ce,华为云服务器下载该资源速度很快,可以直接安装apt-get updateapt-get install ...

2019-04-15 21:44:08 928 1

原创 【认知无线网络】认知无线网络基础知识学习

源于《认知无线网络理论与关键技术》、《认知无线网络》摘抄与总结认知无线网络是认知无线电和认知网络的结合产物,下面介绍认知无线电和认知网络。认知无线电(Cognitive Radio)为解决频谱资源匮乏,提高频谱利用率而提出。核心思想就是使无线通信设备具有发现“频谱空洞”并合理利用的能力。认知无线电是建立在软件无线电平台上的一种内容认知型的智能无线电。认知无线电技术将连续不断的...

2019-04-08 21:52:39 5502

空空如也

空空如也

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

TA关注的人

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