JAVA面试宝典,java面试题,java面试指南,java面试必备试题,java程序员必备面试题
更新时间:2023-07-23 00:13:01 阅读量: 实用文档 文档下载
这个文档对求职人员寻找到一份java工作有重要的作用,特别是对一个刚毕业的大学生进入IT行业更是有很好的指导作用
考官:java中的反射机制是什么,有什么作用啊?
要点:
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为java语言的反射机制。Java反射机制主要提供了以下功能:在运行时判定任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判定任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。
问题:Java为什么要引入异常处理机制
要点:
程序执行时经常会出现除零溢出、数组越界等运行错误,影响程序的正常执行。错误及异常是不可避免的,一个好的应用程序,在满足用户要求的各种功能的同时,还应具备能预见程序执行过程中可能产生的各种异常的能力,并能为异常情况给予恰当处理。在Java语言中,这种技术就是异常处理 Java语言通过面向对象的异常处理机制来解决运行期间的错误,可以预防错误的程序代码或系统错误所造成的不可预期的结果发生。减少编程人员的工作,增加了程序的灵活性,增加程序的可读性和健壮性.
问题:什么是JAVA多线程机制
一.什么是多线程?
多线程是指同时存在几个执行体,按照不同的执行线索共同工作的情况。
二.什么是程序,进程和线程?
程序是一段静态的代码,是应用软件执行的蓝本。
进程是程序的一次动态执行过程,它对应了从代码加载,执行至执行完毕的一个完整的过程。这个过程也是进程本身从生产,发展至消亡的过程。
线程是比进程更小的执行单位。
区别:一个进程在其执行过程中,可以产生多个线程,形成多条执行线索,每条线索即每个线程也有其从生产,发展到消亡的过程。
三.线程的生命周期
线程的生命周期可分为四个阶段,新建,运行,中断和死亡。
新建:当一个Thread类或者其子类的对象被声明并创建时,新生成的线程就处于新建装他,有了相应的内存空间和其他资源。
运行:线程被创建之后,就有了运行的条件了,一旦轮到它来享用CPU资源时,便可以摆脱创建它的主进程开始了自己的生命周期。
中断:一个正在执行的线程可能被认为的中断,让出CPU使用权,进入阻塞状态。线程阻塞时,不能进入排队队列,只有当引起阻塞的原因被撤销时,线程才可转入就绪状态,重新进入排队队列中,等待CPU资源,以便从中止处开始运行。
死亡:线程死亡有2种情况,一是正常运行,完成了它全部的工作。另一种是线程被提前强制终止。死亡状态下的线程,释放了被分配的内存。
四.线程的优先级
在java系统中,线程调度依据优先级基础上的“先到先服务”原则。
Thread类的setPriority(int a)方法可设置线程的优先级,取值有Thread.MIN_PRIORITY,
Thread.MAX_PRIORITY, Thread.NORM_PRIORITY三种,默认级别为Thread.NORM_PRIORITY.
五.如何实现多线程
Java编程中实现多线程有两种方式:一是继承Thread类,用其子类创建线程,二是实现Runnable接口
六.线程同步
当两个或者多个线程同时访问一个变量,并且一个线程需要改变某个变量时,需要对修改数据的方法修饰为synchronized.
这个文档对求职人员寻找到一份java工作有重要的作用,特别是对一个刚毕业的大学生进入IT行业更是有很好的指导作用
当一个线程在使用同步方法时需要用到某个变量,而此变量又需要其他线程修改后才能符合本线程需要,,此时用wait(),让本线程等待。
其他线程如果在使用同步方法时不需要等待,那么当它使用完该方法后,用notifyAll()方法通知所有由于使用该同步方法而处于等待的线程结束等待,(notify()方法只能通知第一个处于等待的线程结束等待)
七.Interrupt()方法
一个线程在run方法执行完后便会自动消灭,如果想在run方法执完毕前就消灭线程,可以使用interrupt()方法,此时该线程会捕获InterruptedException异常,在处理该异常的语句里告诉线程立刻结束run方法的执行。
问题:java多线程使用cup是什么机制
要点:java获得cup使用权根据优先级,高优先的先执行,这个和操作系统是一样的,但是优先级别的控制是通过虚拟机控制的,然后在执行的时候是通过操作系统时间片的机制,多线程java有自己的调度算法,虚拟机会自动调度执行的线程,而操作系统处理的是cpu的执行,其实两者都有调度算法,xp的机制我想和
1、main方法是怎么写的
public static void main(String [] args){}
2、变量的命名规则是怎么样的?
采用驼峰命名法,见名知意,以小写字母开始。
常量命名:全部大写。
方法命名: 小写字母开始,驼峰命名。
类命名:首字母大写。
3、if else 和写两个if 有什么区别
if else 只执行其中一条,
写两个if,两个都要执行
4、在JAVA中直接写浮点常数,默认是什么类型?
默认是double类型
5、什么是标识符?它的命名规则是什么?
凡是可以命名的地方都叫标识符。
标识符有两种:1、系统标识符(关键字);
2、用户标识符
以字母、数字、下划线、$复活组成,不能以数字开头
6、什么是变量?
变量是命了名的内存空间,并且空间的值是可以改变的。
7、JDK与JRE分别是什么?
JDK叫java开发工具集,包括编译环境、运行环境、调试环境以及基础类库。
JRE叫java运行环境,包括虚拟机、核心类库、以及健接文件。
8、try-catch-finally三个基本块的作用?catch里的代码是干什么的?
try块表示此处代码可能引发异常
catch块捕获try块的异常
finally块通常用于资源的回收,连接关闭,清理工作等
try-catch-finally不能单独存在,try块后必须跟catch或finally
catch或finally前必须跟try块
9、继承类和实现接口分别怎么做?
继承用extends关键字继承
定义接口用interface关键字
这个文档对求职人员寻找到一份java工作有重要的作用,特别是对一个刚毕业的大学生进入IT行业更是有很好的指导作用
实现接口用implements
10、如何去获得字符串的长度?
调用String类的length()方法
11、Java的基本数据类型有哪些?
int 4字节 整型
byte 1字节 整型
char 2字节 整型
short 4字节 整型
long 8字节 整型
double 8字节 浮点
float 4字节 浮点
boolean 布尔
12、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递
值传递,Java里没有引用传递
13、列出至少5个最常见到的runtime exception并描述在什么情况下出现
IOException在未找到文件时会抛出
NullPointerExecption在对象引用指向空时会抛出
ArrayIndexOutOfBoundsExecption在数组下标越界时会抛出
NumberFormatException在字符串不能转换成数字时会抛出
ArithmeticException在分母为零时会抛出
14、ArrayList和Vector的区别
vector是线程安全的,所以效率低,
Arraylist是线程不安全的,但是效率高。
15、在IO中字节流和字符流的父类是什么?
字节流父类是InputStrean和OutputStream
字符流父类是Reader和Writer
16、什么是包?定义包有什么好处?
文件夹。
好处:1、可以有效的组织相关类;
2、可以做到信息的隐藏。
17、怎么样知道磁盘一个目录中有哪些文件?
1、File对象.list()方法;
2、File对象.listFile()方法。
18、如何获得一定范围的随机整数?
x+Math.random()*y 其中x是位移数,确定最小范围,y是放大系数,确定最大数。
(x-y)*Math.randon()+y
19、如何获得java当前的工作目录
使用System.getProperty(“user.dir”)能够获得当前工作目录的字符串地址。
20、怎么样判断一个异常类是checked异常还是unchecked异常?
判断当前异常类,是否是RuntimeException的子类,如果是,则是运行期异常否则是编译期异常。
21、log4j一共有几个级别?分别是哪些?级别的高低有什么样的区别.
log4j有五个级别:
DEBUG:调试
这个文档对求职人员寻找到一份java工作有重要的作用,特别是对一个刚毕业的大学生进入IT行业更是有很好的指导作用
INFO:信息
WARN:警告
ERROR:错误
FATAL:崩溃
21、静态变量和成员变量应该怎么访问?
静态变量可以通过对象. 和类名. 的方式访问
成员变量通过对象.的方式访问
22、如何将一个字符串转成一个基本数据类型
Int x = Integer.parselint(“32”);
Double d = Double.parseDouble(“4.5”);
23、如何让JFrame的初始位置居中(在不同的分辨率中)
窗体对象.setLocationRelativeTo(null);
24、谈谈集合的作用
方便对数据进行 存储,检索,操作,传输。
25、类的修饰符能不能是private、static、protected?
内部类可以,因为内部类相当于外部类的属性
26、Try块中是否所有的语句都一定会执行,为什么?
不是,一但try中发生了异常,那么异常发生处下面的语句就不会执行,专区catch块执行
27、什么时候用继承,什么时候用接口?
当需要重用属性和方法时使用继承
当只需要重用方法时用接口
28、finally是不是什么时候都会执行?
是当虚拟机关闭,System.exit(0),finally内容不会执行;
29、什么是主线程?
当main()方法执行时会产生主线程,1最先开始 2最后结束
3产生其他子线程
4回收资源
30、进行IO流操作时,如果操作的文件不存在会发生什么情况?
读取流在文件不存在时,会抛出文件未找到异常
写入流在文件不存在时,会创建文件,但如果该文件所在目录不存在,同时会抛出文件未找到异常
31、IO流操作的步骤是怎么样的?
创建流 操作流 关闭流
32、finally的作用是什么?
无论是否有异常都会执行的代码块,一般用于资源回收,比如流动关闭、数据库的关闭
34、当一个线程进入一个对象的一个同步方法后,能否进入其它非同步方法? 么?一般在什么时候使用? 可以,但不能进入其他同步方法。
33、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的代码会不会被执行,什么时候被执行?
Finally{}在程序开启时只执行它本身里的代码。
会执行,在方法返回前执行
35、如何启动线程,它直接调用run()方法有什么区别?
启动线程调用start方法,用start方法启动线程后,是多个线程同时进行,
使用run()是普通方法,是不会产生新的线程,是单线程。
36、数组有没有length()这个方法? String有没有length()这个方法?
这个文档对求职人员寻找到一份java工作有重要的作用,特别是对一个刚毕业的大学生进入IT行业更是有很好的指导作用
数组有length属性,String有length方法
37、GC是什么? 为什么要有GC?
GC叫做垃圾回收器,为了回收内存不再使用对象,释放内存空间,避免内存溢出。
38、线程同步化会带什么样的结果?
1:可以使数据安全
2:效率会降低
39、什么是线程安全?
当两个或两个以上线程,访问同一个资源时,为了保证数据的安全,只允许同一时间
只能有一个线程访问该资源。
40、服务器类有一个while循环,能否直接while(true)?
可以,但这样缺乏灵活性,没有办法控制循环结束,最好使用boolean变量来控制
循环的运行和结束。
41、java帮助文档是如何生成的?
Javadoc.exe
42、什么时候类名和文件名必须一致?
当类的定义为Public时,类名必须与文件名保存一致
43、如何将实现包装类和基本数据类型转化?
包装转基本1:包装类对象.xxxvalue(值);2直接赋值
基本转包装1: Integer = new Integer(90);2直接赋值
44、类InputStream中方法read()的返回值是什么?读出的是什么?
Read()返回的是int,,读取的数据
read(byte[]) 返回int 当前读取的字节数
45、如果一个类实现一个接口,可不可以不实现接口里定义的所有方法?
可以,但这个类只能是抽象类
46、构造方法和方法有什么区别?构造方法能不能被重载,能不能被重写?
构造方法和雷鸣相同,构造方法没有返回类型,在对象创建时,被调用。
构造方法可以重载,不能重写。
47、请列举switch( )括号中能接受的所有数据类型。
Char byte short int
48、GUI的布局管理器常见的有哪几种?
绝对布局
边界布局管理器
卡片布局管理器
流布局管理器
网格布局管理器
49、断言有什么作用?
断言是一个布尔表达式,当表达式为真继续执行,表达式为假,则抛出一个断言错误,主要用于测试。
50、String和StringBuffer的区别?
String具有长度不可变的特性,当String做添加、删除\修改时,会产生一个新对象
StringBuffer是String类的一个改进版,是缓冲区的一个对象,当对该对象进行字符的
添加、修改时,不会产生新对象。
51、接口里方法修符是什么?
Public abstract
52、接口里可以定义变量吗?
这个文档对求职人员寻找到一份java工作有重要的作用,特别是对一个刚毕业的大学生进入IT行业更是有很好的指导作用
不行,就可中的变量修饰符是public static final 只能定义常量
53、说几个String常用的方法
String.length() split() substring() equals() indexOf() lastundexOf()
54、在Dos界面下如何编译并执行Java程序?
Javac 文件名
Java 类名
55、创建一个线程有几种方法?
集成 thread 类
实现Runnable接口
56、项目开发的流程是怎么样的?
市场调研,需求分析,概要设计,详细设计,编码,测试 ,维护。
57、java语言的特点是什么?
简单,面向对象,分布式,健壮,可移植,解释性,安全,多线程,垃圾回收
58、main方法中有个参数String[] args。这个参数的值是由谁传递给它的。 执行java类时 ,由控制台传入
59、java中采用什么字符编码集?char类型能不能放入一个中文字? Unicode 该字符集一个字符有2个字节。,
char是两个字节可以放一个中文,因为中文是两个字节
60、byte的取值范围
-128~+127(-2的7次方to2的7次方-1)
61、GET方式和POST方式提交时,流有什么不同?
GET和POST是HTTP协议请求服务器的两种方式
GET方式页面参数,是附加在URL后面。/login?userName=XXX
POST方式,页面的参数是放在流最后的其他x86平台的差不多,
正在阅读:
JAVA面试宝典,java面试题,java面试指南,java面试必备试题,java程序员必备面试题07-23
测试项目及方法标准11-16
施工组织设计306-21
县委党校支部党建工作总结04-02
先进制造技术复习资料02-28
林清玄 - 窗户和镜子01-12
2010年哈师大附中、东北师大附中、辽宁省实验高三第二次联合模拟07-07
生物制品学试卷A01-27
健康教育知识讲座总结03-12
新课程理念下高中化学有效教学的策略研究03-29
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- JAVA
- 试题
- 面试
- 必备
- 程序员
- 宝典
- 指南
- 日语单词记忆小窍门
- Unit 9 E-commerce and Logistics
- 寒假作业展评课教学设计
- 新教师培训 如何备课
- 房地产评估的假设开发法
- 发展电子银行业务的建议
- 2017中传新闻传播硕士考研参考书汇总
- 乾艺茶城招商战略书
- 中国建筑一局集团公司导师带徒实施办法(最终版)
- 医疗保险定点医疗机构 年 月费用指标统计表
- 企业档案工作规范(DAT42-2009)
- Lenovo Storage 产品线介绍
- 超市营销关键指标分析
- 全国2010年10月自学考试管理心理学试题
- 学习数学建模需要哪些书籍及软件
- 康明斯发动机电控系统及其故障诊断初探
- 刘大哥讲话理太偏
- 八上 单元三 活动2 运动奥秘新体验 教学设计
- 党风廉政建设格言警句大全
- _真人秀_节目中的叙事_兼谈它的隐私故事