刷题笔记(牛客java选择题)

news/2024/4/25 10:05:07/文章来源:https://blog.csdn.net/weixin_61061381/article/details/127619877

目录

访问权限修饰符

 抽象类和接口

线性安全的集合类

线性不安全的集合类

方法重载与重写

getDeclaredMethods方法

浮点型 和 long 不能做 switch() 的参数类型

 java程序运行命令

字符串的不可变性


访问权限修饰符

 

 

 抽象类和接口

 

 

  1. 使用abstract修饰的类或方法,就抽象类或者抽象方法
  2. 抽象类是不能具体的描述一个对象,不能用抽象类直接实例化对象
  3. 抽象类里面的成员变量和成员方法,都是和普通类一样的,只不过就是不能进行实例化了
  4. 当一个普通类继承这个抽象类后,那么这个普通类必须重写抽象类当中的所有的抽象方法🤔(我们之前说过抽象类是不具体的,没有包含足够的信息来描述一个对象,所以我们需要把他补充完整)
  5. 但当一个抽象类A继承了抽象类B,这是抽象类A就可以不重写抽象类B当中的抽象方法
  6. final不能修饰抽象类和抽象方法(因为抽象类存在的最大意义就是被继承,而被final修饰的不能被继承,final和抽象,他们两个是天敌😂)
  7. 抽象方法不能被private修饰(抽象方法一般都是要被重写的,你被private修饰了,还怎么重写😫)
  8. 抽象类当中不一定有抽象方法,但如果一个类中有抽象方法,那么这个类一定是抽象类

线性安全的集合类

 

  • ConcurrentHashMap使用通过volatile修饰符和后插入后特殊的算法实现读不加锁.
  • HashMap实现了Map接口
  • Array.asList返回的ArrayList不是util包中的ArrayList,而是Arrays类的一个继承了AbstractList内部类
     

 

 

  • Vector:只要是关键性的操作,方法前面都加了synchronized关键字,来保证线程的安全性
  • Hashtable:使用了synchronized关键字,所以相较于Hashmap是线程安全的。
  • ConcurrentHashMap:使用锁分段技术确保线性安全,是一种高效但是线程安全的集合。
  • Stack:栈,也是线程安全的,继承于Vector。

线性不安全的集合类

  • Hashmap
  • Arraylist
  • LinkedList
  • HashSet
  • TreeSet
  • TreeMap 

Hashmap:HashMap在put操作的时候,如果插入的元素超过了容量(由负载因子决定)的范围就会触发扩容操作,就是resize,这个会重新将原数组的内容重新hash到新的扩容数组中,在多线程的环境下,存在同时其他的元素也在进行put操作,如果hash值相同,可能出现同时在同一数组下用链表表示,造成闭环,导致在get时会出现死循环,所以HashMap是线程不安全的。

Arraylist: List 对象在做 add 时,执行 Arrays.copyOf 的时候,返回一个新的数组对象。当有线程 A、B… 同时进入 grow方法,多个线程都会执行 Arrays.copyOf 方法,返回多个不同的 elementData 对象,假如,A先返回,B 后返回,那么 List.elementData ==A. elementData,如果同时B也返回,那么 List.elementData ==B. elementData,所以线程B就把线程A的数据给覆盖了,导致线程A的数据被丢失。

LinkedList:与Arraylist线程安全问题相似,线程安全问题是由多个线程同时写或同时读写同一个资源造成的。

HashSet:底层数据存储结构采用了Hashmap,所以Hashmap会产生的线程安全问题HashSet也会产生。

SimpleDateFormat: 对象是线程不安全的


 

方法重载与重写

 方法重写要求参数个数和类型和返回值都相同,重载则不要求:参数类型和个数可以不同,与返回值无关

重写:

重写(Override)是父类与子类之间多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Override)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。

重载:

重载(Overload)是一个类中多态性的一种表现。如果在一个类中定义了多个同名的方法,它们参数列表不同,则称为方法的重载(Overload)

区别:重载实现于一个类中;重写实现于子类中。

重载(Overload):是一个类中多态性的一种表现,指同一个类中不同的函数使用相同的函数名,但是函数的参数个数或类型不同。可以有不同的返回类型;可以有不同的访问修饰符;可以抛出不同的异常。调用的时候根据函数的参数来区别不同的函数。

重写(Override): 是父类与子类之间的多态性,是子类对父类函数的重新实现函数名和参数与父类一样,子类与父类函数体内容不一样。子类返回的类型必须与父类保持一致;子类方法访问修饰符的限制一定要大于父类方法的访问修饰(public>protected>default>private);子类重写方法一定不能抛出新的检查异常或者比被父类方法申明更加宽泛的检查型异常。

getDeclaredMethods方法

 

 

浮点型 和 long 不能做 switch() 的参数类型

 

switch的括号内只能是以下类型的表达式:

基本类型:byte,cahr,short,int,注意不能是long和浮点类型

引用类型:String常量串,枚举类型

 java程序运行命令

 

字符串的不可变性

 

 

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

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

相关文章

MacOS安装FFmpeg

MacOS安装FFmpeg方式一、使用Homebrew安装FFmpeg1. 安装Homebrew2. 安装FFmpeg方式二、通过官网安装FFmpeg方式一、使用Homebrew安装FFmpeg 1. 安装Homebrew 如果你的Mac上没有安装Homebrew,那么就先来安装Homebrew吧!步骤如下: 打开Termi…

学习笔记-Linux 安全

Linux 安全 免责声明 本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关. 漏洞利用 OS-Exploits LOL Living Off The Land 相关文章 busybox docker 受限环境下回传文件命令行上线小技巧 相关资源 GTFOBinshttps://github.com…

