面试题集锦(一)
发布日期:2021-07-27 04:56:52
浏览次数:6
分类:技术文章
本文共 2398 字,大约阅读时间需要 7 分钟。
1.char型变量中能不能存储一个中文汉字?为什么?
可以,因为Java字符采用Unicode编码,每个字符占两个字节,汉字占两个字符,char类型变量占2个字节
2.一个".java"源文件中是否可以包括多个类?有什么限制?
a.一个Java文件中可以写多个类,如果写多个类,则编译后会生成多个.class文件
b.一个Java文件中最多只能有一个被public修饰的类,这个类的类名必须和Java源文件名保持一致 c.一个Java文件中如果只有一个类,并且这个类不用public修饰的话,类名和文件名可以不一样,但习惯上,我们都会写上public3.垃圾回收器的作用?垃圾回收器可以马上回收内存吗?
在JVM的空闲时,检查并释放那些可以被释放的存储空间
4.接口和抽象类有什么区别?
语法:
1>抽象类使用abstract,接口使用interface 2>抽象类中可以包含抽象方法,也可以包含非抽象方法,接口中只能包含抽象方法和静态常量,jdk1.8之后接口可以包含静态方法和默认方法。 3>抽象类和接口都不能实例化。 4>抽象类可以包含构造方法,接口中没有构造方法。功能:
1>抽象类一般用来表示同类事物,接口可以表示不同类事物。 2>抽象类可以实现代码的重用,也可以约束子类的功能。接口就是约束实现类的功能,降低代码之间的耦合性。使用场景:
1>程序或模块内部使用抽象类 2>程序架构或模块之间使用接口8.二维数数组在内存中的存储方式是怎样的? 本质也是一维数组,不过每个元素存储的是另一个数组的地址5.异常有哪些处理方式,分别需要注意什么问题?
Throw抛出,hrow 是语句抛出一个异常;throws 是方法抛出一个异常,hrows 可以单独使用,但 throw 不能,throw要么和try-catch-finally语句配套使用,要么与throws配套使用。但throws可以单独使用,然后再由处理异常的方法捕获
Try catch:捕获异常,try里是可能出现的异常代码,catch对异常进行处理的代码段 多重try-catch:排列catch 语句的顺序:先子类后父类,发生异常时按顺序逐个匹配,只执行第一个与异常类型匹配的catch语句 try-catch-finally:如果没有异常,则执行try中代码块,在renturn前执行finally里的代码,如果有异常,执行catch中代码,执行return语句前执行finally中代码,finally块是否发生异常都执行,finally块不执行的唯一情况,退出java虚拟机,System.exit(); 0正常退出,非0非正常退出6.方法的传参过程是如何工作的
调用方法的时候,用实参给形参进行赋值,这个过程被称为传参
形参就是一个变量,实参就是一个常量或者携带着值的变量,传参就是把实参赋值给形参 传参时需要注意的事项:实参的数量和类型必须和形参的数量和类型保持一致 1 基本类型传递的实际数据 2 引用类型传递的是地址 基本类型传递修改后对调用方没有任何影响。引用类型传递修改后对调用方有影响。String和包装类除外7.什么是函数的重载?举例说明
参数个数不同,参数数据类型不同,参数顺序不同
函数名相同和而参数列表不同的两个或者多个函数为函数重载8.方法重载与方法重写的区别
(1)方法重载的函数名相同,而参数列表不同
(2)方法重新则是函数名、参数列表和返回值都完全一致,访问权限不能比父类严格 (3)方法重载是在一个类内 (4)方法重写则出现在继承或者实现接口的情况 (5)方法重载的使用是为了实现函数的多功能 (6)子类中从父类继承来的方法无法满足自己的需求时,可以在子类中对父类方法进行完善,这个完善过程叫做方法重写(override),方法的重写相当于在子类中覆盖父类中的方法9.构造方法与普通方法之间的区别
(1)构造方法用于初始化对象的成员变量,普通方法用于实现具体的功能
(2)构造方法没有返回值,且方法名必须和类名一致;普通方法必须有返回值,如果没有则使用void修饰,方法名任意,最好是动宾结构 (3)构造方法在创建对象的过程中就会执行,而且每个对象只执行一次,对于普通方法而言,只有在需要使用的时候才被执行,并且一个对象可以调用多次 (4)构造方法是在创建对象的过程中自动调用的,普通方法只能手动进行调用 (5)系统会默认为我们提供一个无参的构造方法,普通方法只能手动添加10.this关键字的作用以及使用
This关键字指向本类对象;this.成员变量,表示本类成员变量;
this()表示本类构造方法, (1) this(参数)只能用在构造方法中,必须是第一条语句 (2) this(参数)只能调用一次必须是方法的第一条语句11.switch是否能作用在byte上,是否能作用在long上,是否能作用在String上?
能用在byte、String(jdk1.7后),不能使用long
byte、short、int、char、enum(枚举);java7之后可以是String12.什么时候用for循环,什么时候用while循环
- 对于同一问题, 三种循环可相互替代。
- 循环次数确定的情况优先选用for循环,循环次数不确定的情况,通常选用while和do-while循环。
- 要防止无限循环––死循环
13.break、continue、return的区别
Break; 应用在switch和循环中,作用跳出语句块
Continue结束本次循环,继续下一次循环 Return用在方法中作用返回结果,结束方法14.IO流都有哪些分类?依据是什么?
按照方向分:输入流和输出流
按照读取的字节个数:字节流和字符流 按照功能分:节点流 (负责读写数据)、处理流 (封装)转载地址:https://blog.csdn.net/qq_45337431/article/details/98883667 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年09月12日 07时49分25秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
vue中的状态管理 vuex store
2019-05-27
Maven之阿里云镜像仓库配置
2019-05-27
Maven:mirror和repository 区别
2019-05-27
微服务网关 Spring Cloud Gateway
2019-05-27
SpringCloud Feign的使用方式(一)
2019-05-27
SpringCloud Feign的使用方式(二)
2019-05-27
关于Vue-cli+ElementUI项目 打包时排除Vue和ElementUI
2019-05-27
Vue 路由懒加载根据根路由合并chunk块
2019-05-27
vue中 不更新视图 四种解决方法
2019-05-27
MySQL 查看执行计划
2019-05-27
OpenGL ES 3.0(四)图元、VBO、VAO
2019-05-27
OpenGL ES 3.0(五)纹理
2019-05-27
OpenGL ES 3.0(八)实现带水印的相机预览功能
2019-05-27
OpenGL ES 3.0(九)实现美颜相机功能
2019-05-27
FFmpeg 的介绍与使用
2019-05-27
Android 虚拟机简单介绍——ART、Dalvik、启动流程分析
2019-05-27
FFmpeg 是如何实现多态的?
2019-05-27