Home » 面试

Tag Archives: 面试

多线程和并发面试问题与答案 – 终极列表(PDF下载)

编者按: 并发一直是开发者的挑战,编写并发程序可以是非常困难的。当涉及并发,有一系列事情可能会出现和系统复杂性大幅提高。但是,编写健壮的并发程序的能力是开发者的一个伟大的工具,可以帮助建立复杂的企业级的应用。在这篇文章中,我们将讨论可用于编程面试的不同类型问题,以评估面试者对并发和多线程的的认识问题。这些问题不仅是Java的特异性,同时也关于常规的编程原则。享受 提示,您是否在寻找Java中的职业发展机会?   请访问我们的Job Board 搜索和查看一个为世界各地的IT专业人员手工挑选 Java就业机会的平台.   此外,您可以将您的简历发给我们的 Resumes Board 推广自己的技能给全球广泛的Java招聘人员。 目录 1. 什么是我们理解的并发? 2. 进程和线程之间的区别是什么? 3. 在Java中,什么是进程和线程? 4. 什么是调度器? 5. 一个Java程序至少有多少个线程? 6. 如何在Java应用程序中访问当前线程? 7. 每一个Java线程有哪些特性? 8. 线程组的目的是什么? 9. 线程有什么状态,每一个状态的意思是什么? 10. 我们如何设置线程的优先级? 11. 如何在Java创建线程? 12. 我们如何停止在Java的线程? 13. 为什么一个线程不会被调用的方法stop()停止? 14. 是否有可能启动一个线程两次? 15. 下列代码的输出结果是什么? 16. 什么是守护线程? 17. 有可能当一个普通用户线程已经开始了,将它转为守护线程吗? 18. 我们怎么理解忙等待? 19. 怎么避免忙等待? 20. 我们能否把Thread.sleep()用于实时处理? 21. 一个线程在被放在使用线程休眠Thread.sleep()前怎么被唤醒? 22. 怎么查询一个线程是否已经中断? 23. 如何处理一个InterruptedException异常? 24. 在启动子线程后,我们如何在父线程等待子线程终止? ...

Read More »

69 个Spring 面试问题和答案 – 终极列表 (PDF 下载)

spring-interview-questions-answers

这篇文章是关于Spring框架的一些最重要问题的总结,在面试或笔试过程中可能被问到! 不用担心您的下一个面试的的测试,因为Java Code Geeks会为您服务!您可能被问到的大部分问题都列在了这里。所有的核心模块, 从基础的Spring功能例如Spring Beans到 Spring MVC 框架都被列在了这里而且简单的介绍了。在查看了这些面试问题后,您可以查看我们的 Spring教程页面。那么,我们开始吧…! 提示:您在寻找java方面的工作机会吗?访问我们的工作面板  来搜索和查看精心选择的为全世界的IT专业人士准备的Java工作。另外,您也可以把您的简历添加到我们的  简历面板来提高您的技能来使全世界的Java招聘者看到您。 目录 Spring 概述 依赖注入 Spring Beans Spring 注解 Spring 数据访问 Spring 面向方面编程 (AOP) Spring 模型视图控制器 (MVC) Spring 概述 1. Spring是什么? Spring是针对企业版 Java的开源的开发框架 。Spring框架的核心功能能被用于开发任何的Java程序,但有针对基于Java EE平台上的Web应用程序的扩展。Spring框架的目标是使JavaEE的开发更加容易并通过使用基于POJO的编程模型来促进编程最佳实践的应用。 2. Spring 框架有什么优势? 轻量级: 在尺寸和透明度方面Spring 是轻量级的。spring框架的基础版本只有大约 2MB 大小。 控制反转 (IOC): 通过控制反转技术 ,Spring实现了松耦合。对象间只是给出了依赖性,而不是创建或寻找依赖对象。 面向切面 (AOP): Spring 支持面向切面编程 而且把应用的业务逻辑从系统服务分离开了。 容器: Spring 包含并管理应用对象的生命周期和配置。 MVC 框架: Spring的 web 框架是一个设计良好的 web MVC 框架, 它可以作为其他web框架的替代。 事务管理: Spring ...

Read More »

