×

java程序员面试题

JAVA面试题?面试JAVA程序员最基本的面试题有哪些

admin admin 发表于2022-05-26 14:27:20 浏览122 评论0

抢沙发发表评论

JAVA面试题


1.把一个小于十进制9999的二字节数字转换成16进制的数,让其的10进制和16进制是一样的。比如:十进制的9527转成十六进制的0x9527。

2.base32是一种编码形式,每次取5bit。将“ABCDEFGHIJKLMNOPQRSTUVWXYZ“提取出来。
例如:

|-8bit-| |-8bit-| |-8bit-| |-8bit-| |-8bit-| |-8bit-| |-8bit-| |-8bit-| |-8bit-|
xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
xxxxx
xxx xx
xxxxx
x xxxxx
xxx xx
xxxxx
x xxxx
xxxx x
xxxxx
xx xxx
xxxxx
以此类推

3.假如你要做一个物品管理系统,建立模型对象。有电脑主机和电视机。怎样建立模型对象。如果要添加电冰箱,需要修改吗。如果添加沙发,又要如何修改

面试JAVA程序员最基本的面试题有哪些


java异常机制的原理与应用
答:每当程序出现异常之后,如果程序没有进行相应的处理,则程序会出现中断现象。
实际上,产生了异常之后,JVM会抛出一个异常类的实例化对象,如果此时使用了try语句捕获的话,则可以进行异常的处理,否则,交给JVM进行处理。当try语句捕获异常之后,将与catch语句的异常类型进行匹配,如果匹配成功则执行catch内的语句。简单的应用:在所以throws语句的地方加入try-catch。标准应用:try-catch-finally-throw-throws一起使用。
2. 垃圾回收机制的优点
答:释放无用的对象所占用的空间。方式:自动回收,手动回收。使用System.gc(),实际上调用Runtime.getRuntime().gc()
3. Error与Exception区别
答:Error是jvm进行处理,是jvm出错
exception是可以由程序处理的,可以用try-catch捕获的
4. final,finally,finallize
答:final定义的变量的值不能改变,定义的方法不能被覆盖,定义的类不能被继承
finally是异常的统一出口,finallize是垃圾回收前的收尾工作,是Object类定义的
5. Anonymous Inner Class是否可以extends,是否可以implements Interface
答:允许继承和实现,因为匿名内部类就是在抽象类和接口的基础上发展起来的
6. Static Nested Class 与Inner Class的区别
答:使用Static定义的Class就是外部类,可以通过外部类. 内部类直接访问
而Inner Class是不能被外部访问的,只能通过外部类的实例再找到内部类实例。
7. HashMap and HashTable?
答:HashMap:1) released in jdk 1.2,new Class 2)采用异步处理方式,性能较高,是非线程安全的 3)允许null
HashTable:1)released in jdk 1.0 ,old Class 2)采用同步处理方式,性能低,是线程安全的3)不允许null
8. assert代表什么?
答:asserts是jdk 1.4之后发布的新关键字,表示断言,即程序执行到某个地方肯定是预计的值,一般开发很少使用。要使用assert,必须加上 -ea参数
9. gc是什么?
答:gc是garbage collection,垃圾回收,使用gc可以进行垃圾空间的释放
10. String s = new String(“xyz“)产生了几个对象?
答:一个匿名对象xyz,在栈空间内。一个new实例化的对象,在堆空间内。
11. sleep() and wait()?
答:sleep()是Thread类定义方法,表示线程的休眠,可以自动唤醒
wait()方法是Object类定义的方法,需要手动notify()和notifyAll()//sleep()不释放资源,wait()释放资源
12. java中存在goto,但不能使用
13.数组有没有length(),String有没有length()?
答:数组有length属性,String有length()
14. Overload与Override的区别
答:Overload:重载
|- 在一个类中定义的若干方法
|- 所有的方法名相同,但参数类型或个数不同
|- 只有参数有关,与返回类型无关
Override:覆写
|- 在继承的关系中
|- 子类定义了父类同名的方法,参数类型或个数最好完全一样。
|- 访问权限不能更严格
15. Set里的元素不能重复,用什么方法区分?==与equals()方法的区别
答:set里的元素是不能重复的,用iterator()方法来区分重复与否,==属于地址比较,
==用于比较引用和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true
而在比较引用时,如果引用指向内存中的同一对象,结果为true
16. 列出常见的 runtime exception
答:NumberFormatException/ArrayOutIndexofBoundException/NullPointerException/ClassCastException
17. abstract class 和 interface有什么区别?
答:抽象类:
|-由抽象方法和常量、变量、全局常量、构造方法、普通方法组成
|-使用abstract声明
|-子类要通过extends继承抽象类,子类如果不是抽象类,则必须覆写抽象类的全部抽象方法
|-存在单继承的局限
|-抽象类可以实现若干个接口
接口:
|-由抽象方法和全局常量组成
|-使用interface关键字
|-子类要通过implements实现接口,子类如果不是抽象类,则必须覆写抽象类的全部抽象方法
|-一个子类可以实现多个接口
|-接口不能继承一个抽象类,但允许继承多个接口
18. 启动一个线程要用start(),因为要通知jvm进行cpu资源的分配
19. try{}里面有一个return,问finally{}里面的代码是否执行,在什么时机执行?
答:finally{}里面的代码执行,在return之前。
20. 写一个singleton
答:singleton的核心就是构造方法私有化,Class,Runtime都采用单例
package com.leongod.demo;
public class Singleton(){
private static final sin = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return sin;
}
}
21. 程序设计:输入一组数字,然后排序输出
答:package com.leongod.demo;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class IO {
public static void main(String args) throws Exception {
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
System.out.println(“请输入一组数字,中间用空格分割:“);
String str = buf.readLine();
Set《Integer》 set = new TreeSet《Integer》();
String arr = str.split(“ “);

for(String s : arr) {
if (s.matches(“\\d+“)) {
set.add(Integer.parseInt(s));
}
}

Iterator《Integer》 it = set.iterator();
System.out.println(“排序后的结果:“);
while (it.hasNext()) {
System.out.print(it.next() + “,“);
}
}
}
22.列出目录内的文件
package com.leongod.demo;
import java.io.File;
import com.sun.org.apache.xpath.internal.functions.FuncBoolean;
public class FileDemo {
public static void main(String args) {
?? File file = new File(“D:“ + File.separator + “kongkong“);
?? fun(file);
}

public static void fun(File file) {
if (file.isDirectory()) {
File lf = file.listFiles();
if (lf != null) {
for(File f : lf) {
fun(f);
}
}
}else {
System.out.println(file.toString());
}
}
}
23. char可以存一个中文汉字吗?
答:可以,使用了unicode编码
24.多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
答:两种多线程方法,继承Thread类,实现Runnable接口
|-Thread类是Runnable接口的子类
|-使用Runnable接口可以实现资源共享的目的
|-所有线程操作都必须通过Thread类的start()方法启动
两种实现同步的方法:
|-同步代码块:Synchronized(this)
|-同步方法
25.f=3.4是不对的,3.4默认是double类型的
26.String and StringBuffer?
答:String 不可以修改,StringBuffer可以修改
27.Class.forname向容器中加载驱动程序
28.int与Integer有什么区别?
答:int是基本数据类型,Integer是包装类
在jdk1.5以后,可以实现自动装箱和拆箱
29.2*8有效的方法是移位操作:2《《3
30.请说出类集框架的完整结构
答:类级框架的最大接口:Collection、Map、Iterator、Enumeration
Collection:存放单值
|-List:允许有重复内容
|-ArrayList:异步处理,新的操作类,非线程安全
|-Vector:同步处理,旧的操作类,线程安全,支持Enumeration
|-Set:不允许有重复的内容,依靠hashCode()和equals()进行重复的验证
|-HashSet:无序存放
|-TreeSet:有序存放,按Comparable排序
|-Map:存放一对值
|-HashMap:新的类,异步处理,非线程安全,允许有null
|-HashTable:旧的类,同步处理,线程安全,不允许有null
|-TreeMap:有序排列,按key配需
|-Iterator:迭代输出,依靠collection接口中的iterator方法输出,是新的输出标准
31.是否可以继承String类?答:不可以,因为使用了final关键字

