精选Java面试题

什么是隐式类型转换?什么是显示类型转换? 

当将占位数少的类型赋值给占位数多的类型时,Java自动使用隐式类型转换(如int型转为long型)。当把在级别高的变量的值赋给级别底变量时,必须使用显示类型转换运算(如double型转为float型)。

&&和&的区别,||和|的区别? 

&&和||是短路与,短路或,当左边的表达式能判断当前结果,则不判断右边的表达式(比如&&的第一项为false则一定为false,||的第一项为true则一定为true)。 而& 和|则将两边的表达式都运算完毕后,再算结果。

解释什么是类方法,什么是实例方法? 

 static修饰的方法是类方法,无static修饰的方法是实例方法。

简述方法和变量的命名规则? 

首写字母使用小写,如果由多个单词组成,从第2个单词开始首字母使用大写。

什么是方法重载? 

方法重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,参数的前后顺序不同或者是参数的类型不同。

如何创建一个对象? 

使用new运算符和类的构造方法为对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法。

简述java的访问权限。 

public:公有的,任何类都可以访问。 

protected:受保护的,同一个包的类可以访问。不同包的子类可以访问。

Friendly:友好的:同一个包的类可以访问

private:私有的,在同一个类中才能访问。

final关键字可以用来修饰什么?分别起什么作用? 

final可以修饰类,这样的类不能被继承。 

final可以修饰方法,这样的方法不能被重写。 

final可以修饰变量,这样的变量的值不能被修改,是常量。

简述什么是对象上转型? 

假设,A 类是B 类的父类,当我们用子类创建一个对象,并把这个对象的引用放到父类的对象中时,我们称这个父类对象是子类对象的上转型对象。 

上转型对象可以操作什么?不可以操作什么? 

上转型对象不能操作子类新增的成员变量,失掉了这部分属性,不能使用子类新增的方法,失掉了一些功能 。 

上转型对象可以操作子类继承或重写的成员变量,也可以使用子类继承的或重写的方法。

已知一个java.util.Date对象,如何格式化成如下格式 YYYY-MM-dd hh:mm:ss 

SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 

formate.format(new Date()));

简述如下关键字用途try、catch、throw、throws、finally 

try:保护代码,如果try中某行代码出现异常,则try中代码不再继续执行。 

catch:捕获异常,当try中出现异常,则catch负责捕获异常,并处理。

throw:抛出异常。 

throws:声明异常。 

finally:无论try中是否出现异常,finally一定执行。

已知如下代码 

File f = new File("myfile.dat"); 

FileInputStream  istream = new FileInputStream(f); 如何从流中读取数据?

byte[] buff = new byte[100]; 

istream.read(buff); 

实现多线程的两种方法? 

从Java.lang.Thread类派生一个新的线程类,重写它的run()方法。

实现Runnable接口,重写Runable接口中的run()方法。

什么是GC?为什么有GC? 

GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。

构造方法能否被重写?为什么? 

不能,因为构造方法不能被继承,所以不能重写。

是否可以继承String类,为什么? 

因为String类是final类,final修饰的类不能被继承。

java关键字区分大小写吗? 

java关键字一律小写。所以无所谓区分大小写,大写的不是关键字。

 java采用什么字符集?该字符集有多少字符 ?

 Java 使用 unicode 字符集,所以常量共有 65535 个 

简述一个java程序执行的过程? 

首先编写java源文件(扩展名为.java的文本文档)。用javac命令把源文件编译成字节码文件(.class文件,再用java命令执行字节码文件。

 

守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。守护线程最典型的应用就是 GC (垃圾回收器)

 

Java接口的修饰符可以为()

A private     B protected    C final       D abstract

答案:D

ArrayList list = new ArrayList(20);中的list扩充几次()

A 0     B 1     C 2      D 3

答案:A

大家都知道默认ArrayList的长度是10个,所以如果你要往list里添加20个元素肯定要扩充一次(扩充为原来的1.5倍),但是这里显示指明了需要多少空间,所以就一次性为你分配这么多空间,也就是不需要扩充了。

下面哪些是对称加密算法()

A DES   B AES   C DSA  D RSA

答案:AB

解析:常用的对称加密算法有:DES、3DES、RC2、RC4、AES

常用的非对称加密算法有:RSA、DSA、ECC

使用单向散列函数的加密算法:MD5、SHA

备注:转载自雨日微风的博客http://blog.csdn.net/songkai320/article/details/51819390

原文地址:https://www.cnblogs.com/mambahyw/p/7978788.html