51、实现多线程的方法

一种是继承Thread类;另一种是实现Runnable接口。两种方式都要通过重写run()方法来定义线程的行为,推荐使用后者,因为Java中的继承是单继承,一个类有一个父类,如果继承了Thread类就无法再继承其他类了,显然使用Runnable接口更为灵活。5以后还有Callable接口,该接口的call方法在线程结束时产生一个返回值。

52、举例说明同步和异步
答:如果系统中存在临界资源(资源数量少于竞争资源的线程数量的资源),例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就必须进行同步存取(数据库操作中的排他锁就是最好的例子)。当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。事实上,所谓的同步就是指阻塞式操作,而异步就是非阻塞式操作。

53、启动一个线程是调用run()还是start()方法

启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM 调度并执行,这并不意味着线程就会立即运行。run()方法是线程启动后要进行回调的方法。

54、线程池和其他池的作用

在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁,这就是”池化资源”技术产生的原因。线程池顾名思义就是事先创建若干个可执行的线程放入一个池(容器)中,需要的时候从池中获取线程不用自行创建,使用完毕不需要销毁线程而是放回池中,从而减少创建和销毁线程对象的开销。

55、线程的运行状态及他们的关系

56、简述synchronized 和lock()的异同

lock具有synchronzed的全部功能,但lock比synchronized有更好的线程安全和语义synchronized会自动释放锁,而lock必须手动释放锁,而且必须在finally内释放。snchronized是jvm级别的,而lock是类级别的。在synchronized如果A线程获得锁,b线程会一直等待,在lock情况下,b可以尝试获得锁。snchronized无法判断锁状态,lock可以判断。lock用于大量同步,二synchronized用于少量同步。

57、Java中如何实现序列化,有什么意义
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决对象流读写操作时可能引发的问题(如果不进行序列化可能会存在数据乱序的问题)。
要实现序列化,需要让一个类实现Serializable接口,该接口是一个标识性接口,标注该类对象是可被序列化的,然后使用一个输出流来构造一个对象输出流并通过writeObject(Object)方法就可以将实现对象写出(即保存其状态);如果需要反序列化则可以用一个输入流建立对象输入流,然后通过readObject方法从流中读取对象。序列化除了能够实现对象的持久化之外,还能够用于对象的深度克隆

58、Java中有几种类型的流
字节流和字符流。字节流继承于InputStream、OutputStream,字符流继承于Reader、Writer。输出流输入流

59、 XML文档定义有几种形式,它们之间有何本质区别,解析XML文档有哪几种方式
XML文档定义分为DTD和Schema两种形式,二者都是对XML语法的约束,其本质区别在于Schema本身也是一个XML文件,可以被XML解析器解析,而且可以为XML承载的数据定义类型,约束能力较之DTD更强大。对XML的解析主要有DOM、SAX和StAX

60、你在项目中哪些地方用到了XML

XML的主要作用有两个方面:数据交换和信息配置。在做数据交换时,XML将数据用标签组装成起来,然后压缩打包加密后通过网络传送给接收者,接收解密与解压缩后再从XML文件中还原相关信息进行处理;配置web.xml信息和java框架的配置信息

java面试题复习(六)的更多相关文章

  1. java面试题复习(八)

    71.如何通过反射创建对象? 方法1:通过类对象调用newInstance()方法,例如:String.class.newInstance()  方法2:通过类对象的getConstructor()或 ...

  2. java面试题复习(一)

    //基础最重要,如果面试官问一个答不上一个,那有难度的都都不用问了,直接就pass了,就像我,嘿嘿. //每天最好熟记10个问题,这些问题在编程是会很厚帮助,帮你避免很多不应该出现的错误. 一.面向对 ...

  3. Java面试题复习之Java基础

    1.面向对象的特征主要有哪些?   封装.继承.多态.抽象 2.final.finally.finalize的区别? final主要用于修饰类.方法.属性(变量)等. 通常被final修饰的类不能够被 ...

  4. JAVA基础部分复习(六、常用关键字说明)

    /** * JAVA中常用关键字复习 * final * finalize * finally * * @author dyq * */ public class KeyWordReview exte ...

  5. Java面试题复习笔记(数据库)

    1.数据库分类? 关系型数据库和非关系型. 常用关系型:Myspl.Oracle.SQLServer 非关系型:Redis.Hadoop.Memcache.Mogobd 2.关系数据库三范式? 范式就 ...

  6. Java面试题复习笔记(Web方向)

    1.Http中get和post请求的区别? 共同点:都是Http请求方式,用户可以通过不同的请求方式完成对资源(Url)的操作.具体来讲就是get一般用于获取/查询资源信息,post用于更新资源信息. ...

  7. java面试题复习(七)

    61.jdbc的操作步骤 加载驱动:Class.forName("oracle.jdbc.driver.OracleDriver"); 创建连接:Connection con =D ...

  8. java面试题复习(五)

    41.阐述final.finally.finalize的区别 final:修饰符(关键字)有三种用法:如果一个类被声明为final,意味着它不能再派生出新的子类,即不能被继承,因此它和abstract ...

  9. java面试题复习(四)

    31.内部类可以引用它的外部类的私有成员吗? 可以,内部类对象可以访问创建它的外部类对象的成员 32.final关键字有哪些用法? 修饰类时该类不能被继承,修饰方法时,该方法不能被重写,修饰变量时表示 ...

随机推荐

  1. robot framework中的返回值

    1.若想要再setup中有返回值,给后续的操作使用 A)在setup的关键词中需要的返回值,设置为global variable或者suit variable:如下图:但是在编译器中,会报错,但是执行 ...

  2. jquery 蔚蓝网

    $(document).ready(function(){ //提交表单 $("#registerBtn").click(function(){ var email=documen ...

  3. 学习php

    一.php是什么? 1.PHP:Hypertext Preprocessor(超文本预处理语言),是一种开源脚本语言. 2.PHP是脚本语言 3.PHP最流行的网站开发语言 4.PHP官网:http: ...

  4. Linux系统时间的设置

    1. Linux系统时间的设置 在Linux中设置系统时间,可以用date命令: //查看时间[root@node1 ~]# dateTue Feb 25 20:15:18 CST 2014//修改时 ...

  5. Flutter Inspector 功能:Toggle Platform,Show Debug Paint,Show Paint Baselines

    Flutter Inspector 功能 说明 Toggle Platform 切换操作系统(Android.iOS) Show Debug Paint Show Paint Baselines Wi ...

  6. 《我的嵌入式开发》---- IIC 通信

    IIC 通用文件,文件是在NRF51xx 芯片基础,keil 平台开发测试通过,后期修改为STM32F2xx系列的配置. 文件百度云盘链接 : https://pan.baidu.com/s/1AFx ...

  7. Kettle解决方案: 第五章 ETL相关知识

    早期, ETL知识作为BI系统的一部分来介绍. 后来在The Data Warehouse ETL Tooket一书中, 系统性的整理了ETL的相关内容, 形成了一篇"ETL里的34个子系统 ...

  8. C++ 重定义、重载、覆盖

    想要用好C++继承和类自身函数实现就必须了解C++得三个概念重定义(redefine).重载(overload).重写(override). 一 基本感念 1 重定义(redefine) 派生类对基类 ...

  9. Python——PyQt GUI编程(python programming)

    import sys from math import * from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidg ...

  10. FBI树-数据结构(二叉树)

    问题 B: [2004_p4]FBI树-数据结构 时间限制: 1 Sec  内存限制: 125 MB提交: 57  解决: 46 题目描述 我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称 ...