牛客java刷题知识点总结(八)

news2025/7/1 0:30:26

方法调用


类中变量: 除了private权限外,其他权限的变量(没有表示默认default),均可以用“对象.变量名”来调用。对于private变量,即使使用static,也不能用“类.变量名”来调用私有变量。只能通过类中的public get()方法来调用。
类中方法: 除了private权限外,其他权限的方法(没有表示默认default),均可以用“对象.方法名”来调用。private方法可以用java反射机制调用。当然如果用 private修饰方法,该方法只在类的内部调用。其中比较著名的就是单例模式中的私有构造方法。
static属性: static方法在编译期就已经生成了,其他方法在运行期生成。非私有的static方法可以用“类.方法名”调用。但是私有的static变量和方法都是不可能被调用的,虽然private static这种写法很少见,但仍然存在,且编译器不会报错。题中static void method2() { }的权限是默认权限,所以可以用“类.方法名”来调用。如果题目中写成private static void method2(){ } ,那么D选项也是错误的。

Java7特性中,abstract class和interface有什么区别。

  • 抽象类可以有构造方法,接口中不能有构造方法
  • 抽象类中可以有普通成员变量,接口中没有普通成员变量
  • 一个类可以实现多个接口,但只能继承一个抽象类。

含有abstract修饰符的class即为抽象类,abstract类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。
接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。
下面比较一下两者的语法区别:
1.抽象类可以有构造方法,接口中不能有构造方法。
2.抽象类中可以有普通成员变量,接口中没有普通成员变量
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
4. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然
eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
5. 抽象类中可以包含静态方法,接口中不能包含静态方法
6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。
7. 一个类可以实现多个接口,但只能继承一个抽象类。
下面接着再说说两者在应用上的区别:
接口更多的是在系统架构设计方法发挥作用,主要用于定义模块之间的通信契约。而抽象类在代码实现方面发挥作用,可以实现代码的重用,

例如,模板方法设计模式是抽象类的一个典型应用,假设某个项目的所有Servlet类都要用相同的方式进行权限判断、记录访问日志和处理异常,那么就可以定义一个抽象的基类,让所有的Servlet都继承这个抽象基类,在抽象基类的service方法中完成权限判断、记录访问日志和处理异常的代码,在各个子类中只是完成各自的业务逻辑代码

以下关于final关键字说法错误的

java语言

jar 将许多文件组合成一个jar文件

javac 编译

javadoc 它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。

javah 把java代码声明的JNI方法转化成C\C++头文件。

instanceof运算符作用

instance是java的二元运算符,用来判断他左边的对象是否为右面类(接口,抽象类,父类)的实例。 我们考虑的时候,左边的对象如果是父类的引用指向子类的对象,我们用子类对象的范围来判断!

线程

易知:每个线程对a 均做了两次读写操作,分别是 “ +1 ” 和 “ -2 ”

而题目问了是最终a 的结果,所以 a 的结果取决于各自线程对 a 的先后读写的顺序

结论:a的可能取值为-1、0、-2

不管怎样线程对a的操作就是+1后-2

1.线程1执行完再线程2执行,1-2+1-2=-2

2.线程1和2同时+1,再-2不同时,1-2-2=-3

3.线程1和2不同时+1,同时-2,1+1-2=0

4.线程1和2既同时+1又同时-2,1-2=-1

没有结果为1的情况

文件的描述

A.文件分为文本文件和二进制文件,计算机只认识二进制,所以实际上都是二进制的不同解释方式。文本文件是以不同编码格式显示的字符,例如Ascii、Unicode等,window中文本文件的后缀名有".txt",“.log”,各种编程语言的源码文件等;二进制文件就是用文本文档打开是看不懂乱码,只要能用文本打开的文件都可以算是文本文件,只是显示的结果不是你想要的,二进制文件只有用特殊的应用才能读懂的文件,例如".png",".bmp"等,计算机中大部分的文件还是二进制文件。

B.File类是对文件整体或者文件属性操作的类,例如创建文件、删除文件、查看文件是否存在等功能,不能操作文件内容;文件内容是用IO流操作的。

C.当输入过程中意外到达文件或流的末尾时,抛出EOFException异常,正常情况下读取到文件末尾时,返回一个特殊值表示文件读取完成,例如read()返回-1表示文件读取完成。

D.上面A选项已经说了,不论是文本文件还是二进制文件,在计算机中都是以二进制形式存储的,所以都当做二进制文件读取。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UID走私:一种在线跟踪用户的新技术

©网络研究院 几十年来,广告商和网络追踪者已经能够在用户访问的所有网站上汇总用户信息,主要是通过在用户的浏览器中放置第三方cookies。 两年前,几个优先考虑用户隐私的浏览器开始默认屏蔽所有用户的第三方cookies。 对于那些代表其…

2022年转行编程选哪门语言?这份报告给你答案!

本报告展示了 JetBrains (IntelliJ IDEA的开发公司)于2021年进行的第五次年度开发者生态系统调查的综合结果。来自 183 个国家或地区的 31,743 名开发者帮助我们绘制了开发者社区版图。 本文将摘录部分个人觉得有价值的报告,从全球视角以国内…

AI-多模态-2021:Stable Diffusion【根据文本生成图像】【开源】【目前开源模型中最强】

最近大火的Stable Diffusion也开源了(20220823); 我也本地化测试了一下效果确实比Dall-E mini强太多了,对于我们这些玩不上Dall-E2的这个简直就是就是捡钱的感觉,当然后期跑起来,稍微不注意显存就炸了。 这里我写一下安装过程,具…

Fabric.js 限制边框宽度缩放

