java基础面试题(一)

in with 0 comment

一级标题1、什么是B/S架构?什么是C/S架构

  1. B/S(Browser/Server),浏览器/服务器程序
  2. C/S(Client/Server),客户端/服务端,桌面应用程序

2、Java都有那些开发平台?

  1. JAVA SE:主要用在客户端开发
  2. JAVA EE:主要用在web应用程序开发
  3. JAVA ME:主要用在嵌入式应用程序开发

3、什么是JDK?什么是JRE?

  1. JDK:java development kit:java开发工具包,是开发人员所需要安装的环境
  2. JRE:java runtime environment:java运行环境,java程序运行所需要安装的环境

4、Java语言有哪些特点

  1. 简单易学、有丰富的类库
  2. 面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高)
  3. 与平台无关性(JVM是Java跨平台使用的根本)
  4. 可靠安全
  5. 支持多线程

5、面向对象和面向过程的区别

  1. 面向过程: 一种较早的编程思想,顾名思义就是该思想是站着过程的角度思考问题,强调的就是功能行为,功能的执行过程,即先后顺序,而每 一个功能我们都使用函数(类似于方法)把这些步骤一步一步实现。使用的时候依次调用函数就可以了。
  2. 面向对象: 一种基于面向过程的新编程思想,顾名思义就是该思想是站在对象的角度思考问题,我们把多个功能合理放到不同对象里,强调的是 具备某些功能的对象。 具备某种功能的实体,称为对象。面向对象最小的程序单元是:类。面向对象更加符合常规的思维方式,稳定性好,可重用性强,易 于开发大型软件产品,有良好的可维护性。 在软件工程上,面向对象可以使工程更加模块化,实现更低的耦合和更高的内聚。

6、什么是数据结构?

计算机保存,组织数据的方式

7、Java的数据结构有那些?

1.线性表(ArrayList) 2.链表(LinkedList) 3.栈(Stack) 4.队列(Queue) 5.图(Map) 6.树(Tree)

8、什么是OOP?

面向对象编程

9、类与对象的关系?

类是对象的抽象,对象是类的具体,类是对象的模板,对象是类的实例

10、Java中有几种数据类型

整形:byte,short,int,long 浮点型:float,double 字符型:char 布尔型:boolean

11、标识符的命名规则。

  1. 标识符的含义: 是指在程序中,我们自己定义的内容,譬如,类的名字,方法名称以及变量名称等等,都是标识符。
  2. 命名规则:(硬性要求) 标识符可以包含英文字母,0-9的数字,$以及_ 标识符不能以数字开头 标识符不是关键字
  3. 命名规范:(非硬性要求) 类名规范:首字符大写,后面每个单词首字母大写(大驼峰式)。 变量名规范:首字母小写,后面每个单词首字母大写(小驼峰式)。 方法名规范:同变量名。

12、instanceof关键字的作用

instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为:

boolean result = obj instanceof Class

其中 obj 为一个对象,Class 表示一个类或者一个接口,当 obj 为 Class 的对象,或者是其直接或 间接子类,或者是其接口的实现类,结果result 都返回 true,否则返回false。 注意:编译器会检查 obj 是否能转换成右边的class类型,如果不能转换则直接报错,如果不能确定类型,则通过编译,具体看运行时定.

int i=0;
System.out.println(i instanceof Integer);//编译不通过i必须是引用类型,不能是基本类型
System.out.println(i instanceof Object);//编译不通过
Integer integer=newInteger(1);
System.out.println(integer instanceof Integer);//true
//false,在JavaSE规范中对instanceof运算符的规定就是:如果obj为null,那么将返回false。
System.out.println(nullinstanceofObject);

13、什么是隐式转换,什么是显式转换

显示转换就是类型强转,把一个大类型的数据强制赋值给小类型的数据;隐式转换就是大范围的变量能够接受小范围的数据;隐式转换和显 式转换其实就是自动类型转换和强制类型转换。

14、Char类型能不能转成int类型?能不能转化成string类型,能不能转成double类型

Char在java中也是比较特殊的类型,它的int值从1开始,一共有2的16次方个数据; Char<int<long<float<double;Char类型可以隐式转成int,double类型,但是不能隐式转换成string;如果char类 型转成byte,short类型的时候,需要强转。

15、什么是拆装箱?

  1. 装箱就是自动将基本数据类型转换为包装器类型(int-->Integer);调用方法:Integer的 valueOf(int) 方法 拆箱就是自动将包装器类型转换为基本数据类型(Integer-->int)。调用方法:Integer的intValue方 法 在Java SE5之前,如果要生成一个数值为10的Integer对象,必须这样进行:
Integer i = new Integer(10);

而在从Java SE5开始就提供了自动装箱的特性,如果要生成一个数值为10的Integer对象,只需要这 样就可以了:

Integer i = 10;

面试题1: 以下代码会输出什么?

public class Main {
public static void main(String[] args) {
Integer i1 = 100;
Integer i2 = 100;
Integer i3 = 200;
Integer i4 = 200;
System.out.println(i1==i2);
System.out.println(i3==i4);
}
}

结果:

true
false

16、Java中的包装类都是那些?

byte:Byte,short:Short,int:Integer,long:Long,float:Float,double:Double,char:Character ,boolean:Boolean

17、一个java类中包含那些内容?

属性、方法、内部类、构造方法、代码块。

18、那针对浮点型数据运算出现的误差的问题,你怎么解决?

使用Bigdecimal类进行浮点型数据的运算