java基础学习笔记1

java学习笔记1 java入门学习笔记,持续更新,非常完整 阅读详情

java基础学习笔记1

1.java语言特点

面向对象的语言

健壮性

提供程序运行的解释环境

2.核心机制

JAVA虚拟机

自己写的java文件,通过编译器 编译成 字节码class文件

然后通过虚拟机一行一行解释执行

所以java是解释型语言

垃圾收集器

每隔一段时间回收一次。

3.Helloworld
public class HelloWorld{
public static void main(String[] args){
System.out.println("helloufose");
}
}

javac编译这个文件,java运行编译后的文件.

问题:找不到或无法加载主类

解决:在运行的时候不能带.class

4.基础语法
程序执行过程

编译好后,全部装载到内存里面,找到main方法,开始执行。

把内存分为四部分

代码区:存放代码

数据区:存放静态变量,字符串常量

栈:存放局部变量

堆:动态申请内存,new出来的东西

标识符

不能以数字开头,不能使用关键字,不能使用空格.

特殊字符只能用_或者$,其他字符一律不能使用.

区分大小写.

举例:

image-20200926165855035

关键字

image-20200926165944048

常量

整型常量:123

实型常量:123.4

字符常量:‘a’

逻辑常量:false true

字符串常量:“hello中国”

变量

先声明,再赋值。

按声明的位置划分:

局部变量:方法里面声明的变量

成员变量:class里面声明的变量

数据类型

基本数据类型

4类8种:

整数型:byte short int long

浮点型:float double

字符型:char

布尔型:boolean

引用数据类型:

class,interface,数组

字符

java采用unicode编码,每个字符占2个字节。

国标码:gbk或者gb2312

各个国家有各个国家的编码,unicode统一了全球编码。

java使用unicode的utf-16.

\可以转义。

整数类型

byte 1字节 范围: -128~127

short 2字节 范围:类似上面计算出来

int 4字节 范围:类似上面计算出来

long 8字节 范围:类似上面计算出来

8进制要用0开头,16进制用0x开头

long类型赋值时必须加在最后加L或者l。

浮点型

float 4字节 范围:类似上面计算出来

double 8字节 范围:类似上面计算出来

默认为double,所以在晟声明float时必须在最后加上F或者f。

基本数据类型之间的转换

byte,short,char->int->long->float->double

byte,short,char之间不会互相转换,他们三者在计算时首先回转换为int类型。

实数常量(如:1.2)默认为double。
整数常量(如:123)默认为int。

小心!从大到小的转换存在溢出问题!

例如:

double c2= 1e200;
float f2=(float)c2;
System.out.println(f2);
//打印Infinity
//表示溢出

例如:

float a1=1.73f;
long a2=(long)a1;
System.out.println(a2);//打印1

long a=1000;没问题,没超出。类型为long。

long a=88888888888888888;有问题,超出范围。

long a=88888888888888888L;应该加L。

两个char相加,首先会把他们俩转成int相加,结果是int。如果强制转化,则再把加后的int转为char。

– ++

int a=11;

int b=a++; // b等于11 赋值结束后,a=12.

&& & || |

&&如果前面不成立,就不在计算后面的了。

&前后两个都要计算

三目运算
int a=1;
System.out.println(a==1?"男":"女");

可以用在打印语句里面!

if else

注意:else{} 最好加上大括号,不加只运行其后的一句。

循环

for(表达式1;表达式2;表达式3){

语句;

}

执行过程:表达式1–表达式2—语句—表达式3,再循环回去


while(表达式){语句}

执行过程:表达式–语句


do{语句}while(表达式);

执行过程:语句–表达式 注意最后的分号!


break:

for(int i=0;i<5;i++){
	if(i==2){break;}
	System.out.println(i);
}
	//打印01

continue:

for(int i=0;i<5;i++){
	if(i==2){continue;}
	System.out.println(i);
}
	//打印0134

switch(){
case xx:

…

case xx:

…

defalut:

…

}

一定要和break一起使用!!不然会一路case下来。

xx只能是int类型!!

defalut是上面都不是才运行。可以省略!

5.基本概念
引用类型

除了那8个基础类型,其他的所有变量都是引用类型。

引用类型占2块内存。

类是静态的概念,存在代码区。

对象是new出来的,在堆区。

类里面的方法只有一份,执行时才占用内存。

构造方法

使用场景:

Person a= new Person();

后面这个Person();就是构造函数。

定义位置:

与类名相同,没有void,没有返回值。

public class Person {
    String name;
    int age;
    
    //下面这个就是构造函数,他不是方法!
    Person(String n,int a) {
         name = n;
         age = a;
     }
}
内存解析
public class Person {
    String name;
    int age;
	//此处省略了setter和getter
    
    //下面有三种试图改变name的方法
    public static void change(Person a) {
        a.setName("wdcwec");
    }
    public static void change2(Person a) {
        a = new Person("funcname", 77);
    }
    public static void change3(String newname) {
        newname = "dwjcwfbefbwe";
    }