前端高频手写题自测,你能做出几道

实现字符串的repeat方法 输入字符串s,以及其重复的次数,输出重复的结果,例如输入abc,2,输出abcabc。 function repeat(s, n) {return (new Array(n 1)).join(s); }递归: function repeat(s, n) {return…

edge:H5抓包

1、打开edge:并输入地址:edge://inspect/#devices 2、USB连接手机,并手机和电脑使用WiFi连接同一个ssid,以使手机和电脑在同一个网络; 3、手机设置:1)打开开发人员选项 2)进入开发人员选项,并开启USB调试 3)进入开发人员选项,设置USB配置为RNDIS 4、开始抓…

【架构】架构到底是是什么

对于技术人员来说,「架构」是一个再常见不过的词了。我们会对新员工培训整个系统的架构,参加架构设计评审,学习业界开源系统(例如,MySQL、Hadoop)的架构,研究大公司的架构实现,例如,微信架构、淘宝架构……虽然「架构」这个词常见,但如果深究一下「架构」到底指什么,…

简单的Java web项目源码(10个)

引言:Java web项目主要采用mvc的的设计思想,系统主要采用javajspservletmysqleclipse实现,具有登陆、分页、导出excel,增删改查等功能,适合初学者,满足基本的实训需求,以下是推荐的几款,总有适合…

【备战蓝桥杯 | 软件Java大学B组】十三届真题深刨详解(2)

个人名片: 🐼作者简介:一名大二在校生,喜欢编程🎋 🐻‍❄️个人主页🥇:小新爱学习. 🐼个人WeChat:hmmwx53 🕊️系列专栏:&#x1f5bc…

以开发之名 | 小红书:用年轻人的方式开发年轻人喜欢的应用

2013年,小红书在上海成立,同年12月,小红书推出海外购物分享社区。一个开放式的体验型分享社区走进了数亿用户的生活。每个人都能在这个开放社区,分享自己的生活笔记,给有同样需求的人种草。 小红书用户“一只雪梨酱”的…

EPICS记录参考--数据扇出记录(dfanout)

数据散出或"dfanout"记录用于最多转发数据到8个其它记录。除了向它添加了转发数据的能力外,它类似于fanout记录。它没有相关联的设备支持。 参数字段 在下面描述记录特定的字段,按功能分组。 扫描参数 数据fanout记录有用于指定其在什么情况…

k3s 指南

k3s 指南 文章目录k3s 指南简介什么是 K3s?技术亮点架构发展趋势云边缘k3s 周边单节点高可用代理注册部署清单集群要求大型集群cpu 与 内存数据库配置选项使用安装脚本二进制配置配置文件网络选项Flannel options简介 轻量级Kubernetes k3s是经CNCF一致性认证的Kubernetes发行…

Spring底层核心概念

在深入Spring核心源码之前,需要了解一些Spring的核心概念,便于后面的进行展开。 一:BeanDefinition 表示Bean定义,BeanDefinition中存在很多属性用来描述一个Bean的特点; class,表示Bean的类型scope,表示Bean作用域…

快速排序【模板+边界处理】

全文目录:😃快速排序的思想😕 快速排序演示图😴 代码模板❗️ i 和 j 的取值和循环处理 ❗️🗽 i 和 j 的取值 🗽🗽 循环条件判断 🗽💢 边界问题 💢&#x1f…

Scala数组常用函数(2)

函数(1):Scala数组常用函数(1)_后季暖的博客-CSDN博客 目录 四十六.-def isTraversableAgain: Boolean 四十七.-def iterator: collection.Iterator[T] 四十八.-def last: T 四十九.-def lastIndexOf(elem: T):…

计算机毕业设计(66)php小程序毕设作品之视频点播学习在线教育小程序系统

基于微信小程序的毕业设计题目(12)php在线教育视频点播学习小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板) 项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序视频点播系统,前台用户使用小程序&a…

【2022秋招面经】——数据库

参考链接: 1. 20个数据库常见面试题讲解 2. MySQL数据库面试题(2020最新版) 小林coding-MySQL 小林coding-Redis 文章目录数据库关系型数据库和非关系型数据库数据库高并发环境解决方案数据库外键的优缺点百万级别或以上的数据如何删除如何保…

计算机毕业设计(64)php小程序毕设作品之校园运动场地预约小程序系统

项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序运动场地预约系统,前台用户使用小程序,后台管理使用基PHPMySql的B/S架构;通过后台添加开放的场地类型(比如羽毛球、篮球、网球等)、…

混合与面剔除帧缓冲

混合混合不同物体的多种颜色为一种颜色,所以透明度能让我们看穿物体,透明度一般由alpha颜色值来决定的,透明度为1-alpha值。首先试着使用有一部分透明的草贴图.glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);//用来说明现在…

JavaScript 52 JavaScript this 关键词

JavaScript 文章目录JavaScript52 JavaScript this 关键词52.1 this 是什么?52.2 方法中的 this52.3 单独的 this52.4 函数中的 this(默认)52.5 函数中的 this(严格模式)52.6 事件处理程序中的 this52.7 对象方法绑定5…

2022年马丁·加德纳聚会数学魔术分享之《加加减减的奥秘》回顾

早点关注我,精彩不错过!2022.10.30,本年度的线上马丁加德纳聚会如约举行。随着大家对线上这种活动方式的适应和不变的对趣味数学的热爱,今年聚会的规模,无论是线下还是线上,都朝着欣欣向荣的方向发展着。详…

【CV】第 7 章:使用 YOLO 进行对象检测

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…