尚学堂java笔试和面试技术题目总结
Java面试笔试题大汇总 +详细答案

}
2 / 114
IntegerCache 是 Integer 的内部类,其代码如下所示:
private static class IntegerCache { static final int low = -128; static final int high; static final Integer cache[];
1 / 114
答:对于 short s1 = 1; s1 = s1 + 1;由于 1 是 int 类型,因此 s1+1 运算结果也是 int 型,需要 强制转换类型才能赋值给 short 型。而 short s1 = 1; s1 += 1;可以正确编译,因为 s1+= 1;相当 于 s1 = (short)(s1 + 1);其中有隐含的强制类型转换。
private IntegerCache() {} }
简单的说,如果整型字面量的值在-128 到 127 之间,那么不会 new 新的 Integer 对象,而是 直接引用常量池中的 Integer 对象,所以上面的面试题中 f1==f2 的结果是 true,而 f3==f4 的结果是 false。
JAVA程序员笔试面试题汇总及答案

1. 【基础题】请描述访问控制符的各自作用域与区别答:√√√√√√√√√一、名词解释二、问答题1. 【中等题】请说出ArrayList和Vector的区别答:主要从二方面来说.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的二.数据增长:当需要增长时,Vector 默认增长为原来一培,而ArrayList却是原来的一半2. 【中等题】请说出HashMap和Hashtable的区别答:HashMap与HashT able主要从三方面来说。
一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的三.值:只有HashMap可以让你将空值作为一个表的条目的key或value3. 【基础题】Collection 和Collections的区别答:Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection是个java.util下的接口,它是各种集合结构的父接口第十八章输入输出笔试题一、填空题1. 【基础题】File对象的isFile()方法作用是判断是否是文件,getAbsolutePath() 方法作用是获取文件或目录的绝对路径。
2. 【基础题】BufferedReader和BufferedWriter以字符流的方式读写文本文件,且效率更高。
3. 【基础题】FileInputStream和FileOutputStream以字节流的方式读写文本文件。
二、选择题1. 【基础题】下列哪个类是实体类(BC )A. InputStreamB. PrintStreamC. SocketD. ReaderE. DataInput2. 【提高题】请选择下列程序的运行结果(A)public class TestIOapp{public static void main(String [] args) throws IOException{StringReader stingin = new StringReader("test");LineNumberReader in = new LineNumberReader(stingin);PrintWriter out = new PrintWriter(System.out);out.println(in.readLine());out.flush();}}A. testB. test:1C. 1:testD. 1 test3. 【提高题】请选择下列程序的运行结果( B )public class TestIOapp{public static void main(String [] args) throws IOException{RandomAccessFile file = new RandomAccessFile("test.txt","rw");file.writeBoolean(true);file.writeInt(123456);file.writeInt(7890);file.writeLong(1000000);file.writeInt(777);file.writeFloat(.0001f);file.seek(5);System.out.println(file.readInt());}}A. 123456B. 7890C. 1000000D. 777E. 0001三、名词解释四、问答题1. 【中等题】请说出java.io.reader和java.io.inputstream的区别答:java.io.Reader 和java.io.InputStream 组成了Java 输入类。
java面试题库java面试题目及答案(3篇)

