`

JAVA面试知识点

    博客分类:
  • JAVA
阅读更多

1、 线程wait()sleep()的区别<o:p></o:p>

sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。<o:p></o:p>

waitObject类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。<o:p></o:p>

这两者的施加者是有本质区别的.
sleep()
是让某个线程暂停运行一段时间,其控制范围是由当前线程决定,也就是说,在线程里面决定.好比如说,我要做的事情是 "点火->烧水->煮面",而当我点完火之后我不立即烧水,我要休息一段时间再烧.对于运行的主动权是由我的流程来控制.

wait(),首先,这是由某个确定的对象来调用的,将这个对象理解成一个传话的人,当这个人在某个线程里面说"暂停!",也是thisOBJ.wait(),这里的暂停是阻塞,还是"点火->烧水->煮饭",thisOBJ就好比一个监督我的人站在我旁边,本来该线程应该执行1后执行2,再执行3,而在2处被那个对象喊暂停,那么我就会一直等在这里而不执行3,但正个流程并没有结束,我一直想去煮饭,但还没被允许,直到那个对象在某个地方说"通知暂停的线程启动!",也就是thisOBJ.notify()的时候,那么我就可以煮饭了,这个被暂停的线程就会从暂停处继续执行.
其实两者都可以让线程暂停一段时间,但是本质的区别是一个线程的运行状态控制,一个是线程之间的通讯的问题。

<o:p> </o:p>

2switch中接受的合法参数有哪些类型?<o:p></o:p>

package org.logic;

public class TestSwith {

 /**
  * @param args
  */
 public void Test(){
  int i=1;
  char c='a';
  short st=1;
  double ft=1.1;
  byte bt='a';
  String string="cjj";
  int a=0,b=0,s;
  switch(st){//
可以用的类型有:int ,char,short,byte
      //
不可以有String float,double
  case 1 : s=a+b; break;
  
  }
  switch(bt){
  
  }
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub

 }

}

3ErrorException的区别

error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。

exception
表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

简要的叙述 error exception   Error Exception 都继承自 Throwable ,他们下列不同处:

  Exceptions 1 .可以是 可被控制 (checked) 不可控制的 (unchecked)

                      2 .表示一个由程序员导致的错误 3 .应该在应用程序级被处理  

 Errors           1 总是 不可控制的 (unchecked)

                       2 经常用来用于表示系统错误或低层资源的错误

                       3 如何可能的话,应该在系统级被捕捉 <v:shapetype o:spt="75" coordsize="21600,21600" filled="f" stroked="f" id="_x0000_t75" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" o:connecttype="rect" gradientshapeok="t"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" alt="" style="WIDTH: 0.75pt; HEIGHT: 0.75pt"></v:shape>

<o:p> </o:p>

4字符串的对比,对象引用,对象在内存中的分配

package org.string;

public class TwoString {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  String s="HelloWord";
  String ss="Hello"+"Word";
  String sss=new String("HelloWord");
  String ssss=new String("HelloWord");
  System.out.println(s==ss);
  System.out.println(s==sss);
  System.out.println(sss==ssss);
 }
}

true
false
false

5变量的作用域,优先级

package org.string;

public class Test {

 /**
  * @param args
  */
 public static void change(String s){
  s=s+"Word";
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  String ss="Hello";
  change(ss);
  System.out.println(ss);
 }
}

Hello

6Javathrowthrows的区别

throws 是说明符 是在告诉你抛出异常的可能性 并不对异常做出处理 throw是一个处理方法 throw IOException即已经将IOException做了抛出的处理。

throws 用在方法声明的后面,表示这个方法可能会有异常生成,

throw 用在具体语句中,表示产生了一个异常,

前者是声明用的,后者是一次具体的应用。

<o:p> </o:p>

7final, finally, finalize的区别
final?
修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载
finally?
再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
finalize?
方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。<o:p></o:p>

<o:p> </o:p>

8、,&&&的区别。
&
是位运算符。&&是布尔逻辑运算符<o:p></o:p>

<o:p> </o:p>

9HashMapHashtable的区别
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap
类没有分类或者排序。它允许一个 null 键和多个 null 值。
Hashtable
类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。<o:p></o:p>

<o:p> </o:p>

10Collection Collections的区别。
Collections
是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection
是个java.util下的接口,它是各种集合结构的父接口。<o:p></o:p>

<o:p> </o:p>

11同步和异步有何异同,在什么情况下分别使用他们?举例说明<o:p></o:p>

如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者现在读的数据已经被另一个线程写过,那么这些数据就是共享数据,必须进行同步存取。<o:p></o:p>

       当应用程序在对象上调用了一个需要花费很多时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步编程途径往往更有效率。<o:p></o:p>

12abstrac class interface 有什么区别?<o:p></o:p>

声明方法的存在而不去实现它的类叫做抽象类(abstrac class),它用于创建一个体现某些基本行为的类,并为类声明方法,但不能在该类中实现该方法的情况。不能创建抽象类的实例,但是可以创建该抽象类类型的变量,让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。抽象类的子类实现父类中的所以方法,否则任然为抽象类。<o:p></o:p>

接口(interface)是抽象类的变体。在接口中所以的方法都是抽象的。多继承可以实现这样的接口而实现。接口只可以定义static final 变量。Instanceof 运算符可以用来决定某对象是否实现了某个接口。通常的动态联编就是利用接口实现。<o:p></o:p>

12heapstack有什么区别<o:p></o:p>

     

13forwardredirect的区别<o:p></o:p>

       Forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把内容再发给浏览器,浏览器根本不知道服务器发送的内容从哪里来,所以地址栏的地址还是原来的地址。<o:p></o:p>

       Redirect是服务端根据逻辑方式发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所以参数重新请求,所以session,request参数都可以获取。<o:p></o:p>

14JSP中动态INCLUDE与静态INCLUDE的区别<o:p></o:p>

       动态include <jsp:include page=”include.jsp” flush=”true” />实现,它总是会检查所包含文件中的的动态变化,适用于包含动态页面,并且可以带参数。<o:p></o:p>

       静态include <%@ include file=”include.html” %> 实现,适用于包含静态页面。<o:p></o:p>

15GC是什么? 为什么要有GC?<o:p></o:p>

       GCGabage Collection )垃圾回收器。内存处理是编程人员容易出现问题的地方,忘记或者是错误的内存回收会导致程序或系统的不稳定甚至崩溃,JAVA提供的GC可以自动检测对象是否超过作用域从而达到自动回收内存的目的。<o:p></o:p>

16Math.round(11.5)等于多少? Math.round(-11.5)等于多少?<o:p></o:p>

round方法返回与参数最接近的长整数,参数加1/2后求其floor.<o:p></o:p>

所以Math.round(11.5)

分享到:
评论

相关推荐

    2018 java 面试知识点

    最近的java 面试知识点, 比较全的java基础知识面试知识,linux

    Java面试知识点整理总结

    Java面试知识点整理总结涵盖了多个关键领域,这对于求职者或希望提升技术能力的Java开发者来说是宝贵的资源。以下是对这些主题的详细阐述: 1. **Java基础**:这是学习任何编程语言的基础,包括变量、数据类型、...

    java面试知识点

    【Java面试知识点详解】 在Java面试中,面试官通常会关注候选人的基础知识、编程技能、问题解决能力等方面。以下是对一些关键知识点的详细说明: 1. **Classpath的设置及作用** - Classpath是Java虚拟机(JVM)查找...

    JAVA核心面试知识点整理

    Java是目前企业开发中最常用的编程语言之一,Java面试知识点涵盖了Java语言的方方面面,包括Java基础知识、Java高级知识、Java设计模式、Java框架等等。以下是Java核心面试知识点的整理。 一、JVM JVM(Java ...

    2017最新Java面试知识点xmind版

    这份"2017最新Java面试知识点xmind版"包含了丰富的Java基础知识和面试常见问题,旨在帮助求职者准备Java程序员的面试。虽然它不是传统的doc文档格式,但Xmind文件通常能以思维导图的形式更直观地展示知识体系,使...

    JAVA面试核心知识点整理(283页).pdf

    JAVA面试核心知识点整理 本文档旨在为Java...本文档提供了一个系统的Java面试知识点整理,涵盖了JVM的工作原理、Java编程语言的基本语法和高级特性等多方面的知识点,为Java开发者提供了一个系统的面试准备指南。

    JAVA面试知识点整理(核心)

    JAVA面试知识点整理(核心) JAVA是一种广泛应用于企业级应用开发的编程语言,具有平台独立、面向对象、动态加载类等特点。本资源整理了JAVA面试中经常涉及的知识点,涵盖JVM、线程、Java内存区域、垃圾回收机制等...

    java面试知识点积累

    java面试知识点积累

    java面试知识点.jpg

    java面试知识点结构简单梳理

    java面试知识点全覆盖

    115个java面试的知识点 115个java面试的知识点 115个java面试的知识点 115个java面试的知识点

    java面试知识点,找到一个满意工作,面试必备

    java面试知识点,找到一个满意工作,面试必备

    考试类精品--此rep为java面试知识点总结;年3月(17年毕业),本人由南京跳转上海,之间面了几个一线互联网大厂.zip

    【标题】中的“考试类精品--此rep为java面试知识点总结”表明这是一个关于Java面试准备的资源集合,可能包含了各种面试常问问题、技术要点以及解答策略。"年3月(17年毕业)"提示这份资料可能是作者在2017年3月,即刚...

    CyC2018 PDF ,Java面试知识点详解

    CyC2018笔记离线阅读PDF版,Java面试知识点详解,涵盖算法、计算机网络、操作系统、数据库、设计模式、系统设计等知识点。 在线阅读网址:https://cyc2018.github.io/CS-Notes/#/ 代码仓库:...

    【Java面试资料】-JAVA核心面试知识点整理

    以下是根据标题和描述提炼出的一些关键Java面试知识点,以及它们在实际编程和面试中的重要性。 1. **基础语法**: 包括变量、数据类型、运算符、流程控制语句(如if、switch、for、while)、方法等。这是所有Java...

    JAVA面试核心知识点整理.rar

    java面试各大知识点,非常齐全。jvm内存分区,gc算法,类加载机制。并发编程,并发编程各大容器,锁。框架spring mybatis原理,组件介绍。架构设计有设计模式,负载均衡。网络有协议,java 高并发io框架netty。数据...

    java面试大全。各大公司面试总结。知识点总结,共31个文档

    为了帮助你更好地准备,以下是基于描述中提到的“31个文档”可能涉及的一些核心Java面试知识点的详细阐述: 1. **基础概念**:理解Java语言的基础,如变量、数据类型、运算符、流程控制(if/else,switch,for,...

    高级Java面试知识点

    【Java高级面试知识点详解】 Java作为一款广泛应用的编程语言,其高级面试中涵盖了许多关键知识点。这些知识点包括但不限于Java基础、JVM优化、性能调优、数据结构、Spring框架(如Spring Boot、Spring MVC)、...

    Java 面试知识点总结.zip

    Java作为一门广泛使用的编程语言,其面试知识点涵盖了基础语法、数据结构与算法、集合框架、多线程、网络编程、异常处理、IO流、反射、设计模式等多个领域。以下是对这些核心知识点的详细阐述: 1. **基础语法**:...

    java面试知识点.docx

    Java语言在面试中是不可或缺的重要部分,涉及到的知识点广泛且深入。...同时,面试者还需要了解其他Java特性,如异常处理、集合框架、多线程模型、垃圾回收机制以及设计模式等,这些都是Java面试的常见话题。

Global site tag (gtag.js) - Google Analytics