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. cocos2d-x中处理touch事件

    在cocos2d-x中, touch事件分为两种:一种是单点事件, 另一种是多点事件. 单点事件对应的代理方法是: virtual bool ccTouchBegan(CCTouch *pTouch, ...

  2. 微信开发系列——微信订阅号前端开发利器:WeUI

    前言:年前的两个星期,学习了下微信公众号的开发.后端基本能够基于盛派的第三方sdk能搞定大部分事宜.剩下的就是前端了,关于手机端的浏览器的兼容性,一直是博主的一块心病,因为博主一直专注于bootstr ...

  3. wordpress安装五步法

    原文链接: 下载并解压缩WordPress程序安装包 在你的网页服务器上为WordPress创建一个数据库, 并且创建一个MySQL 拥有所有权限可以进入和修改的用户 重命名 wp-config-sa ...

  4. Centos6增加新用户并赋予权限

    第一步:创建用户并设置密码 useradd testuser // 增加用户名为'testuser'的用户 passwd testpasswd //设定密码为'testpasswd' 第二步:用户授权 ...

  5. Egret学习笔记 (Egret打飞机-9.子弹对敌机和主角的碰撞)

    运行起来,虽然主角飞机和敌机都在互相发射子弹,但是子弹打中了就和没打中效果是一样的.. 这一章我们就来处理子弹和飞机的碰撞问题. 我们所有的操作都是基于Main这个容器来做的.所以我就把这个处理放到M ...

  6. Opencv 3.3.0 常用函数

    如何调图像的亮度和对比度? //如何增加图片的对比度或亮度? void contrastOrBrightAdjust(InputArray &src,OutputArray &dst, ...

  7. websocket 和 ansible配合Tomcat实时日志给前端展示

    业务流程图如下 效果图展示 1.django安装websocket模块 pip install dwebsocket 2.shell脚本 用来传递不同的行号输出不同的内容; 第一个参数为0的时候,默认 ...

  8. Luogu P1078 文化之旅

    题目描述 有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一种文化超过一次(即如果他学习了某种文化,则他就不能到达其他有这种文化的国家).不同的国家可能有相同的文化.不同文化 ...

  9. 电脑中dll文件丢失怎么恢复?

    DLL文件是Windows系统中的动态链接文件,我们在运行程序时都必须链接到dll文件,如果缺少了则无法正常运行,相信大家都会遇到dll文件缺失的情况,那么电脑中dll文件丢失怎么恢复?下面装机之家分 ...

  10. 面向对象的线程池Threadpool的封装

    线程池是一种多线程处理形式,预先创建好一定数量的线程,将其保存于一个容器中(如vector), 处理过程中将任务添加到队列,然后从容器中取出线程后自动启动这些任务,具体实现如下. 以下是UML图,展示 ...