Tuesday, September 28, 2021

OSCHINA 社区最新专区文章

OSCHINA 社区最新专区文章


妙用“Function”消灭if...else

Posted: 27 Sep 2021 11:16 PM PDT

在开发过程中经常会使用if...else...进行判断抛出异常、分支处理等操作。这些if...else...充斥在代码中严重影响了代码代码的美观,这时我们可以利用Java 8的Function接口来消灭if...else...。 if (...){ throw new RuntimeException("出现异常了"); } if (...){ doSomething(); } else { doOthe...

深入理解netty---从偶现宕机看netty流量控制

Posted: 27 Sep 2021 08:27 PM PDT

# 一、业务背景 目前移动端的使用场景中会用到大量的消息推送,push消息可以帮助运营人员更高效地实现运营目标(比如给用户推送营销活动或者提醒APP新功能)。 对于推送系统来说需要具备以下两个特性: - 消息秒级送到用户,无延时,支持每秒百万推送,单机百万长连接。 - 支持通知、文本、自定义消息透传等展现形式。正...

为什么C/C++发展都这么多年了,还没有一个统一的跨平台编译环境

Posted: 28 Sep 2021 02:50 AM PDT

做C项目的都碰到过移植库的痛苦,不同的编译器、不同的平台下总会一堆报错要调整。库的引用也是无比麻烦,先下载、编译,然后再添加到工程中,编译时还可能会报一堆编译器兼容问题。比如有些代码是linux gcc编译的,想在windows下用于msvc工程里面编译,基本上就不可能直接成功,要改好多地方。这还不说配置IDE和编译环境...

联发科计划为 nanoMIPS 带来上游 GCC 编译器支持

Posted: 27 Sep 2021 04:11 PM PDT

联发科正致力于为 nanoMIPS 带来上游 GCC 编译器支持,不过官方并未透露其这样做的原因。Phoronix 猜测称,或许与该公司的调制解调器的控制处理器中仍然依赖的指令集架构(ISA)有关。 MIPS Technologies 于 2018 年宣布了面向嵌入式设备的 nanoMIPS 架构,旨在降低功耗并实现更小的代码空间占用。但自 MIPS I7200 之后,...

G1 垃圾收集器是如何对待我们 JVM

Posted: 27 Sep 2021 04:32 PM PDT

### 什么是 G1 收集器 G1 收集器是一款面向服务器端应用的垃圾收集器,它既可以用在新生代,也可以用在老年代。G1 是 Hotspot JDK1.7 后提供的面向大内存(Heap 区数 G 到数 10G )、多核系统的收集器,能够实现软停顿目标收集并且具有高吞吐量,具有更可预测的停顿时间。 G1 是一种并发、并行、部分 Stop The World、使...

动图图解GC算法 - 让垃圾回收动起来!

Posted: 26 Sep 2021 07:11 PM PDT

> 原创:码农参上(微信公众号ID:CODER_SANJYOU),欢迎分享,转载请保留出处。 提到Java中的垃圾回收,我相信很多小伙伴和我一样,第一反应就是面试必问了,你要是没背过点GC算法、收集器什么的知识,出门都不敢说自己背过八股文。说起来还真是有点尴尬,工作中实际用到这方面知识的场景真是不多,并且这东西学起来也很...

seata整合多数据源

Posted: 27 Sep 2021 07:45 PM PDT

# 一、背景 在这篇文章中,我们使用`Seata`整合一下多数据源的场景。多数据源切换的功能我们使用`dynamic-datasource-spring-boot-starter`来完成,并且这个组件还可以和`Seata`进行整合,实现数据源的代理。 此篇文章 依赖之前的 [seata整合nacos完成分布式的部署](https://my.oschina.net/huanoschina/blog/5262580) ...

浅析可视化分析技术

Posted: 22 Sep 2021 08:01 PM PDT

【国内外技术研究现状】 基于多层特征的空间信息网络可视化 Luca Rossi 等人最早讨论了多层网络的可视化策略,他们认为虽然有部分学者逐渐集中到多层网络的研究分析上来,但目前还没有针对这一内容提出专业的可视化方法,而解决当前问题的方案只能依靠传统的方法。 De Domennico M等人基于自主研发的可视化工具MuxViz完成...

Guava 31 发布,Google 的核心 Java 库

Posted: 27 Sep 2021 03:59 PM PDT

Guava 是 Google 的一套核心 Java 库,包括新的集合类型(如 multimap 和 multiset)、图库,以及用于并发、I/O、散列、缓存、基元、字符串等的实用工具。它被广泛用于 Google 内部的 Java 项目,同时也被许多其他公司广泛使用。 更新日志 对 Guava 的空值进行了更彻底的注释 base:修改了 Functions.forSupplier 和 Pr...

GNU Wget2 2.0 发布

Posted: 27 Sep 2021 03:57 PM PDT

GNU Wget2 2.0 正式发布,该版本是 GNU Wget 的继任者。相比起原来的 GNU Wget,Wget2 更快、支持更多的协议,特别是围绕 HTTP/2 和压缩,支持多线程/并行连接,以及一系列其他的改进。GNU Wget2 2.0 已经历了三年多时间的开发。 该版本值得注意的变化包括: OpenSSL:修复 CRL 检查 OpenSSL:实现 ALPN OpenSSL:修复内...

vivo全球商城-营销价格监控方案的探索

Posted: 27 Sep 2021 01:23 AM PDT

# 一、背景 现在日常官网商城的运营中有一定概率出现以下两个问题: **1)优惠信息未对齐** 官网商城促销优惠的类型越来越多,能影响最终用户实付价的优惠就有抢购、满减、优惠券、代金券等。实际业务操作中存在不同促销优惠由不同运营配置的情况,如果运营间内部没有对齐的情况下,就会出现正常情况下不会同时设置的优惠...

Bcachefs 将支持快照功能

Posted: 27 Sep 2021 05:25 PM PDT

邮件列表显示,Kent Overstreet 为 Bcachefs 合并了支持快照功能的补丁。 Bcachefs 是用于基于 Linux 的操作系统的写时复制 (COW) 文件系统。它由主要开发人员 Kent Overstreet 于 2015 年首次发布,并且正在努力将其合并到 Linux 内核主线中。此次补丁是一个类似于 Btrfs 风格快照功能的支持,已经开发了 9 个月,大约有...

Apache SkyWalking 8.8.0 发布

Posted: 27 Sep 2021 04:34 PM PDT

Apache SkyWalking 8.8.0 现已发布,SkyWalking 是观察性分析平台和应用性能管理系统 (APM),提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案,支持 Java, .Net Core, PHP, NodeJS, Go, Lua 语言探针,支持 Envoy + Istio 构建的 Service Mesh。 主要更新内容 将 javaagent 拆分为 skywalking-java ...

Inkscape 1.1.1 发布,跨平台矢量图形编辑软件

Posted: 27 Sep 2021 04:22 PM PDT

Inkscape 1.1.1 现已发布。Inkscape 是一个矢量图形编辑软件,与 Illustrator、Freehand、CorelDraw、Xara X 等软件很相似,它使用 W3C 标准的 Scalable Vector Graphics (SVG) 文件格式,支持包括形状、路径、文本、标记、克隆、alpha 混合、变换、渐变、图案、组合等 SVG 特性。它也支持创作共用的元数据、节点编辑、图...

Ant Design Mobile 5.0.0-beta.13 发布,AntD 移动端设计规范

Posted: 27 Sep 2021 04:05 PM PDT

Ant Design Mobile 5.0.0-beta.13 发布了。Ant Design Mobile 即 Ant Design 移动端设计规范,antd-mobile 是 Ant Design 的移动规范的 React 实现,服务于蚂蚁及口碑无线业务。 更新内容如下: 特性 新增 PickerView 组件 #4039 Picker.Cascader 调整命名为独立的 CascadePicker 组件 Mask 增加了 color 属性,支持白色...

PHP 8.0.11 发布

Posted: 27 Sep 2021 04:01 PM PDT

PHP 8.0.11 现已发布,这是一个安全版本,修复了 CVE-2021-21706;官方鼓励所有 PHP 8.0 用户升级到此版本。具体更新内容如下: Core: 修复了 bug #81302(移除 stream filter 后的 stream position)。 修复了 bug #81346(Non-seekable streams 在写入后不更新位置)。 修复了 bug #73122(串联字符串时整数溢出)。 ...

Flutter在开发中遇到的问题【满满干货】

Posted: 26 Sep 2021 11:58 PM PDT

前言 目前使用Flutter开发App已有两年时间,上线了两款App,App store者应用宝搜索脑学家可以下载体验。下面介绍一下我在开发中遇到的坑。 如何选择路由方式 Flutter中有命名路由和组件路由,最开始使用Flutter开发项目自带的路由都没有使用使用了一个第三方的路由fluro,这个路由的工作原理是在routes没有的情况下在onG...

引用的maven项目和被引用的maven项目API文档会错乱

Posted: 27 Sep 2021 01:39 AM PDT

A项目和B项目都是maven项目,并且包名是一样的, 打包A项目,然后B项目maven引用A项目,这时候访问 http://host:port/doc.html 就发现A项目和B项目的接口都在一起了,正常应该是只显示B项目的,如果只显示B项目的API文档呢?

使用 NGINX Unit 构建应用堆栈

Posted: 16 Sep 2021 02:27 AM PDT

客户经常询问如何在已建好的某种技术堆栈中使用 NGINX Unit。单就其本身而言,NGINX Unit 很容易配置,但要将其整合到各种工具和服务中就没那么容易了;此外,如何让最终客户享受到潜在的好处也面临着同样的问题。本文旨在通过一个相当常见的使用场景来探讨这一问题。 问题:复杂的应用部署工作流 有个问题可能我们的许多...

5种Python使用定时调度任务的方式

Posted: 23 Sep 2021 12:18 AM PDT

摘要:Python 有几种方法可以定时调度一个任务,这就是我们将在本文中学习的内容。 本文分享自华为云社区《Python中使用定时调度任务(Schedule Jobs)的5种方式)》,作者: Regan Yue 。 今天构建的大多数应用程序都需要某种方式的调度机制。轮询 API 或数据库、不断检查系统健康状况、将日志存档等是常见的例子。 Ku...

