JAVA实战———java基础三

【Java】OpenPDF、iText、PDFBox 三大PDF库实战对比:从基础操作到高级功能 本文深入对比了Java生态中三大主流PDF库:OpenPDF、iText和PDFBox。从许可协议、基础操作到高级功能(如文档合并、加密、表单处理),结合实战代码分析了各自的优势与适用场景,帮助开发者根据项目需求(如成本、性能、合规性)做出精准选型。 阅读详情

1.Java提供了线程类Thread来创建多线程的程序。其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象。每个Thread对象描述了一个单独的线程。要产生一个线程,有两种方法:

需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方法;

实现Runnalbe接口,重载Runnalbe接口中的run()方法。

2. 同步多线程(SMT)是一种在一个CPU 的时钟周期内能够执行来自多个线程的指令的硬件多线程技术。本质上,同步多线程是一种将线程级并行处理(多CPU)转化为指令级并行处理(同一CPU)的方法。同步多线程是单个物理处理器从多个硬件线程上下文同时分派指令的能力。同步多线程用于在商用环境中及为周期/指令(CPI)计数较高的工作负载创造性能优势。处理器采用超标量结构,最适于以并行方式读取及运行命令。同步多线程使您可在同一处理器上同时调度两个应用程序,从而利用处理器的超标量结构性质。

3. 线程的调度与控制2. 同步多线程(SMT)是一种在一个CPU 的时钟周期内能够执行来自多个线程的指令的硬件多线程技术。本质上,同步多线程是一种将线程级并行处理(多CPU)转化为指令级并行处理(同一CPU)的方法。同步多线程是单个物理处理器从多个硬件线程上下文同时分派指令的能力。同步多线程用于在商用环境中及为周期/指令(CPI)计数较高的工作负载创造性能优势。处理器采用超标量结构,最适于以并行方式读取及运行命令。同步多线程使您可在同一处理器上同时调度两个应用程序,从而利用处理器的超标量结构性质。

start()启动线程进入可运行状态(Runnable)

stop()停止线程进入消亡状态(Dead)   //已过时,5.0以后不再支持

sleep()线程睡眠进入冻结状态(Blocked)

wait()

join()——临时加入线程;抢夺CPU执行权,执行完毕后才轮到其他线程,,,插队

当A线程执行到了B线程的join()方法时,A就会等待,等B线程执行完A才会执行

会抛出InterruptedException

4.interrupt()停止线程(的冻结状态)

多线程通常使用循环结构,只要控制住循环就能使run()方法结束,从而结束线程
当线程处于冻结状态就读取不到标记;wait() join() sleep()都会导致冻结状态;不结束冻结状态程序就不能停止
当没有指定方式(notify,signal等)使线程恢复到运行状态时。就需要对冻结状态进行清除

5. java的 线程调度是不分时的,同时启动多个线程后,不能保证各个线程轮流获得均等的CPU时间片。如果希望明确地让一个 线程给另外一个线程运行的机会,可以采取以下办法之一。

调整各个 线程的优先级

让处于运行状态的 线程调用Thread.sleep()方法

让处于运行状态的 线程调用Thread.yield()方法

让处于运行状态的 线程调用另一个线程的join()方法

线程切换:不是所有的线程切换都需要进入内核模式

 

Java基础编程实战:三个数排序输出 变量是程序中用于存储数据的命名容器。在Java中,变量必须先声明后使用,声明时需要指定其数据类型。数据类型决定了变量的大小、取值范围以及可以进行的操作。在本章中,我们深入学习了Java中变量与基本数据类型的定义、命名规则与转换机制,掌握了条件判断语句的基本结构与多条件组合逻辑,并通过switch语句优化多重判断。通过一个完整的实践案例,我们将这些知识点串联起来,实现了输入三个数并判断最大值的功能。在后续章节中,我们将进一步学习数组操作与排序算法,为更复杂的数据处理打下基础。 阅读详情

相关推荐

Java基础实战_Bank项目

