面试官问你:程序=算法+数据结构,能深入讲讲吗?

程序=数据结构+算法 1.指针与对象的关系示意图: 一个指针只能指向一个对象,可以不指向任何对象,称为空指针,值为null 一个对象可以由多个指针指向它,如果一个对象没有任何指针指向它,那这个对象就是垃圾对象2.对象的内存表示 为什么y不跟随对象的存储空间? 因为数据是静态的,不管创建多少个对象,都有一个静态数据y,这样下来,大大减少了内存的消耗,方法区也是如此。对象=数据+方法3.字符串的内存表示 阅读详情

前言

大家好,我是你们的老朋友青戈,最近一位粉丝私信我倾诉自己面试的悲惨经历,说自己快毕业了,很多同学们都找到了满意的offer,唯独他自己面试被虐的很惨,到现在一个offer都没有,着急的不行。

细聊下来才知道,他学的专业是自动化,但是呢本专业的工作实在难找,于是把目光转向了热门行业:计算机,一方面薪资高,另一方面也感觉做IT非常有面子(关于这点我不知道从何说起,我们是苦逼的码农啊)

那我就问他面试之前有没有好好准备一下呢?(我猜他是没准备)

果然,他说自己就看了一点Java基础的知识(很虚),做了一个模仿天猫商城的实战项目,匆匆忙忙就去面试了,在面试的过程中被问到算法、数据结构这些,完全是一脸懵逼,最后几个回合就败下阵来,灰头土脸的回学校了。

看到同学们纷纷拿到了满意的offer,开始出去聚餐庆祝了,他也没敢跟着去,怕丢脸…

基于这位粉丝非常尴尬的处境,我决定撸一篇关于计算机基础的科普文章。可别小看这些基础,在面试的过程中,计算机基础是重点考察的目标,越是大厂,越看重的是你的基础是否扎实,可以说基础决定了你在编码之路能走多远。不知道同学们在面试的时候有没有被问到算法,面试官会给你个逻辑算法题,让你手写,或者问一些数据结构的问题,让你给出一个较为合理的数据存储方案…那么如何充分准备关于这方面的知识,让自己在面试的时候游刃有余呢?

我们今天就来聊聊算法和数据结构,当然,由于我的个人水平有限,文中可能存在某些不太合理或者纰漏之处,望各位同学看到能不吝指出,大家一起共同进步。

程序=算法+数据结构

邹欣老师的《构建之法》里提到了一个公式:

程序 = 算法 + 数据结构

程序就是基于某种或某几种数据结构,采用某种算法或某几种算法去解决问题的过程。

我们来举个例子:去超市买菜

  1. 挑选菜品
  2. 称重
  3. 付钱
  4. 交易完成

上述例子中,菜、钱是数据,“如何完成买菜” 就是这个程序的算法。在我们日常生活中其实有数不清的例子都可以用类似这样的程序来解释,只不过我们很少会有意识去思考,但其实这已经说明算法和数据结构在深深影响我们的生活。

那我们拆开理解一下,什么是算法?什么是数据结构?

算法

算法的英文单词是:algorithm,这是个非常古老的概念,我国古代就有算法集《九章算术》,在数学领域,算法是解决某一类问题的公式和思想。

算法有高效的,也有低劣的。比如我们计算1+2+3+4+...+10000,如果我们一个一个算下去,那得花费多少时间?可能从天亮算到天黑都算不完。但是如果换种思路,把它拆解成下面的式子:

1 + 10000 = 10001
2 + 9999 = 10001
3 + 9998 = 10001
…
5000 + 5001 = 10001

也就是说1+2+3+4+...+10000有5000项 10001,提取公式就是:

(1+10000) × 10000 ÷ 2 = 5005000

怎么样,是不是对比出来很明显,后者的运行效率会高很多倍,现在很多人都知道了这个经典算法,它其实是利用了等差数列的规律,省时省力很轻松就求出了结果。

算法的好坏通常从下面2个方面来衡量:

  • 时间复杂度:指执行当前算法所消耗的时间
  • 空间复杂度:指执行当前算法需要占用多少内存空间

时间复杂度

为了计算时间复杂度,我们通常会估计算法的操作单元数量,每个单元运行的时间都是相同的。因此,总运行时间和算法的操作单元数量最多相差一个常量系数。

