scala概念

val声明变量和var声明变量的不同?

val修饰不可变变量,var修饰可变变量

trait与class的相同点和不同点?

它们的相同点在于都能包含抽象和非抽象成员,且不能直接实例化。

区别在于抽象类的构造方法可传参,而特质的构造方法不能。

一个类实现多个特质后,所涉及的多个构造器的执行顺序是?

所有特质被构造完毕,子类被构造。 构造器的顺序是类的线性化的反向 

private修饰的属性的访问权限和protected修饰的属性在访问权限上有相同和不同?

封装性privateprotected 都是封装的一部分,用于限制类成员的访问,以保护类的内部状态和行为。

继承:如果一个类继承了另一个类,那么继承类可以访问父类的protected成员,但不能访问private成员。

不同点

  1. 访问范围

    private:被private修饰的属性或方法只能在定义它们的类内部被访问。它们对子类和其他类都是不可见的。protected:被protected修饰的属性或方法可以被定义它们的类、同一个包中的其他类以及子类访问。它们对不同包中的非子类是不可见的。
  2. 子类访问private:子类不能访问父类的private成员,即使它们在同一个包中。protected:子类可以访问父类的protected成员,无论它们是否在同一个包中。包访问private:不允许包访问,即同一个包中的其他类也不能访问。protected:允许包访问,即同一个包中的其他类可以访问。接口实现privateprivate成员不能被接口的实现类访问,因为它们对所有外部类都是不可见的。protected:如果一个类实现了一个接口,那么这个类的protected成员可以被实现该接口的其他类访问。
  3. 隐式转换函数的特点是那些?如何让理解隐式转换?
  4. 自动性单向性安全性上下文依赖,可预测性,可能导致性能损失,可能隐藏错误
  5. 理解隐式转换的关键在于:
  6. 熟悉语言规则,注意上下文,性能考量代码,可读性,显式转换,避免数据丢失,测试和调试
  7. 解释一下正则表达式:1[3-8]\\d{9}.r的含义?
  8. 正则表达式 1[3-8]\d{9}.r 匹配的字符串以数字 "1" 开头,紧接着是一个3到8之间的数字,然后是任意9个数字,最后以字母 "r" 结尾
  9. 正则表达式中常见的量词及含义?
  10. *(星号):

    • 表示前面的元素可以出现0次或多次。
  11. +(加号):

    • 表示前面的元素至少出现1次或多次
  12. ?(问号):

    • 表示前面的元素可以出现0次或1次。
  13. {n}(花括号):

    • 表示前面的元素恰好出现n次。
  14. {n,}

    • 表示前面的元素至少出现n次。
  15. {n,m}

    • 表示前面的元素至少出现n次,但不超过m次。
  16. *?+???(懒惰量词):

    • 这些量词与它们对应的贪婪量词相同,但它们是懒惰的,即尽可能少地匹配字符。
  17. |(竖线):

    • 表示逻辑“或”,用于匹配两个或多个选项中的一个。
  18. ^(脱字符号):

    • 表示匹配输入字符串的开始位置。
  19. $(美元符号):

    1. 表示匹配输入字符串的结束位置
    2. ListBuffer和List的区别?
    3. 可变性

      • ListBuffer:是一种可变的集合
      • List:是一种不可变的集合
    4. 性能

      • ListBuffer:由于其可变性,ListBuffer在添加和删除元素时通常比List更高效,尤其是在集合大小频繁变化的情况下
      • List:由于其不可变性,List在遍历和头部操作(如访问第一个元素)时通常更高效。
    5. 懒加载

      • List:Scala的List是懒加载的
      • ListBufferListBuffer不是懒加载的,它存储的是元素的物理集合。
    6. 使用场景

      • ListBuffer:当你需要一个可以动态修改的集合,并且关心添加和删除操作的性能时,ListBuffer是一个好选择。
      • List:当你需要一个不可变的集合,并且关心遍历和头部操作的性能时,List是更好的选择。
    7. 其他操作

      • ListBuffer提供了一些额外的操作,如removeinsert等,这些在List中是不可用的。
    8. 内存使用

      • ListBuffer可能会使用更多的内存,因为它需要存储额外的信息来支持其可变操作。
    9. 线程安全

      • ListBuffer不是线程安全的,而List由于其不可变性,天然是线程安全的。
      • 如何处理代码中的异常?
      • 精确捕获:只捕获你能够处理的异常,而不是所有异常。
      • 资源管理:使用finally块或try-with-resources语句(Java 7+)来确保资源(如文件句柄、数据库连接)被正确关闭。
      • 避免空的Catch块:不要仅仅捕获异常而不做任何处理,至少应该记录异常信息。
      • 不吞没异常:不要捕获异常后不进行任何处理或不向上抛出。
      • 用户友好的消息:向用户提供错误信息时,避免显示技术性或模糊的消息。
      • 日志记录:记录异常信息,这对于调试和监控程序运行状态很有帮助。
      • 自定义异常:创建自定义异常类,以提供更具体的异常信息。
      • 异常链:在自定义异常时,可以通过构造函数传递原始异常,以保留原始异常堆栈信息
      • 什么是泛型?在scala中如何使用泛型?
      • 泛型用于指定方法或类可以接受任意类型参数,参数在实际使用时才被确定,泛型可以有效 地增强程序的适用性,使用泛型可以使得类或方法具有更强的通用性。泛型的典型应用场景 是集合及集合中的方法参数,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/946786.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python实现自动登录12306抢票 -- selenium

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 python实现自动登录12306抢票 -- selenium 前言其实网上也出现了很多12306的代码,但是都不是最新的,我也是从网上找别人的帖子,看B站视频&…