115 Java面试问题和答案 –终极列表(PDF 下载)

在本教程中我们会讨论在Java面试中可能被用到的各种类型的问题,以便面试官来测试你的Java和面向对象开发(OOP)方面的大概水平。 在接下来的章节我们会讨论面向对象编程(OOP)和它的特点,关于Java及其功能的常见问题,Java 集合框架(Collections), 垃圾回收,异常处理,Java applets, Swing, JDBC, 远程方法调用(RMI), Servlet 和JSP。 让我们开始吧! 目录 面试对象编程(OOP) Java的一些常见问题 Java线程 Java集合 垃圾回收 异常处理 Java Applets Swing JDBC 远程方法调用(RMI) Servlets JSP 面试对象编程(OOP) Java是并发的,基于类和面向对象的编程语言。面向对象的软件开发具有以下优点: 模块化的代码开发,使维护和修改更加容易。 代码的复用性。 提高代码的可靠性和灵活性。 代码更易理解。 面向对象的编程具有一些重要的特征, 例如封装,继承,多多和抽象。我们会在以下章节逐个分析这些特征。 封装 封装为对象赋予了隐藏其内部特征和行为的能力。每一个对象都有一些方法,这些方法能被其他对象访问并改变对象内部数据。在Java中,有三种访问修饰符:public,private和protected。每一种修饰符赋予其他类一些访问权限,这些类可以是在同一个包里或者不同包。下面列出了使用封装的好处: 每一个对象的内部状态都通过隐藏其属性来保护。 提高了代码的复用性和可维护性,因为对象的行为可以被独立的改变或扩展。 通过阻止对象间的非预期的相互访问,提高了模块化水平。 你可以参考一下文档here来获得更多的关于封装的细节和例子。 多态 多态是编程语言用来为底层数据类型提供不同接口的能力。一个多态类型的操作也可以被应用到一些其他类型的值。 继承 继承为对象赋予了访问其他类的成员字段和方法的能力,这个其他类也被称作基类。继承提供了代码的可重用性,而且可以被用来为已存在的类增加新的功能,而不用改变基类。 抽象 抽象是分离概念(idea)和特定实例(specific instances)的过程,所以可以开发一些具有特定功能的类,而不是一些具体实现细节。Java支持抽象类,它们并不是所有方法都有具体实现。抽象技术的目的是分离类的行为和实现细节。 抽象和封装的区别 抽象和封装是互补的概念。一方面,抽象关注于一个对象的行为。另一方面,封装关注对象行为的实现细节。封装通常是通过隐藏对象内部状态来达到的,所以,可以视作一种提供抽象的策略。 Java的一些常见问题 1. 什么是Java虚拟机?为什么java被称作平台独立的编程语言?  Java虚拟机是一个能处理Java字节码的进程。每一个Java源文件都会被编译成字节码文件,然后被Java虚拟机执行。从设计上看,Java允许程序在任何一个平台上执行,而不用程序员在每一个不同平台上进行重写或重编译。Java虚拟机能做到这一点,是因为它了解底层硬件平台的指令长度和其他细节。 2. JDK和JRE有什么区别?  JRE基本上就是java虚拟机,也就是Java程序执行的地方。它也包含浏览器的applet插件。JDK是java的全功能开发软件包(SDK),包括了JRE,编译器和工具(比如JavaDoc, Java Debugger)。这些功能是为用户用作开发、编译和执行java程序的。 3. 关键字”static”是什么意思? 在Java中能够重写(override)私有或者静态方法吗? static关键字表示一个变量或方法在不用实例化它所属于的类的情况下就可以访问。在java中用户不能重写(override)静态方法,因为方法重写是基于运行时的动态绑定,而静态方法是在编译时绑定的。一个静态方法不能与这个类的任何实例关联,所以这种说法是不对的。 4. 能够在静态上下文中访问非静态的变量吗? Java中的静态变量属于类,它的值对这个类的所有实例都是一样的。静态变量在类被java虚拟机加载时就就被初始化。如果代码尝试访问没有实例的非静态变量,编译器会报错,因为这些变量还没有被创建,而且它们没有与任何实例关联。 ...

Read More »