当前位置: 首页 > news >正文

网易java面试_网易Java面试:容易被问到的这些面试题

面试题

1.面向对象的特点有哪些?

①.封装:所谓封装,就是将客观事物封装成抽象的类,并且类可以把数据和方法让可信的类或者对象进行操作,对不可信的类或者对象进行隐藏。类就是封装数据和操作这些数据代码的逻辑实体。在一个类的内部,某些属性和方法是私有的,不能被外界所访问。通过这种方式,对象对内部数据进行了不同级别的访问控制,就避免了程序中的无关部分的意外改变或错误改变了对象的私有部分。

②.继承:继承有这样一种能力,就是能使用现有的类的所有功能,并无须重新编写原来的这些类的基础上对这些功能进行扩展。通过继承创建的新类称为子类或派生类,被继承的称为基类。继承有两种,一种是实现继承,另外一种是接口继承。实现继承可以直接使用基类的属性和方法而无需额外编码,接口继承是指使用属性和方法的名称,但是子必须提供实现的能力。

③.多态:所谓多态就是对一个实例的相同方法在不同的情形下有不同的表现形式。多态机制使得不同内部结构的对象可以共享相同的外部接口,这就意味着,虽然不同的类的内部操作不同,但可以通过一个公共的类,它们可以通过相同的方式予以调用。

④.抽象:提取现实世界中某事物的关键特性,为该事物构建模型的过程。对同一事物在不同的需求下,需要提取的特性可能不一样。得到的抽象模型中一般包含:属性(数据)和操作(行为)。这个抽象模型我们称之为类。对类进行实例化得到对象。

354193ad29bf16fbb64ec2b48af07630.png

2.列举几个java常用的package及其作用

第一个包:java.lang包。该包提供了Java语言进行程序设计的基础类,它是默认导入的包。该包里面的Runnable接口和Object、Math、String、StringBuffer、System、Thread以及Throwable类需要重点掌握,因为它们应用很广。

第二个包:java.util包。该包提供了包含集合框架、遗留的集合类、事件模型、日期和时间实施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。

第三个包:java.io包。该包通过文件系统、数据流和序列化提供系统的输入与输出。

第四个包:java.net包。该包提供实现网络应用与开发的类。

第五个包:java.sql包。该包提供了使用Java语言访问并处理存储在数据源(通常是一个关系型数据库)中的数据API。

第六个包:java.awt包

第七个包:javax.swing包。庆庆说:这两个包提供了GUI设计与开发的类。java.awt包提供了创建界面和绘制图形图像的所有类,而javax.swing包提供了一组“轻量级”的组件,尽量让这些组件在所有平台上的工作方式相同。

第八个包:java.text包。提供了与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。

3.接口和抽象类有什么联系和区别

相同点:

接口和抽象类都不能被实例化,它们都位于继承树的顶端,用于被其他类实现和继承。

接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法。

不同点

接口里只能包含抽象方法,静态方法和默认方法,不能为普通方法提供方法实现,抽象类则完全可以包含普通方法。

接口里只能定义静态常量,不能定义普通成员变量,抽象类里则既可以定义普通成员变量,也可以定义静态常量。

接口不能包含构造器,抽象类可以包含构造器,抽象类里的构造器并不是用于创建对象,而是让其子类调用这些构造器来完成属于抽象类的初始化操作。

接口里不能包含初始化块,但抽象类里完全可以包含初始化块。

一个类最多只能有一个直接父类,包括抽象类,但一个类可以直接实现多个接口,通过实现多个接口可以弥补Java单继承不足。

4.重载和重写有什么区别

override(重写)

方法名、参数、返回值相同。

子类方法不能缩小父类方法的访问权限。

子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。

存在于父类和子类之间。

方法被定义为final不能被重写。

overload(重载)

参数类型、个数、顺序至少有一个不相同。

不能重载只有返回值不同的方法名。

存在于父类和子类、同类中。

5.java有哪些基本数据类型?

①.四种整数类型(byte、short、int、long):

byte:8位,用于表示最小数据单位,如文件中数据,-128~127

short:16位,很少用,-32768~32767int:32位、最常用,-231-1~231(21亿)

long:64位、次常用

②.两种浮点数类型(float、double):

float:32位,后缀F或f,1位符号位,8位指数,23位有效尾数。

double:64位,最常用,后缀D或d,1位符号位,11位指数,52位有效尾

③.一种字符类型(char):

char:16位,是整数类型,用单引号括起来的1个字符(可以是一个中文字符),使用Unicode码代表字符,0~2^16-1(65535)。

④.一种布尔类型(boolean):true真和false假。

⑤.类型转换:char-->

自动转换:byte-->short-->int-->long-->float-->double

强制转换:

①会损失精度,产生误差,小数点以后的数字全部舍弃。

②容易超过取值范围。

⑥.记忆:

8位:Byte(字节型)

16位:short(短整型)、char(字符型)

32位:int(整型)、float(单精度型/浮点型)

64位:long(长整型)、double(双精度型)

最后一个:boolean(布尔类型)