相同大小的不同输入值仍可能造成算法的运行时间不同,因此我们通常使用算法的最坏情况复杂度,记为T(n),定义为任何大小的输入n所需的最大运行时间。

解释一下大O:大O加上()的形式,里面其实包裹的是一个函数f(),O(f()),指明某个算法的耗时/耗空间与数据增长量之间的关系。

常见的几种算法计算类型如下:

  • 时间复杂度O(1):
    我们最常用的HashMap查询数据就是典型的O(1) 算法,无论数据量多大,都可以在一次计算后找到目标(不考虑哈希冲突的情况下)

  • 时间复杂度O(n)
    数据增大的倍数和时间增大的倍数相等,一般我们常用的遍历算法都是O(n)

  • 时间复杂度O(n²)
    例如冒泡排序需要计算n*n次,所以时间复杂度为O(n)

  • 时间复杂度O(logn)
    当数据量增大n倍,耗时增大logn倍。二分查找就是典型的O(logn)算法,每找一次排除一半的可能。

空间复杂度

算法的空间复杂度指的是占用内存、cpu等计算机资源的程度。

  • 空间复杂度 O(1)
    如果算法执行所需要的临时空间不随着某个变量n的大小而变化,即此算法空间复杂度为一个常量,可表示为 O(1)
int i = 1;
int j = 2;
int m = i + j;

上面代码中的变量分配的空间在一开始已经确定了,所以它的空间复杂度是O(1)

  • 空间复杂度O(n)
    在循环等程序结构中,如果每次循环都初始化一个新的变量,那么其空间复杂度为O(n)
for(int i = 1; i < n; i++) {
   int j = i;
}

以上,就是对算法的时间复杂度与空间复杂度基础的分析。

数据结构

分析完算法,那么我们一起再来看看数据结构。

数据结构是算法的基石,如果没有数据结构的支持,再好的算法也没用用武之地。

常用的数据结构总结如下:

数组

数组是可以在内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始,它是一种线性的数据结构。

优点:

  1. 按照索引查询元素速度快
  2. 按照索引遍历数组方便

缺点:

  1. 数组的大小固定后就无法扩容了
  2. 数组只能存储一种类型的数据
  3. 添加,删除的操作慢,因为要移动其他的元素。

适用场景:频繁查询,很少增删的情形,对存储空间的要求不大。

链表

链表是物理存储单元上非连续的、非顺序的存储结构,数据元素的逻辑顺序是通过链表的指针地址实现,每个元素包含两个结点,一个是存储元素的数据域 (内存空间),另一个是指向下一个结点地址的指针域。

根据指针的指向,链表能形成不同的结构,例如单链表,双向链表,循环链表等。
单向链表
优点:

  1. 链表是很常用的一种数据结构,不需要初始化容量,可以任意加减元素;
  2. 添加或者删除元素时只需要改变前后两个元素结点的指针域指向地址即可,所以增删很快。

缺点:

  1. 因为含有大量的指针域,占用空间较大;
  2. 查找元素需要遍历链表来查找,非常耗时。

适用场景:数据量较小,需要频繁增加,删除操作的场景。

树

树是相对来说比较复杂的数据结构,其中比较有代表性的是二叉树,二叉树又衍生出了二叉堆等数据结构。

树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做 “树” 是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。

树的特点:

  • 每个节点有零个或多个子节点;
  • 没有父节点的节点称为根节点;
  • 每一个非根节点有且只有一个父节点;
  • 除了根节点外,每个子节点可以分为多个不相交的子树。

二叉树是树的特殊一种,具有如下特点:

  • 每个结点最多有两颗子树,结点的度最大为2。
  • 左子树和右子树是有顺序的,次序不能颠倒。
  • 即使某结点只有一个子树,也要区分左右子树。

二叉树增删元素很快,并且在查找方面也有很多的算法优化,所以,二叉树既有链表的好处,也有数组的好处,是两者的优化方案,在处理大批量的动态数据方面非常有用。

