《关于我的那些面经》滴滴Java岗(附答案),华为工程师面试经历简述

春招复盘,滴滴3.28一二三面,携程3.29二面,最后许愿offer 前言 首先非常感谢大平台,让我学到了很多东西,之前也许愿2面携程,果然有二面,也是来还愿的吧,大致说一下面试经历吧,大家可以互相学习学习,滴滴昨天下午123面,感觉人均123面,太难了。。。。。。携程今天2面,分享一下,也算是攒攒人品吧,许愿offer。。。。。。。。。 滴滴(1,2,3面)3/28 1面 1、自我介绍 2、项目 5、限流的原理 6、jre与jdk,有什么关系? 7、jre包含哪些组件 8、private修饰的字段或方法,子类可以重写么? 9、父类静态的方法,子类可以重写么? 不可以重写父类 阅读详情

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

public ListNode mergeTwoLists(ListNode l1, ListNode l2) {

ListNode head=new ListNode(0);

ListNode temp=head;

while(l1!=null && l2!=null){

if(l1.val>l2.val){

temp.next=l2;

l2=l2.next;

}else{

temp.next=l1;

l1=l1.next;

}

temp=temp.next;

}

if(l1!=null){

temp.next=l1;

}else{

temp.next=l2;

}

return head.next;

}

}

Linux命令

=======

我这里简单列举,还要多多练习复杂的操作。

Linux的常用命令介绍:

问题:

因为平时开发的时候,对于服务器主机的操作系统是不需要界面的。

那么我们如何使用操作系统完成资源的操作呢?

使用:

命令方式

作用:

使用命令来替换界面的操作。

内容:

1、查看IP信息:ifconfig

2、进入指定的文件目录: cd

绝对路径: cd /目录/子目录/…/…

相对路径:  cd  当前路径的子目录/子目录/…/…

注意 :

第一个 /表示根目录

3、退回上级目录:

cd …  回退当上级目录,退一层

cd …/… 回退两次

4、查看当前路径:pwd

5、查看当前目录下的内容:

ls:只显示文件名或者目录名

ll:以详细信息的方法列出当前目录的内容

6、自动补全:tab

注意:我们需要写出要操作的文件或者目录的从头开始的一部分唯一的名字。

7、清屏:clear

8、创建目录:

mkdir 文件名                          在当前目录下创建指定的文件夹

mkdir /目录名/目录名/…/…/新的文件名    在指定的目录下创建新的文件夹

9、创建文件:

vi 新的文件名 示例:vi my.txt

注意:

会直接进入文本状态,需要点击键盘的i键或者insert键进入编辑状态。

书写内容后先点击esc键退出编辑状态。然后输入

:q! 强制退出

:q 退出,但不保存
wq 保存并退出

vim 新的文件名  示例: vim you.java

vi和vim的区别:

vi命令打开的文本编辑器中没有颜色标识

vim命令的文本编辑器中带有关键字颜色

10、编辑现有文件:vi或者vim

vi 现有文件名

vim 现有文件名

11、查看文件内容:cat命令

cat 文件名  在控制显示所有的文件信息

12、查看指定前多少行数据: head命令

默认显示前10行

head -n 行数 文件名

13、查看指定后多少行数据:tail命令

默认显示后10行

tail -n 行数 文件名

14、动态查看文件的内容:tailf 命令

作用:动态的显示文件的内容,一旦文件内容增加了,控制台会立即显示出来

tailf -行数 文件名

默认显示后10行

15、追加内容:

echo 内容>>文件名

16、复制

cp 文件绝对路径  新的文件绝对路径

作用:将指定的文件复制到指定路径下的文件中

示例:cp /usr/local/wollo/my.txt  /usr/mm.txt

注意:复制的同时重命名

cp  文件  新的文件名

作用:在当前目录下复制文件,同时重命名

cp -r 目录路径   新的路径

作用:将指定的目录下的全部复制到指定的路径下

示例: cp -r /usr/local/wollo  /usr/wollo2

注意:同时可以对文件夹的名字进行重命名

17、删除

删除文件

rm 文件名

作用:删除当前目录下的指定文件

注意:会提示是否要删除,输入y删除,输入n取消

rm -rf 文件名:

作用:删除指定的文件

注意:不会提示,直接删除

删除目录

rm -r 目录名

作用:删除指定的目录

注意:会有提示语,但是不能在当前目录下删除自己。

rm -rf 目录名:强制删除

18、剪切

mv 文件  新的路径

19、解压文件

tar -zxvf 压缩包名

