1、什么是构造和析构方法?功能是?

答:

构造方法:

每个类至少有一个构造方法,类初始化时调用的方法

1.方法名和类名相同

2.无返回值类型

格式:访问权限 类名(参数列表) {};

1.自己定义构造后,就没有默认的构造方法

2.无构造方法时,默认为空参的构造方法(无参数,方法体为空)

析构方法:finalize 类销毁时,自动调用方法

当对象在内存中被删除时,自动调用该方法

在此方法中可以写回收对象内部的动态空间的代码

2、分别说明:在类上、在属性上、在方法上能使用哪些访问修饰符?

答:

在类上:public、default、final

在方法上: 访问权限:public、protected、private、default

方法修饰符:static、final

返回类型:void

在属性上:public、protected、private、default、static、final

3、请写出5个以上的JDK中的包,以及他们的基本功能

答:

java.awt:包含构成抽象窗口工具集的多个类,用来构建和管理应用程序的图形用户界面。

java.lang:提供java编成语言的程序设计的基础类。

java.io:包含提供多种输出输入功能的类。

java.net:包含执行与网络有关的类,如URL,SCOKET,SEVERSOCKET。

java.applet:包含java小应用程序的类。

java.util:包含一些实用性的类。

4、什么是包装类?Java中都有哪些包装类?

答:

在JDK中针对各种基本类型分别定义相应的引用类型称为封装类。

Boolean、Byte、Short、Integer、Long、Float、Double、Character。

5、OOP(面向对象)语言的三大特征是什么?

答:

封装性,继承性,多态性

6、分别表述类的三大特性及其他们的功能

答:

封装:隐藏类的实现细节、迫使用户去使用一个接口去访问数据、使代码更好维护。

继承:子类可以直接继承使用父类的方法,程序员只需要做的是定义额外特征或规定将适用的变化。

多态性:同一个行为具有多个不同表现形式或形态的能力。(父类型的变量可以引用子类型的对象)

7、如何实现继承?继承的规则?

答:

    public class A extends B{
}

(1) 单继承性

(2) 构造方法不能继承

(3) super引用父类,调用父类的属性,方法

(4) 当子类中出现与父类的方法名,返回类型,参数列表相同的方法时要覆盖此方法

8、简述this和super的功能和用法

答:

this :

(1) 能访问除构造方法以外所有的属性、方法,通过this.来调用方法和属性
(2) 不可以在静态方法中使用
(3) 在调用其它构造方法时,必须放在该构造方法的第一行
(4) 在构造方法中使用this(参数列表),相当于调用本类的其它构造方法,它必须作为构造方法的第一句。

super :

访问父类

(1) super.点取父类中被子类隐藏的方法和属性
(2) 通过 super(参数列表) 来调用父类的属性和方法,在调用父类的构造方法时必须放在子类构造方法里的第一行。

9、如何确定在多态的调用中,究竟是调用的那个方法?

答:

new的是哪一个类就是调用的哪个类的方法。(一个方法可能沿着继承链的多个类中实现,Java虚拟机在运行时动态绑定方法的实现,这时由变量的实际类型决定的。)

10、什么是重载?简述重载的规则

答:

定义:

在一个类中出现方法名相同,但参数列表不同时,这种情况就是重载。

规则:

(1) 方法名称必须相同;
(2) 参数列表必须不同(个数不同,或类型不同,或参数排列顺序不同);
(3) 与返回类型无关。

11、什么是方法的覆盖?什么情况下出现?

答:

方法覆盖:

子类可以修改从父类继承过来的行为,也就是说子类可以创建一个与父类方法有不同功能的方法,但具有相同的:名称、返回类型名和参数列表。
在父子类的情况下出现时。

12、方法覆盖的规则?

答:

(1) 方法名要和父类中被覆盖的方法名相同,返回类型相同,参数列表相同。

(2) 访问权限要大于等于被覆盖方法的权限。

(3) 例外列表要小于等于被覆盖方法的例外列表。

13、static修饰符的功能是?可以用在什么地方?怎么访问?

