1、  Java中的异常处理机制的简单原理和应用。

每当产生异常之后,如果没有程序进行相应的处理,则程序将出现中断的现象,那么,此时实际上一旦产生一个异常之后,JVM会跑出一个异常类的实例化对象,如果此时使用了try语句进行不活的话,则可以进行异常处理,如果没有的话,则交给JVM进行处理,当tru语句捕获到了异常之后,会与catch中的异常类型进行匹配,如果匹配成功,则使用catch语句进行处理。

应用:简单的引用,就是在所有有throws关键字的地方加入try…catch

如果按照一个标准做的话,try、catch、finally、throw、throws关键字应该一起使用。

2、  垃圾回收的优点和原理。并考虑2种回收机制。

将无用的对象空间进行释放,两种回收:自动回收,手工调用System.gc()方法,实际上调用System.gc()就相当于调用了Runtime.getRuntime().gc()方法。

3、  Error与Exception有什么区别。

Error表示有JVM进行处理的,是JVM出错。

Exception表示可以由程序进行处理的,使用try..catch 进行处理。

4、  谈谈final,finally,finalize的区别。

Final是定义常量、方法、类的,生命的方法不能被覆写、生命的类不能被继承。

Finally:是一场的统一出口。

Finalize:是垃圾回收前的收尾工作,是Object类中定义的。

5、  Anonymous Inner Class (匿名内部类)是否可以extends(继承)其他类,是否可以implements(实现)interface(接口)?

允许继承或实现,因为匿名内部类就是在抽象类和接口的基础之上发展起来的。

6、  Static Nested Class 和Inner Class的不同。

使用static声明的内部类就是外部类,可以通过 外部类.内部类 直接访问。

普通的内部类是不能够直接被外部所访问的,需要通过外部类实例再找到内部类实例。

7、  HashMap和Hashtable的区别。

HashMap

|-JDK1.2之后推出,是新的类。

|-采用异步处理方式,性能较高,但是属于非线程安全。

|-允许设置null。

Hashtable

|-JDk1.0时推出,是旧的类。

|-采用同步处理方式,性能较高,但是属于线程安全。

|-不允许设置null,否则将出现NullPointerException。

8、  什么时候用assert?

JDK1.4之后增加的新关键字——assert,表示断言,既程序执行到某个地方之后值肯定是预计好的。

一般开发中很少使用assert。

要想使用断言,则必须使用-ea参数。

9、  GC是什么?为什么要有GC?

GC:垃圾收集

使用GC可以进行垃圾空间的释放操作。

10、sleep()和wait()有什么区别?

sleep()是Thred类中定义的方法,表示线程的休眠,会自动唤醒。

wait()是Object中定义的方法,需要手工调用notify()或notifyAll()方法。

11、String s = new String(“xyz”); 创建了几个String Object?

产生了两个实例化对象,一个是匿名对象“xyz”,另外一个是通过关键字new实例化的。

12、Java有没有goto?

goto属于保留的关键字,java中存在goto,知识无法使用。

13、数组有没有length()这个方法?String有没有length()这个方法?

数组中存在length的属性,String中存在length()方法。

14、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

·重载:overload

在一个定义的若干方法。

所有的方法名称相同,但是参数的类型或个数不同

·腹泻:override

在继承的关系中。

在类定义了与父类同名的方法,参数类型或个数最好完全一样,注意访问权限不能更加严格。

·重载的时候不是依靠返回值类型区分的,而是靠参数。

15、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?使用==还是equals()?他们有何区别?

依靠hashCode()和equals()两个方法完成,==属于地址值比较,儿equals()属于内容比较。使用的是equals()方法。

16、列举出常见的runtime exception。

NumberFormatException、ArrayOutIndexofBoundException、NullPointerException、ClassCastException

17、abstract class和interface有什么区别?

·抽象类

由抽象方法和常量、变量、全局常量、构造方法、普通方法组成。

使用abstract声明。

子类要通过extends继承抽象类,子类如果不是抽象类,则必须覆写抽象类中的全部抽象方法。

存在单继承局限,一个子类只能继承一个抽象类。

抽象类可以实现若干个接口。

·接口

全部由抽象方法和全局变量组成。

使用interface声明

子类通过implements实现接口,子类如果不是抽象类,则必须覆写抽象类中的全部抽象方法。

不存在单继承局限,一个子类可以实现多个接口。

接口不能继承一个抽象类,但是允许继承多个接口。

18、启动一个线程是用run()还是start()?

使用start()方法,因为要通知JVM进行CPU资源的分类。

19、 try{}里有一个return语句,那么紧跟在这个try{}后的finally{}里的code是不会被执行,什么时候被执行,在return前还是后?

会执行,在return之前执行,只要是finally{}的代码永远会被执行。

20、编程题:写一个Singleton出来(单例设计模式)。

·核心就是构造方法私有化。

写上包名

class单词的首字母要大写

package org.pzx.demo;