Spring自动化创建脚本-解放繁琐的初始化配置!!!(自动化SSM整合)

一、实现功能(原创,转载请告知) 1.自动配置pom配置文件 2.自动识别数据库及数据表,创建Entity、Dao、Service、Controller等 3.自动创建database.properties、mybatis-config.xml等数据库文件 4.自动创建spring-dao.xml spring-mvc.xml …

[微服务] - MQ高级

在昨天的练习作业中,我们改造了余额支付功能,在支付成功后利用RabbitMQ通知交易服务,更新业务订单状态为已支付。 但是大家思考一下,如果这里MQ通知失败,支付服务中支付流水显示支付成功,而交易服务中的订单…

MySQL(面试题 - 同类型归纳面试题)

目录 一、MySQL 数据类型 1. 数据库存储日期格式时,如何考虑时区转换问题? 2. Blob和text有什么区别? 3. mysql里记录货币用什么字段类型比较好? 4. MySQL如何获取当前日期? 5. 你们数据库是否支持emoji表情存储…

aws(学习笔记第二十一课) 开发lambda应用程序

aws(学习笔记第二十一课) 开发lambda应用程序 学习内容: lambda的整体概念开发lambda应用程序 1. lambda的整体概念 借助AWS Lambda,无需预置或管理服务器即可运行代码。只需为使用的计算时间付费。借助 Lambda,可以为几乎任何类型的应用进…

【优选算法】查找总价格为目标值的两个商品

链接&#xff1a;LCR 179. 查找总价格为目标值的两个商品 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a;利用单调性&#xff0c;使用双指针算法解决问题 1.先从小到大排序 2. sum > t : right--; sum < t : left; sum t : return class Solution {public…

VUE echarts 教程二 折线堆叠图