第1篇一、基础知识1. Java简介题目:请简述Java的基本特点。
答案:- 简单易学:Java设计之初就考虑了易学性,使用面向对象编程。
- 原生跨平台:Java通过JVM(Java虚拟机)实现跨平台运行。
- 安全性:Java提供了强大的安全机制,如沙箱安全模型。
- 体系结构中立:Java不依赖于特定的硬件或操作系统。
- 高效:Java的运行速度接近C/C++。
- 多线程:Java内置多线程支持,便于实现并发处理。
- 动态性:Java在运行时可以进行扩展和修改。
2. Java虚拟机题目:请解释Java虚拟机(JVM)的作用。
答案:JVM是Java程序的运行环境,其主要作用包括:- 将Java字节码转换为本地机器码。
- 管理内存,包括堆、栈、方法区等。
- 提供垃圾回收机制。
- 管理线程和同步。
3. Java内存模型题目:请简述Java内存模型的组成。
答案:Java内存模型主要由以下部分组成:- 堆(Heap):存储对象实例和数组。
- 栈(Stack):存储局部变量和方法调用。
- 方法区(Method Area):存储类信息、常量、静态变量等。
- 本地方法栈(Native Method Stack):存储本地方法调用的相关数据。
- 程序计数器(Program Counter Register):存储线程的当前指令地址。
4. Java关键字题目:请列举并解释Java中的几个关键字。
答案:- `public`:表示访问权限为公开。
- `private`:表示访问权限为私有。
- `protected`:表示访问权限为受保护。
- `static`:表示属于类本身,而非对象实例。
- `final`:表示常量或方法不能被修改。
- `synchronized`:表示线程同步。
- `transient`:表示数据在序列化时不会被持久化。
二、面向对象编程5. 类和对象题目:请解释类和对象之间的关系。
答案:类是对象的模板,对象是类的实例。
尚学堂JavaSE面试题参考答案

尚学堂JavaSE面试题参考答案JavaSE面试题总结目录第一章JavaSE基础 (1)1.Java的跨平台原理(字节码文件、虚拟机) (1)2.简述Java的垃圾回收机制 (1)3.类和对象的关系 (2)4.面向过程和面向对象的区别 (2)5. private/默认/protected/public权限修饰符的区别 (2)6.方法重载和方法重写(覆盖)的区别 (3)7.this和super关键字的作用 (3)8.static关键字的作用(修饰变量、方法、代码块) (3)9.final和abstract关键字的作用 (4)10.final、finally、finalize的区别 (4)11.写出ng.Object类的六个常用方法 (4)12.继承条件下构造方法的执行过程 (5)13.多态的技能点(前提条件,向上转型、向下转型) (5)14.接口和抽象类的异同之处 (5)15.String、StringBuffer、StringBuilder区别与联系 (6)16.==和equals的区别和联系 (6)17.String类型是基本数据类型吗?基本数据类型有哪些 (7)18.String s="Hello";s=s+"world!";执行后,原始String内容是否改变? (7)19.String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? . 820.下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"; (8)21.&和&&的区别和联系,|和||的区别和联系 (8)22.用最有效率的方法算出2乘以8等于多少 (9)23.Error和Exception的区别 (9)24.Checked异常和Runtime异常的区别 (9)25.Java异常处理try-catch-finally的执行过程 (9)26.异常处理中throws和throw的区别 (10)27.请使用递归算法计算n! (10)28.请写出冒泡排序代码 (10)29.请写出选择排序的代码 (11)30.请写出插入排序的代码 (12)第二章JavaSE高级 (13)1.基本数据类型和包装类 (13)2、Integer与int的区别 (13)3.Java集合体系结构(List、Set、Collection、Map的区别和联系) (14)4.Vector和ArrayList、ArrayList和LinkedList的区别和联系 (15)5.HashMap和Hashtable的区别和联系 (15)6.HashSet的使用和原理(hashCode()和equals()) (15)7. TreeSet的原理和使用(Comparable和comparator) (16)8.集合和数组的比较(为什么引入集合) (16)9.Collection和Collections的区别 (16)10.使用JDBC进行数据库操作的基本步骤 (16)11.Statement和PreparedStatement的区别 (17)12.为什么引入事务?事务的基本特性。
java面试笔试题大汇总.doc

java面试笔试题大汇总java 面试笔试题大汇总JA V A 相关基础知识1、面向对象的特征有哪些方面 1.抽象抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。
抽象包括两个方面,一是过程抽象,二是数据抽象。
2.继承继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承。
新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。
派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
3.封装封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
4. 多态性多态性是指允许不同类的对象对同一消息作出响应。
多态性包括参数化多态性和包含多态性。
多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
2、String 是最基本的数据类型吗基本数据类型包括byte、int、char、long、float、double、boolean 和short。
ng.String 类是final 类型的,因此不可以继承这个类、不能修改这个类。
为了提高效率节省空间,我们应该用StringBuffer 类3、int 和Integer 有什么区别Java 提供两种不同的类型引用类型和原始类型(或内置类型)。
Int 是java 的原始数据类型,Integer 是java 为int 提供的封装类。
Java 为每个原始类型提供了封装类。
原始类型封装类booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble 引用类型和原始类型的行为完全不同,并且它们具有不同的语义。
最近遇到的一些Java笔试题目总结:面试中常见的Java知识点

