码迷,mamicode.com
首页 > 编程语言 > 详细

java知识点

时间:2015-10-17 00:36:36      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:

1.int 和 Integer区别

Java提供两种不同的类型:引用类型和原始类型。Int是java的原始数据类型,Integer是java为int提供的封装类。java为每个原始类型提供了封装类。

2.StringBuffer 提供的字符串可以进行修改,StringBuffer是动态地构造字符数据。

3.运行时异常与一般异常有何异同

  异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。

4.Servlet的生命周期,Servlet与CGI的区别

  Servlet被服务器实例化后,容器运行其init方法,强求到达时运行其service方法,service方法自动派遣运行与请求对应的(doGet/doPost

等),当服务器决定将实例销毁时调用其destroy方法。

  与CGI区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进行,服务完成后就销毁,所以效率较低

4.Collection与Collections的区别

  Collection是集合类的上级接口,继承与它的接口主要有Set和List

  Collections是针对集合类的一个帮助类,提供一系列的静态方法对各种集合搜索、排序、线程安全化等操作。

5.final,finally,finalize的区别

  final用于声明属性、方法和类,分别表示属性不可变,方法不可覆盖,类不可继承

  finally是异常处理语句结构的一部分,表示总是执行

  finalize是object类的一个方法,在垃圾收集器执行时会调用被回收对象的此方法,可以覆盖此方法提供垃圾回收的其他资源回收,比如关闭文件等

6.sleep()和wait()方法区别

  在java中,每一个对象都有一把锁。线程可以使用synchrnized来获取对象上的锁。

  sleep是线程类(Thread)的犯法,导致此线程暂停执行指定时间,但监控状态依然保持,时间到达会自动回复,sleep不会释放对象锁

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

7.error不指望程序能解决的问题,如内存溢出。Exception是设计或实现的问题

8.什么是同步

  同步是指数据在线程间共享,例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,这些数据是共享的,必须进行同步存取

9.抽象类(abstract class)和接口(interface)的区别

10.Jre和JDK的区别是什么

  JAVA运行时环境(Jre)是将要执行Java程序的java虚拟机。它同时也包含了执行applet需要的浏览器插件。Java开发工具包(JDK)是完成的java软件开发包,包含了jre、编译器和其他工具,可以让开发者开发、编译、执行java程序。

11.static的作用

  static关键字表名成员变量或者是成员方法时可以在没有所属的类的实例变量的情况下被访问。

  java  static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static变量在java中是属于类的,当类被java虚拟机载入时,会对static变量进行初始化。

12什么是构造函数?

  当新对象被创建时,构造函数就会被调用。每一个类都有构造函数(默认构造函数),java构造函数重载是指可以被一个类创建多个构造函数,每一个构造函数必须有它唯一的参数列表

13.java不支持多继承,每个类只能继承一个类,但是可以实现多个接口

14. 值传递和引用传递

  对象被值传递,意味着传递了对象的一个副本,因此就算改变了对象副本,也不会影响源对象的值

  对象被引用传递,意味着传递的并不是实际的对象,而是对象的引用。因此,外部对引用对象所做的改变会反映到所有的对象上。

15.在监视器(Monitor)内部,是如何做到线程同步的,程序应该做何种级别的同步

  监视器和锁在java虚拟机中是一块使用的。监视器监视一块同步块代码,确保每次只有一个线程执行同步代码块。每一个监视器都和一个对象引用相关联,线程在获取锁之前不可以执行同步代码。

16.HTTP请求的基本过程

17.java中的内存回收机制所采用的算法

18.java反射

19. 面向对象的特性:抽象,继承,封装,多态性

  派生类可以从基类中集成方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。

  多态性是指允许不同类的对象对同一消息做出响应。包括参数化和多态性和包含多态性,具有灵活、抽象、行为共享、代码共享的优势。

20.String不是基本类型,是java.lang.String类,不可以继承、修改这个类,是final类型的。

21.GC功能可以自动检测对象是否超过作用域从而达到自动回收内存的目的。java没有提供释放已分配内存的显式操作方法。回收机制有分代复制垃圾回收、标记垃圾回收、增量垃圾回收。

22.接口可以继承接口。抽象类可以实现接口,抽象类可以继承实体类,但实体类必须有明确的构造函数。

  abstract的方法不能同时是static,synchronized

  构造器可以被重载

23.JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?

 Java 通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。 用try来指定一块预防所有"异常"的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的"异常"的类型。 throw语句用来明确地抛出一个"异常"。 throws用来标明一个成员函数可能抛出的各种"异常"。 Finally为确保一段代码不管发生什么"异常"都被执行一段代码。 可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每当遇到一个try语句,"异常"的框架就放到堆栈上面,直到所有的try语句都完成。如果下一级的try语句没有对某种"异常"进行处理,堆栈就会展开,直到遇到有处理这种"异常"的try语句。

24垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?  

  对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。可以。程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。

 

25.什么是java序列化,如何实现java序列化?  

  序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。  序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个 ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。

 

java知识点

标签:

原文地址:http://www.cnblogs.com/kxdblog/p/4886712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!