收录各种猥琐的Java笔试/面试题目

本文精选了一系列Java面试题目,涵盖基础语法、运算符、类继承、集合操作等方面,旨在帮助读者巩固Java基础知识,提升面试准备效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文收录各种猥琐的Java笔试/面试题,一些比较容易忘记的,不定期更新。也希望大家在底下留言,贴出自己碰到或看到的各种猥琐笔试、面试题目。

J2EE基础部分

1、运算符优先级问题,下面代码的结果是多少?(笔试)

  1. packagetest;
  2. publicclassTest{
  3. publicstaticvoidmain(String[]args){
  4. intk=0;
  5. intret=++k+k+++++k+k;
  6. //ret的值为多少
  7. System.err.println(ret);
  8. }
  9. }
package test; public class Test { public static void main(String[] args) { int k = 0; int ret = ++k + k++ + ++k + k; // ret的值为多少 System.err.println(ret); } }2、运算符问题,下面代码分别输出什么?(笔试)
  1. packagetest;
  2. publicclassTest{
  3. publicstaticvoidmain(String[]args){
  4. inti1=10,i2=10;
  5. System.err.println("i1+i2="+i1+i2);
  6. System.err.println("i1-i2="+i1-i2);
  7. System.err.println("i1*i2="+i1*i2);
  8. System.err.println("i1/i2="+i1/i2);
  9. }
  10. }
package test; public class Test { public static void main(String[] args) { int i1 = 10, i2 = 10; System.err.println("i1 + i2 = " + i1 + i2); System.err.println("i1 - i2 = " + i1 - i2); System.err.println("i1 * i2 = " + i1 * i2); System.err.println("i1 / i2 = " + i1 / i2); } }3、下面代码的结果是什么?还是抛出异常?(笔试)
  1. packagetest;
  2. publicclassTest{
  3. publicvoidmyMethod(Stringstr){
  4. System.err.println("string");
  5. }
  6. publicvoidmyMethod(Objectobj){
  7. System.err.println("object");
  8. }
  9. publicstaticvoidmain(String[]args){
  10. Testt=newTest();
  11. t.myMethod(null);
  12. }
  13. }
package test; public class Test { public void myMethod(String str) { System.err.println("string"); } public void myMethod(Object obj) { System.err.println("object"); } public static void main(String[] args) { Test t = new Test(); t.myMethod(null); } } 4、假设今天是9月8日,下面代码输出什么?(笔试)
  1. packagetest;
  2. importjava.util.Date;
  3. publicclassTest{
  4. publicstaticvoidmain(String[]args){
  5. Datedate=newDate();
  6. System.err.println(date.getMonth()+""+date.getDate());
  7. }
  8. }
package test; import java.util.Date; public class Test { public static void main(String[] args) { Date date = new Date(); System.err.println(date.getMonth() + " " + date.getDate()); } } 5、下面代码的输出结果是什么?
  1. packagetest;
  2. publicclassTest{
  3. publicstaticvoidmain(String[]args){
  4. doubleval=11.5;
  5. System.err.println(Math.round(val));
  6. System.err.println(Math.floor(val));
  7. System.err.println(Math.ceil(val));
  8. }
  9. }
package test; public class Test { public static void main(String[] args) { double val = 11.5; System.err.println(Math.round(val)); System.err.println(Math.floor(val)); System.err.println(Math.ceil(val)); } } 6、编程输出一个目录下的所有目录及文件名称,目录之间用tab。(笔试)
  1. packagetest;
  2. importjava.io.File;
  3. publicclassTest{
  4. publicstaticvoidmain(String[]args){
  5. newTest().read("D:/test","");
  6. }
  7. publicvoidread(Stringpath,Stringtab){
  8. Filefile=newFile(path);
  9. File[]childFiles=file.listFiles();
  10. for(inti=0;childFiles!=null&&i<childFiles.length;i++){
  11. System.err.println(tab+childFiles[i].getName());
  12. if(file.isDirectory()){
  13. read(childFiles[i].getPath(),tab+"\t");
  14. }
  15. }
  16. }
  17. }
package test; import java.io.File; public class Test { public static void main(String[] args) { new Test().read("D:/test", ""); } public void read(String path, String tab) { File file = new File(path); File[] childFiles = file.listFiles(); for (int i = 0; childFiles != null && i < childFiles.length; i++) { System.err.println(tab + childFiles[i].getName()); if (file.isDirectory()) { read(childFiles[i].getPath(), tab + "\t"); } } } } 不要觉得很简单,最起码你要记得返回当前文件夹下的所有文件的方法是listFiles(),isDirectory别拼错了。

7、从键盘读入10个整数,然后从大到小输出。(笔试)

  1. packagetest;
  2. importjava.util.Arrays;
  3. importjava.util.Comparator;
  4. importjava.util.Scanner;
  5. publicclassTest{
  6. publicstaticvoidmain(String[]args){
  7. Scannerin=newScanner(System.in);
  8. //注意这里的数组,不是int的
  9. Integer[]arr=newInteger[10];
  10. for(inti=0;i<10;i++){
  11. arr[i]=in.nextInt();
  12. }
  13. Arrays.sort(arr,newComparator<Integer>(){
  14. @Override
  15. publicintcompare(Integero1,Integero2){
  16. if(o1>o2)return-1;
  17. if(o1<o2)return1;
  18. return0;
  19. }
  20. });
  21. System.err.println(Arrays.toString(arr));
  22. }
  23. }
package test; import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意这里的数组,不是int的 Integer[] arr = new Integer[10]; for (int i = 0; i < 10; i++) { arr[i] = in.nextInt(); } Arrays.sort(arr, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { if (o1 > o2) return -1; if (o1 < o2) return 1; return 0; } }); System.err.println(Arrays.toString(arr)); } } 自己手写排序算法的可以无视此题,如果是Arrays.sort()的,请注意Comparator与Comparable接口的区别,别搞混了。