二叉树有很多扩展的数据结构,包括平衡二叉树、红黑树、B+树等,这些数据结构二叉树的基础上衍生了很多的功能,在实际应用中广泛用到,例如mysql的数据库索引结构用的就是B+树,还有HashMap的底层源码中用到了红黑树。如果想彻底搞懂二叉树及其衍生的数据结构,需要不断深入去研究。

散列表

散列表,也叫哈希表,是根据关键码和值 (key和value) 直接进行访问的数据结构,通过key和value来映射到集合中的一个位置,这样就可以很快找到集合中的对应元素。

Java中有些集合类就是借鉴了哈希原理构造的,例如HashMap,HashTable等,利用hash表的优势,对于集合的查找元素时非常方便的,然而,因为哈希表是基于数组衍生的数据结构,在增删元素方面是比较慢的。

堆

堆是一种比较特殊的数据结构,可以被看做一棵树的数组对象,具有以下的性质:

  • 堆中某个节点的值总是不大于或不小于其父节点的值;
  • 堆总是一棵完全二叉树。

将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。

图

图是一种非常复杂的数据结构,一般被用来表示多对的的关联关系。

结尾

以上就是本期给您带来的算法 + 数据结构 简单的入门讲解,这里主要是抛砖引玉,希望同学们通过这篇文章认识到自己知识的薄弱点,有针对性的去学习和总结算法、数据结构相关的知识点。如果能在面试的时候侃侃而谈,我相信面试官肯定会对你刮目相看的。

关于算法呢,我推荐大家去leetcode网站刷题,很多大厂的算法原题都来源于此,把这里的题刷完,面试是完全没有问题的,网址:https://leetcode-cn.com/

关于数据结构,我也给大家推荐一个学习的网站:https://visualgo.net/zh

这里可以对算法进行可视化,能帮助我们非常直观地了解算法运行的过程,加深对算法和数据结构的理解。


我是程序员青戈,一个爱生活、爱分享的程序员😜

感谢您的阅读,创作不易,希望您能给我一个三连击支持我一波🤩 同时欢迎您关注我的原创公众号Java学习指南,我们可以一起吹吹牛逼、谈谈理想😆

算法+数据结构=程序 算法+数据结构=程序算法+数据结构=程序算法+数据结构=程序算法+数据结构=程序算法+数据结构=程序算法+数据结构=程序算法+数据结构=程序算法+数据结构=程序算法+数据结构=程序 立即下载

相关推荐

[官方培训]22-UE资产优化 Epic 肖月 笔记

Nanite+Lumen目标:面向TA,美术,不影响视觉的前提下,优化运行和编辑效率引擎:UE5.1延迟管线平台:主流PC,Windows 10 with DX12。

Tcohneyn的博客 1574

【C程序设计】——程序=算法+数据结构

而且每次都要直接使用上一步骤的具体运算结果(如2,6,24等),也不方便,应当能找到一种通用的表示方法。由于数值运算往往有现成的模型,可以运用数值分析方法,因此对数值运算的算法的研究比较深入,算法比较成熟。从图中可以看出:“其他”这一部分,包括不能被4整除的年份,以及能被4整除,又能被100整除,但不能被400整除的那些年份(如1900年),它们都是非闰年。:若year能被4整除,不能被100整除,则输出year的值和“是闰年”。因此,上述算法不仅是正确的,而且是计算机能方便实现的较好的算法。

RL2698853114的博客 5223

相机基础知识讲解:CMOS和CCD

相机基础知识讲解:CMOS和CCD

Coppa的博客 5万+

程序=算法+数据结构