java基础银行项目,包括步骤和代码感兴趣的可以看看,

Java应用实战:从入门到精通的全面指南

Java作为一门功能强大、生态丰富的编程语言,其学习之路既充满挑战也极具价值。从基础语法到高级特性,从单机应用到分布式系统,每一步都凝聚着开发者的智慧与汗水。本文试图通过从入门到精通的全面指南,为Java学习者提供一条清晰的学习路径。然而,技术的海洋浩瀚无垠,真正的精通需要不断的实践、探索与积累。愿每位Java开发者都能在这条道路上越走越远,创造出更多有价值的作品。

m0_72256543的博客 1090

java 项目实战 java web基础 适合从零开始的初学者

java 项目实战 java web基础 适合从零开始的初学者。,,,

保姆级Java入门练习教程,附代码讲解,小白零基础入门必备(建议收藏)_java教程

本篇文章带大家搭好环境,并体验了控制台打印。下一题是控制台输入,大家可以先思考一下🤔加入组队刷题sc.next()和有什么区别?next()遇到空格停止接收。在实际开发中为了增强代码的可读性,统一使用短路与,且不在判断条件中做任何运算。如何不用其他变量交换两个数的值?答,将两个数做加/乘法。在做减/除法。a=a\*b;b=a/b;//等价于 a\*b/b=a,即将a的值赋给了ba=a/b;//等价于 a\*b/a=b,即将b的值赋给了a加减的方式留给大家去实现。除了for循环,用while。

2401_84563987的博客 578

轻量级替代方案:用AIFlowy + Ollama在本地快速搭建一个可用的AI智能体平台

本文介绍了如何使用AIFlowy和Ollama在本地快速搭建轻量级AI智能体平台,涵盖从环境准备到智能体集成的全流程。通过简化部署步骤和优化性能,15分钟内即可完成搭建,适用于原型验证和小团队协作,显著提升开发效率。

weixin_29207533的博客 220

6-3 根据派生类写出基类(Java解法)(PTA)

主要是看main函数里调用了什么方法和输出样例,一一对应一下有思路再写就很简单.建议使用IDEA自动生成,可以少写很多代码。

u012137663的博客 1142

JAVA实战———java基础一

1、一个Java类由数据成员以及方法成员两大部分构成。数据成员用于描述这个JAVA类所具备的属性,方法成员用于描述这个类所具备的功能!2、在定义一个类时我们要用到class关键字来声明你所定义的是一个类。结构为【修饰词】 class 类名 (参数){     数据成员     方法成员}3、对于一个类而言,我们可以构造一个构造函数用于初始化该类,且构造函数的名称与类名必须相同,该构造函数可以不返回...

Fly_鹏程万里 877

Difftest踩坑笔记(一)

Difftest是差分测试框架,有什么用呢?高性能CPU的设计需要做复杂的测试,传统的测试方法运行较慢,而且出了问题很难定位,Difftest就是为了解决这两个问题。

http://www.icfgblog.com/ 4197

Java基础到项目实战(三)

Java基础知识

qq_62599142的博客 635

Cadence原理图设计10个高效技巧:从封装绑定到BOM表导出全流程

本文为硬件工程师提供了一套Cadence OrCAD Capture CIS原理图设计的高效实战指南。文章深度解析了从封装库的精准管理与CIS数据库绑定、封装批量处理技巧,到设计缓存清理、跨页信号追踪,再到关键的DRC检查、网表导出以及智能BOM报表生成的全流程核心技巧,旨在帮助工程师提升设计效率与可靠性,规避常见错误。

weixin_29178069的博客 202

ubuntu20.04 终端安装claude

【代码】ubuntu20.04 终端安装claude。

hongliyu_lvliyu的博客 2600

java 基础实战_Java基础实战(三)