    //主函数
        public static void main(String[] args) {
        Person a = new Person("dcwe", 12);
        change2(a);
        System.out.println(a.getName());//并没修改成功

        change3(a.getName());
        System.out.println(a.getName());//并没修改成功

        change(a);
        System.out.println(a.getName());//修改成功

    }
}


具体内存分析过程查看视频:

https://www.bilibili.com/video/BV1Gs411G7TY?p=34

其实就是声明变量时,在栈里面声明,

然后new出东西来,放在堆里面,

然后这个变量指向这个new出来的东西,也就是从栈里面指向堆。

更复杂的内存分析(坐标Point求距离的例子):

https://www.bilibili.com/video/BV1Gs411G7TY?p=38

重载

函数名字必须相同,参数个数不同,参数类型不同。

不要求返回类型!!没有半点关系!!!

构造方法重载

注意,构造函数不写时,默认有个Perosn(){}

如果手动写了构造函数,默认的就不存在了。

构造函数也可以重载。

this

image-20200926214433918

在构造函数传入参数重名时会用到。

static

staic成员变量只有一份。也就是说,每个地方改了它,它都生效:

public class Person {

    static int statu = 99;

    public static void main(String[] args) {
        Person.statu = 100;
        test();//打印100
    }
    public static void test() {
        System.out.println(Person.statu);
    }
}

static成员可以通过类名.访问:

public class Person {
    static int statu = 99;
    public static void main(String[] args) {
        System.out.println(Person.statu);
    }
}

static方法中不能访问非static成员:

直接报错:

image-20200926215131167

package

只有java.lang不需要引入,直接使用!里面有常用的String,System,Thread,Integer等等。

自己写的类,如果要相互使用:

使用全类名:

image-20200926221156319

使用import:

image-20200926221247762

使用package:

image-20200926221405356

打包自己的类 成jar:

jar -cvf test.jar *.*

-c创建新的存档 -v生成详细输出到标准输出上 -f指定存档文件名

这些可以jar -h查看

test.jar 自己的命名

继承

Java只支持单继承!

访问控制符

image-20200926222817344

假如我有个类:

image-20200926224611317

在同一个包,另一个类下继承这个类:

image-20200926225156441

在不同包,不同类下,继承这个类:

image-20200926225548888

就在这个类中的类:

image-20200926225842705

重写

场景:

在子类中,继承父类,重写父类方法

要求:

相同方法名称、参数列表、返回类型、访问权限不能更严格

image-20200926231004193

Java学习笔记 - 1.1 本章为Java学习的入门准备 阅读详情

相关推荐

告别Visual Studio!用MSYS2+GCC+CMake在Windows上打造Linux式C++开发环境(保姆级避坑)

本文详细介绍了如何在Windows上使用MSYS2+GCC+CMake搭建Linux式C++开发环境,替代Visual Studio。从MSYS2的安装配置、MinGW-w64 GCC工具链的部署,到CMake项目的创建与构建,提供了保姆级教程和常见问题解决方案,帮助开发者高效过渡到命令行开发模式。

weixin_30298497的博客 326

JAVA 核心技术卷1学习笔记(1)

JAVA 核心技术卷1学习笔记(1) 总体概述

jiayue's BLOG 196

zynq 7010/020 AMP双核通信-Vitis2023/2024

在platform cpu1设置中添加;注意value中使用空格分开程序思路:比较简单。

weixin_43310175的博客 918

Alice的Java学习笔记1—《Java基础入门》

一、Java基础: 1.历史: Java是1990年是SUN公司 (sun microsystems)开发的内部项目 名为OAK ,在1994年内部改名为JAVA,在1995年开始推行,Java是一门高级编程语言 在2009年,SUN公司被Oracle收购了(花费74亿美元) 2.Java严格意义上有三个版本: J2SE:SE(Standard Edition)是基础版 ,核心代码,用于Java小程序:结算系统、桌面游戏、桌面软件。 J2ME:ME是移动版,现在已经不用了,用于半智能手机 ,被安

Alice的学习笔记 486

ChatGPT Windows桌面版:从安全下载到高效配置的全流程指南

WebView封装技术是将网页应用转化为独立桌面程序的核心方法,它通过嵌入浏览器内核实现跨平台功能复用。其原理在于利用Electron或Tauri等框架,将Web内容打包进原生应用外壳,同时注入系统级API调用能力。这项技术的工程价值在于显著提升了Web应用的系统集成度和用户体验,使其能够支持全局快捷键、独立进程和本地数据存储等原生特性。在AI助手深度集成工作流的应用场景中,这种封装模式解决了浏览器多标签页切换繁琐、会话管理不便等痛点。本文以ChatGPT桌面客户端为例,详细解析了基于开源项目的安全下载路径

weixin_30437847的博客 488

【电机应用控制】——直流有刷电机&驱动板/编码器介绍&PID算法&实操代码思路