最近遇到的一些Java笔试题目总结:面试中常见的Java知识点最近在准备Java面试的过程中,遇到了一些常见的Java笔试题目。
这些题目覆盖了Java的各个方面,包括语法、集合、多线程、异常处理、IO等。
在这篇文章中,我将总结一下这些题目,并着重介绍一些Java面试中常见的知识点。
一、Java基础知识1. Java中的基本数据类型有哪些?Java中的基本数据类型包括整型、浮点型、字符型、布尔型。
整型分为byte、short、int、long四种;浮点型分为float、double两种;字符型为char;布尔型为boolean。
2. Java中什么是自动装箱和自动拆箱?自动装箱指的是将基本数据类型自动转为对应的封装类,例如将int自动转为Integer;自动拆箱指的是将封装类自动转为对应的基本数据类型,例如将Integer自动转为int。
3. Java中什么是静态变量、实例变量和局部变量?静态变量属于类,不属于某个对象,可以通过类名直接访问;实例变量属于对象,每个对象都有自己的一份数据;局部变量只在其定义的代码块中有效。
4. Java中什么是接口,如何实现一个接口?接口是一种规范或者约定,是一组方法的集合,没有具体的实现。
实现一个接口需要使用关键字“implements”,并重写接口中所有的方法。
5. Java中如何实现多态?Java中实现多态需要使用继承和重写,重写父类中的方法后,子类对象在调用该方法时会根据实际的类型执行对应的方法。
二、Java集合1. Java集合框架的体系结构是什么?Java集合框架可以分为三个层次:Collection接口、Map接口和其他集合接口。
Collection接口包括List、Set和Queue,Map接口包括Map和SortedMap。
2. Java中如何实现一个ArrayList、LinkedList?可以使用Arrays.asList()方法或者Collections.addAll()方法,也可以使用ArrayList和LinkedList的构造方法。
java笔试题大全带答案(经典11题)

java笔试题大全带答案(经典11题)1.不通过构造函数也能创建对象吗()A. 是(推荐学习:java面试题大汇总)B. 否分析:答案:AJava创建对象的几种方式(重要):(1) 用new语句创建对象,这是最常见的创建对象的方法。
(2) 运用反射手段,调用ng.Class或者ng.reflect.Constructor类的newInstance()实例方法。
(3) 调用对象的clone()方法(4) 运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。
(1)和(2)将显式调用构造函数;(3)它是内存中已有对象的副本,所以不会调用构造函数;(4)类的对象是从文件中恢复的,不会调用构造函数。
(1)和(2)将显式调用构造函数;(3)它是内存中已有对象的副本,所以不会调用构造函数;(4)类的对象是从文件中恢复的,不会调用构造函数。
2.下面哪些是对称加密算法()A. DESB. MD5C. DSAD. RSA分析:答案:A分析:常用的对称加密算法有:DES、3DES、RC2、RC4、AES 常用的非对称加密算法有:RSA、DSA、ECC使用单向散列函数的加密算法:MD5、SHA3.下面的代码段,当输入为2的时候返回值是()public static int get Value(int i){int result=0;switch(i){case 1:result=result +icase 2:result=result+i*2case 3:result=result+i*3}return result;}登录后复制A. 0B. 2C. 4D. 10答案:C分析:result = 0 + 2 * 2;4.以下Java代码段会产生几个对象public void test(){String a="a";String b="b";String c="c";c=a+""+b+""+c;System.out.print(c);}登录后复制分析:答案: 一个对象,因为编译期进行了优化,3个字符串常量直接折叠为一个5.Math.round(-11.2)的运行结果是。
面试笔试题总结(java)5篇