8、下面代码的结果是什么?

  1. packagetest;
  2. publicclassTestextendsBase{
  3. publicstaticvoidmain(String[]args){
  4. Baseb=newTest();
  5. b.method();
  6. Testt=newTest();
  7. t.method();
  8. }
  9. @Override
  10. publicvoidmethod(){
  11. System.err.println("test");
  12. }
  13. }
  14. classBase{
  15. publicvoidmethod()throwsInterruptedException{
  16. System.err.println("base");
  17. }
  18. }
package test; public class Test extends Base { public static void main(String[] args) { Base b = new Test(); b.method(); Test t = new Test(); t.method(); } @Override public void method() { System.err.println("test"); } } class Base { public void method() throws InterruptedException { System.err.println("base"); } } 9、以下代码的结果是什么?
  1. packagetest;
  2. publicclassTestextendsBase{
  3. publicstaticvoidmain(String[]args){
  4. newTest().method();
  5. }
  6. publicvoidmethod(){
  7. System.err.println(super.getClass().getName());
  8. System.err.println(this.getClass().getSuperclass().getName());
  9. }
  10. }
  11. classBase{
  12. }
package test; public class Test extends Base { public static void main(String[] args) { new Test().method(); } public void method() { System.err.println(super.getClass().getName()); System.err.println(this.getClass().getSuperclass().getName()); } } class Base { } 10、true or false?
  1. packagetest;
  2. publicclassTest{
  3. publicstaticvoidmain(String[]args){
  4. Stringstr1=newString("abc");
  5. Stringstr2=newString("abc");
  6. System.err.println(str1.equals(str2));
  7. StringBuffersb1=newStringBuffer("abc");
  8. StringBuffersb2=newStringBuffer("abc");
  9. System.err.println(sb1.equals(sb2));
  10. }
  11. }
package test; public class Test { public static void main(String[] args) { String str1 = new String("abc"); String str2 = new String("abc"); System.err.println(str1.equals(str2)); StringBuffer sb1 = new StringBuffer("abc"); StringBuffer sb2 = new StringBuffer("abc"); System.err.println(sb1.equals(sb2)); } } 11、输出的结果是什么?
  1. packagetest;
  2. publicclassTest{
  3. publicstaticvoidmain(String[]args){
  4. System.err.println(newTest().method1());
  5. System.err.println(newTest().method2());
  6. }
  7. publicintmethod1(){
  8. intx=1;
  9. try{
  10. returnx;
  11. }finally{
  12. ++x;
  13. }
  14. }
  15. publicintmethod2(){
  16. intx=1;
  17. try{
  18. returnx;
  19. }finally{
  20. return++x;
  21. }
  22. }
  23. }