答:

static 修饰符功能:

(1) 共用一块内存区域,也就是用static修饰的变量或成员方法对所有类的实例都是相同的。

(2) 静态成员方法和静态变量的优点在于他们能在没有创建类的任何一个实例的情况下被引用。

(3) 可以用在方法或属性上。

访问方式:

(1) 直接使用类名调用

(2) new 一个实例,用实例调用

14、static的基本规则

答:

(1) 类中的静态方法只可以调用静态的属性和方法,不允许调用非静态的属性和方法。

(2) 静态变量为类变量,可以用类名直接调用静态的属性和方法。

(3) 静态方法中不允许出现this和super

(4) 构造方法不允许声明static

(5) 非静态变量为实例变量,通过实例调用

(6) 静态方法不能被非静态方法覆盖

15、final修饰符的功能是?可以用在什么地方?

答:

功能:final标记所有通用的功能,不能随意更改;可以用在类、属性和方法上。

16、final的基本规则

答:

(1) final修饰的类不能被继承

(2) final修饰的成员变量只允

许赋值一次,且只能通过构造方法里赋值。

(3) final修饰的局部变量即为常量,只能赋值一次。

(4) final修饰的方法不允许被子类覆盖。

17、什么是抽象方法,什么是抽象类

答:

用abstract修饰的方法,只有方法的声明,而没有方法的实现,就叫抽象方法。

用abstract修饰的类,就叫抽象类。

18、抽象类的规则

答:

(1) 抽象类内部可以没有抽象方法

(2) 必须用abstract修饰

(3) 不能够直接使用抽象类,必须通过子类继承并且实现

(4) 抽象方法不允许被private修饰

19、什么情况下使用抽象类

答:

(1) 当一个类的一个或多个方法是抽象方法时;

(2) 当类是一个抽象类的子类,并且不能为任何抽象方法提供任何实现细节或方法体时;

(3) 当一个类实现一个接口,并且不能为任何抽象方法提供实现细节或方法体时。

20、equals方法和“= =”的功能和区别

答:

功能:判断对象是否相等

区别:equals方法比较的是对象的值

= =:比较的是对象值的内存地址,对基本数据类型来说 = = 比较的是数值

21、toString方法的功能和基本写法

答:

返回一个String类型

public String toString(){
return " ";
}

22、String的方法的功能和基本使用方法,请描述5个以上

答:

(1)substring(参数1,参数2); 功能:取字符串中参数1到参数2的的所有字符; "String".subString(0,1);

(2)replace(参数1,参数2); 功能:用参数2中的值替换字符串中所有参数1的值; "String".replace(ing,tt);

(3)equals( ); 功能:判断两个字符串是否相等 "String".equals("tt");

(4)trim( ); 功能:去掉字符串两边的空格 "String".trim();

(5)indexof( ); 功能:查找字符串中参数所在位置,并返回字符串第一个出该参数的下标 "String".indexOf("ing");

(6)split( ); 功能:根据参数分割该字符串 "String".split("-");

23、为什么使用StringBuffer类?有什么功能和优点?

答:

(1)只创建一个对象

(2)StringBuffer 对象的内容是可以被修改的

(3)除了字符的长度之外,还有容量的概念

(4)通过动态改变容量的大小,加速字符管理

24、如何使用Java读写系统属性?

答:

Properties props = System.getProperties();
Enumeration prop_names = props.propertyNames(); while (prop_names.hasMoreElements()) {
String prop_name = (String) prop_names.nextElement();
String property = props.getProperty(prop_name);
System.out.println("Property '" + prop_name + "' is '"+ property + "'");
}

写:

System.setProperties(props);

25、简述properties文件的结构和基本用法

答:

结构:扩展名为properties的文件,内容为key、value的映射,例如“a=2”

用法:

public class Test {
public static void main(String args[]) {
try {
String name = "test.properties";
InputStream in = new BufferedInputStream(new FileInputStream(name));
Properties p = new Properties();
p.load(in);
System.out.println("a的值==" + p.getProperty("a"));
} catch (Exception err) {
err.printStackTrace();
}
}
}

