博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题集锦(一)
阅读量:3964 次
发布时间:2019-05-24

本文共 2398 字,大约阅读时间需要 7 分钟。

1.char型变量中能不能存储一个中文汉字?为什么?

可以,因为Java字符采用Unicode编码,每个字符占两个字节,汉字占两个字符,char类型变量占2个字节

2.一个".java"源文件中是否可以包括多个类?有什么限制?

a.一个Java文件中可以写多个类,如果写多个类,则编译后会生成多个.class文件

b.一个Java文件中最多只能有一个被public修饰的类,这个类的类名必须和Java源文件名保持一致
c.一个Java文件中如果只有一个类,并且这个类不用public修饰的话,类名和文件名可以不一样,但习惯上,我们都会写上public

3.垃圾回收器的作用?垃圾回收器可以马上回收内存吗?

在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之后可以是String

12.什么时候用for循环,什么时候用while循环
  1. 对于同一问题, 三种循环可相互替代。
  2. 循环次数确定的情况优先选用for循环,循环次数不确定的情况,通常选用while和do-while循环。
  3. 要防止无限循环––死循环
13.break、continue、return的区别

Break; 应用在switch和循环中,作用跳出语句块

Continue结束本次循环,继续下一次循环
Return用在方法中作用返回结果,结束方法

14.IO流都有哪些分类?依据是什么?

按照方向分:输入流和输出流

按照读取的字节个数:字节流和字符流
按照功能分:节点流 (负责读写数据)、处理流 (封装)

转载地址:http://mtgzi.baihongyu.com/

你可能感兴趣的文章
Windows系统进程间通信
查看>>
linux exec的用法
查看>>
C语言中如何使用宏
查看>>
Http与RPC通信协议的比较
查看>>
Source Insight的对齐问题
查看>>
ubuntu设置开机默认进入字符界面方法
查看>>
chrome 快捷键
查看>>
Linux下buffer和cache的区别
查看>>
程序员不应该再犯的五大编程错误
查看>>
[转载][转帖]Hibernate与Sleep的区别
查看>>
Linux系统的默认编码设置
查看>>
Linux系统调用
查看>>
Linux 信号signal处理机制
查看>>
Linux 信号signal处理函数
查看>>
perror简介
查看>>
linux的system () 函数详解
查看>>
在shell脚本的第一行中,必须写#!/bin/bash
查看>>
一句话##错误 'ASP 0116' 丢失脚本关闭分隔符
查看>>
文件上传漏洞之.htaccess
查看>>
常见网络安全设备默认口令
查看>>