public class Singleton{

private static final Singletonsin = new Singleton(); ——在内部产生singleton()对象

private Singleto(){       }                                          ——将构造方法私有化

public static Singleton getInstance(){                  ——通过静态方法renturn sin

return sin;

}

}

21、编一段代码,实现在控制台输入一组数字后,排序后在控制台输出。

·假设数字中间使用“”进行分割,既然要排序,则可以使用集合保存,使用TreeSet保存。

package org.pzx.demo;

import java.io.BufferedReader;

import java.io.InputStremReader;

import java.util.Iterator;

import java.util.Set;

import java.util.TreeSet;

public class Demo{

public static void main(String args[]) throws Exception{

BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));

System.out.print("请输入一组数据,中间使用空格分隔:");

String str = buf.readLine();

Set set = new TreeSet();

String s[] = str.split(" ");//进行拆分

for (String x : s){

set.add(Integer.parseInt(x));//加入数据

}

System.out.println("排序之后的结果是:");

Iterator iter = set.iterator();

while(iter.hasNext()){

System.out.print(iter.next() + "、");

}

}

}

以上的操作中,因为所有的数据都已经架设是正确的数字,但是实际中可能是字符串。

·第一种方法:允许有字符串,但是将所有的字符串忽略。

·第二种方法:不允许有字符串,如果出现了字符串,则程序不再向下继续执行。

为程序改善功能:第二种方法

package org.pzx.demo;

import java.io.BufferedReader;

import java.io.InputStremReader;

import java.util.Iterator;

import java.util.Set;

import java.util.TreeSet;

public class Demo{

public static void main(String args[]) throws Exception{

BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));

System.out.print("请输入一组数据,中间使用空格分隔:");

String str = buf.readLine();

Set set = new TreeSet();

String s[] = str.split(" ");//进行拆分

for (String x : s){

if(x.matches("\\d+")){

set.add(Integer.parseInt(x));//加入数据

}

}

System.out.println("排序之后的结果是:");

Iterator iter = set.iterator();

while(iter.hasNext()){

System.out.print(iter.next() + "、");

}

}

}

为程序改善功能:第一种方法

package org.pzx.demo;

import java.io.BufferedReader;

import java.io.InputStremReader;

import java.util.Iterator;

import java.util.Set;

import java.util.TreeSet;

public class Demo{

public static void main(String args[]) throws Exception{

BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));

System.out.print("请输入一组数据,中间使用空格分隔:");

String str = buf.readLine();

Set set = new TreeSet();

String s[] = str.replaceAll("\\D+", "").trim()split(" +");//进行拆分

for (String x : s){

set.add(Integer.parseInt(x));//加入数据

}

System.out.println("排序之后的结果是:");

Iterator iter = set.iterator();

while(iter.hasNext()){

System.out.print(iter.next() + "、");

}

}

}

22、列出某文件夹下的所有文件。

·递归调用

package org.pzx.demo;

import java.io.Files;

public class ListFiles{

public static void main(Strign args[]){

File file = new File("D:"+File.separator+"doc");

fun(file);

}

public static void fun(File file){

if(file.isDirectory()){

File f[]=file.listFiles();

if(f != null){

for (int x = 0;x < f.length;x++){

fun(f[x]);

}

}

}else{

System.out.println(file);

}

}

}

23、char型变量中能不能存贮一个中文汉字?为什么?

·可以存放,因为使用的是unicode编码。

24、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?

·两种实现方法,继承Thread类,实现Runnable接口

|-Thread类是Runnable接口的子类。

|-使用Runnable接口可以实现资源共享的目的

|-所有的线程操作都必须通过Thread类的Start()方法启动

·两种实现同步的方法:

|-同步代码块:Synchronized(this){}

|-同步方法

25、float型 float f=3.4是否正确?

·不正确,默认情况下3.4是double类型的数据。

26、String与StringBuffer区别?

·String不可修改,StringBuffer允许修改。

27、Class.forName的作用?为什么要用?

Class.forName属于向容器之中加载驱动程序。

28、int和Integer区别?

int是基本数据类型,Integer是包装类

在JDK1.5之后,可以实现自动装箱及拆箱的操作。

29、用最有效的方法算出2乘以8等于几?

使用移位操作:2<<3

30、请说出类集框架的完整结构。

·类集框架最大的接口:Collection、Map、Iterator、Enumeration

·Collection:存放单值

|-List:允许有重复内容

|-ArrayList:一步处理,新的操作类,非线程安全

|-Vector:同步处理,旧的操作类,线程安全,支持Enumeration输出

|-Set:不允许有重复内容,靠hashCode()和equals()进行重复的验证

·Map:存放一对值

|-HashMap:新的类,异步处理,非线程安全,允许有null

|-Hashtable:旧的类,同步处理,非线程安全,不允许有null

|-Properties:属性操作类

|-TreeMap:有序排列,按key排序,根据Comparable制定排序规则

·Iterator:

|-迭代输出,依靠Collection接口中的Iterator方法输出,是新的输出标准

