- 浏览: 1789858 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
奔跑的小牛:
例子都打不开
如何使用JVisualVM进行性能分析 -
蜗牛coder:
好东西[color=blue][/color]
Lucene学习:全文检索的基本原理 -
lovesunweina:
不在haoop中是在linux系统中,映射IP的时候,不能使用 ...
java.io.IOException: Incomplete HDFS URI, no host -
evening_xxxy:
挺好的, 谢谢分享
如何利用 JConsole观察分析Java程序的运行,进行排错调优 -
di1984HIT:
学习了~~~
ant使用ssh和linux交互 如:上传文件
1、 线程wait()和sleep()的区别<o:p></o:p>
sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。<o:p></o:p>
wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。<o:p></o:p>
这两者的施加者是有本质区别的.
sleep()是让某个线程暂停运行一段时间,其控制范围是由当前线程决定,也就是说,在线程里面决定.好比如说,我要做的事情是 "点火->烧水->煮面",而当我点完火之后我不立即烧水,我要休息一段时间再烧.对于运行的主动权是由我的流程来控制.
而wait(),首先,这是由某个确定的对象来调用的,将这个对象理解成一个传话的人,当这个人在某个线程里面说"暂停!",也是thisOBJ.wait(),这里的暂停是阻塞,还是"点火->烧水->煮饭",thisOBJ就好比一个监督我的人站在我旁边,本来该线程应该执行1后执行2,再执行3,而在2处被那个对象喊暂停,那么我就会一直等在这里而不执行3,但正个流程并没有结束,我一直想去煮饭,但还没被允许,直到那个对象在某个地方说"通知暂停的线程启动!",也就是thisOBJ.notify()的时候,那么我就可以煮饭了,这个被暂停的线程就会从暂停处继续执行.
其实两者都可以让线程暂停一段时间,但是本质的区别是一个线程的运行状态控制,一个是线程之间的通讯的问题。
<o:p> </o:p>
2、switch中接受的合法参数有哪些类型?<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
}
}
3、Error与Exception的区别
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
6、Java中throw与throws的区别
throws 是说明符 是在告诉你抛出异常的可能性 并不对异常做出处理 而throw是一个处理方法 throw IOException即已经将IOException做了抛出的处理。
throws 用在方法声明的后面,表示这个方法可能会有异常生成,
throw 用在具体语句中,表示产生了一个异常,
前者是声明用的,后者是一次具体的应用。
<o:p> </o:p>
7、final, 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>
9、HashMap和Hashtable的区别。
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。
Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。<o:p></o:p>
<o:p> </o:p>
10、Collection 和 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>
12、abstrac class 和interface 有什么区别?<o:p></o:p>
声明方法的存在而不去实现它的类叫做抽象类(abstrac class),它用于创建一个体现某些基本行为的类,并为类声明方法,但不能在该类中实现该方法的情况。不能创建抽象类的实例,但是可以创建该抽象类类型的变量,让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。抽象类的子类实现父类中的所以方法,否则任然为抽象类。<o:p></o:p>
接口(interface)是抽象类的变体。在接口中所以的方法都是抽象的。多继承可以实现这样的接口而实现。接口只可以定义static final 变量。Instanceof 运算符可以用来决定某对象是否实现了某个接口。通常的动态联编就是利用接口实现。<o:p></o:p>
12、heap和stack有什么区别<o:p></o:p>
13、forward和redirect的区别<o:p></o:p>
Forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把内容再发给浏览器,浏览器根本不知道服务器发送的内容从哪里来,所以地址栏的地址还是原来的地址。<o:p></o:p>
Redirect是服务端根据逻辑方式发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所以参数重新请求,所以session,request参数都可以获取。<o:p></o:p>
14、JSP中动态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>
15、GC是什么? 为什么要有GC?<o:p></o:p>
GC(Gabage Collection )垃圾回收器。内存处理是编程人员容易出现问题的地方,忘记或者是错误的内存回收会导致程序或系统的不稳定甚至崩溃,JAVA提供的GC可以自动检测对象是否超过作用域从而达到自动回收内存的目的。<o:p></o:p>
16、Math.round(11.5)等于多少? Math.round(-11.5)等于多少?<o:p></o:p>
round方法返回与参数最接近的长整数,参数加1/2后求其floor.<o:p></o:p>
所以Math.round(11.5)
发表评论
-
如何使用JVisualVM进行性能分析
2011-09-25 22:32 84982地址:https://visualvm.dev.java.ne ... -
JDK5中的concurrent包、线程池
2011-02-19 23:43 5085concurrent并发包里面几个 ... -
如何利用 JConsole观察分析Java程序的运行,进行排错调优
2010-11-12 18:38 187409一、JConsole是什么 从Java 5开始 引入 ... -
gentoo下 JAVA生成图片的问题 以及JFreeChart的图片问题
2010-11-05 17:21 6886=============================== ... -
JAVA NIO 详解Buffer类
2010-10-19 11:21 16581讲得很好,转载一下:http://www.java1995 ... -
简单的记录下 jconsole 查看远程机器的JAVA程序运行状况
2010-09-07 14:31 1793简单实用 远端: java \ ... -
项目管理 进度表
2010-06-27 14:43 4011项目管理中很重要的一部分 进度管理,进度管理又牵扯到进度表 ... -
JAVA基础 对象克隆 实现java.lang.Cloneable接口
2010-04-23 13:46 6092先来看看JDK的解释: ... -
深入浅出Java 类加载器
2010-03-05 11:42 4515简介: 类加载 ... -
Jave EE 6特性:依赖注入、Bean验证和EJB增强
2009-12-18 16:19 2097Java EE 的最新版本提供 ... -
JVM优化之调整大内存分页(LargePage)
2009-11-26 12:50 4234http://kenwu.me/tune-large-page ... -
java内存模型详解
2009-11-26 12:30 2481好读书求甚解,共享展 ... -
JVM调优总结(一)一些概念
2009-11-24 14:43 1491原文地址:http://pengjiahe ... -
CentOS 5.2下配置Java和TOMCAT环境
2009-10-17 14:29 3774安装JDK: 1、下载解压(tar zxvf jdk.. ... -
web项目定时执行任务
2009-08-27 18:19 4332xml文件内容-监听器 < ... -
JAVA多线程的控制JAVA 5.0
2009-08-20 13:38 20013在Java 5.0之前启动一个任务是通过调用Thre ... -
JDK自带VM分析工具jps,jstat,jmap,jconsole
2009-08-09 10:24 35268一、概述 SUN ... -
log4j入门与提高-实例讲解
2009-08-04 09:47 6908官方网站:http://logging.apache.org/ ... -
获取Servlet运行环境信息-Servlet自身信息、Servlet服务器端信息和Servlet客户端信息
2009-07-08 15:01 7221在Servlet中可以很方便的获取各种运行环境信息,这些信 ... -
使用Perf4J进行性能分析和监控
2009-06-19 10:28 3566作者 Alex Devine 译者 崔 ...
相关推荐
最近的java 面试知识点, 比较全的java基础知识面试知识,linux
Java面试知识点整理总结涵盖了多个关键领域,这对于求职者或希望提升技术能力的Java开发者来说是宝贵的资源。以下是对这些主题的详细阐述: 1. **Java基础**:这是学习任何编程语言的基础,包括变量、数据类型、...
【Java面试知识点详解】 在Java面试中,面试官通常会关注候选人的基础知识、编程技能、问题解决能力等方面。以下是对一些关键知识点的详细说明: 1. **Classpath的设置及作用** - Classpath是Java虚拟机(JVM)查找...
Java是目前企业开发中最常用的编程语言之一,Java面试知识点涵盖了Java语言的方方面面,包括Java基础知识、Java高级知识、Java设计模式、Java框架等等。以下是Java核心面试知识点的整理。 一、JVM JVM(Java ...
这份"2017最新Java面试知识点xmind版"包含了丰富的Java基础知识和面试常见问题,旨在帮助求职者准备Java程序员的面试。虽然它不是传统的doc文档格式,但Xmind文件通常能以思维导图的形式更直观地展示知识体系,使...
JAVA面试核心知识点整理 本文档旨在为Java...本文档提供了一个系统的Java面试知识点整理,涵盖了JVM的工作原理、Java编程语言的基本语法和高级特性等多方面的知识点,为Java开发者提供了一个系统的面试准备指南。
JAVA面试知识点整理(核心) JAVA是一种广泛应用于企业级应用开发的编程语言,具有平台独立、面向对象、动态加载类等特点。本资源整理了JAVA面试中经常涉及的知识点,涵盖JVM、线程、Java内存区域、垃圾回收机制等...
java面试知识点积累
java面试知识点结构简单梳理
115个java面试的知识点 115个java面试的知识点 115个java面试的知识点 115个java面试的知识点
java面试知识点,找到一个满意工作,面试必备
【标题】中的“考试类精品--此rep为java面试知识点总结”表明这是一个关于Java面试准备的资源集合,可能包含了各种面试常问问题、技术要点以及解答策略。"年3月(17年毕业)"提示这份资料可能是作者在2017年3月,即刚...
CyC2018笔记离线阅读PDF版,Java面试知识点详解,涵盖算法、计算机网络、操作系统、数据库、设计模式、系统设计等知识点。 在线阅读网址:https://cyc2018.github.io/CS-Notes/#/ 代码仓库:...
以下是根据标题和描述提炼出的一些关键Java面试知识点,以及它们在实际编程和面试中的重要性。 1. **基础语法**: 包括变量、数据类型、运算符、流程控制语句(如if、switch、for、while)、方法等。这是所有Java...
java面试各大知识点,非常齐全。jvm内存分区,gc算法,类加载机制。并发编程,并发编程各大容器,锁。框架spring mybatis原理,组件介绍。架构设计有设计模式,负载均衡。网络有协议,java 高并发io框架netty。数据...
为了帮助你更好地准备,以下是基于描述中提到的“31个文档”可能涉及的一些核心Java面试知识点的详细阐述: 1. **基础概念**:理解Java语言的基础,如变量、数据类型、运算符、流程控制(if/else,switch,for,...
【Java高级面试知识点详解】 Java作为一款广泛应用的编程语言,其高级面试中涵盖了许多关键知识点。这些知识点包括但不限于Java基础、JVM优化、性能调优、数据结构、Spring框架(如Spring Boot、Spring MVC)、...
Java作为一门广泛使用的编程语言,其面试知识点涵盖了基础语法、数据结构与算法、集合框架、多线程、网络编程、异常处理、IO流、反射、设计模式等多个领域。以下是对这些核心知识点的详细阐述: 1. **基础语法**:...
Java语言在面试中是不可或缺的重要部分,涉及到的知识点广泛且深入。...同时,面试者还需要了解其他Java特性,如异常处理、集合框架、多线程模型、垃圾回收机制以及设计模式等,这些都是Java面试的常见话题。