腾讯捐赠Java编译器基础软件

Tencent Kona:OpenJDK贡献全国四连冠,赋能数据科学计算加速 腾讯Kona 蝉联JDK18中国企业贡献排名第一,连续四次对OpenJDK贡献全国排名第一,本文将介绍Kona在高性能计算引擎方面对OpenJDK社区的贡献。 阅读详情

点击上方“芋道源码”,选择“设为星标”

管她前浪,还是后浪?

能浪的浪,才是好浪!

每天 10:33 更新文章,每天掉亿点点头发...

源码精品专栏

 

来源:OSC开源社区(ID:oschina2013)


6 月 11 日,腾讯正式宣布将打磨多年的编译器软件 OpenKona JDK 捐赠给开放原子开源基金会,并联合数以百万计开发者,共建国产编译器基础软件。

相较于代码开源,捐赠不仅包括全部源代码,还涵盖了软件包、产权、商标、构建与测试基础设施、社区基础设施等。

9e5fa2c2b4f96aa0b6584421a6aeb7d2.jpeg

据介绍,OpenKona 是基于 OpenJDK 开源项目打造的发行版之一,性能比社区版本提高 15% 以上 ,尤其在大数据、机器学习和云计算等场景具备较高性能。

在软件开发领域,Java 编程语言拥有庞大的程序员群体及丰富的商业应用生态系统。Java 编写的程序必须依赖 JDK(Java Development Kit,Java 开发工具包)才能够编译、运行,JDK 也因此被称为 Java 应用操作系统,并广泛应用于许多关系国计民生的重要领域。

此前,JDK 的研发、发行和服务多由国外厂商主导,为了推动国产基础软件核心组件自主,亟需建设支持国内技术生态和标准的、开放源代码的 Java 标准版。

据悉,早在 2019 年上半年,腾讯就开始投身 OpenKona 的研发,已连续六次荣获 Open JDK 中国企业贡献度排名第一。

e28c275c57305bd01e312b0b16549fe1.png

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro

  • 视频教程:https://doc.iocoder.cn/video/

目前,腾讯内部超 90% 的 JDK 为 OpenKona,部署量超过百万服务器实例,涉及全部的业务线,并服务超过 120 家外部公司。

相对 Open JDK,OpenKona 支持国产 CPU 和操作系统,包括 ARM、X86 等;操作系统的适配方面,支持银河麒麟操作系统、统信 UOS 以及腾讯自研服务器操作系统 TencentOS Server。

OpenKona 国密套件还首次实现了从基础算法簇到公钥基础设施,再到安全通信协议的全链路国密特性。

44d5f2c262ed0c5752e853c9f1132154.png

除了 OpenKona,腾讯对 Java 生态还有不少的开源贡献,比如去年开源 Spring Cloud Tencent。

3debee7457ca16639654f59e65b58d5c.png

不知道各位 Javaer 是否有使用过,欢迎留言讨论~

相关链接:https://www.oschina.net/news/244833

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/yudao-cloud

  • 视频教程:https://doc.iocoder.cn/video/



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢:

f974107a96206b5975366c7122066c7c.png

已在知识星球更新源码解析如下:

8f1ba73cd88e1ea66c6a3afdbec15a1a.jpeg

2485c71c5a05d29ea37f8a90170f3a9b.jpeg

b87c751ffa6e46ff5d92086e1f57bed0.jpeg

7805b62b5f888564c058ae1b403835d5.jpeg

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)
开放原子训练营(第四季)TobudOS——TobudOS内核移植(keil版) 12月份参加了开放原第四季线下活动,觉得很有意义。通过这篇博文,记录一下这次活动进行的移植TobudOS内核的过程,下面就让我们开始吧。本次使用的开发板型号为STM32H750,当然了,其他型号的开发版也是可以的,只要是支持 ARM Cortex M 核芯片的都是可以的,移植方法都是类似的。 阅读详情

相关推荐

ComfyUI-controlnet控制出图

提供加载预处理器节点。

Bu2n的博客 5499

JDK 家族成员 OpenKona 介绍

同时,Kona 是腾讯内部的默认 JDK,针对大数据、机器学习和云计算工作负载的极端规模进行了优化。OpenKona 是基于 OpenJDK 研发的、支持国内技术生态和标准、开放源代码的 Java 开发工具包。OpenKona 兼容 JavaSE 规范,经过海量业务生产验证,生产环境开箱即用,具有稳定、安全性、高性能、前沿特性等特点,兼容多种操作系统和 CPU 架构。支持大堆GC优化、内存资源成本优化等新特性,针对大数据、机器学习、云场景、微服务等场景持续优化。免费、定制优化的OpenJDK版本。