JAVA 数据结构 及 基础算法 算法:解决问题的流程/步骤(分支、循环、顺序) 数据结构:将数据按照某种特定的结构来保存 设计良好的数据结构会导致好的算法 凭借一句话获得图灵奖的Pascal之父——Nickcklaus Wirth让他获得图灵奖的这句话就是他提出的著名公式: “算法+数据结构=程序”。 这个公式对计算机科学的影响程度足以类似物理学中爱因斯坦的“E=M^2”——一个公式展示出了程序的本质。 通俗的说算法相当于相当于逻辑,小部分已为人们发掘出来(这里的小部分指的是书本里讲的各种算

m0_61883573的博客 4375

初识机会网络仿真器ONE中ExternalMovement移动模型(导入外部移动数据)

最近半个月一直在研究ONE中关于ExternalMovement移动模型的源代码,在网上几乎没有找到相关的资料,很是苦恼,如果有共同研究方向的小伙伴欢迎联系我,共同讨论进步。 下面记录一下几点感悟: 1、使用外部数据的前提是在ONE的配置文件中增加及修改相关代码: Group.movementModel = ExternalMovement ExternalMovement.file = move...

qq_36974792的博客 655

中兴交换机如何配置?有哪些常用的配置命令,本文值得收藏!

中兴交换机是一种常见的网络设备,用于构建和管理企业网络。它提供了丰富的功能和灵活的配置选项,使网络管理员能够根据特定需求进行定制化配置。本文将详细介绍中兴交换机的配置过程,包括登录、基本设置、VLAN配置、接口配置和安全配置等内容。

网络技术联盟站 1万+

程序 = 数据结构+算法 的理解(数据结构、算法、抽象数据类型)

数据结构:相互之间存在关系的数据元素的集合,描述的是数据与数据之间的结构关系,数据元素之间的存在的关系会产生不同的结构,例如(数组、队列、树、图等结构),这个结构其实也就是相互之间存在关系数据元素的集合,因此也就是数据结构 算法:解决问题的步骤 一、总结: 1、程序 = 数据结构 + 算法 。数据是程序的中心。数据结构和算法两个概念间的逻辑关系贯穿了整个程序世界,首先二者表现为不可分割的关系...

Hello,小高同学 2万+

使用MATLAB和Simulink来设计并仿真一个智能家居多传感器数据融合系统

智能家居多传感器数据融合系统旨在通过集成来自多种不同类型的传感器的数据,以提供更精确和可靠的环境信息或用户状态监测。例如,将温度、湿度、光照强度、运动检测等多种传感器的数据结合起来,可以更好地了解家庭内部的状态,并做出相应的调整或响应。在这个教程中,我们将使用MATLAB和Simulink来设计并仿真一个智能家居多传感器数据融合系统。

amy_mhd的博客 187

面试官:会玩牌吧?给我讲讲洗牌算法和它的应用场景吧!

有一次参加面试,面试官问我:“会玩牌吧?” 内心:“咋滴,这是要玩德州扑克(或者炸金花),赢了他就能通过面试么?” 结果…… 没想到面试官的下一句话:“给我讲讲洗牌算法以及它的应用场景吧!” 哈哈,以上内容纯属虚构 背景 这确实也是一道面试题,我曾经多次面试中都有遇到这个题目或者这个题目的变种。 你不妨花 1 秒,想想? 什么是洗牌算法 从名字上来看,就是给你一副牌让你洗呗,用怎样的方法才能洗得均匀呢?请大佬表演一下。 不好意思,翻车了 其实洗牌算法就是一种随机算法,你...

勇往直前的专栏 1203

Keras神经网络可视化模块keras.utils.visualize_util的安装配置方法

本文介绍了如何安装和配置keras.utils.visualize_util模块,并提供了一个简单的示例演示如何使用该模块来可视化神经网络的结构。在上述代码中,我们首先定义了一个简单的神经网络模型,该模型具有一个输入层、一个隐藏层和一个输出层,其中隐藏层具有512个神经元,输出层具有10个神经元。运行上述代码后,我们将在当前工作目录下找到一个名为model.png的文件,它显示了神经网络的结构图。这种方式有效地展示了整个过程,让我们能够更好地理解神经网络的结构,方便对其进行改进和调试。

. 889

北斗导航 | ChatGPT之RTK、RTD、ARAIM算法原理及程序代码(ChatGPT看你怎么回答,附部分代码)

ChatGPT之RTK、RTD、ARAIM算法原理及程序代码

尘世冰封的专栏 3676

数据结构与算法之美学习笔记:不定期福利第三期 | 刘超:我是怎么学习《数据结构与算法之美》的?

本节课程思维导图:你好,我是刘超,是隔壁《趣谈网络协议》专栏的作者。今天来“串个门儿”,讲讲我学习《数据结构与算法之美》这个专栏的一些体会和感受。《数据结构与算法之美》是目前“极客时间”订阅量最多的专栏,我也是其中最早购买的一员。我之所以一看就心动了,源于王争老师在开篇词里面说的那段话:基础知识就像是一座大楼的地基,它决定了我们的技术高度。那技术人究竟都需要修炼哪些“内功”呢?我觉得,无外乎就是大学里的那些基础课程,操作系统、计算机网络、编译原理等等,当然还有数据结构和算法。

weixin_43597208的博客 1081

【Bug已解决】Codex CLI 报错 You‘ve hit your usage limit 解决方案

Codex CLI 密集使用时触发 You've hit your usage limit 限流报错,本质是订阅套餐额度机制在正常发挥作用。文中给出等待滚动重置、拆分大任务、主动管理上下文、升级套餐、团队排队机制等完整解决方案。

博客 1万+

androID系统开发,阿里面试官必问

1、ViewGroup 绘制顺序 (例:自定义 ViewGroup 如何实现 FlowLayout?如何实现 FlowLayout 调换顺序)2、 自定义 View 如何实现打桌球效果;3、 自定义 View 如何实现拉弓效果,贝瑟尔曲线原理实现?2.

2401_83641443的博客 870

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

630页!熬夜整理出的“高分宝典“:算法+数据结构+网络+操作系统

分享Java技术文以及学习经验也有一段时间了,实际上作为程序员,我们都清楚学习的重要性,毕竟时代在发展,互联网之下,稍有一些落后可能就会被淘汰掉,因此我们需要不断去审视自己,通过学习来让自己得到相应的提升。 近段时间,我也了解到很多小伙伴不清楚作为Java程序员应该掌握什么样的核心知识?实际上,那些老生常谈的Spring、Redis我也就不再去重复了。所以花了一个星期,整理了这份630页的"高分宝典",主要涉及算法、数据结构、网络、操作系统等几个部分,以及我个人的一些面试经历,希望能够对大家提升自己有所帮

javassb的博客 1247

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

程序员算法笔试卷避坑指南:动态规划、贪心与KMP全复盘

算法能力是程序员综合素养的核心体现,而算法笔试正是这一能力的集中检验场。面对大厂笔试卷,很多人困惑于“题目看得懂却无从下手”,根源在于缺乏从问题建模到解法选型的系统性思维。动态规划和贪心算法是笔试中最易混淆、也最常被“想当然”处理的两大考点——贪心依赖严格的局部最优证明,动态规划则讲究状态定义与转移方程,二者分界线往往决定成败。KMP算法中的next数组、排序算法的稳定性与手写细节、边界条件与复杂度分析,同样是高频失分点。理解这些基础概念的原理与工程价值,能帮助候选人在数组、链表、树、图等常见场景中快速定位

weixin_31220401的博客 348

面试大厂被吊打?别灰心,面试季必备的数据结构与算法学习指南来了!

数据结构与算法的重要性 前几天和朋友聊面试,大家都比较想知道,到底怎么才能进大厂,在说这个问题之前呢,我想给大家分享一个小故事。 我有个 Facebook 的朋友,他当年同时拿到了 Google 和 FB 的 offer,最后选择了 FB,我了解了下他的面试过程,就一点,无论管是 Google 还是 FB 的面试,其中一个占比非常大的权重就是数据结构与算法。 不管你面试什么岗位,前端安卓也好,后端也罢,都必须考察算法,这关过了,基本上就没太大问题了。他告诉我,那些大厂认为,你能把最基本、最核心的算..

嘴巴吃糖了 886

面试官:如何改进LRU算法?

这两个题目都是在问如何改进 LRU 算法。 因为传统的 LRU 算法存在这两个问题: 「预读失效」导致缓存命中率下降(对应第一个问题) 「缓存污染」导致缓存命中率下降(对应第二个问题)

weixin_50205273的博客 577

就这?一个HashMap,阿里面试官竟然跟我扯了半个小时!

前言 BAT大厂一直都是我们程序员的理想型,很多搞Android的小伙伴都想进这些大公司,但是大家也在担心:我能顺利通过面试吗?面试遇到的问题会不会很难? 其实,像阿里巴巴、腾讯、字节跳动、百度这些大厂,他们的面试没有大家想象中的那么可怕,也不会存在面试官刻意刁难的现象,但是,相对那些小厂,他们会更加重视应聘者的基础知识。 比如HashMap这个知识点,不管是Java还是Android岗,基本上都是面试中的必问题,尤其是像阿里巴巴,腾讯,字节跳动等这些大厂。 因为其中的知识点太多,很适合用来考察面试者的Ja

m0_46962786的博客 450

面试官:讲一讲 HashMap 的底层原理?

《Java面试必问:HashMap底层原理详解》摘要: 本文系统解析HashMap的面试要点,包含五大核心内容:1)数据结构采用数组+链表+红黑树复合结构;2)put过程涉及哈希计算、冲突处理及扩容机制;3)JDK1.8后通过红黑树优化冲突解决;4)扩容时数组翻倍并重哈希;5)非线程安全特性及替代方案。文章强调理解数据结构演进(如JDK1.7到1.8的优化)和实际应用场景(如负载因子设计原理)的重要性,提供了结构化回答模板和面试加分技巧,帮助开发者深入掌握这一高频面试题。