Java interview questions(No1)的更多相关文章

  1. 115 Java Interview Questions and Answers – The ULTIMATE List--reference

    In this tutorial we will discuss about different types of questions that can be used in a Java inter ...

  2. Top 25 Most Frequently Asked Interview Core Java Interview Questions And Answers

    We are sharing 25 java interview questions , these questions are frequently asked by the recruiters. ...

  3. Java Interview Questions Summary

    Spring 高并发 Java基础 多线程 正文. 多线程精选53题 1.什么是线程 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器 ...

  4. Core Java Interview Question Answer

    This is a new series of sharing core Java interview question and answer on Finance domain and mostly ...

  5. WCF学习系列三--【WCF Interview Questions – Part 3 翻译系列】

    http://www.topwcftutorials.net/2012/10/wcf-faqs-part3.html WCF Interview Questions – Part 3 This WCF ...

  6. [转]Design Pattern Interview Questions - Part 4

    Bridge Pattern, Composite Pattern, Decorator Pattern, Facade Pattern, COR Pattern, Proxy Pattern, te ...

  7. [转]Design Pattern Interview Questions - Part 2

    Interpeter , Iterator , Mediator , Memento and Observer design patterns. (I) what is Interpreter pat ...

  8. [转]Design Pattern Interview Questions - Part 1

    Factory, Abstract factory, prototype pattern (B) What are design patterns? (A) Can you explain facto ...

  9. 69 Spring Interview Questions and Answers – The ULTIMATE List--reference

    This is a summary of some of the most important questions concerning the Spring Framework, that you ...

随机推荐

  1. LVS的NAT模式测试

    dir 分别配置ip  eth0 :10.222.138.200   eth0:1 10.222.21.190 rs1 eth0  :10.222.138.201 rs2 eth0: 10.222.1 ...

  2. iOS 开发 atomic 与 nonatomic 区别

    atomic :  变量默认是有该有属性的,这个属性是为了保证在多线程的情况下,编译器会自动生成一些互斥加锁的代码,避免该变量的读写不同步的问题. nonatomic  : 如果该对象无需考虑多线程的 ...

  3. 前端小白的gulp入门

    gulp新手入门 全局安装 cnpm install -g gulp 本地安装cnpm install gulp -D 如果项目没有package.json,记得npm init 安装插件cnpm i ...

  4. 基于JDK1.8的ArrayList剖析

    前言 本文是基于JDK1.8的ArrayList进行分析的.本文大概从以下几个方面来分析ArrayList这个数据结构 构造方法 add方法 扩容 remove方法 (一)构造方法 /** * Con ...

  5. 《android开发艺术探索》读书笔记(九)--四大组件

    接上篇<android开发艺术探索>读书笔记(八)--WindowManager No1: 四大组件除了BroadcastReceiver,其他三种组件都必须在AndroidManifes ...

  6. 分享一个Appium/selenium测试报告模板

    介绍 这个模板改编自 这位外国老哥 效果图 错误截图 录像 失败的case可以点击"view"查看报错信息, 也可以点击screenshot查看截图信息,更可以点击replay查看 ...

  7. 遇到502错误,invalid request block size 解决方法

    uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换. 因为业务需求,要最多输入350个汉字,在 ...

  8. 为什么使用正则test( )第一次是 true,第二次是false?

    今天朋友问我一个问题,我现在需要多次匹配同一个内容,但是为什么我第一次匹配,直接是 true,而第二次匹配确实 false 呢? var s1 = "MRLP"; var s2 = ...

  9. Phpstrom操作git

    1.PHPstrom操作git[上传] 2.提交代码到仓库 2. 3.使用git bash上传代码仓库的代码到远程服务器 代开git bash进入到项目所在的目录,输入命令$  git push .上 ...

  10. Hbase配置java客户端

    1.修改windows配置文件 C:\WINDOWS\system32\drivers\etc\hosts 将远程hbase和zookeeper主机的IP地址加进去 54.0.88.53      H ...