求:JAVA程序员面试题


哎 我应聘了N家公司 给你一些题好了
华为的
第一部分:选择题
  QUESTION NO: 1
  1、public class Test {
  public static void changeStr(String str){
  str=“welcome“;
  }
  public static void main(String args) {
  String str=“1234“;
  changeStr(str);
  System.out.println(str);
  }
  }
  Please write the output result :
  QUESTION NO:2
  1. public class Test {
  2. static boolean foo(char c) {
  3. System.out.print(c);
  4. return true;
  5. }
  6. public static void main( String argv ) {
  7. int i =0;
  8. for ( foo(’A’); foo(’B’)&&(i《2); foo(’C’)){
  9. i++ ;
  10. foo(’D’);
  12. }
  13. }
  14. }
  What is the result?
  A. ABDCBDCB
  B. ABCDABCD
  C. Compilation fails.
  D. An exception is thrown at runtime.
  QUESTION NO: 3
  1. class A {
  2. protected int method1(int a, int b) { return 0; }
  3. }
  Which two are valid in a class that extends class A? (Choose two)
  A. public int method1(int a, int b) { return 0; }
  B. private int method1(int a, int b) { return 0; }
  C. private int method1(int a, long b) { return 0; }
  D. public short method1(int a, int b) { return 0; }
  E. static protected int method1(int a, int b) { return 0; }
  QUESTION NO: 4
  1. public class Outer{
  2. public void someOuterMethod() {
  3. // Line 3
  4. }
  5. public class Inner{}
  6. public static void main( Stringargv ) {
  7. Outer o = new Outer();
  8. // Line 8
  9. }
  10. }
  Which instantiates an instance of Inner?
  A. new Inner(); // At line 3
  B. new Inner(); // At line 8
  C. new o.Inner(); // At line 8
  D. new Outer.Inner(); // At line 8//new Outer().new Inner()
  QUESTION NO: 5
  Which method is used by a servlet to place its session ID in a URL that is written to the servlet’s response output stream?
  A. The encodeURL method of the HttpServletRequest interface.
  B. The encodeURL method of the HttpServletResponse interface.
  C. The rewriteURL method of the HttpServletRequest interface.
  D. The rewriteURL method of the HttpServletResponse interface.
  QUESTION NO: 6
  Which two are equivalent? (Choose two)
  A. 《%= YoshiBean.size%》
  B. 《%= YoshiBean.getSize()%》
  C. 《%= YoshiBean.getProperty(“size“)%》
  D.
  E.
  F.
  G.
  QUESTION NO: 7
  Which of the following statements regarding the lifecycle of a session bean are correct?
  1. java.lang.IllegalStateException is thrown if SessionContext.getEJBObject() is invoked when a stateful session bean instance is passivated.
  2. SessionContext.getRollbackOnly() does not throw an exception when a session bean with bean-managed transaction demarcation is activated.
  3. An exception is not thrown when SessionContext.getUserTransaction() is called in the afterBegin method of a bean with container-managed transactions.
  4. JNDI access to java:comp/env is permitted in all the SessionSynchronization methods of a stateful session bean with container-managed transaction demarcation.
  5. Accessing resource managers in the SessionSynchronization.afterBegin method of a stateful session bean with bean-managed transaction does not throw an exception.
  第二部分:概念题
  1. 描述Struts体系结构?对应各个部分的开发工作主要包括哪些?
  3. JSP有哪些内置对象和动作?它们的作用分别是什么?
  4、SQL问答题
  SELECT * FROM TABLE
  和
  SELECT * FROM TABLE
  WHERE NAME LIKE ’%%’ AND ADDR LIKE ’%%’
  AND (1_ADDR LIKE ’%%’ OR 2_ADDR LIKE ’%%’
  OR 3_ADDR LIKE ’%%’ OR 4_ADDR LIKE ’%%’ )
  的检索结果为何不同?
  5、SQL问答题
  表结构:
  1、 表名:g_cardapply
  字段(字段名/类型/长度):
  g_applyno varchar 8;//申请单号(关键字)
  g_applydate bigint 8;//申请日期
  g_state varchar 2;//申请状态
  2、 表名:g_cardapplydetail
  字段(字段名/类型/长度):
  g_applyno varchar 8;//申请单号(关键字)
  g_name varchar 30;//申请人姓名
  g_idcard varchar 18;//申请人身份证号
  g_state varchar 2;//申请状态
  其中,两个表的关联字段为申请单号。
  题目:
  1、 查询身份证号码为440401430103082的申请日期
  2、 查询同一个身份证号码有两条以上记录的身份证号码及记录个数
  3、 将身份证号码为440401430103082的记录在两个表中的申请状态均改为07
  4、 删除g_cardapplydetail表中所有姓李的记录
“);
-java程序员面试题