HashMap

========

这里也是简单写一下算了,具体多学。

//map

Map<Integer, Integer> map=new HashMap<Integer, Integer>();

int size()//K-V关系数量

boolean isEmpty()//是否为空

增:

V put(K key,V value)//放入K-V键值对

void putAll(Map<K,V> m)//放入m包含的所以键值对

删:

V remove(Object key)//删除key对应的键值对

void clear()//删除所有键值对

改:

直接put,会覆盖旧的记录

查:

boolean containsKey(Object key)//是否包含key

boolean containsValue(Object value)//是否包含value

V get(Object key)//得到key对应的value

生成集合:

Set keySet()//返回包含所有key的set

Collection values()//返回包含所有value的Collection

TreeMap特有:

public K firstKey()//返回第一个key(最高)

public K lastKey()//返回最后一个key(最低)

  • 哈希冲突:若干Key的哈希值如果落在同一个数组下标上,将组成一条链,对Key的查找需要遍历链上的每个元素执行equals()比较,1.8后优化为红黑树

  • 负载极限,“负载极限”是一个0~1的数值,“负载极限”决定了hash表的最大填满程度。当hash表中的负载因子达到指定的“负载极限”时,hash表会自动成倍地增加容量(桶的数量),并将原有的对象重新分配,放入新的桶内,这称为rehashing。默认当HashMap中的键值对达到数组大小的75%时,即会rehashing。

解释0.75:

是时间和空间成本上的一种折中:

  • 较高的“负载极限”(也就是数组小)可以降低占用的空间,但会增加查询数据的时间开销

  • 较低的“负载极限”(也就是数组大)会提高查询数据的性能,但会增加hash表所占用的内存开销

可以根据实际情况来调整“负载极限”值。

HashMap线程不安全

HashTable线程安全,实现的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化

ConcurrentHashMap

线程安全,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。

ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的Hashtable,它们有自己的锁。

只要多个修改操作发生在不同的段上,它们就可以并发进行。

默认将hash表分为16个桶,诸如get、put、remove等常用操作只锁住当前需要用到的桶,读操作大部分时候都不需要用到锁。

(JDK1.8已经摒弃了Segment,并发控制使用Synchronized和CAS来操作,整个看起来就像是优化过且线程安全的HashMap,虽然在JDK1.8中还能看到Segment的数据结构,但是已经简化了属性,只是为了兼容旧版本。)

jvm垃圾回收机制

=========

标记-清除

该算法分为“标记”和“清除”阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。它是最基础的收集算法,后续的算法都是对其不足进行改进得到。这种垃圾收集算法会带来两个明显的问题:

  1. 效率问题

  2. 空间问题(标记清除后会产生大量不连续的碎片)

公众号

复制

为了解决效率问题,“复制”收集算法出现了。它可以将内存分为大小相同的两块,每次使用其中的一块。当这一块的内存使用完后,就将还存活的对象复制到另一块去,然后再把使用的空间一次清理掉。这样就使每次的内存回收都是对内存区间的一半进行回收。

公众号

标记-整理

根据老年代的特点提出的一种标记算法,标记过程仍然与“标记-清除”算法一样,但后续步骤不是直接对可回收对象回收,而是让所有存活的对象向一端移动,然后直接清理掉端边界以外的内存。

标记-整理算法

分代收集

当前虚拟机的垃圾收集都采用分代收集算法,这种算法没有什么新的思想,只是根据对象存活周期的不同将内存分为几块。一般将 java 堆分为新生代和老年代,这样我们就可以根据各个年代的特点选择合适的垃圾收集算法。

比如在新生代中,每次收集都会有大量对象死去,所以可以选择复制算法,只需要付出少量对象的复制成本就可以完成每次垃圾收集。而老年代的对象存活几率是比较高的,而且没有额外的空间对它进行分配担保,所以我们必须选择“标记-清除”或“标记-整理”算法进行垃圾收集。

HotSpot的算法

可达性分析会导致gc停顿,因为必须保证确保一致性,也就是冻结在某个时间点,所以我们必须要停顿。

但是停顿太久的代价我们是不能承受的。

在hotspot虚拟机中,采用OopMap结构记录哪些地方存着引用的。

但是,也不可能为每一个指令设置OopMap,只有在“安全点”才记录,gc也是在安全点才暂停。

安全点的选定不能太少:导致gc等待时间长

太多:导致过分增大负荷。

但是还不能解决问题:我们确实保证了运行时,隔一段时间就能进入安全点,但是不运行的时候呢?(程序未抢到cpu很久)