少安事务所 1446

ArcMap投影变换避坑指南:为什么你的坐标转换总出错?常见问题解析与解决方案

本文深入解析ArcMap中坐标转换与投影变换的核心区别与常见陷阱。针对坐标转换总出错的问题,从混淆“定义投影”与“投影变换”、栅格数据重采样选择、矢量数据地理变换参数设置等关键环节,提供清晰的避坑指南与实战解决方案,帮助用户确保空间数据的精确匹配。

weixin_29210727的博客 357

闷声干大事!腾讯捐了个JDK!

点击上方“Java基基”,选择“设为星标”做积极的人,而不是积极废人!每天14:00更新文章,每天掉亿点点头发...源码精品专栏原创 | Java 2021超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框架 Netty 源码解析消息中间件 RocketMQ 源码解析数据库中间件 Sharding-JDBC 和 MyCAT 源码解析作业调度中间件 Elast...

weixin_44421461的博客 141

Vivado新手避坑指南:搞懂Generate Output Products和Create HDL Wrapper到底在干啥

本文深入解析Vivado设计流程中的Generate Output Products和Create HDL Wrapper两大关键步骤,帮助新手理解其核心功能与操作要点。通过详细讲解文件生成类型、关键选项设置及常见问题解决方案,指导开发者正确使用这两个功能,避免设计流程中的常见错误,提高FPGA开发效率。

weixin_29207149的博客 313

驻极体咪头信号采集避坑指南:如何用5V单电源搞定0.1mV~1V的音频放大?

本文针对驻极体咪头(ECM)在5V单电源系统中信号采集的常见难题,提供了详细的电路设计指南。文章深入分析了咪头的高输出阻抗与微弱信号特性,重点阐述了采用两级运放(如AD8542)实现低噪声放大、直流偏置叠加以及抗混叠滤波的完整方案,并分享了PCB布局、电源去耦等关键调试技巧,帮助工程师稳定采集0.1mV至1V的音频信号。

weixin_29291069的博客 441

腾讯捐赠编译器基础软件,为中国开发者“添了双筷子”

2023开放原子全球开源峰会上,腾讯正式宣布将打磨多年的Java应用操作系统“OpenKona”捐赠给开放原子开源基金会,联合基金会以及数以百万计开发者,共建国产编译器基础软件,推动数字基础设施加速突破。

cloudbigdata的博客 1205

软考「系统规划与管理师(第2版)」抱佛脚|案例分析预测

规划类(系统/数据/云)+ 服务过程找错改进 + 风险应急终止三大块各备一套成熟模板,术语统一按第2版新教材口径,案例分析 45 分线的希望就大很多。

软件行业技术文化交流。 75

Kona 8:鹅厂基于OpenJDK开源的JDK

关于Kona 8腾讯开源的TencentKona 8是腾讯基于OpenJDK的一个免费的、生产级别的开源产品。Kona是腾讯内部默认JDK,针对超大规模的大数据、机器学习以及云计算环境做...

HollisChuang's Blog 1738

【华为OD机试】贪吃蛇(python, java, c++, js)

贪吃蛇是一个经典游戏,蛇的身体由若干方格连接而成,身体随蛇头移动。蛇头触碰到食物时,蛇的长度会增加一格。蛇头和身体的任一方格或者游戏版图边界碰撞时,游戏结束。 下面让我们来完成贪吃蛇游戏的模拟。 给定一个NM的数组arr,代表NM个方格组成的版图,贪吃蛇每次移动一个方格。 若arr[i][j] == H,表示该方格为贪吃蛇的起始位置; 若arr[i][j] == F,表示该方格为食物, 若arr[i][j] == E,表示该方格为空格。 贪吃蛇初始长度为1,初始移动方向为向左。

A_D_I_D_A_S的博客 542

DeepSeek+即梦:AI视频创作从0到1全突破

本文为 DeepSeek 与即梦生成视频全攻略,从前期注册登录、熟悉工具界面及硬件网络准备入手,助读者开启 AI 视频创作。详细阐述利用 DeepSeek 构思脚本、即梦实现画面生成与静态图转动态视频的方法,包括提示词编写、参数调整等技巧。同时介绍后期合成音画、添加字幕特效及多平台适配要点,结合实战案例解析全流程。还分享进阶提示词优化、版权注意等避坑指南,为创作者提供从 0 到 1 的 AI 视频创作完整解决方案。

邓邓子的博客 8122

重磅!腾讯把 “Java” 捐了!