6.Java支持的数据类型有哪些?什么是自动拆装箱?

基本数据类型:

整数值型:byte,short,int,long,

字符型:char

浮点类型:float,double

布尔型:boolean

整数默认int型,小数默认是double型。Float和long类型的必须加后缀。

首先知道String是引用类型不是基本类型,引用类型声明的变量是指该变量在内存中实际存储的是一个引用地址,实体在堆中。引用类型包括类、接口、数组等。String类还是final修饰的。

而包装类就属于引用类型,自动装箱和拆箱就是基本类型和引用类型之间的转换,至于为什么要转换,因为基本类型转换为引用类型后,就可以new对象,从而调用包装类中封装好的方法进行基本类型之间的转换或者toString(当然用类名直接调用也可以,便于一眼看出该方法是静态的),还有就是如果集合中想存放基本类型,泛型的限定类型只能是对应的包装类型。

7.Java类的实例化顺序

父类静态成员和静态初始化块,按在代码中出现的顺序依次执行

子类静态成员和静态初始化块,按在代码中出现的顺序依次执行

父类实例成员和实例初始化块,按在代码中出现的顺序依次执行

父类构造方法

子类实例成员和实例初始化块,按在代码中出现的顺序依次执行

子类构造方法

结论:对象初始化的顺序,先静态方法,再构造方法,每个又是先基类后子类。

8.什么是值传递和引用传递

值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量.

引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本,并不是原对象本身。

一般认为,java内的传递都是值传递.java中实例对象的传递是引用传递。

9.Java集合框架的基础接口有哪些?

Collection:为集合层级的根接口。一个集合代表一组对象,这些对象即为它的元素。Java平台不提供这个接口任何直接的实现。

Set:是一个不能包含重复元素的集合。这个接口对数学集合抽象进行建模,被用来代表集合,就如一副牌。

List:是一个有序集合,可以包含重复元素。你可以通过它的索引来访问任何元素。List更像长度动态变换的数组。

Map:是一个将key映射到value的对象.一个Map不能包含重复的key:每个key最多只能映射一个value。

一些其它的接口有Queue、Dequeue、SortedSet、SortedMap和ListIterator。

10.Java集合框架是什么?说出一些集合框架的优点?

每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发包中,阻塞接口以及它们的实现。

集合框架的部分优点如下:

使用核心集合类降低开发成本,而非实现我们自己的集合类。

随着使用经过严格测试的集合框架类,代码质量会得到提高。

通过使用JDK附带的集合类,可以降低代码维护成本。

复用性和可操作性。

以上就是动力节点java学院小编分享的“网易Java面试:容易被问到的这些面试题”的内容,希望能够帮助到大家,更多java最新面试题请继续关注动力节点java学院官网,每天会有精彩内容分享与你。

相关面试题推荐

相关文章:

  • 有向图最短路径 java_Dijkstra算法-寻找有向图中最短路径
  • 什么是java枚举类型_java枚举类型
  • java弹出图片_Java对话框上显示图片
  • java date获取24点_android中在java代码中获得每日,每周,每月的0点和24点的时间戳
  • java mutilcatch_Java中的Multicatch,不同的catch块 - Break易站
  • java hashtable线程安全_基础才是重中之重~线程安全的Hashtable
  • java poi excel 图表_Java使用POI解析Excel表格
  • java xml 查询_JAVA操作XML的完整例子(查询、增加、修改、删除)
  • labview和python脚本_通过python节点将字典从LabVIEW传递到python脚本
  • mysql克隆master_MySQL复制(二)Master-Slave复制实践
  • java map 平均值_使用Java 8获取两个HashMap的平均值
  • python中给出一个不超过10的正整数n_大学python题 求大佬解答!!!
  • docker建多个mysql_在Linux下使用Docker-compose建立多个数据库
  • 平安科技java在线考试_都有哪些开源的在线考试系统?
  • java clone性能比较_Java深度拷贝方式和性能对比
  • CSS相对定位
  • C语言笔记(第一章:C语言编程)
  • Java应用性能调优
  • node-glob通配符
  • React Native移动开发实战-3-实现页面间的数据传递
  • spring学习第二天
  • Vue官网教程学习过程中值得记录的一些事情
  • 阿里云Kubernetes容器服务上体验Knative
  • 类orAPI - 收藏集 - 掘金
  • 使用putty远程连接linux
  • 数据科学 第 3 章 11 字符串处理
  • 项目管理碎碎念系列之一:干系人管理
  • 原生Ajax
  • 在Mac OS X上安装 Ruby运行环境
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​queue --- 一个同步的队列类​
  • #、%和$符号在OGNL表达式中经常出现
  • #单片机(TB6600驱动42步进电机)
  • #职场发展#其他
  • (06)Hive——正则表达式
  • (09)Hive——CTE 公共表达式
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (4)logging(日志模块)
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (办公)springboot配置aop处理请求.
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • .aanva
  • .naturalWidth 和naturalHeight属性,
  • .NET Core 中插件式开发实现
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • /var/spool/postfix/maildrop 下有大量文件
  • @EventListener注解使用说明