真正的大师永远怀着一颗学徒的心 912

数据结构与算法:程序员核心能力评估与实战提升指南

数据结构与算法是计算机科学的基础,它们决定了程序如何高效地组织和处理数据。理解其核心原理,如时间与空间复杂度分析,是评估代码性能、进行技术选型的关键。掌握哈希表、树、图等核心数据结构,以及动态规划、回溯等经典算法思想,能显著提升解决复杂工程问题的能力。这些技术广泛应用于系统设计、性能优化、大数据处理等场景,是区分普通开发者与资深工程师的核心标尺。本文以哈希表、红黑树等热词为例,深入剖析了从知识体系到问题建模、再到优化权衡的立体能力评估模型,并提供了结合工程实践的系统性学习路径,旨在帮助开发者构建扎实的内功,

weixin_30598225的博客 354

互联网大厂Java面试实录:严肃面试官遇见搞笑水货程序员谢飞机

在互联网大厂的Java面试中,面试官遇到了一个既严肃又搞笑的水货程序员——谢飞机。三轮的面试问答中,面试官针对Java核心知识、JUC、JVM、多线程等技术逐步深入提问,而谢飞机有板有眼地答对了简单问题,赢得了面试官的称赞;遇到难题时则表现得略显糊涂。本文记录了这场充满技术与趣味的面试实录,并在最后详细解答所有问题,帮助读者学习。

