首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客265542396号
门头沟学院 大数据开发工程师
发布于广东
关注
已关注
取消关注
@老欧讲职场:
10.25 大数据工程师也是需要了解 Java 基础的!!
接口和抽象类的区别接口和抽象类是面向对象编程中常用的两种抽象概念,它们的区别如下:定义方式:接口是一种完全抽象的类,只定义了方法的签名,没有任何实现代码;而抽象类是一种部分抽象的类,既可以定义方法的签名,也可以包含部分已经实现的代码。继承方式:一个类可以实现多个接口,而且接口之间可以通过继承来扩展功能;而一个类只能继承一个抽象类。实现方式:实现接口的类必须实现接口中定义的所有方法,没有任何灵活性;而继承抽象类的子类可以选择性地实现或覆盖抽象类中的方法。构造方法:接口不能有构造方法,因为接口不能被实例化;而抽象类可以有构造方法,用于子类的实例化和初始化。成员变量:接口中只能定义常量,不能定义成员变量;而抽象类可以定义成员变量。使用场景:接口适用于实现多态性和松散耦合的需求,用于定义一组相关的行为规范;而抽象类适用于定义一种具体的类族,可以提供一些默认的实现代码。总结来说,接口更加抽象和灵活,强调规范和多态性;而抽象类更加具体和灵活,强调代码的复用和继承关系。在具体的开发中,需要根据实际需求选择接口或抽象类来设计和实现类的继承关系。Java和C++的区别Java和C++是两种不同的编程语言,它们在以下几个方面有所不同:语法:Java是一种纯面向对象的编程语言,而C++是一种混合的面向对象和面向过程的编程语言。Java的语法相对简单,有更严格的语法规则和限制,而C++的语法相对灵活。平台:Java是一种跨平台的语言,可以在不同的操作系统上运行,只需要安装相应的Java虚拟机(JVM)。而C++编写的程序需要在特定的操作系统上进行编译和运行。内存管理:Java使用自动内存管理(垃圾回收机制),程序员不需要手动管理内存。而C++需要程序员手动分配和释放内存,这可能导致内存泄漏和悬挂指针等问题。性能:由于Java运行在虚拟机上,相对于C++,它的执行速度可能会慢一些。C++编译后直接运行在操作系统上,因此具有更高的执行效率和更好的性能。应用领域:Java主要用于开发企业级应用程序、Web应用程序和移动应用程序等。而C++通常用于系统级开发,如操作系统、游戏引擎和嵌入式系统等。总的来说,Java和C++在语法、平台、内存管理、性能和应用领域等方面有所不同,选择使用哪种语言取决于具体的项目需求和开发环境。JVM内存区域划分,分别的作用,GC发生在哪里JVM内存区域划分主要包括以下几个部分:程序计数器(Program Counter):用于记录当前线程执行的字节码指令的地址,属于线程私有的内存区域。Java虚拟机栈(Java Virtual Machine Stack):每个线程在创建时都会分配一个Java虚拟机栈,用于存储方法的局部变量、操作数栈、动态链接、方法出口等信息。栈帧(Stack Frame)用于存储方法调用和执行过程中的数据。本地方法栈(Native Method Stack):类似于Java虚拟机栈,但用于执行本地方法(Native Method)。Java堆(Java Heap):用于存储对象实例和数组,是所有线程共享的内存区域。Java堆是垃圾回收的主要区域,包括新生代(Young Generation)和老年代(Old Generation)。新生代又分为伊甸区(Eden Space)和两个幸存者区(Survivor Space)。新创建的对象会被分配到伊甸区,经过一次垃圾回收后仍然存活的对象会被移动到其中一个幸存者区,而经过多次垃圾回收后仍然存活的对象最终会被移动到老年代。老年代主要存放生命周期较长的对象,当老年代的空间不足时会触发Full GC。方法区(Method Area):用于存储类的元数据信息,包括类的结构、静态变量、常量池等。方法区也是垃圾回收的重要区域之一,主要回收无用的类和常量。GC(Garbage Collection)发生在Java堆中的新生代和老年代。新生代的GC称为Minor GC,主要回收伊甸区和幸存者区的垃圾对象。老年代的GC称为Major GC或Full GC,主要回收老年代的垃圾对象。GC的目的是回收无用的对象,释放内存空间,以提高系统的性能和资源利用率。GC算法有哪些,为什么要分代收集,为什么新生代用复制算法,展开讲一下自己的相关了解GC算法有以下几种常见的类型:标记-清除算法(Mark and Sweep):首先标记出所有活动对象,然后清除未标记的对象。复制算法(Copying):将内存分为两个相等的区域,每次只使用其中一个,当这个区域满了之后,将存活的对象复制到另一个区域,然后清除已使用的区域。标记-整理算法(Mark and Compact):首先标记出所有活动对象,然后将活动对象向一端移动,然后清除边界以外的内存。分代收集算法(Generational Collection):将内存分为不同代,一般将新创建的对象放入新生代,经过多次垃圾回收后仍存活的对象会被移到老年代。分代收集的原因是因为不同的对象具有不同的生命周期,大多数对象在创建之后很快就变得不可达,只有少部分对象会长时间存活。所以将内存划分为不同代,可以根据对象的生命周期进行更加精细的垃圾回收。新生代使用复制算法的原因是因为新创建的对象往往存活时间较短,大多数对象在创建之后很快就变得不可达。而复制算法可以通过复制存活对象的方式,有效地回收大量的垃圾对象,同时也避免了内存碎片的问题。TCP/IP模型和作用,DNS是哪一层,应用层有哪些协议TCP/IP模型是一种网络协议体系结构,它由四个层次组成:网络接口层、网络层、传输层和应用层。其作用是定义了网络通信的标准和规范,使不同的计算机和设备能够互相通信。DNS(Domain Name System)是分布式数据库系统,它在TCP/IP模型中属于应用层。DNS的主要作用是将域名转换为相应的IP地址,使得用户可以通过易于记忆的域名来访问互联网上的服务和资源。应用层包含了众多协议,常见的应用层协议包括但不限于:HTTP(Hypertext Transfer Protocol):用于在客户端和服务器之间传输超文本数据,是万维网的基础协议。FTP(File Transfer Protocol):用于在客户端和服务器之间传输文件。SMTP(Simple Mail Transfer Protocol):用于电子邮件的发送。POP3(Post Office Protocol 3):用于电子邮件的接收。IMAP(Internet Message Access Protocol):用于电子邮件的接收和管理。DNS(Domain Name System):用于域名解析。DHCP(Dynamic Host Configuration Protocol):用于自动分配IP地址和其他网络配置信息。Telnet:用于远程登录到其他计算机。SNMP(Simple Network Management Protocol):用于网络设备的管理。以上只是一些常见的应用层协议,实际上应用层协议还有很多其他的。HTTP和HTTPS区别HTTP和HTTPS是两种不同的网络传输协议。HTTP(Hypertext Transfer Protocol)是一种用于在Web浏览器和Web服务器之间传输数据的协议。它使用明文传输数据,不对传输的数据进行加密和身份验证。因此,HTTP在数据传输过程中存在安全隐患,容易被黑客截取和篡改。HTTPS(Hypertext Transfer Protocol Secure)是在HTTP的基础上加入了SSL/TLS协议进行加密和身份验证的协议。它通过使用公钥加密和私钥解密的方式,对数据进行加密传输,确保数据在传输过程中的安全性。HTTPS使用的是443端口进行通信,并且在浏览器地址栏会显示一个锁形状的图标,表示当前网站是通过HTTPS连接进行传输的。因此,HTTP和HTTPS的主要区别在于数据传输过程中的安全性。HTTPS相对于HTTP更加安全,可以保护数据的机密性和完整性,适用于需要保护用户隐私和敏感数据的场景,如在线支付、网上银行等。Arraylist和LinkedList区别ArrayList和LinkedList是Java中两种不同的实现List接口的数据结构。内部实现:ArrayList底层使用动态数组实现,LinkedList底层使用双向链表实现。访问效率:ArrayList的查询和随机访问效率较高,因为可以通过索引直接访问元素;而LinkedList的插入和删除操作效率较高,因为只需要调整链表中的指针。内存占用:ArrayList在添加或删除元素时可能需要进行数组的扩容或缩容操作,因此可能会占用更多的内存空间;而LinkedList则需要额外存储每个元素的前后指针,因此内存占用相对较高。迭代器性能:使用Iterator迭代器遍历ArrayList的速度较快,而LinkedList则需要通过指针逐个遍历。综上所述,如果需要频繁进行随机访问或查询操作,可以选择ArrayList;如果需要频繁进行插入或删除操作,可以选择LinkedList。1-n的n+1个数,找重复数字要找出重复数字,可以使用哈希表或者排序的方法。方法一:哈希表创建一个空的哈希表。遍历给定的n+1个数。对于每个数,检查它是否已经在哈希表中存在。如果存在,说明这个数字是重复的,返回这个数字。如果不存在,将这个数字添加到哈希表中。如果遍历完所有的数字都没有找到重复数字,说明输入的数有误。方法二:排序对给定的n+1个数进行排序。遍历排序后的数组,检查相邻的两个数是否相等。如果相等,说明这个数字是重复的,返回这个数字。如果不相等,继续遍历。如果遍历完所有的数字都没有找到重复数字,说明输入的数有误。以上两种方法都可以找到重复数字,选择哪种方法取决于题目要求和实际情况。归并排序、快排、堆排分别的复杂度和应用场景归并排序的时间复杂度是O(nlogn),空间复杂度是O(n)。它适用于需要稳定排序且对内存占用相对宽裕的情况,如对大规模数据进行排序。快速排序的平均时间复杂度是O(nlogn),最坏情况下是O(n^2),空间复杂度是O(logn)。它适用于对大规模数据进行排序,尤其是在内存资源有限的情况下,因为它只需要常数级别的额外空间。堆排序的时间复杂度是O(nlogn),空间复杂度是O(1)。它适用于需要在内存中进行排序的情况,特别是对于需要实时排序或者对内存使用有限的情况下,因为它不需要额外的空间。总结:归并排序适用于大规模数据排序且对内存占用宽裕的情况。快速排序适用于大规模数据排序且对内存占用有限的情况。堆排序适用于在内存中进行实时排序或者对内存使用有限的情况。b+树,三范式,表和表的join方式回答:B+树:B+树是一种常用的数据结构,用于索引和组织数据。它是一种多路搜索树,具有平衡性、有序性和高度平衡的特点。B+树的节点包含多个关键字和对应的指针,可以加快查找、插入和删除操作的效率。在大数据开发中,B+树通常用于数据库索引的实现,以提高查询速度和数据的组织性。三范式:三范式(Third Normal Form,3NF)是关系数据库设计的一种规范化形式。它要求数据库中的所有非主键字段必须直接依赖于主键,而不是依赖于其他非主键字段。换句话说,每个字段只能依赖于主键,不能依赖于其他非主键字段。通过遵循三范式,可以减少数据冗余和数据更新异常,提高数据库的数据一致性和查询效率。表和表的join方式:在关系型数据库中,表是数据的存储单位,而表的join操作用于将多个表中的数据进行关联和连接。常见的表的join方式有以下几种:内连接(Inner Join):返回两个表中满足连接条件的数据。外连接(Outer Join):包括左外连接(Left Outer Join)和右外连接(Right Outer Join),返回满足连接条件的数据以及未满足连接条件的数据。自连接(Self Join):在同一张表中进行连接操作,用于将表中的数据进行自身关联。交叉连接(Cross Join):返回两个表的笛卡尔积,即两个表中所有数据的组合。以上是对问题的简要回答,如果需要更详细的解释或者有其他相关问题,欢迎继续提问。1g内存,找两个亿级数据大文件中的交集对于这个问题,我会采取以下方法来找到两个亿级数据大文件中的交集:首先,我会将这两个数据文件分别加载到内存中。由于内存只有1GB,所以我需要采取一些策略来处理这两个大文件。例如,我可以将每个文件分成多个小文件,然后逐个加载到内存中进行处理。一旦数据加载到内存中,我会使用哈希算法或者排序算法来对数据进行处理。如果使用哈希算法,我会将一个文件的数据构建成一个哈希表,然后遍历另一个文件的数据,查找是否存在于哈希表中。如果使用排序算法,我会对两个文件的数据进行排序,然后使用双指针法来找到交集。在找到交集之后,我会将结果保存到一个新的文件中,以便后续的处理或者分析。需要注意的是,由于内存的限制,可能无法一次性加载整个文件,所以我会采取适当的分块或者分批处理的方式来处理数据。此外,为了提高效率,我还可以考虑使用并行计算或者分布式计算的方法来处理这两个大文件。
点赞 4
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
07-29 16:16
蓝禾技术_电商事业部_电商运营管培生(准入职员工)
蓝禾科技内推
面经:蓝禾的流程推得很快,基本上投完两天就接到了hr的初试电话,直接进行了初试。初试全程大概三十分钟,hr小哥态度很和善。主要问了实践经历获奖的情况最有成就感的事情对电商运营的理解选择公司的标准等,都是比较常规的问题。禾你一起,做不可能的事 | 蓝禾26届实习!开放申请【图拉斯Torras】新增3大国内电商运营实习生岗位开放招聘:不限专业!不限院校!不限地区!不限经验(可接受小白)!实习薪酬5k(含1K住宿补贴),有转正机会,Base深圳!欢迎可实习三个月及以上,能接受早晚班的小伙伴投递:福利待遇:有竞争力的薪资、经营分红、项目奖金、提前发工资、员工内购、健身房、自助餐厅、每月生日主题part...
点赞
评论
收藏
分享
07-30 11:02
门头沟学院 Java
年纪轻轻就有了三个儿子
大家在大一刚入学的时候都比较拘谨,都比较尊重彼此,等玩熟了后,就放飞自我了脏话满天飞,一起熬夜打游戏,互相诋毁游戏水平,点个外卖都要过来分一杯羹,平时作业互抄,上课帮忙签到。大学四年就跟舍友混得最好(直到现在我还认不清班里的一些人但毕竟天天生活在一起,还是有过不少的小矛盾的,只能说遇到这种情况就得互相包容,要不然早就住不下去搬走了
你跟室友的关系怎么样?
点赞
评论
收藏
分享
07-01 15:32
桂林电子科技大学 Python
找不到工作,是我展示的的项目太水了么
求指点😥
Steven267:
桂林去掉,本科改硕士
点赞
评论
收藏
分享
06-19 17:49
郑州大学 电机工程师
26届机械本2110offer
还能找到实习吗😅
点赞
评论
收藏
分享
07-28 18:59
苏州大学 集成电路IC设计
对日本祛魅
说实话,去日本旅游有很大的吸引力,日本是个很有魔力的地方,不仅仅是因为其干净,还有其商品的质量高。这个国家总是安安静静的,就连司机也总是对每一个乘客点头行礼,周围环境建筑也是一种动漫风格。刚开始几天被日本的干净和安静惊讶到了,佩服他们的秩序。渐渐地,慢慢地就发现不对劲了。以我短时间的观察,他们感觉一直被压抑着,例如夜晚不敢回家在街头驻足的中年男性。被各种规矩束缚着,一旦有人破坏了他们的规矩,无论有意无意,他们什么反应都有可能给出。这个社会的包容度很低。清一色的西装革履。连雨伞都潜移默化地规定透明的和黑色的长伞。基本看不到折叠伞。他们是真的活得累。因为有其他国家生活经验,试着入乡随俗,就会发现战...
我对___祛魅了
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
都是 dirty work,为什么别人的简历上就能言之有物🤔
2.1W
2
...
虾皮后端一面(已挂)
4122
3
...
虾皮秋招一面
3978
4
...
百度提前批,三面被推迟一周,喜提秋招第一凉
3701
5
...
7.30滴滴提前批一面凉经
3197
6
...
百度提前批 三面
3182
7
...
干活最少的实习生因为长得漂亮转正了
3096
8
...
他拿大厂SSP Offer打牌是什么概念啊?25届双非之光
3056
9
...
QQ提前批一面凉经
2588
10
...
7.30百度提前批一面
2376
创作者周榜
更多
正在热议
更多
#
你遇到最难的面试题目是_
#
15153次浏览
193人参与
#
反问环节如何提问
#
95521次浏览
1951人参与
#
中兴秋招
#
203764次浏览
2280人参与
#
简历上的经历如何包装
#
24449次浏览
728人参与
#
如何看待offer收割机的行为
#
815543次浏览
6088人参与
#
你最讨厌面试问你什么?
#
25153次浏览
282人参与
#
秋招最大的收获是什么?
#
38623次浏览
323人参与
#
我的实习收获
#
90893次浏览
1038人参与
#
26届的你,投了哪些公司?
#
37178次浏览
428人参与
#
滴滴求职进展汇总
#
233348次浏览
2116人参与
#
作业帮求职进展汇总
#
57016次浏览
376人参与
#
初创公司值得加入吗?
#
27326次浏览
194人参与
#
我对___祛魅了
#
43506次浏览
410人参与
#
数字马力求职进展汇总
#
184456次浏览
1500人参与
#
你跟室友的关系怎么样?
#
6107次浏览
94人参与
#
什么样的背景能拿SSP?
#
31548次浏览
202人参与
#
工作中哪个瞬间让你想离职
#
60710次浏览
545人参与
#
和同事相处最忌讳的是__
#
21234次浏览
217人参与
#
去年你投递实习了吗?
#
22889次浏览
331人参与
#
如何快速融入团队?
#
14940次浏览
182人参与
#
机械人的金三校招总结
#
36239次浏览
461人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务