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 文档类型定义。