来源:OSC开源社区 https://ai.cxyquan.com/6 月 11 日,腾讯正式宣布将打磨多年的编译器软件 OpenKona JDK 捐赠给开放原子开源基金会,并联合数以百万计开发者,共建国产编译器基础软件。相较于代码开源,捐赠不仅包括全部源代码,还涵盖了软件包、产权、商标、构建与测试基础设施、社区基础设施等。据介绍,OpenKona是基于OpenJDK开源项目打造的发行版之一...

356

MCAL中MCU的配置

MCAL配置中MCU配置,PLL计算配置,系统时钟以及各模块参数配置

dhyw12399999的博客 3796

腾讯把 Java 捐了!大气!

来源:OSC开源社区6 月 11 日,腾讯正式宣布将打磨多年的编译器软件 OpenKona JDK 捐赠给开放原子开源基金会,并联合数以百万计开发者,共建国产编译器基础软件。相较于代码开源,捐赠不仅包括全部源代码,还涵盖了软件包、产权、商标、构建与测试基础设施、社区基础设施等。据介绍,OpenKona是基于OpenJDK开源项目打造的发行版之一,性能比社区版本提高15%以上,尤其在大数据...

欢迎关注公众号:【码农突围】,回复9999,可以获取一份LeetCode刷题笔记 286

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

基于java+springboot的大学生在线捐赠交易系统(源码+lw+部署文档+讲解等)

在当今数字化时代,大学生群体的公益意识和捐赠需求日益增长,但传统捐赠方式存在流程繁琐、信息不透明、资源匹配低效等问题。开发一套基于 Java+SpringBoot 的大学生在线捐赠交易系统,旨在利用互联网技术优化捐赠流程,提升公益资源的流转效率,为高校公益事业注入新活力。 背景需求: 传统捐赠痛点:线下捐赠活动受时间、空间限制,捐赠物品或资金的流向不明确,易导致资源浪费或分配不均。 高校公益需求:高校内学生组织、社团及公益团体频繁发起捐赠活动,但缺乏统一管理平台,信息流通不畅。 数字化转型趋势:大学生作为数

专注于大学生项目实战开发,讲解,毕业答疑辅导,java就业辅导,高校老师/讲师/同行合作。以及产品测评宣传、工具推广等合作。全网粉丝10w+,平台优质创作者。 713

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

互联网摸鱼日报(2023-06-13)

数字化转型背景下:关于企业数据分析的趋势与预判字节跳动全域数据治理平台负责人王慧祥确认出席 ArchSummit 深圳2023开放原子全球开源峰会在北京成功举办解决制造业效率、质量和成本的取舍问题,技术可行但并非万能谁在死撑贾跃亭造车?中兴通讯孟伟当选 Linux 基金会人工智能及数据基金会董事会主席因 “政治不正确”,Bitwarden 解雇副总裁屡屡曝出重大安全问题,丰田新能源成“杂牌”?Reddit Apple版块关停,以抗议Reddit的高昂API定价去年赚了161亿的米哈游,能否在东南亚突出重围?

weixin_43849685的博客 1433

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Gitee 2019 年度报告发布:C ++回温,Dart 、人工智能火热

点击直达 Gitee 2019 年度数据报告 转眼 2020 已经到来,回望 2019,中国开源走过了无比精彩的一年。新年伊始,Gitee 2019 年度数据报告如期而至。 2019 年开源趋势 编程语言 Python 在 2019 年上升一位,首次进入前三,反映出人工智能持续升温。C++ 占比上升两位,当前底层基础设施性质的项目以及区块链、比特币等新兴项目主要使用的还是 C/C++...

ZicoChan的博客 3498

计算机毕业设计之:基于微信小程序的校园流浪猫收养系统

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W+粉丝。作为优快云特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台的优质作者。通过长期分享和实战指导,我致力于帮助更多学生完成毕业项目和技术提升。 技术范围: 我熟悉的技术领域涵盖SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等方

程序员阿龙的博客 2130

01-Docker入门与核心概念

要真正理解Docker,我们不能仅仅停留在"它是一个工具"的层面。任何一项技术的诞生都不是凭空而来的,它是对前人智慧的继承与发展,是对现实问题的回应。容器化技术同样如此——它有着超过四十年的技术积淀,经历了从chroot到LXC,再到Docker和Kubernetes的漫长演进。本章将带你穿越时光,梳理容器化技术的发展脉络,让你明白Docker为什么会出现在这个时代,以及它解决了前人没有解决好的哪些问题。软件交付方式的演进,本质上是人类对计算资源利用率和管理效率不断追求的过程。我们可以将这个过程分为三个主要

Na2SiO3Glue的博客 690
上一篇: 简化本地Feign调用,老手教你这么玩
下一篇: SpringBoot 插件化开发模式,强烈推荐!
公众号-芋道源码
博客等级 码龄10年 1636粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值