-
JDK是什么?JRE是什么?
a) 答:JDK:java开发工具包。JRE:java运行时环境。 Jdk包括jre,jre由jvm和java核心类库构成。 -
什么是java的平台无关性?
a) 答:Java源文件被编译成字节码的形式,无论在什么系统环境下,只要有java虚
拟机就能运行这个字节码文件。也就是一处编写,处处运行。这就是java的跨平台性。 -
在一台电脑上配置java环境,path起什么作用?如何配置?
a) 答:path的作用是在DOS环境下,能在任意位置使用JDK目录中bin文件夹中的可执行程序,来编译执行java程序。
b) 在环境变量中找到path变量,把bin文件夹的绝对路径加上即可。 -
什么样的标识符是合法的?
a) 由字母、数字、_和$组成,长度不限。其中字母可以是大写或小写的英文字母,数字为0到9。
b) 标识符的第一个字符不能是数字。
c) 标识符区分大小写。
d) 标识符不能包含空格。 -
Java有几种基本数据类型? int和Integer区别?
a) byte,short,int,long,char,boolean,float,double
b)int是基本数据类型,Integer引用数据类型,Integer是int的包装类,Integer类提供了对数值的很多方法,int的默认值0,Integer的默认值是null。int 和Integer自动的装箱和拆箱装换。 -
什么是隐式类型转换(类型的自动转换)?什么是显示类型转换(强制转换)?
a) 当将占位数少的类型赋值给占位数多的类型时,Java自动使用隐式类型转换。 运算的时候会向大空间的数据类型转换(除了byte,short,他们俩之内计算会转换成int)
b) 当把在空间大的变量的值赋给空间小变量时,必须使用显示类型转换运算。 -
&&和&区别,||和|区别?
a) &&和||是短路与,短路或,当左边的表达式能判断当前结果,则不判断右边的表达式。
b) 而& 和|则将两边的表达式都运算完毕后,再算结果。
c)&和|还能做位运算。 -
break,continue区别?
a) break结束最近的一个循环,continue结束当次循环,进入下次循环。 -
类的命名规则是什么?
a) 如果类名使用拉丁字母,那么名字的首写字母使用大写字母。
b) 类名最好见名得意,当类名由几个单词复合而成时,每个单词的首写字母使用大写。 -
类体的内容由两部分构成,哪两部分?
a) 一部分是变量的定义,用来刻画属性。
b) 另一部分是方法的定义,用来刻画功能。 -
解释什么是类的成员变量(类属性),局部变量,实例成员变量(普通属性),?
a) 定义在类的大括号内的变量都是成员变量。
b) 在方法体中定义的变量和方法的参数语句块或者代码块中的变量被称为局部变量。
c) 成员变量又分为实例成员变量和类成员变量(static修饰)。 -
简述this关键字用法。
a) this关键字使用在对象方法中,代表调用该方法的当前对象,通过this可以调用对象属性和对象方法
b)可以使用this来调用本类构造器 -
如何确定方法的返回类型?
a) 方法返回的值的类型就是方法的返回类型,如果无返回值,则使用void来修饰。 -
返回值为void的方法,可否有return?
a) 可以。但return后没有任何值。 -
解释什么是类方法,什么是实例方法?
a) static修饰的方法是类方法,可以使用类名和对象来调用,无static修饰的方法是实例方法,只能是对象调用。 -
简述方法和变量的命名规则?
a) 首写字母使用小写,如果由多个单词组成,从第2个单词开始首字母使用大写。 -
什么是方法重载?
a) 方法重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。 -
什么是构造方法?
a) 构造方法是一种特殊方法,它的名字必须与它所在的类的名字完全相同,并且不返回任何数据型。
b)默认构造器(无参数的构造器)是被隐藏的,如果类中存在有参数的构造器,无参数的默认构造器就被覆盖,如果想要使用就必须显式的定义出来。 -
如何创建一个对象?
a) 使用new 运算符和类的构造方法为对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法。
数据类型 变量名 = new 数据类型(……) -
系统什么情况下会为类提供构造方法,提供什么样的构造方法?
a) 如果类中没有构造方法,系统会提供一个默认的构造方法,默认的构造方法是无参的。 -
对象如何调用自己的成员变量和方法?
a) 对象使用运算符” . ”来调用自己的成员变量和方法。 -
为什么可以直接用类名来访问类成员变量和类方法?
a) 因为当类被加载到虚拟机的时候,类成员变量就被分配内存,类方法被分配入口地址,所以不用创建对象(对象还没有创建),可以直接通过类名调用。 -
类变量有什么特点?
a) 一个类的所有对象共享同一个类变量。
b) 当类(.class)被加载到jvm的时候类变量就产生了,jvm退出时类变量销毁 -
类方法有什么特点?
a) 类方法只能调用类变量和类方法。(同一类中) -
package关键字有什么作用,使用中注意什么问题?
a) package指定一个类所在的包,该语句为源代码第一行。 -
import关键字有什么作用?
a) 引入程序中所用到的类。 -
类有几种访问权限?变量和方法有几种访问权限?分别是什么?
a) 类(外部类)有两种访问权限:public,友好的。
b) 方法和变量的访问权限:public,protected,友好的,private。 -
简述java的访问权限。
a) public:公有的,任何类都可以访问。
b) protected:受保护的,同一个包的类可以访问。不同包的子类可以访问。
c) 友好的(默认):同一个包的类可以访问。
d) private:私有的,在同一个类中才能访问。 -
子类能继承父类的哪些变量和方法?
a) 如果子类和父类在同一个包中,那么,子类自然地继承了其父类中不是private 的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private 的方法作为自己的方法。
a) 如果子类和父类在不同一个包中,那么,子类自然地继承了其父类中是protected 的成员变量作为自己的成员变量,并且也自然地继承了父类中是public 的方法作为自己的方法。 -
子类重写父类的方法,可否降低访问权限?
a) 不可以降低(private最低,public最高) -
final关键字可以用来修饰什么?分别起什么作用?
a) final可以修饰类,这样的类不能被继承。
b) final可以修饰方法,这样的方法不能被重写。
c) final可以修饰变量,这样的变量的值不能被修改,是常量。 -
简述super关键字作用?
a) 使用super调用父类的构造方法, 放在第一行, 创建子类的对象的时候,先调用父类的默认构造器。 如果子类调用父类的有参数的构造器就不会再调用父类的默认构造器了。
b) 使用super操作父子类重名的父类的变量和方法。 -
简述什么是对象上转型?
a) 假设,A 类是B 类的父类,当我们用子类创建一个对象,并把这个对象的引用放到父类的对象时,
我们称这个父类对象是子类对象的上转型对象。 父类的引用不能去访问子类的特有属性和没有被复写的方法。 -
上转型对象可以操作什么?不可以操作什么?
a) 上转对象不能操作子类新增的成员变量,失掉了这部分属性,不能使用子类新增的方法,失掉了一些功能 。
b) 上转型对象可以操作子类继承或重写的成员变量,也可以使用子类继承的或重写的方法 -
什么是抽象类?什么是抽象方法?有什么特点?
a) 用关键字abstract修饰类称为抽象类,abstract类不能用new运算创建对象,必须产生其子类,由子类创建对象。
b) 用关键字abstract修饰方法称为抽象方法,abstract方法,只允许声明,而不允许实现。
c)抽象类中可以没有抽象方法 -
一个类声明实现一个接口,那么这个类需要做什么工作?
a) 实现接口里所有的方法,并且这些方法的访问权限必须是public。 -
简述什么是数组?
a) 数组是相同类型的数据按顺序组成的一种复合数据类型。通过数组名加数组下标,来使用数组中的数据。下标从 0 开始排序。 -
创建数组是否需要指定数组长度,如何求数组长度?
a) 必须指定数组长度,数组调用 .length来获取数组长度。 -
char数组和byte数组如何转化成字符串?如何求字符串长度?
a) 利用String类本身的构造方法,String (char a[]),String (byte a[]),””.length()。 -
以下方法均为字符串中方法
equals equalsIgnoreCase startsWith endsWith
a) 字符串比较 。
b) 忽略大小写比较。
c) 判断是否以指定字符串开头、结尾。 -
compareTo compareToIgnoreCase indexOf
a) 按字典顺序比较字符串。
b) 忽略大小写的按字典顺序比较字符串。
c) 字符串检索。 -
substring replace trim()
a) 字符串截取
b) 字符串替换
c) 去掉字符串前后空格。 -
字符串如何转化为int型,double型?
a) Integer.parseInt(“1”);
b) Double.parseDouble(“25。45”); -
如何判断一个字符是不是数字,是不是大写?
a) Character.isDigit(‘a’)
b) Character.isUpperCase(‘U’) -
已知一个java.util.Date对象,如何格式化成如下格式 YYYY-MM-dd hh:mm:ss
a) SimpleDateFormat formate = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
formate.format(new Date())); -
如何生成一个0-100的随即整数?
a) (int)(Math.random()*100)
b)new Random().nextInt(100)+1 -
简述java异常处理的机制?
a) 当所调用的方法出现异常时,调用者可以捕获异常使之得到处理;也可以回避异常。 -
异常的分类和区别?
编译期异常
编译时候需要处理的异常,这种异常必须要处理或者抛出。(建议处理)
运行期异常
是运行时产生的异常,可以编译通过,这种异常发生后如果不处理自动向上抛出(建议抛出) -
简述如下关键字用途try、catch、throw、throws、finally
a) try:保护代码,如果try中某行代码出现异常,则try中代码不再继续执行。
b) catch:捕获异常,当try中出现异常,则catch负责捕获异常,并处理。
c) throw:抛出异常。
d) throws:声明异常抛出。
e) finally:无论try中是否出现异常,finally一定执行。 -
LinkedList和ArrayList区别?
a) LinkedList底层通过链式存储结构实现。
b) ArrayList底层通过数组实现。 -
什么是I/O流,有什么作用?
a) 指数据输入输出的流, I/O 流提供一条通道程序,可以使用这条通道把源中的字节序列送给目的地。 -
如何查看一个文件的大小,绝对路径,是否可读?
a) File file = new File(“e://a.txt”);
b) file.length();
c) file.getAbsolutePath();
d) file.canRead(); -
已知如下代码
File f = new File(“myfile.dat”);
FileInputStream istream = new FileInputStream(f); 如何从流中读取数据。
a) byte[] buff = new byte[100];
b) istream.read(buff); -
实现多线程的两种方法?
a) 从Java.lang.Thread类派生一个新的线程类,重写它的run()方法。
b) 实现Runnable接口,重写Runable接口中的run()方法。 -
简述一个线程的生命周期?
-
如何让一个准备就绪的线程运行?
a) 调用线程的start方法让一个处于准备就绪的状态的线程运行。 -
如何让一个线程休眠1000毫秒?
a) 调用线程的sleep方法,参数为1000。 -
如何使线程同步?
a) 使用同步方法
synchronized void methodA() { }
b) 使用同步块
synchronized(object) {
//要同步的语句
} -
什么是GC?为什么有GC?
a) GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。 -
构造方法能否被重写?为什么?
a) 不能,因为构造方法不能被继承,所以不能重写。 -
是否可以继承String类,为什么?
a) 因为String类是final类,final修饰的类不能被继承。 -
java关键字区分大小写吗?
a) java关键字一律小写。所以无所谓区分大小写,大写的不是关键字。 -
java采用什么字符集?该字符集有多少字符
a) Java 使用 unicode 字符集,所以常量共有 65535 个 -
列举算术运算符?
a) +,-,*,/,% -
算术混合运算结果精度如何确定?
a) Java按照运算符两边的操作元的最高精度保留结果的精度。 -
&是位运算符,与运算的规则是什么?
a) 全1则1,否则为0 -
| 是位运算符,或运算的规则是什么?
a) 全0则0,否则是1 -
^是位运算符,异或运算的规则是什么?
a) 相同0,不同1 -
~是位运算符,非运算的规则是什么?
a) 遇1则0,遇0则1 -
if语句后边有个括号,该括号里表达式为什么类型?
a) boolean类型 -
switch语句后括号里的表达式是什么类型?case后类型如何确定?
a) byte, short, int ,char, String
b) case后面是个常量,该常量的类型由switch后面括号里的表达式来确定