行走代码江湖,怎能没有一把趁手的兵器?本专区包括开发者工具、极客技能、开发库、文档、应用开发、操作系统、编码工具等。

加载中
置顶
发表了博客
04/10 23:45

Netty之线程唤醒wakeup

首先回顾下, Netty中的IO线程主要完成三件事 1.轮询IO事件 2.处理IO事件 3.执行任务 在轮询IO事件的过程中,在Linux系统下, 使用epoll实现. 涉及的Netty代码如下 private void select() { // ... int selectedKeys = selector.select(timeoutMillis); // ... } 具体源码位置: io.netty.channel.nio.NioEventLoop#select 当IO线程执行以上代码的时候, 如果超时时间timeoutMillis还没有到达的情况下,...... 展开更多

收藏 3
0
置顶
发表了博客
04/09 11:14

PHP中的孤儿进程与僵尸进程

基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。 孤儿进程 一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1... 展开更多

收藏 9
2
置顶
发表了博客
04/02 09:08

架构设计方法论

掌握一套架构方法论,掌握规范的设计方法,设计出更好、更稳定的架构设计。 概念解析 在文章开始之前需要先理解几个概念: 什么是方法论? 我们拿到一个输入,然后根据这个输入预期一个输出,把中间这个过程描述出来就是方法论。所以我们本篇讲的架构师方法论就是架构师先拿到经过需求分析出来的输入,然后完成架构设计,这个过程就是架构设计方法论。 什么是设计? 设计是实现意图的书面表现形式,而非口头的东西; 设计是要让... 展开更多

收藏 29
7
置顶
高级程序员
发表了博客
04/01 12:01

Java技术专题-源码分析系列-JDK动态代理的实现

# JDK动态代理到底是怎么实现? > JDK的动态代理的类看不见摸不着,虽然可以看到效果,但是底层到底是怎么做的,为什么要求实现接口呢? ## 从Proxy.newProxyInstance入手 ```java public static Object newProxyInstance(ClassLoader loader, Class[] interfaces, InvocationHandler h) throws IllegalArgumentException{ // 判空,判断 h 对象是否为空,为空就抛出 NullPointerException Objects.requireNonNull(h); final Cl... 展开更多

收藏 7
1
置顶
发表了博客
03/18 19:20

对话交互:封闭域任务型与开放域闲聊算法技术

前不久,OPPO旗下的人工智能助手“小布助手”月度活跃用户数突破一亿,成为国内首个月活用户数破亿的手机语音助手。 经过2年多的成长,小布助手在能力上实现大幅升级,也融入了我们身边便捷的服务功能。小布团队亦克服了诸多技术难点,为用户带来了更智能的服务。为此,小布团队撰写了一系列文章,详细介绍小布助手背后的技术支撑,本文是揭秘小布背后技术的第三篇。 第一篇:对话系统简介与小布助手的工程实践 第二篇:小布助手... 展开更多

收藏 1
0
置顶
高级程序员
发表了博客
03/31 15:52

Java技术专题-JVM研究系列(1)Class文件分析和研究

# 背景介绍 >Java源代码被编译为Class文件之后,Class文件结构是JVM加载Class,实例化对象,和进行方法调用的重要依据. ------------ > 每个 Class 文件都是由 8 字节为单位的字节流组成,所有的 16 位、32 位和 64 位长度的数 据将被构造成 2 个、4 个和 8 个 8 字节单位来表示。多字节数据项总是按照 Big-Endian1的顺 序进行存储。在Java SDK中,访问这种格式的数据可以使用java.io.DataInput、 java.io.DataOutput 等接口和 ... 展开更多

收藏 7
2
置顶
架构师
发表了博客
03/30 16:49

“腹有诗书气自华”架构师基础必备,掌握这些,驰骋一线大厂不是梦,抓紧收藏!!!

文章目录 前言 一、软件 1.1、何为软件? 1.2、计算机软件的分类 1.2.1、系统软件 1.2.2、应用软件 1.3、软件系统体系结构 1.3.1、C/S 结构(桌面应用程序) 1.3.2、B/S 结构(Web 应用程序) 1.3.3、Web 服务器与数据库服务器 1.3.4、Web 应用的请求流程 1.3.5、Web 应用处理静态资源请求 1.3.6、Web 应用处理动态资源请求 1.3.7、RIA 应用 1.3.8、APP 二、基于 Web 的软件开发 2.1、B/S 架构工作原理 2.2、网络游戏架构图 2.... 展开更多

收藏 3
1
置顶
发表了博客
03/29 11:37

实战案例丨分布式系统中如何用python实现Paxos

摘要:提到分布式算法,就不得不提 Paxos 算法,在过去几十年里,它基本上是分布式共识的代 名词,因为当前最常用的一批共识算法都是基于它改进的。比如,Fast Paxos 算法、 Cheap Paxos 算法、Raft 算法、ZAB 协议等等。 本文分享自华为云社区《实战分布式系统-python实现Paxos》,原文作者:Leo Xiao 。 一致性算法背景:Paxos 一致性算法解决的问题:分布式系统中数据不能存在单个节点(主机)上,否则可能出现单点故障;多个... 展开更多

收藏 3
0
置顶
发表了博客
03/25 08:15

深入剖析 JavaScript 闭包

关注公众号, 设置为 '星标' ,更多精彩内容,第一时间获取 🌞 深入剖析 JavaScript 闭包 💎导读目录 ❝ 什么是闭包 闭包的特性 闭包的优缺点 闭包的作用 闭包的注意点❞ 💎什么是闭包? ❝ 一个函数和对其周围状态的引用捆绑在一起,这样的组合就是「闭包」. 通俗的说:一个内层函数可以访问外层函数的作用域 就叫 「闭包」。 在 JavaScript 中,每当创建一个函数,闭包就会在函数创建的同时被创建出来。 闭包的形成与变量... 展开更多

收藏 6
0
置顶
架构师
发表了博客
03/19 18:32

白话讲解,拜占庭将军问题

作为服务端开发的同学,你可能听说过Paxos、Raft这类分布式一致性算法,也在工作中使用过ZooKeeper、etcd等工具来解决一致性问题。但你可能不知道,这些算法和工具解决的并不是一致性中最难的问题,要讨论这个最难的问题,这就要追溯到 Leslie Lamport 1982 年发表的著名论文 《拜占庭将军问题》(The Byzantine Generals Problem )上了。 1、拜占庭将军问题是什么? 拜占庭将军问题,其实是一个共识问题。通过比喻的方式来描述... 展开更多

收藏 9
5
置顶
发表了博客
03/15 19:25

一天,把 Pulsar 客户端的性能提升3倍+!

导读 大佬希望我帮忙排查一下一个性能问题,我⼀听内心当然是拒绝的啦,这种 Commit 挣得太难了,修个 NPE 之类的不香吗? 于是我拿起手机回复大佬:好的,我看⼀下。 作者介绍 林琳 腾讯云高级工程师 活跃于开源社区,Apache Pulsar Commiter 专注于中间件领域,在消息队列和微服务方向具有丰富的经验,负责 CKafka/CMQ/移动开发平台 的后端设计于开发工作,目前致力于打造稳定、高效和可扩展的基础组件与服务 故事的开端 话说... 展开更多

收藏 2
1
置顶
架构师
发表了博客
03/03 12:13

使用 Java 中的反射机制调用类中的私有方法原理详解

文章目录 前言 一、私有方法在本类中直接调用 1、在本类中实例化,调用私有方法 2、尝试在其他类直接调用私有方法(错误示范) 二、使用反射机制实例化类强制调用私有方法 1、使用类加载器加载被调用的类 2、使用 Object 类对获取的类进行实例化 3、调用 Java 反射中的 Method 类 4、取消 Java 语言的访问检查 5、使用 method.invoke(Object obj,Object args[]);返回对象 三、完整实现代码、运行结果及总结 总结 前言 在 Java 中... 展开更多

收藏 1
1
置顶
发表了博客
03/18 12:16

深入分析 SpringMVC 参数解析器

前面和大家聊了自定义 SpringMVC 参数解析器,同时我们也分析了几个比较简单的参数解析器,相信大家对于 SpringMVC 中的参数解析器应该已经有了一定的了解,如果还没看过的小伙伴可以先看看:[SpringBoot 中如何自定义参数解析器?](https://mp.weixin.qq.com/s/4c-uV8f6x5UPvxec6Em79A)。 不过我相信很多小伙伴真正疑惑的是像下面这种接口,参数是怎么解析的: ```java @GetMapping("/hello2") public void hello2(String nam... 展开更多

收藏 1
0
置顶
发表了博客
03/17 12:57

CTO@全体成员,未经允许和评审不让用反射,Java反射到底慢在哪?

反射具体是怎么影响性能的?这引起了我的反思。是啊,在阐述某个观点时确实有必要说明原因,并且证明这个观点是对的,虽然反射影响性能人尽皆知,我曾经也真的研究过反射是否存在性能问题,但并没有在写文章的时候详细说明。这让我想到网上很多信息只会告诉你结论,并不会说明原因,导致很多学到的东西都是死记硬背,而不是真正掌握,别人一问或者自己亲身遇到同样的问题时,傻眼了。 ## 反射真的存在性能问题吗? 还是使用上篇... 展开更多

收藏 1
2
置顶
发表了博客
03/15 14:18

C++防止头文件被重复引入的3种方法!

在之前我们详细介绍了 C 语言中如何使用宏定义(#ifndef / #define / #endif)来有效避免头文件被重复 #include,此方式在 C++ 多文件编程中也很常用。 举个例子,如下是一个 C++ 项目,其内部含有 school.h 和 student.h 这 2 个头文件以及 main.cpp 源文件,其各自包含的代码为: //student.h class Student { //...... }; //school.h #include "student.h" class School { //...... private: Studen...... 展开更多

收藏 3
0
置顶
发表了博客
03/15 08:18

单例模式-温故而知新

点击上方蓝字关注我,知识会给你力量 前言 单例模式,应该是使用频率比较高的一种设计模式了。 关于它,你又了解多少呢?比如: java和kotlin的实现方式?懒汉饿汉到底啥意思? 饿汉、双重校验、静态内部类模式的分别实现原理? 其中涉及到的类初始化、类锁、线程安全、kotlin语法知识? 静态变量实现单例——饿汉 保证一个实例很简单,只要每次返回同一个实例就可以,关键是如何保证实例化过程的线程安全? 这里先回顾下类的初... 展开更多

收藏 2
1
置顶
发表了博客
03/11 23:38

植树节,种个二叉树吧

3 月 12 号,是全国的重大节日:植树节。记得小时候就跟随老师一起植过树。现在参加工作了,虽然没有植过树,但是学到过很多树的结构,比如二叉树、B+ 树,红黑树。每次面试必问,恰逢植树节,本来是想讲解 B 树,但发现必须要理解了二叉树之后才能更好地讲解 B 树,所以先给大家讲下二叉树是什么,后面文章再更新 B 树。 大白话讲解二叉树 比如现在有个数组,存放了很多用户的名字,需要从这个数组中找到包含指定的用户名,最快... 展开更多

收藏 1
0
置顶
程序员
发表了博客
03/10 09:48

深拷贝一个对象会了,怎么深拷贝一个图?

原创公众号:bigsai 如有帮助欢迎一键三联 文章已收录在 全网都在关注的数据结构与算法学习仓库 欢迎star 前言 在前面,我写过一篇Java的深浅拷贝,那是基于对象的拷贝,但放眼数据结构与算法中,你有考虑过怎么拷贝一个图吗?(无向图) 在此之前,你需要对一些概念搞清楚:什么是深拷贝、浅拷贝? 浅拷贝:如果拷贝的是引用类型(非基本类型),就只会拷贝一层(嵌套的对象不会被拷贝),如果原对象发生改变,那么拷贝对象也会发生改... 展开更多

收藏 5
0
置顶
程序员
发表了博客
03/07 15:50

一文搞懂全排列、组合、子集问题(建议收藏)

微信搜一搜:【bigsai】 获取更多肝货知识 春风十里,感谢有你 前言 Hello,大家好,我是bigsai,long time no see!在刷题和面试过程中,我们经常遇到一些排列组合类的问题,而全排列、组合、子集等问题更是非常经典问题。本篇文章就带你彻底搞懂全排列! 求全排列? 全排列即:n个元素取n个元素(所有元素)的所有排列组合情况。 求组合? 组合即:n个元素取m个元素的所有组合情况(非排列)。 求子集? 子集即:n个元素的所有子集... 展开更多

收藏 4
1
置顶
程序员
发表了博客
03/11 08:15

醒一醒,讲到 ZooKeeper 的选举机制了

本文作者:HelloGitHub-老荀 Hi,这里是 HelloGitHub 推出的 HelloZooKeeper 系列,免费开源、有趣、入门级的 ZooKeeper 教程,面向有编程基础的新手。 项目地址:https://github.com/HelloGitHub-Team/HelloZooKeeper 今天开始我们将继续深入 ZK 选举相关的知识 一、选举的基本规则 ZKr~这次我决定一反常态,先不讲故事了~先得聊聊在 ZK 选举中非常重要的一些东西。 1.1 zxid zxid 就是我们之前提到的事务编号,是一个 8 字节... 展开更多

收藏 7
2
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
返回顶部
顶部