2301_76443258的博客 785

字节跳动资深面试官亲述:java基础算法题

part 1Java基础核心技术总结 万事都离不开根基,Java基础对于一些老鸟来说可能已经很熟悉了,但是对于很多开发5年以下的朋友掌握的或许不是很牢固,因此这份笔记更适合温故而知新。 Part 2并发编程(架构师筑基必备) 并发编程都掌握不好,你凭什么写出优质的代码? 大厂必问并发编程技术栈,都在这张图上了: Part 3JVM(架构师筑基必备) JVM和并发编程都是Java语言中非常重要的技术点,同时也是带有一定难度的基础内容,在面试过程中JVM也是常问的面试内容。 P8大佬自编笔记—

m0_58590364的博客 134

Java实习模拟面试之杭州智晟未来信息科技:数据结构、算法与Java基础核心问题解析

在本场模拟面试中,我们将以“杭州智晟未来信息科技”的实习生招聘为背景,围绕数据结构、基础算法、Java基础知识和开发工具使用等技术点展开一场模拟面试。通过模拟真实的问答场景,帮助读者熟悉常见考点,提升面试应对能力。本次内容不仅包括基础问题的回答,还将结合实际项目经验、扩展知识点、学习资源推荐等内容,力求打造一篇结构完善、内容详实、适合准备Java实习面试的同学参考的技术博客。计科专业中我们学习过多种数据结构,每种结构都有其特定的适用场景。数组(Array)

吾为热爱计科,致力于知识分享的践行者,此博客是我在这条道路上留下的足迹。 1161
上一篇: 爬了1000张清纯妹子私房照,我流鼻血了...
下一篇: Java面试合集(一)Java基础知识点汇总
程序员青戈
程序员青戈 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄10年 3万+粉丝 250原创
评论 113
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

程序员青戈

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

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

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

打赏作者

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

抵扣说明:

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

余额充值