本文简介 点赞 关注 收藏 学会了 使用 fabric.js 在某些情况下你可能需要固定元素边框的宽度,仔细看文档你会发现 fabric.js 已经为我们提供了这个功能。本文简单介绍一下这个功能。 实现方法 先揭晓答案,将元素的 strokeUniform 属性设置为 true 后…

适合贵校的核心营销讯息

香港 (Xinwengao.com) — 优秀的学校具备策略来提升形象、提高学生的成功率、改善收生(和重新入学)的成果。这包括为你的学校定下营销讯息。大多数学校都具备自己的营销策略,但很少有营销讯息。一个有力的营销讯息可大大地支援营销策略。 即…

避坑细节拉满!阿里p8技术官私传:MyBatis源码全解析,全彩版附代码分享

摘要 MyBatis是一款优秀的持久层框架,它支持自定义SQL,存储过程以及高级映射,越来越多的企业已经将MyBatis使用到了正式的生产环境,而国内Mybatis流行的原因就在于绝大部分项目都是面向表结构编程的,把Java对象仅当成…

【敏捷研发系列】前端DevOps流水线实践

一、背景现状 软件开发从传统的瀑布流方式到敏捷开发,将软件交付过程中开发和测试形成快速的迭代交付,但在软件交付客户之前或者使用过程中,还包括集成、部署、运维等环节需要进一步优化交付效率。因此Devops的产生将敏捷的相关理念扩展到运…

认识操作系统

操作系统 1 OS 简史 1.1 批处理操作系统 1946-02-04 世界上第一台公认的通用计算机ENIAC在 宾夕法尼亚大学 诞生。1956 年实现 GM-NAA I/O 系统具备批处理特性。 1.2 从专用走向通用 1964 年,美国IBM公司发布 IBM System/360 的大型机。将计算机架构和实现分开…

【Java入门基础第10天】Java常用的转义字符

Java常用的转义字符1、\t:一个制表位,实现对齐功能2、\n:换行符3、\\:转义字符 一个4、\":一个"5、\:一个6、\r:一个回车 System.out.println("学刑法\r有钱途")7、应用实例(Exercise)1、\t:一个制表位,实现对齐功能 \t:一个制表位,实现对齐功…

从文科生到前端专家 - 在转行时我想过的问题

▐ 在学习编程之前 在高中时,因为学不会物理和化学,我选择了文科,这也意味着计算机专业类对我关上了大门,不过在当时我也没有想到自己在未来会喜欢上写代码并以此为生。 现在回想起来,与编程有关的只有两件事情。 一是…

java学习day65(乐友商城)实现搜索、分页、排序

1.索引库数据导入 昨天我们学习了Elasticsearch的基本应用。今天就学以致用&#xff0c;搭建搜索微服务&#xff0c;实现搜索功能。 1.1.创建搜索服务 创建module&#xff1a; Pom文件&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <…

【软件测试】瓶颈?资深测试聊测试开发的瓶颈在哪?

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 测试开发的发展是不…

嵌入式C语言面向对象编程 --- 封装

大部分使用 C 语言进行开发的工程师,在接触更高级的编程语言之前,都认为 C 语言是面向过程的。事实也是如此,对于一些小规模的单片机应用程序,一般都是使用“面向过程”的思维进行单片机C语言编程开发。 但是,如果是需要用C语言开发一些规模比较大的软件的时候,比如操作…

pycharm 中sqlite升级方法

sqlite 3.21升级到3.40 Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> help Type help()…

小哥用Python兼职月入过万,用Python做项目有多赚钱?

问&#xff1a;请问用Python可以接哪些兼职的活赚钱&#xff1f; 1 兼职费用足够学费生活费 恰巧上学期间接过一些外包&#xff0c;恩&#xff0c;足够我和我媳妇的学费以及生活费&#xff0c;以及xx各种费用。 主要干过以下几种&#xff1a; 游戏外挂&#xff1a;主要开发…

Jetpack Compose中的导航路由

Jetpack Compose中的导航库是由Jetpack库中的Navigation组件库的基础上添加的对Compose的扩展支持&#xff0c;使用需要单独添加依赖&#xff1a; implementation "androidx.navigation:navigation-compose:$nav_version" Jetpack库中的Navigation使用起来还是比较麻…

毕业时就已26,工作4年就已大龄,码农出路在哪?

边工作边迷茫这可能是我们大多数职场人的常态。一边觉得这份工作不适合自己&#xff0c;另一边又不知道能去做什么。喜欢的工作&#xff0c;却又不知道如何提升。长此以往&#xff0c;内心难免产生焦躁&#xff0c;尤其随着年龄的增长&#xff0c;内心更是希望能够在事业上有所…

MySQL数据库的安装、创建库、创建表、创建测试数据及连接取数

安装MySQL数据库MySQL数据库简介安装MySQL数据库下载安装包安装MySQLMySQL创建一个新的数据库&#xff0c;并在其中创建新的数据表&#xff0c;填充测试数据并查看mysql>模式下输入的每句sql语句都要以;结尾&#xff1b;若多行语句无;&#xff0c;则被默认为一条语句未输入完…

设计好接口的36个锦囊

前言 大家好&#xff0c;我是捡田螺的小男孩。作为后端开发&#xff0c;不管是什么语言&#xff0c;Java、Go还是C&#xff0c;其背后的后端思想都是类似的。后面打算出一个后端思想的技术专栏&#xff0c;主要包括后端的一些设计、或者后端规范相关的&#xff0c;希望对大家日…

redis安装 3台机器 6节点

一&#xff1a; redis官网地址&#xff1a; 6.2.6版本 1 | Index of /releases/http://download.redis.io/releases/ 二&#xff1a; 编辑配置文件 1: 注释本地IP地址&#xff1a; 1&#xff1a; bind: 本地IP 2&#xff1a; protected-mode no: #关闭保护模式 3&#xff1…