面试笔记!

架构师学习路线: https://www.processon.com/view/link/5cb6c8a4e4b059e209fbf369#map
面试大杂烩:https://www.cnblogs.com/shan1393/category/1205529.html
sql: https://www.cnblogs.com/hsmwlyl/p/10719152.html
sql优化:https://www.cnblogs.com/wangzhengyu/p/10412499.html
像事务的隔离级别,
mysql的原理、设计、调优
行锁和表锁的特征区别(锁的粒度、开销、效率、锁冲突程度、并发量),
存储引擎 MyISAM和InnoDB区别(支持事物、全文索引、支持的锁粒度、外键、查count(*)原理,
MySQL实现可重复读的原理,
索引:https://blog.csdn.net/chang_ge/article/details/79849634
创建表的时候创建索引:create table tableName(id int primary key, name varchar(20)[约束 not null], index [别名](name [索引长度])[asc/desc];
CREATE INDEX PersonIndex ON Person (LastName, FirstName)
查看表结构: show create table tableName [\G];
在数据库主从同步的情况下,如果从库同步主库的数据延迟比较高,怎么才能在写到主库后立刻能够读取到数据
aqs,
线程池,
ThreadLocal,threadlocal原理和使用。
ElasticSearch的一些基础以及它和mysql的区别在哪里;
eureka 和 zookeeper 做服务发现的区别在哪里;
tomcat的优化
jvm 模型(堆(存放对象,比如new产生的、栈(存放局部变量、本地方法栈、方法区、程序计数器),
锁的原理,
synchronized 和 reentrantlock的区别,偏向锁/轻量级锁/重量级锁的原理,能否从偏向锁直接升级成重量级锁。
java并发包里有哪些类,如何使用,线程池原理和参数配置,jvm调优,堆大小的设置,多线程的线程数的设置,
volatile原理,https://www.cnblogs.com/dolphin0520/p/3920373.html
并发编程的三要素(原子性、可见性、有序性,volatile可以保证可见性、有序性,不能保证原子性,可以通过synchronized关键字保证原子性)
redis和zookeeper如何实现分布式锁,redis的数据类型
数据库索引的使用,聚簇索引和非聚簇索引,没有主键的话数据如何组织。
B+ 树的原理,Innodb 引擎和 myisam 引擎的区别和使用场景,数据库隔离级别和原理,MySQL的分库分表,mq的可靠性和顺序性,es插入数据的原理等。
volatile 在单例模式中的使用,内存的多级缓存机制,线程池的各种不同应用场景
一面主要还是基础,集中在IO / 并发 / 缓存 / redis / zookeeper / 分布式 / JVM / 数据库等。
二面的面试官也聊了基础和一些设计上的问题,比如同时访问三个有相同功能的api,要求将执行最快的结果返回,有哪些方式,这块主要还是考察对并发编程,并发控制的理解和掌握,有一些并发控制的类能够做到;其他的还问到了,要开发一个新的api,需要考虑哪些方面,把所有要考虑的地方都说出来,大家可以说下边界处理,高可用,并发问题,可扩展性,幂等性,重试机制等等,可以说的非常多
Java线程与内核线程的关系,与进程的关系;为什么有并发,并发问题产生的根源,解决并发问题的一些理论,Java中解决并发问题的方式,不同方式的适用场景和对比等方面进行了回答
一面仍然是基础的考察,像CAS的理解,和它存在的问题,ConcurrentHashMap的锁机制,ElasticSearch倒排索引,eureka的底层源码,还有服务访问的重试机制等等
Java中类加载的双亲委派模型。
最后就是让画一个spring cloud技术栈所有框架的整体执行流程图,并对hystrix的限流熔断机制做了解释说明,
快照读、当前读:在mysql中,提供了两种事务隔离技术,第一个是mvcc,第二个是next-key技术。这个在使用不同的语句的时候可以动态选择。不加lock inshare mode之类的快照读就使用mvcc。否则 当前读使用next-key。mvcc的优势是不加锁,并发性高。缺点是不是实时数据。next-key的优势是获取实时数据,但是需要加锁。
在RR级别下,快照读是通过MVVC(多版本控制)和undo log来实现的,当前读是通过加record lock(记录锁)和gap lock(间隙锁)来实现的。(u 无锁读 rc mvcc rr mvcc s 自动升级为当前读)
所以从上面的显示来看,如果需要实时显示数据,还是需要通过手动加锁来实现。这个时候会使用next-key技术来实现。
java中拦截器 过滤器 监听器都有什么区别?
2018年08月10日 16:39:17 wu1317581750 阅读数 325
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wu1317581750/article/details/81565907
1、过滤器
filter主要用途是过滤字符编码、做一些业务逻辑判断等。工作原理是,只要在web.xml文件配置好拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应统一设置编码,简化操作;同时还进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面等工作。随web应用启动而启动,只初始化一次。

2、监听器
listener主要作用是:做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者一些固定的对象。

3、拦截器
拦截器是在面向切面编程中应用的,就是在你的service或者一个方法前调用一个方法,或者在方法后调用一个方法。基于java的反射机制

拦截器:这个也是在处理请求之前,但是是基于反射的。
过滤器:在处理请求之前,先进行处理。这个是基于javaweb组件filter
监听器:有8个基本的监听器,分别和 程序上下文,请求对象,session有关。这个可以查询一下,监听对象可以做一下相关操作。
String 值传递、引用传递?https://www.cnblogs.com/z2qfei/p/7998132.html
4种分布式session解决方案(优缺点) https://blog.csdn.net/qq_35620501/article/details/95047642
三种实习分布式锁的方式(数据库、redis、zookeeper)以及优缺点
堆和栈的区别:https://blog.csdn.net/jianghao233/article/details/82777789
1.栈内存存储的是局部变量而堆内存存储的是实体;
2.栈内存的更新速度要快于堆内存,因为局部变量的生命周期很短;
3.栈内存存放的变量生命周期一旦结束就会被释放,而堆内存存放的实体会被垃圾回收机制不定时的回收。
方法区:类型信息被存储在一个称为方法区的内存逻辑区中。类型信息是由类加载器在类加载时从类文件中提取出来的。类(静态)变量也存储在方法区中。
GC:https://blog.csdn.net/leftfist/article/details/85197496
GC回收哪些对象:https://www.jianshu.com/p/ce72f9c18260
因为垃圾回收器只能回收通过new关键字申请的内存(在堆区),但是堆上的内存并不完全是通过new申请分配的。还有一些本地方法(一般是调用的C方法)。这部分“特殊的内存”如果不手动释放,就会导致内存泄露,而垃圾回收器是无法回收这部分内存的。所以需要在finalize中用本地方法(native method),如free操作等,再使用gc方法。
判断一个对象是否存活常用的有两种办法:引用计数和可达分析。
IOC:控制反转也叫依赖注入(Inverse of Control)
IOC利用Java反射机制,AOP利用代理模式。所谓控制反转是指,本来被调用者的实例是有调用者来创建的,这样的缺点是耦合性太强,IOC则是统一交给spring来管理创建,将对象交给容器管理,你只需要在spring配置文件中配置相应的bean,以及设置相关的属性,让spring容器来生成类的实例对象以及管理对象。
synchroinzed关键字和锁:
synchronize关键字用法:作用在方法(包括静态方法)上和代码块(可以锁对象,也可以锁类)中。
静态方法、类、静态方法、对象
前面两个用的是类锁,后两个用的对象锁。
对象锁是用于对象实例方法,或者一个对象实例上的,类锁是用于类的静态方法或者一个类的class对象上的。我们知道,类的对象实例可以有很多个,但是每个类只有一个class对象,所以不同对象实例的对象锁是互不干扰的,但是每个类只有一个类锁
1.java的hashmap是否安全?hashmap、hashtable、concurrenthashmap的区别、底层和实现
2.mysql索引的底层实现 https://www.cnblogs.com/tilamisu007/p/9293713.html
MySQL索引实现
1、MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址;
MyISAM主索引和辅助索引在结构上没有任何区别,只是主索引要求key是唯一的,而辅助索引的key可以重复;
2、InnoDB的数据文件本身就是索引文件,叶节点包含了完整的数据记录,这种索引叫做聚集索引。
因为InnoDB的数据文件本身要按主键聚集,所以InnoDB要求表必须有主键(MyISAM可以没有),如果没有显式指定,则MySQL系统会自动选择一个可以唯一标识数据记录的列作为主键,如果不存在这种列,则MySQL自动为InnoDB表生成一个隐含字段作为主键。
InnoDB的辅助索引data域存储相应记录主键的值而不是地址;
辅助索引搜索需要检索两遍索引:首先检索辅助索引获得主键,然后用主键到主索引中检索获得记录;
3.jvm垃圾回收机制
4.tcp、udp(视频传输、在线聊天)区别(效率、安全、连接、可靠)和适用场景
5.tcp三次握手、四次挥手,为什么挥手不能只有三次
6.线程和进程的区别
7.进程通信的方式有哪些
8.堆是线程共有还是私有,堆是进程共有还是私有,栈呢
9.了解过协程吗(我:携程???不了解呜呜呜)
10.mysql查询优化
11.快速排序的时间复杂度、原理(口述算法)
12.最近在看什么书
13.除了腾讯还投了其他的公司吗
14.问我愿不愿意转go,并推荐我了解一下协程,最后让我耐心等待,面试的人太多,需要对面试的同学进行挑选,两周内会告知我结果
15.有什么想问的(对我的评价和学习建议)
二面(3.22现场面)
1.自我介绍
2.问我为什么发现自己不喜欢做客户端(简历中有一个安卓实习项目)而想做后台
3.介绍项目(一个电商小程序)
4.项目中的商品是否有考虑过xxx(忘记叫什么了,意思就是是否有考虑过同一种商品有不同的颜色、规格,在数据库中如何区分这些不同)
5.介绍项目的支付流程,并画一下流程(白板)
6.介绍一下订单状态码的含义,以及交易过程中订单状态码如何变化
7.如何防止商品的超卖现象
8.项目是否具有秒杀功能
9.并发的时候,如何保证性能
10.在分库之后,如何设计id
11.在分库后,一条插入请求,在上层不做处理,如何直接在数据库找到相应的库并插入库中的某个表
12.当服务器的cpu一直很高时,如何找出原因
13.是否用过调试工具
14.当项目一直无法访问的时候,如何定位错误
15.介绍一下aop和ioc
16.如何将一个ip地址由点分制(xxx.xxx.xxx.xxx)和int类型间进行相互转化
17.如何判断一个数是否为2的n次方
java频率较高考点:
网络大杂烩:https://blog.csdn.net/sinat_29694963/article/details/82585298
Tomcat原理以及参数(acceptCount、maxConnections)
单例模式:懒汉式、恶汉式、线程安全的、volatile作用
应用场景:打印机、任务管理器、回收站、线程池、日志管理、网站的计数器、数据库
常用的设计模式:单例、工厂、观察者、适配器、装饰者、享元、代理、过滤器
redis、mongo、mysql应用场景 https://www.cnblogs.com/phoebeyue/p/10598719.html
kafka如何保证数据的顺序消费、重复消费怎么处理、如何保证kafka中数据不丢失?
MongoDB 的适用场景为:数据不是特别重要(例如通知,推送这些),数据表结构变化较为频繁,数据量特别大,数据的并发性特别高,数据结构比较特别(例如地图的位置坐标),这些情况下用 MongoDB , 其他情况就还是用 MySQL ,这样组合使用就可以达到最大的效率
redis的热点读、写问题:https://www.sohu.com/a/318500520_100109711

玩吧一面:
hashMap原理以及扩容
tcp原理
队列
线程池有哪几种、拒绝策略(4种),有哪几个参数(https://baijiahao.baidu.com/s?id=1637828094805085849&wfr=spider&for=pc)
冒泡排序,如果没有循环结束就已经有序了,能否优化一下(1.如果当前遍历一次没有交换,说明已经有序了;2.从某个角标开始就没有交换,说明从这个角标以后的都是有序的)

美团(app)一面:
有没有用过AWK
双亲委派机制
gc
jvm:工作内存和主内存在哪些区域
volatile原理
hashSet底层结构
mysql不同引擎的区别,底层原理
索引:有哪些索引、什么是聚簇索引、建表的时候建立索引语句
mysql:模糊查询、建表语句(带索引)
mysql中的事物、隔离级别(概念以及每种隔离级别能防止什么问题)以及举例说明
七层网络协议
URL中输入网址到解析用的什么协议(dns、udp)
https://www.cnblogs.com/wuyun-blog/p/8183234.html
数组的反转(尽量不借助其他容器)
写一个排序算法,冒泡排序几层循环,每一层循环控制的什么
青蛙跳台阶问题:每次可以跳一步和两步,总共有多少种跳法
打车:
有 N 个篮子,每个篮子有一定的鸡蛋,不能拾取相邻篮子的鸡蛋,请问最多能拾取多少鸡蛋
输入数组 [3,2,4,7,2,1] 输出 11(典型的动态规划)
文库 100w用户 1000w文章
排行榜 最近 1 小时内阅读次数最多10篇的文章
怎么实现
100QPS 查询量
方案接口响应时长预估
内存资源预估
kafka的角色、主节点和从节点消息同步机制;
多线程中线程状态有哪些、锁和synchronized的实现原理

美团(机票)一面:
python中yield
泛型能不能放值类型?为什么
tomcat访问以进程方式?还是线程?https://www.cnblogs.com/softidea/p/5750791.html
minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75
acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100
enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
hashmap底层原理、红黑树原理、b+树和b树区别,为什么b+树中叶子节点有指向
kafka能否控制消费顺序(partition) https://blog.csdn.net/qq_31329893/article/details/90451889
es中倒排索引
跳跃表
控制线程的执行顺序(代码实现)
如何实现限流 https://blog.csdn.net/qq_32447301/article/details/86659474
缓存穿透、缓存击穿、缓存雪崩、如何防止 https://blog.csdn.net/kongtiao5/article/details/82771694
设计模式:工厂模式、如何理解能用组合不用继承
讲讲项目中有挑战性的地方

车主邦一面:
缓存数据库不一致问题:https://blog.csdn.net/ff00yo/article/details/88796138
Linux命令中查找关键字且对其排序
信号量
innodb引擎下,主键索引和其他索引结构上的区别
线程池中队列是阻塞的?还是非阻塞的?https://www.jianshu.com/p/e95f6c66b93a(四种线程池对应的队列)
Integer a = 1; Integer b = 1; a == b? 返回true还是false
车主邦二面:
mq的优点和缺点
mq如何保证发送方、消费方的稳定?自动提交中,如果30分钟都没有提交,如何保证不消费其他机器的数据(加分布式锁)
jvm模型,新生代和老年代的垃圾回收算法
线程池,3个核心线程,6个最大线程,现在是4个线程工作,如果有一个到达时间了,会回收线程么?
写个程序如何让栈溢出、堆溢出 https://blog.csdn.net/qq_31329893/article/details/90451889

完美世界一面(电商):
前端:
v-if 和v-show区别
子组件和父组件怎么调度的
项目中完成了哪些功能
后端:
线程池
innodb中索引的优点,底层原理为什么用b+树
项目中为什么要用kafka,如何防止重复消费
kafka重复消费的场景:
在规定的时间(session.time.out默认30s)内没有消费完,就会可能导致re-blance重平衡,导致一部分offset自动提交失败,然后重平衡后重复消费(这种很常见);或者关闭kafka时,如果在close之前,调用consumer.unsubscribe()则可能有部分offset没提交,下次重启会重复消费
配置& 线上问题;https://www.cnblogs.com/miracleYu/p/10213807.html
jdk1.8的特性,红黑树如何优化hashmap的
redis的过期策略

跟谁学:
给一个ip,负载过高,确定那个进程和线程 https://blog.csdn.net/hrn1216/article/details/51426741
Ioc和aop(动态代理的方式)原理,spring原理
sql的优化
如何用redis实现队列
jdk1.8中hashmap加入红黑树,为什么不适用完全平衡二叉树
redis和mongo的应用场景区别
redis为什么设计成单线程
nginx的转发策略
nginx和Tomcat区别以及应用场景
redis用了哪些数据结构以及项目中用途
分布式锁的实现
消息队列发送方、消费方注意事项,模式是推还是拉
redis持久化方式以及区别
多线程会有哪些问题,通过加锁还有哪些方式,concurrent包下的concurrentHashMap的数据结构以及如何实现线程安全的
算法题:
1.给定字符串str,写一个函数,去除str中连续重复的字符。
例如:str=“aaabbcdeaa”,返回"abcdea"
2.给定数组char[] c1 = {‘a’,‘b’,‘c’},char[] c2 = {‘1’,‘2’,‘3’};
线程T1和T2分别负责遍历数组c1和c2,依次输出数组中的元素。
要求通过多线程的控制方式,实现两个线程交替输出的效果,并且T1线程先输出。
输出结果如:a1b2c3

必要商城:
redis的过期策略
bean的生命周期
事物
数据库会不会出现死锁(deadLock),竞争资源激烈的时候会出现
缓存穿透和缓存击穿区别,以及如何防止
sql中in里面有null会出现什么情况
索引失效的场景有哪些

fitteam 一面:
gowt
主从同步延迟问题 https://www.cnblogs.com/phpper/p/8904169.html
MySQL的主从复制都是单线程的操作,主库对所有DDL和DML产生的日志写进binlog,由于binlog是顺序写,所以效率很高。Slave的SQL Thread线程将主库的DDL和DML操作事件在slave中重放。DML和DDL的IO操作是随即的,不是顺序的,成本高很多。另一方面,由于SQL Thread也是单线程的,当主库的并发较高时,产生的DML数量超过slave的SQL Thread所能处理的速度,或者当slave中有大型query语句产生了锁等待那么延时就产生了。
常见原因:Master负载过高、Slave负载过高、网络延迟、机器性能太低、MySQL配置不合理。
springboot的加载原理
多线程名称的设定和获取
mybatis的原理
springCloud
查多条语句用什么,有没有用到 in(猜测意图应该是考察sql优化)
接口规范
查看网络信息的命令
hash索引
redis中的管道
序列化和反序列化,seriableId作用

快手:
sql中最左匹配原则
redis中热点key、大key的处理(分片)
redis中zset的数据结构、跳跃表什么意思?除了跳跃表还有哪种方式
缓存穿透、缓存击穿、缓存雪崩的概念以及处理方式
索引的数据结构、b+树如何存数据
算法:两个大数相加(无论什么类型都会超出范围)
卡拉克拉:
sql最左匹配原则,原理上的实现
bean是线程安全的还是非安全的
线程执行流程
线程池中线程结束后还存活的原理
设计模式
发红包功能如何设计
字节:
struct {
Nodeleft //左孩子指针
Node
right //右孩子指针
int val; //值域 全部大于0
}Node
路径是指从二叉树 [根节点]到 [叶子节点]
如果路径上所有节点val值之和=n 就输出这条路径 找到所有符合条件的
限制条件:所有的val值 > 0
1
2 3
4 5 4 7
n = 8
1 - 2 - 5
1 - 3 - 4
Void print_route(Node*root,int n){
}
陌陌:
如何实现深拷贝
垃圾回收
用到哪些数据结构,hashmap在jdk1.8前后实现的方式上有什么区别(提到了cas算法,就接着问cas算法)
mysql的隔离级别,两种不同存储引擎,就接着问innodb用到了哪些锁 https://blog.csdn.net/Saintyyu/article/details/91269087
你们项目中如何实现的session共享
ngingx的负载策略
网络模型,有哪七层,http(三次握手、四次挥手、如何传输数据)、HTTPS、tcp协议
kafka的理解,如何实现的高可用,如果master挂了会怎样
redis不同数据结构的底层结构,跳跃表如何实现的,zset查找的时间复杂度
thrift的工作流程 https://blog.csdn.net/qq_40628566/article/details/82884644
新东方一面(2020.3.17)
集合中map的认识
hashmap和arrayList的扩容机制 https://blog.csdn.net/qq_34627002/article/details/79769261
对redis的认识
事物的特性、隔离级别
mysql的底层数据结构有哪些,用b数和hash表实现的区别
算法题:
1、有树节点表如下(树的高度不定):
CREATE TABLE node (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(32) NOT NULL,
pid BIGINT NULL COMMENT ‘父节点ID’
);
请用sql查询出所有非叶子节点的节点名称。
2、(程序题)有N个鸡蛋,要依次投放到如下盒子中(盒子数未知,直至全部放入为止),
【1】,【2】,【4】,【8】,【16】。。。。【?】
请问,已知n个鸡蛋,最后一个盒子有多少个鸡蛋?
3.school,lesson类如下
// 学校数据
Class school{
int shoolid;
String schoolname; //学校名字
};
//上课数据
Class lesson{
int schoolid;
int studentCount; //学生数量
}
分别有2个list:List schools;List lessons,存放school与lesson数据,lessions含有多条相同schoolid的数据,
现在需要统计每个学校上课的学生总数,并且将学校数据按照上课学生总数降序排列,将上课学生总数>1000的学校名字存放到一个list中。
jvm内存,new对象,常量池
内存泄露,内存溢出
SpringMVC 启动流程,执行流程, 过滤器,拦截器的区别
线程池,乐观锁,悲观锁区别,cas问题,aba问题
java 8新特性 lambda,stream处理
kafka 知道一些
二叉树遍历,旋转
跳表结构,b+结构 大概知道

欢聚时代:
最左匹配原则
rediskey会有什么问题、以及解决方案(内存过大导致数据、查询倾斜,qps过高,删除出现服务阻塞)
threadLocal原理和应用场景
线程池中无界队列有什么问题(会oom)
redis为什么这么快
一次遍历,删除单链表的倒数第n个节点,并返回头节点(需要考虑边界值,使用快慢指针)
缓存一致性解决方案
mysql出现死锁的场景

美团优选:
联合索引、索引下推
Binlog、relaylog、undolog、redolog的区别
索引优化的方式
synchronized和retreenLock的区别,以及底层原理
aqs的实现
如何实现锁的可重入
写一个懒汉式单例
由于单例中用到了volatile修饰了变量,就问了volatile的作用和原理

讲一个做的比较好的项目和细节,ps:由于面试官比较重视项目经历,探讨了半个小时
最近看了哪些书,或者有哪些学习方式,还记得哪些知识点
讲了最近看的知识点中MySQL的隔离级别,以及实现可重复读和幻读的原理
离职原因

去哪儿:
HashMap底层原理:默认容量、是new的时候占用内存or put元素的时候占用内存、为什么扩容后的大小之前的两倍、计算hashcode后如何寻找桶的位置
Volatile底层原理、使用场景
不同的注册中心对比优缺点
有哪些垃圾回收算法以及每种算法优缺点、cms使用的哪种回收算法
New一个对象的过程
Cas的缺点,如何解决cas的自旋消耗问题(面试官提到了一种LongAddr的解决方式)
系统架构层级,分析系统并发性能

为什么要设置服务调用超时时间
将一个做的比较好的项目,包括设计过程
项目中遇到了什么问题令你印象深刻,如何解决的
一段代码:分析下面一段代码有什么问题,如何解决
@Transactional(rollbackFor = Exception.class)
public void deal() {
1.查询一万条数据
2.数据处理,筛选20条符合条件的
3.更新数据库 update xxx where id = xxx;
4.记录业务日志
}

快手国际化
讲下项目
分库分表的时候为什么使用了取模的方式,还有其他方式吗?这种方式如果要再扩展表会有哪些问题?如何生成表ID的?
热点账户有哪些处理方式
concurrentHashmap 如何保证扩容时候也是线程安全
高并发场景需要注意哪些事项
sql优化
jvm调优
堆内存的排查,命令使用
reentrantLock的原理
算法:一个单向链表 1->2->3->4->5->6
输出 1 6 2 5 3 4

boss笔试题:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值