VUE echarts 教程一 折线图 import * as echarts from echarts;var chartDom document.getElementById(main); var myChart echarts.init(chartDom); var option {title: {text: Stacked Line},tooltip: {trigger: axis},legend: {data: [Email, Union Ads, Video Ads, Dir…

bilibili 哔哩哔哩小游戏SDK接入

小游戏的文档 简介 bilibili小游戏bilibili小游戏具有便捷、轻量、免安装的特点。游戏包由云端托管&#xff0c;在哔哩哔哩APP内投放和运行&#xff0c;体验流畅&#xff0c;安全可靠。https://miniapp.bilibili.com/small-game-doc/guide/intro/ 没想过接入这个sdk比ios还难…

2024年中国新能源汽车用车发展怎么样 PaperGPT(二)

用车趋势深入分析 接上文&#xff0c;2024年中国新能源汽车用车发展怎么样 PaperGPT&#xff08;一&#xff09;-CSDN博客本文将继续深入探讨新能源汽车的用车强度、充电行为以及充电设施的现状。 用车强度 月均行驶里程&#xff1a;2024年纯电车辆月均行驶超过1500公里&…

自从学会Git,感觉打开了一扇新大门

“同事让我用 Git 提交代码&#xff0c;我居然直接把项目文件压缩发过去了……”相信很多初学者都经历过类似的窘境。而当你真正掌握 Git 时&#xff0c;才会发现它就像一本魔法书&#xff0c;轻松解决代码管理的种种难题。 为什么 Git 能成为程序员的标配工具&#xff1f;它究…

简易屏幕共享工具-基于WebSocket

前面写了两个简单的屏幕共享工具&#xff0c;不过那只是为了验证通过截屏的方式是否可行&#xff0c;因为通常手动截屏的频率很低&#xff0c;而对于视频来说它的帧率要求就很高了&#xff0c;至少要一秒30帧率左右。所以&#xff0c;经过实际的截屏工具验证&#xff0c;我了解…

yakit-靶场-高级前端加解密与验签实战(for嵌套纯享版)

高级前端加解密与验签实战 一、前端验证签名&#xff08;验签&#xff09;表单&#xff1a;HMAC-SHA256 使用hmac-sha256的十六进制key值可以加密 与页面加密后的值相同 热加载&#xff1a; encryptData func(p) { //sha256key值key codec.DecodeHex("313233343132333…

嵌入式入门Day35

网络编程 Day2 套接字socket基于TCP通信的流程服务器端客户端TCP通信API 基于UDP通信的流程服务器端客户端 作业 套接字socket socket套接字本质是一个特殊的文件&#xff0c;在原始的Linux中&#xff0c;它和管道&#xff0c;消息队列&#xff0c;共享内存&#xff0c;信号等…

模仿微信小程序wx.showModal自定义弹窗,内容可以修改

实现以下弹框样式功能 1.在components新建一个文件showModel.wpy作为组件&#xff0c;复制下面代码 <style lang"less" scoped> .bg_model {display: flex;justify-content: center;align-items: center;// 弹框背景.bg_hui {width: 100%;height: 100%;posi…

如何在 Ubuntu 22.04 上安装并开始使用 RabbitMQ

简介 消息代理是中间应用程序&#xff0c;在不同服务之间提供可靠和稳定的通信方面发挥着关键作用。它们可以将传入的请求存储在队列中&#xff0c;并逐个提供给接收服务。通过以这种方式解耦服务&#xff0c;你可以使其更具可扩展性和性能。 RabbitMQ 是一种流行的开源消息代…

分布式系统架构6:链路追踪

这是小卷对分布式系统架构学习的第6篇文章&#xff0c;关于链路追踪&#xff0c;之前写过traceId的相关内容&#xff1a;https://juejin.cn/post/7135611432808218661&#xff0c;不过之前写的太浅了&#xff0c;且不成系统&#xff0c;只是简单的理解&#xff0c;今天来捋一下…

python opencv的orb特征检测(Oriented FAST and Rotated BRIEF)

官方文档&#xff1a;https://docs.opencv.org/4.10.0/d1/d89/tutorial_py_orb.html SIFT/SURF/ORB对比 https://www.bilibili.com/video/BV1Yw411S7hH?spm_id_from333.788.player.switch&vd_source26bb43d70f463acac2b0cce092be2eaa&p80 ORB代码 import numpy a…

蓝桥杯JAVA刷题--001

文章目录 题目需求2.代码3.总结 题目需求 2.代码 class Solution {public String convertDateToBinary(String date) {if (date null || date.length() ! 10 || date.charAt(4) ! - || date.charAt(7) ! -) {throw new IllegalArgumentException("输入的日期格式不正确&…

WebRTC的线程事件处理

1. 不同平台下处理事件的API&#xff1a; Linux系统下&#xff0c;处理事件的API是epoll或者select&#xff1b;Windows系统下&#xff0c;处理事件的API是WSAEventSelect&#xff0c;完全端口&#xff1b;Mac系统下&#xff0c;kqueue 2. WebRTC下的事件处理类&#xff1a; …

zentao ubuntu上安装

#下载ZenTaoPMS-21.2-zbox_amd64.tar.gz&#xff08;https://www.zentao.net/downloads.html&#xff09; https://dl.zentao.net/zentao/21.2/ZenTaoPMS-21.2-zbox_amd64.tar.gzcd /opt tar -zxvf ZenTaoPMS-21.2-zbox_amd64.tar.gz#启动 /opt/zbox/zbox start /opt/zbox/zbox…