我们来聊聊垃圾收集器中相关术语与新生代收集器

Posted: 24 Sep 2021 03:44 PM PDT

垃圾收集算法为实现垃圾收集提供了强有力的理论支持,而垃圾收集器则是利用了垃圾收集算法去实现垃圾回收的实践落地。 那么和垃圾回收算法类似,Java 也提供了多款垃圾收集器,不同的垃圾收集器也有不同的特性以及适用场景,甚至不同的垃圾收集器之间还可能存在配合使用的关系,那么使用起来还是比较复杂的。下图展示了 ...

面试官:说下你对方法区演变过程和内部结构的理解

Posted: 26 Sep 2021 01:47 AM PDT

之前我们已经了解过"运行时数据区"的程序计数器、虚拟机栈、本地方法栈和堆空间,今天我们就来了解一下最后一个模块——方法区。 ![](https://oscimg.oschina.net/oscnet/up-9c3db5e10dcd080deda87d97bcddeea0317.png) ## 简介 创建对象时内存分配简图 ![](https://oscimg.oschina.net/oscnet/up-08626076f2e00181d84...

从JVM角度思考--如何预估线上环境机器资源大小

Posted: 26 Sep 2021 09:50 AM PDT

>听说微信搜索《Java鱼仔》会变更强哦! > >本文收录于[github](https://github.com/OliverLiy/JavaStarter)和[gitee](https://gitee.com/lyucoding/java-starter) ,里面有我完整的Java系列文章,学习或面试都可以看看哦 # (一)概述 如何给JVM虚拟机巧妙地设计参数对大部分开发来说一直是个随缘的事情,可能是去网上拷...

面试官:您能说说序列化和反序列化吗?是怎么实现的?什么场景下需要它?

Posted: 26 Sep 2021 07:31 AM PDT

序列化和反序列化是Java中最基础的知识点,也是很容易被大家遗忘的,虽然天天使用它,但并不一定都能清楚的说明白。 我相信很多小伙伴们掌握的也就几句概念、关键字(Serializable)而已,如果深究问一下序列化和反序列化是如何实现、使用场景等,就可能不知所措了。 在每次我作为面试官,考察Java基础时,通常都会问到序列...

大型项目源码集合「GitHub 热点速览 v.21.39」

Posted: 26 Sep 2021 05:48 PM PDT

![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/50238c4afd0e411d8f11009c6b4a69ad~tplv-k3u1fbpfcp-zoom-1.image) 作者:HelloGitHub-小鱼干 代码,尤其是优雅规范的代码,一直都是学习编程技巧的捷径。虽然有实用的代码小片段,能拯救当前业务的燃眉之急,但是真要去提升自己的技能还是得从大型的项目,尤其是...

如何写出完美的接口:接口规范定义、接口管理工具推荐

Posted: 26 Sep 2021 07:25 AM PDT

无规矩不成方圆,为了开发人员间更好的配合,我特意整理了这么一篇文档供大家参考学习,如有意见、见解,请在评论区留言探讨。 接口规范说起来大,其实也就那么几个部分,接口规范、接口管理工具、接口文档编写、开发文档编写。 接口规范定义 一、协议规范 为了确保不同系统/模块间的数据交互,需要事先约定好通讯协议,...

Java技术开发专题系列之【Guava RateLimiter】针对于限流器的入门到精通(含源码分析介绍)

Posted: 19 Sep 2021 07:49 PM PDT

### Guava包中限流实现分析 #### RateLimiter > **之前的文章中已经介绍了常用的限流算法,而google在Java领域中使用Guava包中的限流工具进行服务限流。** #### 回顾使用案例 > Google开源工具包Guava提供了限流工具类RateLimiter,该类基于令牌桶算法实现流量限制,使用十分方便。 ```java @Test public void testSamp...

送你一个Python 数据排序的好方法

Posted: 25 Sep 2021 07:47 PM PDT

摘要:学习 Pandas排序方法是开始或练习使用 Python进行基本数据分析的好方法。最常见的数据分析是使用电子表格、SQL或pandas 完成的。使用 Pandas 的一大优点是它可以处理大量数据并提供高性能的数据操作能力。 本文分享自华为云社区《Pandas Sort:你的 Python 数据排序指南》,作者:Yuchuan。 学习 Pandas排序方法是...

Git LFS 3.0.0 发布,对大文件进行版本控制的 Git 扩展

Posted: 26 Sep 2021 04:30 PM PDT

Git LFS 是一个命令行扩展,用于使用 Git 管理大文件。Git LFS 3.0.0 版本是一个重要的新版本,引入了几个新特性,具体更新内容如下: 向后兼容的改动: 对 NTLM 的支持已被完全删除 当使用 SSH URL(即以 ssh:// 开头的语法)时,在调用 git-lfs-authenticate 或 git-lfs-transfer 时不会去掉前面的斜线。这与 Git 在通...

Fastlane 2.195.0 发布,跨移动端自动化流程工具

Posted: 26 Sep 2021 04:26 PM PDT

Fastlane 2.195.0 发布了,Fastlane 是一个针对 iOS 和 Android 全方位开发自动化流程的工具。利用目前支持的工具可以做包含自动化和可持续化构建的每个环节,比如单元测试、截图、分发渠道、上传元数据和 ipa 包提交审核等等。 新版更新内容: [snapshot] 添加了 10 秒 timeout,以等待设备完全启动后再覆盖状态栏(通过...

No comments:

Post a Comment