安全区:指这一段代码中,引用关系绝对不会发生变化。在这个区域中任意地方开始gc都是安全的。

concurrenthashmap原理

===================

见上文

如何给项目数据库加锁?

==============

链接

前后端交互?

=========

看你用的什么模板,我用的leaf

项目的redis怎么用?

==================================================================================================================================================================================================================

这个看我redis总结,或者你自己想想怎么用的。

redis的入门/原理/实战大总结

项目Spring MVC如何接收参数?

===================

springboot1——spring相关入门

MySQL事务隔离级别

===============

事务的隔离级别分为:未提交读(read uncommitted)、已提交读(read committed)、可重复读(repeatable read)、串行化(serializable)。

未提交读:A事务已执行,但未提交;B事务查询到A事务的更新后数据;A事务回滚;—出现脏数据

已提交读:A事务执行更新;B事务查询;A事务又执行更新;B事务再次查询时,前后两次数据不一致;—不可重复读

可重复读:A事务无论执行多少次,只要不提交,B事务查询值都不变;B事务仅查询B事务开始时那一瞬间的数据快照;

MySQL的持久化和redis的持久化

===================

还是看我redis总结

如何配置项目服务器?

==========

linux-在cenos上安装大全(nginx/JRE/maven/Tomcat/MYSQL/redis/kafka/es…)

Linux如何查看端口冲突?

==============

1.查找被占用的端口

netstat -tln

netstat -tln | grep 80

netstat -tln 查看端口使用情况,而netstat -tln | grep 80 则是只查看端口80的使用情况

2.查看端口属于哪个程序?端口被哪个进程占用

lsof -i :80

3.杀掉占用端口的进程

惊喜

最后还准备了一套上面资料对应的面试题(有答案哦)和面试时的高频面试算法题(如果面试准备时间不够,那么集中把这些算法题做完即可,命中率高达85%+)

image.png

image.png

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
netstat -tln | grep 80

netstat -tln 查看端口使用情况,而netstat -tln | grep 80 则是只查看端口80的使用情况

2.查看端口属于哪个程序?端口被哪个进程占用

lsof -i :80

3.杀掉占用端口的进程

惊喜

最后还准备了一套上面资料对应的面试题(有答案哦)和面试时的高频面试算法题(如果面试准备时间不够,那么集中把这些算法题做完即可,命中率高达85%+)

[外链图片转存中…(img-4ZypUP4U-1713429746127)]

[外链图片转存中…(img-SBMmN60E-1713429746128)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-QpFG9yb6-1713429746128)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

【Java岗】9月华为校招+阿里巴巴社招完整面经 大家都知道,我是一个靠整理面试题存活的博主。今天收集到↓ ↓ ↓ ↓ ↓ ↓ ↓ 群友华为校招面试题一份 朋友阿里巴巴社招面试题一份 面试只是对个人技术及应变能力的一次考验。只有解决了一个问题,你才有机会遇见下一个问题,共勉。 华为校招软件开发工程师面经 部门:云核心网产品线 一天下午面完三轮,累的不行 原本一面约到两点,但是最后2点40多才开始 一面: 50min 算法题:小于n的孪生素数对数 介绍项目,问实现细节,说一下设计思路 复盘笔试的题目,只是让简单介绍了一下当时做题. 阅读详情

相关推荐

华为OD的五轮面试总结

华为OD的五轮面试 简述 在今年疫情期间,通过BOSS直聘,受邀华为OD的Java工程师面试;整整一个月(3月中-4月初)的时间,经过了5轮的筛选,现在对这次面试进行概括性复盘,给大家分享下我所收集到的各种信息和相关面试流程的建议,希望对大家有用; 华为OD是什么?跟华为又有什么关系? 根据各方信息所得(包括网络查询、面试官的解答),华为OD是华为与德科的合作的一个针对华为社招人才培养的一种新型方式;开始时间大概是2019年试行,2020普遍应用的一种社招方式;(讲些人话)大概的意思就是,华为从2019年

Kellan_Song的博客 6万+

三面滴滴失败,总结了Java面试题,有几个题还是一直搞不懂

最后。

the shy 794

华为面试三面的通过率_我在华为电源的面试经历 (含笔试题)