·Enumeration:旧的输出操作。

31、是否可以继承String类?

·不允许,因为使用了final声明。

java mldn_MLDN java面试题相关推荐

  1. Java多线程常见面试题及答案汇总1000道(春招+秋招+社招)

    Java多线程面试题以及答案整理[最新版]Java多线程高级面试题大全(2021版),发现网上很多Java多线程面试题都没有答案,所以花了很长时间搜集,本套Java多线程面试题大全,汇总了大量经典的J ...

  2. Java后端Java面试题总结2021(春招+秋招+社招)

    Java常见2021年最新面试题,附答案解析 01. 创建socket通讯的步骤? 02. Java 中 sleep 方法和 wait 方法的区别? 03. 程序计数器(线程私有) 04. 什么是线程 ...

  3. java 用程序代码解释继承_关于初级java程序员笔试题

    关于初级java程序员笔试题 Sun 认证Java程序员考试内容涉及Java所有相关知识.编程概念及applet开发技巧.下面是小编整理的关于初级java程序员笔试题,欢迎大家参考! 第一题:判断题 ...

  4. 牛逼了!8000页Java 核心知识点+面试题整理,超全!

    今年金九银十要来了,很多小伙伴都在准备跳槽.小编为大家汇总了份Java核心知识点面试题和答案,基本上涵盖了所有后端技术栈,相信可以帮助大家拿到自己心仪的offer. 截了几张图,大家可以仔细查看左边的 ...

  5. 2012年1月java_全国2012年1月自考Java语言程序设计(一)试题及答案.doc

    全国2012年1月自考Java语言程序设计(一)试题及答案 全国2012年10月自考Java语言程序设计(一)试题 课程代码:04747 选择题部分 一.单项选择题 本大题共10小题,每小题1分,共1 ...

  6. 微博面试Java,微博java开发工程师面试题整理

    下面要给大家分享的是一个小伙伴的微博java开发工程师一面的面试题,一起来看看微博java开发工程一面面试题都有哪些吧! 面试题(一面) 1.做一个小时笔试 2.java创建对象的几种方式是什么? 用 ...

  7. java高级工程师开放面试题集二

    临近年关,不少人蠢蠢欲动,有童鞋问我java后端面试会面试什么? 作为一个java后端老鸟,跌打滚爬多次被面试和面试别人,总结了一些经验,希望对大家有所帮助. 特别说明,仅仅针对工作两年以上的java ...

  8. “面试不败计划”: java语言基础面试题(三)

    点击上方"好好学java",选择"置顶公众号" 优秀学习资源.干货第一时间送达! 好好学java java知识分享/学习资源免费分享 关注 精彩内容 java实 ...

  9. 百度 Java 后端三轮面试题,这些你会吗?

    前面的话 告别了2018 ,也早已正式进入2019 面试一直都是大家关注的热门话题,俗话说"金三银四",如今已经一月份了,三月份还会远么,如果你打算在年后跳槽,那么是时候该着手准备 ...

  10. java 三大框架面试题

    1.Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory3.打开Session 4.创建事务Transation 5.持久 ...

最新文章

  1. Knative 入门系列1:knative 概述
  2. swift String
  3. linux debian ntp,Debian下面的ntp服务(ntpdate)的安装
  4. 微软称使用 Edge 而非 Chrome 能提升电池续航
  5. yield python3 知乎_运维学python之爬虫高级篇(七)scrapy爬取知乎关注用户存入mongodb...
  6. Windows Server 2003 R2中的“分布式文件系统”案例应用
  7. X64 Linux 无法从本地字符界面登陆。
  8. [Linux]配置网络
  9. 勒索病毒傀儡进程脱壳
  10. 不显示样式 引用bootstrap_Bootstrap的引用样式
  11. vsftpd 启动 vsftpd:500 OOPS: bad bool value in config file for: guest_enable
  12. hnu 暑期实训之到底买不买
  13. [下载]北京新版小学英语五年级上册mp3点读APP
  14. python 接口设计_手把手教你在机器学习过程设计Python接口
  15. 《跑步人生》 作者:村上春树
  16. Deepin搭建Qt5开发环境
  17. OverLoad和 OverWrite区别
  18. 单片机直流电机驱动电路
  19. Portainer的下载与安装
  20. 读书笔记之:(2)认知驱动——周岭;第三章、第四章

热门文章

  1. 关于VM14中安装win 10遇到的小问题
  2. python海龟绘图代码大全-编程入门06:Python海龟绘图
  3. java mschart_关于vb中MSCHART控件画二维线图 - conkeyn - JavaEye技术网站
  4. WooCommerce税收入门指南,第2部分
  5. java接口自动化测试
  6. maven ojdbc6和ojdbc8 jar包下载地址
  7. 第三方应用软件检测实验室质量管理体系需要符合哪些要求?
  8. 手游服务器源码 https,python手游服务端搭建(转)
  9. StringUtil.format使用介绍
  10. win10系统文件夹黑色的背景色如何更改为白色?