声明:学习笔记来自正点原子B站教程,仅供学习交流!!玩具车、平衡车、无人机、印刷机、打印机、手机振动马达等电机即电动机(motor),也叫作马达,电能转化为机械能。按电源:直流、交流按用途:驱动用、控制用按运转速度:高速、低速、恒速、调速直流电机(有刷、无刷)、舵机、步进电机、伺服电机1、直流有刷电机(Brushed DC Motor,简称BDC)是内含电刷装置的将直流电能转化为机械能的电动机。例如四驱赛车四个马达操控方便、成本低、维护时换电刷即可;

weixin_51658186的博客 2万+

Java基础学习笔记1

这是我的第一篇博客,记录我学习Java的笔记。是跟着视频学习是用typora手打的,现在把它存到这里方便以后自己查阅。后面还会坚持更新后面的学习笔记。 第一章 前言 1.1 Java语言概述 什么是Java语言 Java语言是美国Sun公司(Stanford University Network),在1995年推出的高级编程语言。所谓编程语言,是计算机的语言,人们可以使用编程语言对计算机下达命令,让计算机完成人类需要的功能。 Java语言发展史 1995年Sun公司发布了Java 1.0版本 1997年发

wu15632548808的博客 591

PyQt5开发应聘简历模版

该工具旨在帮助用户对Excel、CSV格式的数据进行快速导入、分析及可视化展示,支持折线图、柱状图、饼图等多种图表类型,提供数据筛选、排序、统计等功能,适用于企业数据分析人员日常工作。:一款用于本地文件管理的桌面应用,支持文件的新建、复制、移动、删除、重命名等基本操作,具备文件搜索、分类整理、批量操作及文件信息查看等功能,提升用户文件管理效率。:熟悉QSS(Qt Style Sheet)样式表,可对PyQt5界面进行个性化美化,包括控件颜色、字体、边框、布局等样式定制,提升应用视觉体验。

ybmzlqzj的博客 83

JavaEE学习笔记1——Java基础

Java笔记1-Java基础

vermouth_1412的博客 195

matlab 点云学习目录【2026最新版】

matlab 点云学习目录。博客长期更新,本文最近更新时间为:2026年6月15日。

点云侠的博客 3万+

即插即用篇 | 手把手教你 YOLOv11 添加注意力机制 | 适用于【检测任务】【分类任务】【分割任务】【关键点任务】| 20+ 种全打通!

即插即用篇 | 手把手教你 YOLOv11 添加注意力机制 | 适用于【检测任务】【分类任务】【分割任务】【关键点任务】| 20+ 种全打通!

Coding... 2833

java学习笔记1 基础

Java方法(变量)修饰符的使用顺序权限修饰符包关键字thisstaticfinalinstanceof注释标识符比较运算符逻辑运算符位运算符函数定义特点主函数重载重写(覆写)重写equals和hashCode覆写与重载的区别构造函数数组定义数组中的数组Java内存分配之堆、栈和常量池匿名对象封装代码块单例设计模式继承一个对象的实例化过程抽象类接口接口与抽象类多态多态时成员的特点内部类匿名内部类(...

qq_43132512的博客 1406

ABAP Cloud 开发教程的文章目录

本教程涵盖 ABAP 云端 Client 处理、多租户架构、ABAP Cloud开发、动态编程优化、SQL语法改进等技术主题。最新版本1.0.0(更新至2025-12-12),包含197篇文章,重点文章包括《ABAP Client Handling与隔离机制》《ABAP Platform 2021泛型编程》《SAP BTP ABAP多租户应用开发》等,为开发者提供从基础到进阶的实战指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1815

Java学习笔记1

JDK 的全称(Java Development Kit Java 开发工具包) JDK = JRE + java 的开发工具[java, javac,javadoc,javap 等]JDK 是提供给Java 开发人员使用的,其中包含了java 的开发工具,也包括了JRE。JRE(Java Runtime Environment Java 运行环境) JRE = JVM + Java 的核心类库[类]

Wi11iam_Lee的博客 1252

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

深度学习工具包 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学习笔记2024/1/30

知识点: 流程控制语句

berry的博客 668

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Java学习笔记1 基础语法

Java学习笔记1 基础语法 注释、标识符、关键字 数据类型 类型转换 变量、常量 运算符 包机制、JavaDoc

小喾苦的博客 314

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Java学习笔记1——编程基础

Java学习笔记1——编程基础

2401_88591507的博客 1110

尚学堂JAVA基础学习笔记_1/2

尚学堂JAVA基础学习笔记_1/2 文章目录尚学堂JAVA基础学习笔记_1/2写在前面第1章 JAVA入门第2章 数据类型和运算符第3章 控制语句第4章 Java面向对象基础1. 面向对象基础2. 面向对象的内存分析3. 构造方法4. 垃圾回收机制(Garbage Collection)5. this关键字6. static 关键字7. 静态初始化块8. 参数传值机制9. 包第5章 Java面向对...

李英俊小朋友 2701

Java后端学习笔记1

【代码】Java后端学习笔记1。

demononez的博客 1851
上一篇: 安装maven,配置镜像,在idea中使用
下一篇: java基础学习笔记2
UFOO2
博客等级 码龄6年 7粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值