package test; public class Test { public static void main(String[] args) { System.err.println(new Test().method1()); System.err.println(new Test().method2()); } public int method1() { int x = 1; try { return x; } finally { ++x; } } public int method2() { int x = 1; try { return x; } finally { return ++x; } } } 这样呢?输出什么
  1. packagetest;
  2. publicclassTest{
  3. publicstaticvoidmain(String[]args){
  4. System.err.println(method());
  5. }
  6. publicstaticbooleanmethod(){
  7. try{
  8. returntrue;
  9. }finally{
  10. returnfalse;
  11. }
  12. }
  13. }
package test; public class Test { public static void main(String[] args) { System.err.println(method()); } public static boolean method() { try { return true; } finally { return false; } } } 12、方法m1和m2有区别吗?什么区别
  1. packagetest;
  2. publicclassTest{
  3. publicstaticvoidmain(String[]args){
  4. }
  5. publicsynchronizedvoidm1(){
  6. }
  7. publicstaticsynchronizedvoidm2(){
  8. }
  9. }
package test; public class Test { public static void main(String[] args) { } public synchronized void m1() { } public static synchronized void m2() { } } 13、true or false?理由
  1. packagetest;
  2. publicclassTest{
  3. publicstaticvoidmain(String[]args){
  4. Integeri1=127;
  5. Integeri2=127;
  6. System.err.println(i1==i2);
  7. i1=128;
  8. i2=128;
  9. System.err.println(i1==i2);
  10. }
  11. }
package test; public class Test { public static void main(String[] args) { Integer i1 = 127; Integer i2 = 127; System.err.println(i1 == i2); i1 = 128; i2 = 128; System.err.println(i1 == i2); } } 14、true or false?理由
  1. packagetest;
  2. publicclassTest{
  3. publicstaticvoidmain(String[]args){
  4. Stringstr1="a";
  5. Stringstr2="a";
  6. Stringstr3=newString("a");
  7. System.err.println(str1==str2);
  8. System.err.println(str1==str3);
  9. str3=str3.intern();
  10. System.err.println(str1==str3);
  11. }
  12. }
package test; public class Test { public static void main(String[] args) { String str1 = "a"; String str2 = "a"; String str3 = new String("a"); System.err.println(str1 == str2); System.err.println(str1 == str3); str3 = str3.intern(); System.err.println(str1 == str3); } } 15、true or false?理由
  1. packagetest;
  2. publicclassTest{
  3. publicstaticvoidmain(String[]args){
  4. System.err.println(12-11.9==0.1);
  5. }
  6. }
package test; public class Test { public static void main(String[] args) { System.err.println(12 - 11.9 == 0.1); } } 16、以下代码输出是什么?
  1. packagetest;
  2. importjava.math.BigInteger;
  3. publicclassTest{
  4. publicstaticvoidmain(String[]args){
  5. BigIntegerone=newBigInteger("1");
  6. BigIntegertwo=newBigInteger("2");
  7. BigIntegerthree=newBigInteger("3");
  8. BigIntegersum=newBigInteger("0");
  9. sum.add(one);
  10. sum.add(two);
  11. sum.add(three);
  12. System.out.println(sum.toString());
  13. }
  14. }
package test; import java.math.BigInteger; public class Test { public static void main(String[] args) { BigInteger one = new BigInteger("1"); BigInteger two = new BigInteger("2"); BigInteger three = new BigInteger("3"); BigInteger sum = new BigInteger("0"); sum.add(one); sum.add(two); sum.add(three); System.out.println(sum.toString()); } } 17、输出的结果是什么?12345?根据单词排序?还是?
  1. packagetest;
  2. importjava.util.HashSet;
  3. importjava.util.Iterator;
  4. importjava.util.Set;
  5. publicclassTest{
  6. publicstaticvoidmain(String[]args){
  7. Set<String>set=newHashSet<String>();
  8. set.add("one");
  9. set.add("two");
  10. set.add("three");
  11. set.add("four");
  12. set.add("five");
  13. for(Iterator<String>it=set.iterator();it.hasNext();){
  14. System.err.println(it.next());
  15. }
  16. }
  17. }
package test; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class Test { public static void main(String[] args) { Set<String> set = new HashSet<String>(); set.add("one"); set.add("two"); set.add("three"); set.add("four"); set.add("five"); for (Iterator<String> it = set.iterator(); it.hasNext();) { System.err.println(it.next()); } } } 18、如何迭代Map容器,别所大概是......,手写个试试?

先写这么多,会一直更新。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值