▲点击上方21Dianyuan关注我们本文是21Dianyuan 社区原创技术文章,作者拒绝变帅,感谢作者的辛苦付出。参加过 IC 公司、电源公司的招聘,大多是 “笔试+面试” 的模式。华为电源面试,是我参加过的最正式和流程最多的面试,没有之一。我认为有机会,多参加这样的面试,会学到更多。本帖分享我在华为电源面试经历,包括两部分内容:1. 华为电源面试过程分享2. 面(笔...

weixin_39944944的博客 1万+

3年经验网易、滴滴、Java岗面试经验汇总

所有的面试题目都不是一成不变的,像网易、滴滴这种,上面的面试真题只是给大家一个借鉴作用,最主要的是给自己增加知识的储备,有备无患。最后给大家分享:Java面试题总结+各知识点学习思维导图(领取方式看评论区)希望能帮助到你面试前的复习且找到一个好的工作,也节省你在网上搜索资料的时间来学习,记得关注我一下,以后会有更多干货分享哟。到此这篇关于三年经验网易、滴滴、Java岗面试经验汇总的文章就介绍到这了。

jjc4261的博客 428

【面经】后端开发岗面试题目汇总

鹅厂后端开发岗面试题目汇总README一、C++相关二、计算机网络相关三、操作系统相关四、数据库及SQL相关五、数据结构与算法相关 README 本人经历了四五场鹅厂各个部门后端开发岗的面试,奈何技术不够硬,无缘鹅厂。为了广大友军能够顺利找到工作,特此总结了本篇面经。 首先,奉劝广大友军一定要有自己擅长的领域,本人啥都会一点但是啥都不精,往往经不起面试官的重重追问,所以技术不需要广但是必须需要专,...

Mister_Yu的博客 3796

2024年京东Java研发岗社招面经(面试经历+真题总结(1)

什么是ActiveMQ?ActiveMQ服务器宕机怎么办?丢消息怎么办?持久化消息非常慢怎么办?消息的不均匀消费怎么办?死信队列怎么办?ActiveMQ中的消息重发时间间隔和重发次数吗?

2401_84049001的博客 913

Java岗的网易/华为/美团/滴滴社招面试经历

今天累死我了,跟群友聊了一天,总共收集到了以下四家大厂的面试经历的面试真题,大家可以来试试,自己能不能都回答上来。 网易 一面 : 1、RPC原理,netty原理; 2、hashMap原理; 3、redis缓存回收机制,准备同步,哨兵机制; 4、要统计10分钟内订单的亏损,你会怎么设计(strom窗口模式) 5、项目:你做了什么,为什么要这么做,用了什么技术要解决什么问题? 二面: 1、分布式缓存redis原理,zookeeper锁是如何实现的? 2、分布式缓存读写不一致问题; 3、java线程你是怎.

豆汁 6733

已拿offer热乎乎的蚂蚁金服面经分享,建议收藏(Java岗、附答案)

前言: 由于作者面试过程中高度紧张,本文中只列出了自己还记得的部分题目。 经历了漫长一个月的等待,终于在前几天通过面试官获悉已被蚂蚁金服录取,这期间的焦虑、痛苦自不必说,知道被录取的那一刻,一整年的阴霾都一扫而空了。 笔者面的是阿里的Java研发工程师岗,面试流程是3轮技术面+1轮hr面。 关注我的供种号 Java周某人 即可获得免费领取资料方式。 1.意外的一面 一面的时候大概是...

Javazhoumou的博客 2583

22届华为AI岗实习面经

文章目录前言机试专业面试主管面试 前言 刚通过华为22届实习面试, 分享一下面试的经历和准备工作. 首先说是22届实习, 招的其实是23届毕业生. 因此需要在毕业前一年的三四月份投递简历, 等待机试. 我投递的是AI工程师, 这个岗位一共是一轮机试+一轮专业面试+一轮主管面试. 机试 首先是几个注意点: 华为的机试模式和leetcode不同, 是牛客那种需要自己写IO自己include头文件的. 但是不是说leetcode不能刷, 而是在机试前一星期一定要多刷牛客的算法题, 熟悉一种语言的IO. 机试过程

对象被抛出的博客 6017

面试神仙打架?探秘华为人工智能工程师岗位

“得人工智能者得天下”,这句话在互联网圈子流传盛广。人工智能工程师岗位薪酬普遍较高,让部分毕业生眼前一亮,毕业后直接加入到了相关岗位的竞争中,面试堪称神仙打架。

AImianshizhinan的博客 2135

滴滴Java开发面试题及参考答案 (上)

使用 @Component 及其衍生注解(如 @Service 用于标注业务逻辑层类、@Repository 用于标注数据访问层类、@Controller 用于标注 Web 层的控制器类等)来标记哪些类是需要被 Spring IOC 容器管理的 Bean,容器会自动扫描并创建它们的实例。

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

35K 成功入职:蚂蚁金服面试 Java 后端经历!「含面试题 + 答案」

做任何事情都要用心,要非常关注细节。看起来不起眼的、繁琐的工作做透了会有意想不到的价值。当然要想成为一个技术大牛也需要一定的思想格局,思想决定未来你要往哪个方向去走, 建议多看一些人生规划方面的书籍,多学习名人的思想格局,未来你的路会走的更远。更多的技术点思维导图我已经做了一个整理,涵盖了当下互联网最流行99%的技术点,在这里我将这份导图分享出来,以及为金九银十准备的一整套面试体系,上到集合,下到分布式微服务《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》

2401_84408217的博客 993

Ubuntu无桥接模式或连不上网(详细解决方法

目录 问题1:Ubuntu没有未桥接的主机网络适配器 解决方法 1.打开VMware安装目录下的文件 ​编辑2.右键安装以上三个文件 3.打开网络状态属性,找到VMware bridgeProtocol,点击安装 问题2.Ubuntu桥接模式连不上网 1.win+r打开cmd终端,输入ipconfig /all 2.记录以下数据 3.打开VMware网络设置 问题1:Ubuntu没有未桥接的主机网络适配器 VMWare安装之后,虚拟网络一直使用默认配置 VMnet0为...

m0_65592409的博客 6062

阿里、华为、字节等各大互联网公司的 Java 岗位要求是什么?Java丨Java面试丨java岗大厂要求丨java社招进大厂丨Java校招面试题

要问各大公司对校招、社招本科生有什么要求,最简单粗暴,却也最有效的方法,就是去看他们每年都考应届生们和社招人员什么问题。小编这里整理了今年80篇各大互联网公司Java工程师笔经面经,希望能够帮到大家。阿里巴巴,美团 、华为、字节等各大互联网公司Java工程师笔经面经。

JAVA__X的博客 844

F28335 DSP ePWM模块实战:从基础配置到电机控制

本文详细解析了TI TMS320F28335 DSP的ePWM模块,从基础概念、寄存器配置到实战应用。通过代码示例,手把手教你如何配置定时中断、生成PWM波形、实现死区保护与故障联防,并最终完成一个可调速、可换向的直流电机控制项目,是掌握F28335电机控制核心技术的实战指南。

g5h6i的博客 1127

避坑指南:PyCINRAD处理CINRAD雷达数据时遇到的5个典型报错及解决方案

本文针对使用PyCINRAD库处理CINRAD雷达基数据时常见的5个典型报错,提供了详细的解决方案。内容涵盖环境配置、数据读取、PPI可视化及性能优化等核心环节,重点解决了版本兼容性、数据异常处理和中文乱码等实际问题,帮助用户高效处理雷达基数据并生成准确的PPI图像。

cc789的博客 1068

面了50次阿里,把50篇面试经历都搞下来了,长记性了

之前我给大家整理了一份 Java 和 一份 C++ 的硬核面试题(附答案),详情可以看这里 15 万字 C++ 开发硬核面试题 20 万字 Java 硬核面试题 面试题最大的好处就是验证你知识掌握的如何,并且也能替你查漏补缺,毕竟现在这么卷,该掌握的八股文还是得掌握。 面试无非就是考察计算机基础 + 算法 + 语言特性 + 项目。不过呢,根据我的面试题经历,其实每个公司在面试候选人时,侧重点是不同的。 例如你面试腾讯的话,可能网络这块会问的多一些;面阿里时,可能 Java 会问的多一些;面字节时,可能算法会

帅地 2694

Hypack 应用于地形测量的高级设置操作要领

Hypack 是业界公认最好的水文导航测量软件,是目前世界上应用广泛的专业测量疏浚软件。它能够接收,处理,存储和输出各种数据。Hypack支持绝大部分GPS,测深仪(国内如海鹰HY1603单波束测沙仪),多波束测深仪,旁扫声纳,涌浪补偿器,水位仪,验潮仪以及声速剖面仪。利用 Hypack 可以进行导航,单波束测量,多波束测量,旁扫测量以及疏浚实时监测等。软件界面友好,使用方便。本文简要阐述Hypack 应用于地形测量的几个重要操作要领。

中游鱼的博客 2793
上一篇: SpringBoot源码学习系列之嵌入式Servlet容器,线程池底层原理 面试
下一篇: 【088期】面试官问:MySQL 创建索引需要遵循哪些原则?
普通网友
博客等级 码龄5年 3419粉丝 477原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值