是否是否是否是否获取字符串字符数组大写?小写?数字?非字母与数字大写字母小写字母数字i结束i=i+1第一步 拆分字符串为字符数组:static void count(String str) {// 将字符串拆分为字符数组char[] charArray = str.toCharArray();}第二步 定义相关变量记录结果:// 记录数字字符串String digit = "";// 记录统计数字...

weixin_33376592的博客 396

【kubernetes】kubernetes kubeadm init 错误了 怎么回退?

因为虚拟机设置问题首先报错:然后我根据文章修改了核数。重启后,查看VIP运行所在机器,发现机器没有变化然后重新执行初始化后面报错了根据提供的信息,问题主要集中在 kubelet 未能成功启动控制平面组件,导致初始化过程超时。以下是可能的原因及相应的排查步骤:原因 1:kubelet 未运行或运行状态异常正如错误提示所指出,kubelet 可能未运行或处于不健康状态。请按照提示执行以下命令检查 kubelet 的状态和服务日志:根据输出结果,判断 kubelet 是否正常运行。后续一大堆错误。

九师兄 121

java三大框架视频_Java三大框架实战视频教程:小白必知基础

对于学习Java技术的小伙伴来说,相信或多或少都会听到关于Java编程语言的三大框架。Java作为编程语言界元老级的存在,这么些年来不仅平稳的发展,而且也渐渐成为众多企业首选的编程语言。另外是,优秀的Java程序员的薪资更是随着时间递增!那么,Java三大框架是哪几个呢?一.Struts框架Struts是开源软件。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。...

weixin_31807925的博客 148

大厂面经:大疆嵌入式面试题及参考答案(4万字长文:持续更新)

目录 Linux 系统调用的过程,中间发生了什么? 表格总结 Linux 中断流程,谈谈你对中断上下文的理解 中断流程 中断上下文理解 Linuxschedule()函数的原理和调用的时机 schedule()函数原理 调用时机 页表实现机制,分页的缺点? 页表机制 分页的缺点 介绍操作系统的多级反馈调度策略,时间片轮转,在项目中如何指定优先级来调度进程完成快速响应(nice命令) 多级反馈队列调度 时间片轮转 使用nice命令 聊内存分配,进程内存分配,段页式存

大模型大数据攻城狮的专栏 4172

【深度学习新浪潮】OpenClaw跟机器人行业有哪些很好的研究结合点?

OpenClaw正通过"AI大脑+机器人肢体"的深度融合,重新定义机器人与人类的交互方式和自主操作能力。近期ROSClaw框架发布、人形机器人集成和空间计算试验等进展,标志着OpenClaw已从概念验证阶段进入实际应用落地期,为机器人行业带来了自然语言控制普及化具身智能平民化和跨平台开发标准化三大变革机遇。

专注:太空算力、AI infra、异构调度、大模型成本工程 229

Java培训实战教程之Java基础知识精华部分(三)

很多同学在java培训过后反应,说并没有吸收课堂内的所有知识,虽然拿到了不菲的薪资,但是直到就业后,也只是吸收了课堂上71.2%的知识,java培训学院特此让专人编写此篇文章,只为帮助更多的同学! 三:面向对象:★★★★★ 特点:1:将复杂的事情简单化。 2:面向对象将以前的过程中的执行者,变成了指挥者。 3:面向对象这种思想是符合现在人们思考习惯的一种思想。   过程和对象在

smile_meng的博客 549

深度学习工具包 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")

《java并发编程实战》基础构建模块(三)

双端队列与工作密取

hey Man 885

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

《好好学Java 从零基础到项目实战》姗姗而来

梦里寻她千百度,千呼万唤始出来。从决定开始写这本书,到最终出版上市,数数已经是第三个夏天了。今年疫情有点紧,各行各业都受到影响,多亏出版社各位老师东奔西走,总算排除了万般艰难险阻,这才有了《好好学Java 从零基础到项目实战》的顺利上市。又是一本600页的编程书籍,拿在手中沉甸甸的,感觉两年的辛劳和等待终于没有白费。感谢这个伟大的时代给人激情澎湃,感谢清华社的老师在芸芸众生中发掘人才,让程序员也有机会成为技术作家,感谢我的家人始终如一的支持和关怀,使我能够集中精力写完本书。 先来看看《好好学Java 从零基

pinlantu的博客 1085

java学习之屌丝逆袭

Java学习攻略之视频学习篇                              ——屌丝逆袭之7K轻松拿        屌丝靓妹,你现在学习java还在抱着一本本学习资料学吗?见过《java编程思想》这本书吧,这本书确实很好,那么厚一本,你真有勇气看下去吗?不管你有没有,反正我是没勇气。现在本屌基本是看不下去书,抱书等于抱枕头,直接睡着。        现在学习java最好的

nigel521的专栏 814

# Java 零基础完整入门教程(超详细,循序渐进)

1. Java的核心优势是「跨平台、面向对象、安全稳定」,JVM是跨平台的核心。 2. 开发Java必须安装JDK,第一个程序HelloWorld的编译命令`javac`,运行命令`java`,必须掌握。 3. Java是强类型语言,8种基本数据类型是基础,流程控制(if/for)是编程逻辑核心。 4. Java的灵魂是「面向对象」,类和对象是基础,三大特征(封装、继承、多态)是核心。 5. 学习Java的核心法则:**多看、多写、多练**,语法背会没用,只有动手敲代码,才能真正掌握!

[Blog][Domain] programb.blog.youkuaiyun.com 8880

Java基础面试必杀技:这些知识点90%会被问到(附代码实战)

单线程用StringBuilder,多线程用StringBuffer,字符串不变用String!JDK1.8的HashMap采用数组+链表+红黑树结构(应对哈希碰撞的终极方案)记住:面试是双向选择,大胆展示你的技术热情!(但别问薪资福利,等HR环节再说)需要频繁在中间插入/删除 → LinkedList(时间复杂度O(1))需要频繁根据索引查询 → ArrayList(时间复杂度O(1))这个知识点看似简单却暗藏杀机(掉坑率高达80%!加载因子0.75(空间与时间的完美平衡点)

codecrafter123的博客 740

2021年学Java如何脱颖而出?

Java自1995年诞生以来一直在平稳上升,市场需求大,薪资也是一路高涨,逐渐成为许多想进入IT行业朋友们的第一选择。那么,2021年学Java如何脱颖而出?掌握哪些内容可以找到工作?下...

传智播客的专栏 274

Java要凉?那是你不懂!

作为一个历经无数风雨的编程语言,Java近些年好像拿到了悲惨的“人设剧本”,网络上对它的质疑越来越高,例如:“Java真的要凉了吗?”“Python的强势发展下,Java地位岌岌可危?”...

ITMuch的专栏 130

Java面试:MCP与Java基础的深度探讨

本次面试通过层层深入的提问,全面考察了候选人在Java基础和MCP技术方面的能力。候选人的回答不仅展现了扎实的理论基础,还体现了丰富的实战经验。面试官对候选人的表现给予了高度评价,认为其是团队中不可多得的技术人才。

南客先生的博客 445

Java基础笔试重点解析与实战技巧

Java作为主流编程语言,其基础语法和核心特性是开发者必须掌握的关键技能。从数据类型、流程控制到面向对象三大特性,理解这些基础概念是构建Java知识体系的基石。集合框架和Stream API等进阶内容则体现了Java在现代开发中的工程实践价值,特别是在数据处理和并发编程场景中的应用。针对Java 8+新特性如Lambda表达式和模块化系统的掌握,已成为企业面试的高频考点。通过系统化的笔试练习,开发者可以检验知识盲区,其中字符串驻留机制、自动装箱陷阱等典型问题需要特别注意。结合企业实际需求,本文整理了包含语法

weixin_30904593的博客 1010
上一篇: JAVA实战———java基础二
下一篇: JAVA实战———java基础四
FLy_鹏程万里
FLy_鹏程万里 优质创作者: 后端开发技术领域 优质创作者: 后端开发技术领域 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄9年 1万+粉丝 1364原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FLy_鹏程万里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值