面试笔试题总结(java)5篇第一篇:面试笔试题总结(java)笔试题部分:1、(北京37期)编程题:编写一段程序用于生成随机码,入参为随机码长度,出参为随机码,要求随机码中必须包含大小写字母及数字,2015/5/5 15:59:382、(北京37期)编写一段程序用于判断一个字符串是否是合法的IP地址3、笔试题最难的内容:根据给定的表,写一个存储过程:客户信息表(客户编号、客户名称,联系方式...)订单表(订单号,订单名称,订单价格合计,订单明细信息id,客户编号)订单明细表(id,产品名称,单位,单价,数量)该存储过程要求根据客户编号,查询该客户的订单以及该订单下不同产品价格合计;即:客户编号、客户名称、订单号、订单名称、产品id、数量合计、价格合计4、笔试题最恶心的:英文阅读翻译等;脑筋急转弯;5、没涉及到的笔试题(自己百度或者求助同学)6、其他笔试题(老师将上一期学生笔试题内容以图片形式保存了,到时候按时下载)7、不用循环写一个小于5000以2的倍数递增并输出值?上机题:上机题可能有如下几个考点:1、手动搭建SSH框架,写一套增删改查2、解析一个XML文件(sax、DOM解析)3、写一个方法,实现扫描指定路径下某个文件夹中所有文件(获取文件个数,文件名称等);4、使用SSH框架,结合给定页面,实现功能(一般涉及到ajax)面试题部分:1、谈谈你对java的了解?Java是面向对象的、具有安全性、可移植性、跨平台性、并发性。
Java有三个平台J2EE、J2ME、J2SE2、面向对象的三个特性:继承封装多态(体现在哪里?)继承:子类继承父类,子类能够继承父类中非私有的方法或者变量,继承的好处是可以使程序大量的复用;缺点是如果过多继承会导致程序结构庞大封装:体现在包、访问修饰符以及setget方法取值,还有某些操作封装到方法中多态:实例化对象,一个类可以new多次,构造方法的重载重写也体现多态;3、面向对象的过程面向对象分析、面向对象设计、面向对象编程4、java的八个基本数据类型和对应的包装类和每一种类型的长度Byte、short、int、long、double、float、char、boolean5、异常和错误区别?运行时异常和非运行时异常(编译时异常)区别,说出几个你用过的异常?如何捕获异常?Throws和throw区别?异常:程序运行过程中产生的某些错误,程序人员通过修改程序可以修复的,程序员可以预知的错误;错误:表示系统级别的错误,例如系统崩溃,jvm内存溢出等;无法预知并且修改程序也无法避免的;运行时异常:表示程序运行过程中产生的异常,可以不强制try catch捕获或者不强制的throws,程序可以编译通过;非运行时异常:表示程序编译过程中就捕获的异常,需要强制try catch或者throws抛出,程序运行时,一旦产生非运行时异常,程序无法编译通过;如何捕获异常?通过try catch finally try{表示放可能产生异常的程序} catch(可能产生的异常){如果符合该异常,此时执行该语句段,表示这里要处理该异常}finally{不论是否有异常都执行该语句段} Throws:在方法声明时使用,表示该方法可能产生的异常,谁调用该方法,谁捕获处理;当前方法不处理不捕获Throw:表示抛出一个具体异常,使用在方法体中;例如:throw new Exception(“异常消息”);6、String和StringBuffer区别?为什么用StringBuffer拼字符串? String 表示不可长度字符串,finally不可被继承的类;StringBuffer:表示可变长度字符串,通过append方法追加字符串,默认有16位缓冲区,时能new实例化赋值,不能=号赋值;使用StringBuffer拼接字符串以为StringBuffer长度可变,并且通过append方法追加字符串,节省内存:例如:“a”+”b”+”c” 此时字符串池中有: a b c ababc几个字符串;而通过StringBuffer:则字符串池中有: ab c 和 abc7、线程和进程区别?如何理解锁?线程:一段可执行的代码段;多个线程共同完成一个任务;进程:一个可执行的应用程序;解决死锁可以通过:synchronized 关键词,实现多个线程中不同方法,在同一时间内,只能有一个线程在执行;其他线程等待,直到该线程释放资源;8、Wait和sleep方法区别?Wait方法是object类中的,sleep是Thread类中的9、如何定义一个线程?重写Thread类中的Run方法,或者实现Runnable接口中Run 方法10、Collection和Collections区别Collection是集合接口,Collections是封装了操作集合方法的类;11、Set和List区别Set无序,不可以重复;List有序,可以重复;12、LinkedList和vector以及ArrayList区别 LinkedList:链表实现,对该集合新增修改删除数据速度快,效率高,线程不安全;Arraylist:数组实现,对该集合操作时,从该集合中查询数据速度快,效率高,线程不安全;Vector: 数组实现,线程安全,效率低;13、HashMap和HashTable区别:HasMap: 键值对可以为空;线程不安全;HashTable:键值对不可以为空;线程安全;14、PreparedStatement 和Statement区别:前者使用预编译sql,效率高,安全,后者未采用预编译sql,效率低;15、名词解释:jdbc、JNDI、BI、VO、DAO、IOC、AOP、OOP、DI(依赖注入)、MVC、ORM(关系映射模型)、盒子模型、JDBC:java 数据库链接;即:java提供操作数据库的东西; JNDI:java 命名目录接口; BI:商业智能; VO:值对象;DAO:数据访问对象也就是:java访问数据库的第一层接口;IOC:控制翻转;(Spring时候讲)AOP:面向切面编程(Spring讲)OOP:面向对象编程;DI: MVC:是一种开发模式,M:model模型层,V view 视图层 C Controller 控制层;控制层主要负责模型层以及视图层数据交互;ORM:关系映射模型;(Hibernate,Mybatis等都是ORM框架)盒子模型:css中的一种模型;将页面元素认为是现实中盒子,他们都具有border 边框Content内容,padding(补白)内边距margin外边距等特点,这就是盒子模型;16、接口和抽象类区别?为什么用接口(弥补java单继承特点)?为什么用抽象类(提取公共部分内容,达到代码复用目的和多态)?接口:是Interface,是一种特殊的抽象类,为了弥补java单继承的特点,接口可以继承多个接口,也可以实现多个类,声明的变量为常量,方法默认public 省略abstract关键词;使用时必须通过类重写里面所有抽象方法;抽象类:是abstract 声明的类,可以有抽象方法,也可以有非抽象方法;不能被实例化,只能通过子类继承重写里面所有抽象方法,通过实例化子类使用;用抽象类可以提取公共部分,然后子类重写相关方法或者抽象方法,实现多态以及程序的复用;接口目的就是为了弥补单继承缺点;因为接口可以弥补多继承;17、Break(退出整个循环)、continue(退出当前循环,只能用于循环或者switch语句)和return(退出整个方法体表示该方法有返回值)区别18、Finally(异常语句块中的,表示有无异常都执行该方法体)、final(声明变量为常量,声明类不可被继承)、finalize(垃圾回收机制中自动调用的方法)区别19、如何获取随机小数?如何获取随机整数?Math.random()Random.类 20、io流的种类?哪里用到了io流,?什么时候用字节流,什么时候用字符流?说一下你用过的流有哪些?(1)字节流和字符流(2)文件上传下载以及解析xml时加载文件等,还有某些框架底层用到了(3)读取文件内容,即文本,使用字符流,其他情况都是用字节流(4)字节流:InputStram,OutputStream FileInputStram、FileOutputStreamBufferedInputStream。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA基础笔试题目1.JDK和JRE的区别?Java Development Kit. 包含了JRE、编译器等程序。
Java Runtime Environment指的是java运行时环境。
负责启动虚拟机,加载和运行class文件。
2.JVM是什么?工作原理?JVM是sun公司定义的规范。
java vitual mashine。
3.GC是什么?是如何回收对象的?Gabbage collection 垃圾回收器。
哪些对象需要回收?对象没有被引用。
4.System.gc()的作用是?程序员能直接调用垃圾回收器吗?GC不能被程序员调用。
System.gc()可以通知调用垃圾回收器。
GC程序员不能直接调用GC5.一个java源文件,可以定义多个class类吗?可以定义多个public类吗?可以。
6.java中,包含几种数据类型?基本数据类型byte 1个字节short 2个字节int 4个字节整形常量默认类型long 8个字节float 4个字节double 8个字节浮点常量的默认类型char 2个字节Unicode码char所占的字节要看编码的常用中文字符用utf-8编码占用3个字节(大约2万多字),但超大字符集中的更大多数汉字要占4个字节(在unicode编码体系中,U+20000开始有5万多汉字)。
GBK、GB2312收编的汉字占2个字节,严格地用iso8859-1无法表示汉字,只能转为问号。
boolean 1位引用数据类型(4个)7.&和&&的区别? 3&4和3&&4哪个写法是不对的?&,按位与//安慰与&& 逻辑与短路//逻辑与会产生短路的情况。
8.2x4=8. 最快的算法怎么实现?移位运算。
左移一位表示乘以一个2.9.堆区和栈区的区别?10. 包装类使用时,自动装箱和拆箱是怎么回事?Integer I = 3; //装箱。
实际上是一种编译器魔术。
编译器帮助我们修改了代码: Integer I = new Integer(3);int a = new Integer(3); int a =3 :int b=a.intValue() 11. equals 方法和==的区别?== 判断对象是否相同。
equals 是Object 类中的方法,他的默认实现也是比较引用地址。
不过,很多类重写了这个方法,一般用来比较对象中某些的属性的值。
Equals 是object 类中的方法 默认也是实现比较引用地址 重写此方法。
12. 说出你编程中,常见的异常。
至少5个。
UnsupportedOperationException 不支持的操作 unsupportedoperationExeception IllegalArgumentException 非法参数 IllggalArgumentExeceptionIndexOutOfBoundsException 索引出界 indexOutofBoundsException 算术异常ClassNotFoundExeception SqlExeception classCastExeception NumberFormatException自己去想。
13. 成员变量和静态变量的区别?在内存中如何存放?成员变量,实例变量:从属于对象。
存放在堆。
静态变量:从属于类。
存放在方法区14.重载是怎么回事?重写是怎么回事?重载overload:一个方法名定义多个方法。
参数列表不同(个数、顺序、类型不同),返回值不能构成重载。
重写override 覆盖。
将父类的方法覆盖。
15.java中继承如何实现?extends16.包含抽象方法的类一定是抽象类吗?是。
17.java中,聊聊的多态? 面向接口编程?多态的实现:父类引用指向子类对象。
在实际开发中,我们项目中使用了spring。
一般都采用面向接口编程。
我们将变量类型全部定义成接口的类型。
然后,运行时再通过spring注入具体的实现。
18.封装的实现中,说明private、protected、default、public的区别?private 私有。
只有自己类中可以调用。
protected 受保护。
子类中能用。
子类不在同一个包中能不能调用??? 不能3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。
default :同一个包中可以用。
public:公开的。
任何地方都可以用。
19.面向对象的三大特征有哪些?封装、继承、多态20.浮点数是有误差的。
如果要实现精确的计算?BigDecimal bigdecimal21.char类型,能表示汉字吗?为什么?22.final修饰变量、方法、类,都有什么区别?变量:常量方法:不能被子类重写类:不能被继承23.final,finally,finalize方法的区别?final修饰变量、修饰方法、修饰类。
finally在异常处理中使用。
表示不管有没有异常都会执行这里。
通常用来释放资源。
finaliize,垃圾回收这个对象前执行的方法。
24.String是不可变字符? 从源代码分析,为什么?内部有一个char数组。
这个数组使用了final修饰。
意味着只能初始化一次。
25.StringBuffer和StringBuilder的区别?StringBuffer可变字符序列,线程安全StringBuilder可变字符序列。
线程不安全。
一般用它。
最重要的区别是,当需要数据增长时StringBuffer只有一个实例,占用内存空间小。
而String每new一次增加一个实例,耗费资源多。
26.java中,类可以多继承吗?接口可以多继承吗?类不可以多继承。
接口可以多继承。
多实现27.数组是对象吗?是。
28.数组中元素默认初始化的规则是什么?跟成员变量的规则是一样的。
引用类型为null。
数值:0 布尔:false29.数组的长度是固定的吗?是的。
30.Collection、List和Set接口有什么联系?Collection是List和Set的父接口。
31.list和set接口的区别是?List:有序、可重复。
Set:无序、不可重复。
32.Collection和Collections的区别?Collection接口。
Collections是一个针对Collection提供的工具类。
Colections是一个对collection提供的工具类33.Vector、ArrayList的区别是?Vector线程安全。
ArrayList线程不安全。
多线程多例34.HashMap和HashTable的区别是?HashTable线程安全,HashMap线程不安全。
35.两个对象hashcode()方法返回值相同,那么调用equals方法一定为true吗?从规范上讲,要。
36.AWT、swing是什么关系? swing有什么优势?AWT 是抽象窗口组件工具包,是java 最早的用于编写图形节目应用程序的开发包。
Swing 是为了解决AWT 存在的问题而新开发的包,它以AWT 为基础的。
37.GUI编程中,有哪些常用的布局管理器?Flow、Border、Card、Grid等38.如何实现序列化?实现Serielizable。
他是一个序列化接口接口。
39.要把一个字节流对象转化成字符流对象,需要用到什么类?InputStreamReader,OutputStreamWriter //处理流40.进程和线程的区别是?进程是一个独立运行的程序,拥有独立的内存空间、代码。
一个进程中可以包含多个线程。
多个线程共享同一块空间和代码。
41.写出定义线程类的两种常见方式?继承Thread、实现Runnable接口//实现ruanable接口继承Thread类42.说说,Runnable接口和Thread的区别?Thread也是实现了Runnalbe接口。
Runnable只有一个run方法很适合继承Thread new一个实例启动start方法43.synchronized如何使用?44.如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能同时访问这个对象中任何一个synchronized方法如果直接修饰方法,意味着线程要调用这个方法必须要有这个方法所在的对象的锁。
如果修饰了方法块,上面可以声明需要拥有的对象锁。
这样的话,线程只有拥有指定对象的锁才能运行这个代码块。
不然,就等待。
45.说说:wait(), notify(), sleep()方法作用?wait(),线程进入阻塞状态。
释放持有的对象锁。
sleep(),线程进入阻塞状态。
但是,不是放持有的对象锁。
notify(),唤醒等待池中的线程46.java中,反射机制的基本原理?Class类得作用是?反射机制是java动态性重要手段。
当我们加载完毕一个类的时候,会同时创建一个Class 类型的对象,Class类型的对象它包含了这个类的完整的数据结构。
就像一个镜子一样,通过这个镜子我们可以得到对应类的所有信息。
而且,Class类还包含了如何操作属性、构造器、方法的接口。
这样的话,我们就可以通过反射机制动态的创建对象、动态的调用对象的方法、动态的操作属性。
47.通过Class类,可以访问和设置一个类得私有方法、私有成员变量吗?如果能,怎么做?可以直接操作私有方法。
可以操作私有成员变量。
通过setAccessible(true)。
SetAcessible(true)48.通讯方式中,TCP和UDP的区别是?TCP:transfer control protocol 传输控制协议。
面向连接的、安全的。
效率不高的。
我们一般用的Socket就是TCP连接。
我们访问网站也是TCP/IP协议,建立连接。
Tcp/ipUDP: User Datagram Protocol 用户数据包协议。
无连接、不安全、效率高。
49.内部类??java手写编程题目1.2.3.5.编写一个生产者和消费者的程序6.7.8.“abcdefg”这个字符串,如何将它反转过来?两种方式:XML问题1.xml解析的两种基本方式:DOM和SAX的区别是?DOM: document object model。
一次加载,随机操作文档。
SAX: simple api for xml 。
按照流的方式加载。
//按照流的方式加载2.平时工作中,xml解析你是使用什么?JDOMDOM4J3.dtd、schema干嘛的?dtd: document type definition 文档类型定义。