Java入门基础:100道Java基础笔试考试题,附带答案(收集和整理的)

java基础 笔试题 Java是解释型语言,编译出来的是。 阅读详情
AI摘要

本文深入探讨Java中的异常处理机制,包括运行时异常与非运行时异常的区别,以及finalize、final、finally等关键字的用法。同时,文章还详细解析了对象的equals、hashCode方法的实现原理与注意事项。

100.equals方法和==的区别
答案:
1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean
  他们之间的比较,应用双等号(==),比较的是他们的值。
2.复合数据类型(类)
  当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。 JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地 址,但在一些类库当中这个方法被覆盖掉了,如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。
  对于复合数据类型之间进行equals比较,在没有覆写equals方法的情况下,他们之间的比较还是基于他们在内存中的存放位置的地址值的,因为Object的equals方法也是用双等号(==)进行比较的,所以比较后的结果跟双等号(==)的结果相同。 

101.String、StringBuffer、StringBuilder有什么区别?
答案:
String类表示内容不可改变的字符串。
而StringBuffer类表示内容可以被修改的字符串。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。
另外,String实现了equals方法,new String(“abc”).equals(new String(“abc”)的结果为true,
而StringBuffer没有实现equals方法,所以,new StringBuffer(“abc”).equals(new StringBuffer(“abc”)的结果为false。
StringBuffer和StringBuilder类都表示内容可以被修改的字符串,StringBuilder是线程不安全的,运行效率高,如果一个字符串变量是在方法里面定义,这种情况只可能有一个线程访问它,不存在不安全的因素了,则用StringBuilder。
如果要在类里面定义成员变量,并且这个类的实例对象会在多线程环境下使用,那么最好用StringBuffer。


1.以下哪个是finalize()方法的正确形式?
A.protected void finalize() throws Throwable
B.final finalize()
C.public final finalize()
D.private boolean finalize()
答案:A

2.如果finalize()方法抛出一个运行时异常,以下哪个描述正确?
A.正在运行的应用程序系统崩溃
B.此异常被忽略,并且该异常对象被垃圾回收器回收
C.此异常被忽略,但是该异常对象未被垃圾回收期回收
D.此异常导致JVM崩溃
答案:B
答案解析:finalize()方法只是用于清除对象,而不是实际的销毁对象,因此对该方法的调用不会引起系统崩溃,该方法抛出的异常也会作为废弃对象被垃圾回收期回收

3.如何释放掉一个对象占据的内存空间?
A.调用free()方法
B.调用System.gc()方法
C.赋值给该对象的引用为null
D.程序员无法明确强制垃圾回收器运行
答案:D

4.给出以下代码:
1.public class Example {
2. public static void main(String[] args) {
3.  String s = "abcd";
4.  Integer x = new Integer(3);
5.  String s2 = s + 4;
6.  s2 = null;
7.  s = null;
8. }
9.}
改程序运行到第几行变量S2引用的对象符合垃圾回收器回收条件?
A.第7行
B.不存在
C.第6行
D.直到main线程结束,S2应用的对象才可能被回收
答案:C

5.以下代码运行到关键点处,有多少对象符合垃圾回收的条件?
public class Example {
 public static void main(String[] args) {
  String name;
  String newName = "Nick";
  newName = "Jason";
  name = "Frieda";
  String newestName = name;
  name = null;
  // 关键点
 }
}
A.0个
B.1个
C.2个
D.3个
答案:B

6.以下哪些是有关垃圾回收器的正确描述?
A.程序员可以在制定时间调用垃圾回收器释放内存
B.垃圾回收器可以保证Java程序不会产生内存溢出
C.程序员可以制定垃圾回收器回收对象
D.对象的finalize()方法在对象被垃圾回收器回收之前获得调用
答案:C、D
答案解析:通过通配符*号引入的两个不同包中存在同名的类,当代码中不加包名直接使用时,会产生编译错误,使用时需要提供完整包路径

7.拥有下列哪些引用类型的对象在虚拟机内存足够的情况下不会被垃圾回收机制回收?
A.强引用
B.软引用
C.弱引用
D.虚引用
答案:A、B


8.finalize和C++ 的 destructors有何差异?
答案:Java内部具有“内存使用回收” 的机制, 虽然它也提供了类似 (C++ 的) destructors的 finalize(),每个对象都可以使用这个方法 method,但必须冒著破坏原先回收机制的危险。所以建议尽量避免使用finalize(),不妨考虑多使用引用队列来释出资源会好一些。

9.Java语言中异常的分类是哪项?
A.运行时异常和异常
B.受检异常和非受检异常
C.错误和异常
D.错误和运行时异常
答案:C

10.所有异常的父类是哪项?
A.Throwable
B.Error
C.RuntimeException
D.Exception
答案:A

11.下列属于非受检异常(运行时异常)的是哪项?
A.SQLException
B.IOException
C.NullPointerException
D.OutOfMemoryError
答案:C

12.假设有自定义异常类ServiceException,那么抛出该异常的语句正确的是哪项?
A.raise ServiceException
B.throw new ServiceException()
C.throw ServiceException
D.throws ServiceException
答案:B

13.在方法声明中,说明该方法可能会抛出的异常列表时使用哪个关键字?
A.throw 
B.catch
C.finally
D.throws
答案:D

14.现有代码:
public class Example {
 public static void main(String[] args) {
  try {
   System.out.print(Integer.parseInt("forty"));   
  } catch (RuntimeException e) {
   System.out.println("Runtime");
  }catch (NumberFormatException e) {
   System.out.println("Number");
  }
 }
}
执行结果是什么?
A.输出Number
B.输出Runtime
C.输出40
D.编译失败
答案:D
答案解析:NumberFormatException是RuntimeException的子类,因此两个catch块位置应该交换才能正确处理异常

15.现有代码如下:
public class Example {

 void topGo() {
  try {
   middleGo();
  } catch (Exception e) {
   System.out.println("catch");
  }
 }

 void middleGo() throws Exception {
  go();
  System.out.println("late middle");
 }

 void go() throws Exception {
  throw new Exception();
 }

 public static void main(String[] args) {
  Example example = new Example();
  example.topGo();
 }
}
该代码的执行结果是?
A.输出late middle
B.输出catch
C.输出late middle catch
D.输出catch late middle
答案:B

16.如下代码执行后的输出结果是?
public class Example {
 public static void main(String[] args) {
  try {
   throw new Exception();
  } catch (Exception e) {
   try {
    throw new Exception();
   } catch (Exception e2) {
    System.out.println("inner");
   }
   System.out.println("middle");
  }
  System.out.println("out");
 }
}
A.inner outer
B.middle outer
C.inner middle outer
D.编译失败
答案:C

17.现有如下代码:
public class Example extends Utils{
 public static void main(String[] args) {
  try {
   System.out.println(new Example().getInt("42"));
  } catch (NumberFormatException e) {
   System.out.println("NFExc");
  }
 } 
 int getInt(String arg) throws NumberFormatException{
  return Integer.parseInt(arg);
 }
}

class Utils {
 int getInt(String arg) {
  return 42;
 }
}
该代码执行的结果是?
A.NFExc
B.42.0
C.42NFExc
D.编译失败
答案:B
答案解析:Utils中的getInt方法没有抛出异常,而子类Example中的getInt抛出了运行时异常,这是符合方法覆盖的抛出异常特性规范的,因为运行时异常并不会强制要求方法调用代码捕获处理

18.现有如下代码:
public class Example extends Utils{
 public static void main(String[] args) {
  try {
   System.out.println(new Example().getInt("42"));
  } catch (NumberFormatException e) {
   System.out.println("NFExc");
  }
 } 
 int getInt(String arg) throws Exception{
  return Integer.parseInt(arg);
 }
}

class Utils {
 int getInt(String arg) {
  return 42;
 }
}
该代码执行的结果是?
A.NFExc
B.42.0
C.42NFExc
D.编译失败
答案:D
答案解析:子类抛出的异常不符合方法覆盖的异常列表要求,因此编译失败(见上题)

19.现有如下代码:
public class Example {
 public static void main(String[] args) {// a
  new Example().topGo();
 }

 void topGo() {// b
  middleGo();
 }

 void middleGo() {// c
  go();
  System.out.println("late middle");
 }

 void go() {// d
  throw new Exception();
 }
}
为了使代码能够编译通过,需要在哪个地方加入声明throws Exception?
A.d
B.c和d
C.b、c和d
D.a、b、c和d
答案:D

20.下面代码的执行结果是?
class Example extends Utils {
 public static void main(String[] args) {
  try {
   System.out.print(new Example().getlnt("42"));
  } catch (Exception e) {
   System.out.println("Exc");
  }
 }

 int getlnt(String arg) throws Exception {
  return Integer.parseInt(arg);
 }
}

class Utils {
 int getlnt() {
  return 42;
 }
}
A.NFExc
B.42.0
C.42NFExc
D.编译失败
答案:B
答案解析:本题没有实现方法覆盖

21.关于异常处理,说法错误的是?
A.try…catch…finally结构中,必须有try语句块,catch语句块和finally语句块不是必须的,但至少要两者取其一
B.在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将子类放在后面,父类放在前面
C.一个方法可以抛出多个异常,方法的返回值也能够是异常
D.Throwable是所有异常的超类
答案:B
答案解析:若catch中的参数类型有父类子类关系,此时应该将子类放在前面,父类放在后面

22.以下关于Error和Exception类的描述正确的是?
A.Error类和Exception类都是Throwable类的子类
B.Error类是一个final类,而Exception类是一个非final类
C.Exception类是一个final类,而Error类是一个非final类
D.Error类和Exception类都实现了Throwable接口
答案:A

23.请问以下哪个是声明一个方法抛出异常的正确形式?
A.void m() throws IOException{}
B.void m() throw IOException
C.void m(){} throws IOException
D.void m(void) throw IOException{}
答案:A


24.请问以下哪些关于try…catch…finally结构中的finally语句的描述是正确的?
A.只有当一个catch语句获得执行后,finally语句才获得执行
B.只有当catch语句未获得执行时,finally语句才获得执行
C.如果有finally语句,return语句将在finally语句执行完毕后才会返回
D.只有当异常抛出时,finally语句才获得执行
答案:C


25.请问以下代码的直接执行结果是?
class Example{
 public static void main(String[] args) {
  try {
   System.out.println(args[0]);
   System.out.println("I'm nomal");
   if (true)
    return;
  } catch (Exception ex) {
   System.out.println("I'm exception");
   if (true)
    return;
  } finally {
   System.out.println("I'm finally.");
  }

  System.out.println("Out of try.");
 }
}
A.I'm exception
I'm finally.
B.代码不能编译通过,因为最后一条语句位于return后,不可到达
C.代码编译通过,但运行时输出异常信息
D.I'm nomal
I'm finally.
答案:A


26.关于以下代码,说法正确的是?
class Example{
 public static void main(String[] args) throws IOException {
  if (args[0] == "hello") {
   throw new IOException();
  }
 }
}
A.代码编译成功
B.代码编译失败,因为main()方法是入口方法,不能抛出异常
C.代码编译失败,因为IOException异常是系统异常,不能由应用程序抛出
D.代码编译失败,因为字符串应该用equals方法判定一致性
答案:A


27.关于以下代码,说法正确的是?
class Example {
 public static void main(String[] args) throws IOException {
  System.out.println("Before Try");
  try {
  } catch (java.io.IOException e) {
   System.out.println("Inside Catch");
  }
  System.out.println("At the End");
 }
}
A.代码编译失败,因为无异常抛出
B.代码编译失败,因为未导入IOException异常类
C.输出Before Try
At the End
D.输出Inside Catch
At the End
答案:A


28.关于以下代码,说法正确的是?
class Example {
 public static void main(String[] args) throws IOException {
  System.out.println("Before Try");
  try {
  } catch (Throwable e) {
   System.out.println("Inside Catch");
  }
  System.out.println("At the End");
 }
}
A.代码编译失败,因为无异常抛出
B.代码编译失败,因为未导入IOException异常类
C.输出Before Try
At the End
D.输出Inside Catch
At the End
答案:C


29.给出以下代码:
class Example {
 public static void main(String[] args) throws IOException {
  try {
   methodA();   
  } catch (IOException e) {
   System.out.println("caught IOException");
  }catch (Exception e) {
   System.out.println("caught Exception");
  }
 }
}
如果methodA()方法抛出一个IOException异常,则该程序的运行结果是什么?
A.无内容输出
B.代码编译失败
C.输出caught IOException
D.输出caught Exception
答案:C


30.下列代码的运行结果是?
class Example {
 public static void main(String[] args) throws IOException {
  try {
   return;
  } finally{
   
   System.out.println("Finally");
  }
 }
}
A.无内容输出
B.输出Finally
C.代码编译失败
D.输出异常信息
答案:B


31.给出以下代码,执行结果是?
class Example {
 public static void main(String[] args) throws IOException {
  aMethod();
 }
 
 static void aMethod(){
  try {
   System.out.println("Try");
   return;
  } catch (Exception e) {
   System.out.println("Catch");
  }finally{
   System.out.println("Finally");
  }
 }
}
A.代码编译成功,但运行期间抛出异常
B.代码便以失败,因为return语句错误
C.输出Try和Finally
D.输出Try
答案:C


32.以下代码中,如果test()方法抛出一个NullPointException异常时,打印输出什么内容?
class Example {
 public static void main(String[] args) throws IOException {
  try {
   test();
   System.out.println("Message1");
  } catch (ArrayIndexOutOfBoundsException e) {
   System.out.println("Message2");
  }finally{
   System.out.println("Message3");
  }
 }
}
A.打印输出Message1
B.打印输出Message2
C.打印输出Message3
D.以上都不对
答案:C


33.以下代码执行结果是什么?
class Example {
 public static String output = "";
 public static void foo(int i) {
  try {
   if (i == 1) {
    throw new Exception();
   }
   output += "1";
  } catch (Exception e) {
   output += "2";
   return;
  } finally {
   output += "3";
  }
  output += "4";
 }

 public static void main(String[] args) throws IOException {
  foo(0);
  foo(1);
  System.out.println(output);
 }
}
A.无内容输出
B.代码编译失败
C.输出13423
D.输出14323
答案:C


34.以下代码执行结果是?
public abstract class Example extends Base {
 public abstract void method();
}

class Base {
 public Base() throws IOException {
  throw new IOException();
 }
}
A.代码编译失败,因为非抽象类不能被扩展为抽象类
B.代码编译失败,因为必须提供一个可以抛出或可以不抛出IOException异常的构造器
C.代码编译失败,以in为必须提供一个可以抛出IOException异常或其子类的构造器
D.代码编译成功
答案:C


35.关于以下代码正确的说法是:
public class Example {
int x = 0;

 public Example(int inVal) throws Exception {
if (inVal != this.x) {
 throw new Exception("Invalid input");
}
 }

public static void main(String[] args) {
 Example t = new Example(4);
 }
}
A.代码在第1行编译错误
B.代码在第4行编译错误
C.代码在第6行编译错误
D.代码在第11行编译错误
答案:D


36.关于try…catch…finally结构,描述正确的是些?
A.可以有多个catch
B.只能有一个catch
C.可以没有catch
D.finally必须有
答案:A、C


37.当fragile()方法抛出一个IllegalArgumentException异常时,下列代码的运行结果是什么?
public static void main(String[] args) throws IOException {
  try {
   fragile();
  } catch (NullPointerException e) {
   System.out.println("NullPointerException thrown");
  } catch (Exception e) {
   System.out.println("Exception thrown");
  } finally {
   System.out.println("Done with exceptions");
  }
  System.out.println("myMethod is done");
 }
}
A.输出NullPointerException thrown
B.输出Exception thrown
C.输出Done with Exception
D.输出myMethod is done
答案:B、C、D


38.现有如下代码:
public class Example { 
 public static void main(String[] args) {
  try {
   int x=Integer.parseInt("42a");
   //插入代码处
   System.out.println("oops");
  }
 }
}
在插入代码处插入哪些语句可以在运行后输出oops?
A. } catch (IllegalArgumentException e) {
B.} catch (IllegalStateException c) {
C. } catch (NumbelFormatException n) {
D.} catch (ClassCastException c) {
答案:A、C


39.下列代码的执行结果是?
class Example {
 public static void main(String[] args) throws IOException {
  int i = 1, j = 1;
  try {
   i++;
   j--;
   if (i == j) {
    j++;
   }
  } catch (ArithmeticException e) {
   System.out.println(0);
  } catch (ArrayIndexOutOfBoundsException e) {
   System.out.println(1);
  } catch (Exception e) {
   System.out.println(2);
  } finally {
   System.out.println(3);
  }
  System.out.println(4);
 }
}
A.输出1
B.输出2
C.输出3
D.输出4
答案:C、D


40.下列代码的执行结果是?
class Example {
 public static void main(String[] args) throws IOException {
  int i = 1, j = 1;
  try {
   i++;
   j--;
   if (i/j > 1) {
    j++;
   }
  } catch (ArithmeticException e) {
   System.out.println(0);
  } catch (ArrayIndexOutOfBoundsException e) {
   System.out.println(1);
  } catch (Exception e) {
   System.out.println(2);
  } finally {
   System.out.println(3);
  }
  System.out.println(4);
 }
}
A.输出0
B.输出2
C.输出3
D.输出4
答案:A、C、D


41.现有如下代码:
public class Example { 
 public static void main(String[] args) {
  try {
   System.out.println("before");
   doRisyThing();
   System.out.println("after");
  } catch (Exception e) {
   System.out.println("catch");
  }
  System.out.println("done");
 }
 
 public static void doRisyThing() throws Exception{
  //this code returns unless it throws an Exception
 }
}
该代码可能的执行结果有哪些?
A.before catch
B.before after done
C.before catch done
D.before after catch
答案:B、C

42.以下有关java.lang.Exception异常类的正确描述有?
A.该类是一个公共类
B.该类是Throwable类的子类
C.该类实现了Throwable接口
D.该类可以序列化
答案:A、B、D

43.给出以下代码:
1. public void aMethod(){  
2.  
3.  if(Condition){
4.   
5.  }
6.  
7. }
当if条件表达式为true时,插入哪些语句可以抛出MyException异常?
A.在第4行插入throws new MyException();
B.在第4行插入throw new MyException();
C.在第6行插入throw new MyException();
D.在第1行插入throws MyException
答案:B、D

44.以下哪些是catch语句能够捕获处理的异常?
A.Throwable
B.Error
C.Exception
D.String
答案:A、B、C
Error也是可以被catch捕获的

45.以下哪些描述是正确的?
A.try语句块后必须至少存在一个catch语句块
B.try语句块后可以存在不限数量的finally语句块
C.try语句块后必须至少存在一个catch语句块或finally语句块
D.如果catch和finally语句块同时存在,则catch语句块必须位于finally语句块前
答案:C、D

46.下列代码的执行结果是?
class Example {

 private void method1() throws Exception {
  throw new RuntimeException();
 }

 public void method2() {
  try {
   method1();
  } catch (RuntimeException e) {
   System.out.println("Caught Runtime Exception");
  } catch (Exception e) {
   System.out.println("Caught Exception");
  }
 }

 public static void main(String[] args) throws IOException {
  Example a = new Example();
  a.method2();
 }
}
A.代码编译失败
B.输出Caught Runtime Exception
C.输出Caught Exception
D.输出Caught Runtime Exception和Caught Exception
答案:B


47.以下代码的输出结果是什么?选择所有的正确答案。
class Example {
 public static void main(String[] args) throws IOException {
  for (int i = 0; i < 10; i++) {

   try {
    try {
     if (i % 3 == 0)
      throw new Exception("E0");
     System.out.println(i);
    } catch (Exception inner) {
     i *= 2;
     if (i % 3 == 0)
      throw new Exception("E1");
    } finally {
     ++i;
    }
   } catch (Exception outer) {
    i += 3;
   } finally {
    --i;
   }
  }
 }
}
A.4.0
B.5.0
C.6.0
D.7.0
答案:A、B

48.Java中异常的分类
答案:
java.lang.Throwable
|-- Error错误:JVM内部的严重问题。无法恢复。程序人员不用处理。
|--Exception异常:普通的问题。通过合理的处理,程序还可以回到正常执行流程。要求编程人员要进行处理。
|--RuntimeException:也叫非受检异常(unchecked exception).这类异常是编程人员的逻辑问题。应该承担责任。Java编译器不进行强制要求处理。 也就是说,这类异常再程序中,可以进行处理,也可以不处理。
|--非RuntimeException:也叫受检异常(checked exception).这类异常是由一些外部的偶然因素所引起的。Java编译器强制要求处理。也就是说,程序必须进行对这类异常进行处理。

49.给出常见的RuntimeException
答案:
常见的运行时异常有如下这些ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException

50.error和exception有什么区别
答案:
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况

51.以下代码的执行结果是?
public static int fun() {
  int result = 5;
  try {
   result = result / 0;
   return result;
  } catch (Exception e) {
   System.out.println("Exception");
   result = -1;
   return result;
  } finally {
   result = 10;
   System.out.println("i am in finally");
  }
 }

 public static void main(String[] args) {
  int x=fun();
  System.out.println(x);

 }

答案:
Exception
I am in finally
-1

52.以下代码的执行结果是?
public class Example {
 public static StringBuffer fun() {

  StringBuffer result = new StringBuffer("Hello");
  Integer i = new Integer(5);
  try {
   if (true)
    throw new RuntimeException();
   return result;
  } catch (Exception e) {
   System.out.println("Exception");
   result.append(" World");
   return result;
  } finally {
   result.append(" Java");
   System.out.println("i am in finally");
  }
 }

 public static void main(String[] args) {
  StringBuffer x = fun();
  System.out.println(x);

 }

答案:
Exception
i am in finally
Hello World Java


53.什么时候用assert?
答案:
断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为 true。如果表达式计算为 false,那么系统会报告一个 Assertionerror。它用于调试目的:

assert(a > 0); // throws anAssertionerror if a <= 0

断言可以有两种形式:

assert Expression1 ;

assert Expression1 :Expression2 ;

  Expression1 应该总是产生一个布尔值。

  Expression2 可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的 String 消息。

  断言在默认情况下是禁用的。要在编译时启用断言,需要使用 source 1.4 标记:

  javac -source 1.4 Test.java

  要在运行时启用断言,可使用 -enableassertions 或者 -ea 标记。

  要在运行时选择禁用断言,可使用 -da 或者 -disableassertions 标记。

  要系统类中启用断言,可使用 -esa 或者 -dsa 标记。还可以在包的基础上启用或者禁用断言。

 可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过,断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言,公有方法都必须检查其参数。不过,既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件。另外,断言不应该以任何方式改变程序的状态。


54.给我一个你最常见到的runtime exception
答案:
常见的运行时异常有如下这些ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException


55.谈谈final, finally, finalize的区别
答案:
final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载
finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)
finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的

56.下列说法错误的是?
A.Object类是所有Java类的顶层类,即类继承树的根。
B.如果一个类没有使用extends关键字扩展任何类,则编译器自动将创建的类视为Object类的子类
C.Object类中提供了equals()方法来判定本对象和其他对象中的内容是否一致
D.Object中提供的clone默认为浅克隆
答案:C
equals方法默认和==一致

57.定义在Object类上的hashCode()方法的返回值类型是什么?
A.char
B.long
C.int
D.float
答案:C

58.关于集合中对象的equals()和hashCode()规定说法错误的是?
A.如果两个对象相同,那么他们的hashCode值需要一致
B.如果两个对象的hashCode值一致,他们的equals方法不一定返回true
C.equals方法默认和==判定一致
D.Java中hashCode就是对象的内存地址
答案:D
Java中hashCode不是内存地址,但是可以一定程度上代表地址特诊

59.以下代码执行结果是什么?
class Person {
 static void sayHello() {
  System.out.println("HelloWorld!");
 }
}

public class Example {
 public static void main(String[] args) {
  ((Person) null).sayHello();
 }
}
A.编译失败
B.编译成功,运行时产生NullPointerException
C.输出HelloWorld!
D.输出空白字符串
答案:C
null能够被造型撑任何类型,而sayHello方法是静态方法,不依赖实例调用

60.下列代码执行结果是:
class RectObject {
 public int x;
 public int y;

 public RectObject(int x, int y) {
  this.x = x;
  this.y = y;
 }

 @Override
 public int hashCode() {
  final int prime = 31;
  int result = 1;
  result = prime * result + x;
  result = prime * result + y;
  return result;
 }

 @Override
 public boolean equals(Object obj) {
  if (this == obj)
   return true;
  if (obj == null)
   return false;
  if (getClass() != obj.getClass())
   return false;
  final RectObject other = (RectObject) obj;
  if (x != other.x) {
   return false;
  }
  if (y != other.y) {
   return false;
  }
  return true;
 }
}

public class Example {
 public static void main(String[] args) {
  HashSet<RectObject> set = new HashSet<RectObject>();
  RectObject r1 = new RectObject(3, 3);
  RectObject r2 = new RectObject(5, 5);
  RectObject r3 = new RectObject(3, 3);
  set.add(r1);
  set.add(r2);
  set.add(r3);
  set.add(r1);
  System.out.println("size:" + set.size());
 }
}
A.size:1
B.size:2
C.size:3
D.size:4
答案:B
因为我们重写了RectObject类的hashCode方法,只要RectObject对象的x,y属性值相等那么他的hashCode值也是相等的,所以先比较hashCode的值,r1和r2对象的x,y属性值不等,所以他们的hashCode不相同的,所以r2对象可以放进去,但是r3对象的x,y属性值和r1对象的属性值相同的,所以hashCode是相等的,这时候在比较r1和r3的equals方法,因为他么两的x,y值是相等的,所以r1,r3对象是相等的,所以r3不能放进去了,同样最后再添加一个r1也是没有没有添加进去的,所以set集合中只有一个r1和r2这两个对象

61.以下代码的执行结果是?
class RectObject {
 public int x;
 public int y;

 public RectObject(int x, int y) {
  this.x = x;
  this.y = y;
 }


 @Override
 public boolean equals(Object obj) {
  if (this == obj)
   return true;
  if (obj == null)
   return false;
  if (getClass() != obj.getClass())
   return false;
  final RectObject other = (RectObject) obj;
  if (x != other.x) {
   return false;
  }
  if (y != other.y) {
   return false;
  }
  return true;
 }
}

public class Example {
 public static void main(String[] args) {
  HashSet<RectObject> set = new HashSet<RectObject>();
  RectObject r1 = new RectObject(3, 3);
  RectObject r2 = new RectObject(5, 5);
  RectObject r3 = new RectObject(3, 3);
  set.add(r1);
  set.add(r2);
  set.add(r3);
  set.add(r1);
  System.out.println("size:" + set.size());
 }
}
A.size:1
B.size:2
C.size:3
D.size:4
答案:C
首先判断r1对象和r2对象的hashCode,因为Object中的hashCode方法返回的是对象本地内存地址的换算结果,不同的实例对象的hashCode是不相同的,同样因为r3和r1的hashCode也是不相等的,但是r1==r1的,所以最后set集合中只有r1,r2,r3这三个对象,所以大小是3

62.以下代码执行结果是?
class RectObject {
 public int x;
 public int y;

 public RectObject(int x, int y) {
  this.x = x;
  this.y = y;
 }


 @Override
 public boolean equals(Object obj) {
  return false;
 }
}

public class Example {
 public static void main(String[] args) {
  HashSet<RectObject> set = new HashSet<RectObject>();
  RectObject r1 = new RectObject(3, 3);
  RectObject r2 = new RectObject(5, 5);
  RectObject r3 = new RectObject(3, 3);
  set.add(r1);
  set.add(r2);
  set.add(r3);
  set.add(r1);
  System.out.println("size:" + set.size());
 }
}
A.size:1
B.size:2
C.size:3
D.size:4
答案:C
首先是判断hashCode是否相等,不相等的话,直接跳过,相等的话,然后再来比较这两个对象是否相等或者这两个对象的equals方法,因为是进行的或操作,所以只要有一个成立即可,那这里我们就可以解释了,其实上面的那个集合的大小是3,因为最后的一个r1没有放进去,以为r1==r1返回true的,所以没有放进去了。所以集合的大小是3,如果我们将hashCode方法设置成始终返回false的话,这个集合就是4了。

63.以下代码执行结果是?
class RectObject {
 public int x;
 public int y;

 public RectObject(int x, int y) {
  this.x = x;
  this.y = y;
 }

 @Override
 public int hashCode() {
  // TODO Auto-generated method stub
  return (int)System.nanoTime();
 }

 @Override
 public boolean equals(Object obj) {
  return false;
 }
}

public class Example {
 public static void main(String[] args) {
  HashSet<RectObject> set = new HashSet<RectObject>();
  RectObject r1 = new RectObject(3, 3);
  RectObject r2 = new RectObject(5, 5);
  RectObject r3 = new RectObject(3, 3);
  set.add(r1);
  set.add(r2);
  set.add(r3);
  set.add(r1);
  System.out.println("size:" + set.size());
 }
}
A.size:1
B.size:2
C.size:3
D.size:4
答案:D
见上题

64.下列关于Math类说法错误的是
A.java.lang.Math类是final类,因此不能被其他类继承
B.java.lang.Math类的构造器是私有的,即声明为private,不能实例化一个Math类的对象
C.java.lang.Math类上定义的所有常量和方法均是public和static的,因此可以直接通过类名调用
D.min()和max()方法的参数之一,如果是NaN值,则方法将返回另一个参数值
答案:D
min()和max()方法的参数之一,如果是NaN值,则方法的返回值就为NaN

65.以下哪个方法是Math类中定义的?
A.absolute()
B.log()
C.cosine()
D.sine()
答案:B
在Math类中对应的正确方法应为abs()\cos()\sin()

66.定义在Math类上的round(double d)方法的返回值类型是什么?
A.char
B.int
C.long
D.double
答案:C
round方法用于获取一个四舍五入的整数

67.以下哪个方法用于计算平方根?
A.squareRoot()
B.sqrt()
C.root()
D.sqr()
答案:B

68.调用Math.random()方法最有可能输出以下哪些结果?
A.-0.12和0.56E3
B.0.12和1.1E1
C.-23.45和0.0
D.0.356和0.03
答案:D
random()方法返回值的取值范围在0.0..1.0之间

69.以下代码的输出结果是什么?
public class Example {
 public static void main(String[] args) {
  System.out.println(Math.round(Float.MAX_VALUE));
 }
}
A.输出Integer.MAX_VALUE
B.输出一个最接近Float.MAX_VALUE的整数
C.编译失败
D.运行时输出异常信息
答案:A
Math.round(Float.MAX_VALUE)的返回值为Integer.MAX_VALUE,Math.round(Double.MAX_VALUE)的返回值为Long.MAX_VALUE(真实计算结果超过返回值范围)

70.以下代码的运行结果是什么?
public class Example {
 public static void main(String[] args) {
  System.out.println(Math.min(0.0, -0.0));
 }
}
A.代码编译失败
B.输出0.0
C.输出-0.0
D.代码编译成功,但运行时输出异常信息
答案:C
浮点数的取值范围内存在正负0.0

71.以下代码的执行结果是?
public class Example {
 public static void main(String[] args) {
  System.out.println(Math.min(0.0, -0.0));
 }
}
A.输出4
B.输出5
C.输出6 
D.输出9
答案:D
比2.3大的最接近整数是3,因此ceil(2.3f)=3.0,因为2.7的四舍五入的值为3.0,所以round(2.7)=3.0,最终打印输出等于9

72.以下代码的运行结果是什么?
public class Example {
 public static void main(String[] args) {
  double d1 = -0.5;
  System.out.println("Ceil d1=" + Math.ceil(d1));
  System.out.println("Floor d1=" + Math.floor(d1));
 }
}

A.输出Ceil d1=-0.0 Floor d1=-1.0
B.输出Ceil d1=0.0 Floor d1=-1.0
C.输出Ceil d1=-0.0 Floor d1=-0.0
D.输出Ceil d1=0.0 Floor d1=0.0
答案:A


73.给出以下代码,为了结果输出-12.0,方法method(d)应为以下哪个方法?
public class Example {
 public static void main(String[] args) {
  double d = -11.1;
  double d1 = method(d);
  System.out.println(d1);
 }
}
A.floor()
B.ceil()
C.round()
D.abs()
答案:A


74.给出以下代码,请问在程序的第6行插入那条语句,改程序可依次打印输出11、10、9?
1.public class Example {
2. public static void main(String[] args) {
3.  double x[] = { 10.2, 9.1, 8.7 };
4.  int i[] = new int[3];
5.  for (int a = 0; a < x.length; a++) {
6.
7.   System.out.println(i[a]);
8.  }
9. }
10.}
A.i[1] = ((int)Math.min(x[a]));
B.i[1] = ((int)Math.max(x[a]));
C.i[1] = ((int)Math.ceil(x[a]));
D.i[1] = ((int)Math.floor(x[a]));
答案:C


75.以下代码执行结果是?
public class Example {
 public static void main(String[] args) {
  System.out.println(Math.min(Float.NaN, Float.POSITIVE_INFINITY));
 }
}
A.输出NaN
B.打印输出Infinity
C.运行时异常,因为NaN不是有效的参数
D.运行时异常,因为Infinity不是有效的参数
答案:A
min()和max()方法的参数之一,如果是NaN值,则方法的返回值就为NaN

76.以下代码的执行结果是?
public class Example{
  public static void main(String s[]){
   String str=”123”;
String str_=new String(“123”);
String  _str=”123”;
   System.out.println(str==_str);
System.out.println(str==str_);
} 
}

A.输出true true
B.输出false false
C.输出true false
D.输出false true
答案:C
字符串创建的时候可以使用常量池

77.public class Example {
 public static void main(String[] args) {
  Integer i = 100;
  Integer j = 100;
  System.out.println(i == j);
  i = 300;
  j = 300;
  System.out.println(i == j);
 }
}
A.输出true true
B.输出false false
C.输出true false
D.输出false true
答案:C
128以内的数进行自动包装时使用池操作

78.以下哪个不是基本类型的包装类?
A.Char
B.Integer
C.Boolean
D.float
答案:A

79.以下说法正确的是?
A.Void类是Class类的子类
B.Float类是Double类的子类
C.Double类是Wrapper类的子类
D.Integer类是Number类的子类
答案:D

80.定义在Integer类上的哪些方法用于将一个Integer对象转换为一个基本数据int类型?
A.valueOf()
B.intValue()
C.getInt()
D.getInteger()
答案:B

81.一下代码的执行结果是什么?
public class Example {
 public static void main(String[] args) {
  String val = null;
  int x = Integer.parseInt(val);
  System.out.println(x);
 }
}
A.输出0
B.输出null
C.输出NumberFormatException异常
D.无内容输出
答案:C

82.由于Java中存在字符串对象池,因此采用下面方法创建的两个字符串变量,他们指向的是同一个字符串对象:String str1="asddsg";String str2="asddsg"
A.调用字符串上定义的改变字符串内容的方法,返回值都是一个新字符串,而原有字符串内容不变
B.调用replace(char oldChar,char newChar)方法时,当参数oldChar和newChar一致时,返回一个和源对象内容一致的新字符串
C.String的equals方法用于判定两个字符串内容是否一致
D.调用toUpperCase()和toLowerCase()方法,当为进行大小写转换时,返回源字符串对象
答案:B
调用replace(char oldChar,char newChar)方法时,当参数oldChar和newChar一致时,返回源字符串对象

83.以下说法错误的是?
A.String中的append方法用于在源字符串后追加内容
B.StringBuffer中的append方法用于在源字符串后追加内容
C.StringBuffer是一个缓冲区,器内容可变
D.String中的concat方法用于字符串串联
答案:A
String中没有append方法

84.以下哪些有关通过子类来扩展String类功能的描述是正确的?
A.无法子类化,因为String类是一个final类
B.可以子类化,通过覆盖String类中的方法实现功能扩展
C.无法子类化,因为String类是一个抽象类
D.可以子类化,但是只能覆盖Object类中声明的方法,因为String类中定义的其他方法否是final的
答案:A

85.嗲用以下哪个方法会导致字符串被改变?
A.concat()
B.toUpperCase()
C.replace()
D.没有改变字符串的方法可以调用
答案:D

86.如何获取一个String类实例S包含的字符个数?
A.s.size
B.s.length
C.s.size()
D.s.length()
答案:D

87.以下代码执行结果是?
public class Example {
 public static void main(String[] args) {
  System.out.println("string".endsWith(""));
 }
}
A.输出true
B.输出false
C.编译失败
D.运行时输出异常信息
答案:A

88.有String s = "Metallica";请问以下哪个语句可以打印输出ica?
A.System.out.println(s.substring(7));
B.System.out.println(s.substring(6));
C.System.out.println(s.substring(6,8));
D.System.out.println(s.substring(7,9));
答案:B

89.以下那些关于String类的描述是正确的?
A.该类是一个final类
B.该类是一个public类
C.该类可以序列化
D.该类有一个一StringBuffer实例作为参数的构造器
答案:A、B、C、D

90.以下哪些是String类中定义的方法?
A.length()
B.toUpper()
C.toString()
D.equals()
答案:A、C、D

91.以下哪些关于封装类的描述是正确的?
A.封装类都是public类
B.封装类均可序列化
C.封装类均是final类
D.封装类都是java.lang.Number类的子类
答案:A、B、C

92.请问以下哪些方法是定义在Object类上的,请选择所有正确答案
A.toString()
B.equals(Object o)
C.println()
D.wait()
答案:A、B、D

93.请问以下哪些描述是正确的?请选择所有正确答案
A.Class类是Object类的超类
B.Object类是一个final类
C.Class类可用于装载其他类
D.ClassLoader类可用于装载其他类
答案:C、D

94.给出以下代码,请问以下哪些定义在Math类上的方法可以使表达式结果为true?
Method(-4.4) == -4
A.round()
B.trunc()
C.floor()
D.ceil()
答案:A、D

95.下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d";
一个字符串对象和一个指向这个对象的引用
对于如下代码:

Strings1 = "a";

Strings2 = s1 + "b";

Strings3 = "a" + "b";

System.out.println(s2== "ab");

System.out.println(s3== "ab");
答案:
第一条语句打印的结果为false,第二条语句打印的结果为true,这说明javac编译可以对字符串常量直接相加的表达式进行优化,不必要等到运行期去进行加法运算处理,而是在编译时去掉其中的加号,直接将其编译成一个这些常量相连的结果。

题目中的第一行代码被编译器在编译时优化后,相当于直接定义了一个”abcd”的字符串,所以,上面的代码应该只创建了一个String对象和一个指向该对象的饮用。写如下两行代码,

               String s = "a" +"b" + "c" + "d";

               System.out.println(s =="abcd");  最终打印的结果应该为true。

96.以下代码的执行结果是?
class ShadowClone implements Cloneable {

 private int a;
 private int[] b;

 @Override
 public Object clone() {
  ShadowClone sc = null;
  try {
   sc = (ShadowClone) super.clone();
  } catch (CloneNotSupportedException e) {
   e.printStackTrace();
  }
  return sc;
 }

 public int getA() {
  return a;
 }

 public void setA(int a) {
  this.a = a;
 }

 public int[] getB() {
  return b;
 }

 public void setB(int[] b) {
  this.b = b;
 }
}

public class Example {
 public static void main(String[] args) {
  ShadowClone c1 = new ShadowClone();
  c1.setA(100);
  c1.setB(new int[] { 1000 });
  System.out.println("克隆前c1:  a=" + c1.getA() + " b[0]=" + c1.getB()[0]);
  ShadowClone c2 = (ShadowClone) c1.clone();
  c2.setA(50);
  int[] a = c2.getB();
  a[0] = 5;
  c2.setB(a);
  System.out.println("克隆后c1:  a=" + c1.getA() + " b[0]=" + c1.getB()[0]);
  System.out.println("克隆后c2:  a=" + c2.getA() + " b[0]=" + c2.getB()[0]);
 }
}

答案:
克隆前c1:  a=100 b[0]=1000
克隆后c1:  a=100 b[0]=5
克隆后c2:  a=50 b[0]=5

Java中Object类提供的克隆方法默认为浅克隆,因此克隆后的引用属性和原始对象中的引用属性引用了同一对象,对克隆对象中引用数据的变更就直接反映到原始对象中

97.以下代码的执行结果是?
class DeepClone implements Cloneable {

 private int a;
 private int[] b;

 @Override
 public Object clone() {
  DeepClone sc = null;
  try {
   sc = (DeepClone) super.clone();
   int[] t = sc.getB();
   int[] b1 = new int[t.length];
   for (int i = 0; i < b1.length; i++) {
    b1[i] = t[i];
   }
   sc.setB(b1);
  } catch (CloneNotSupportedException e) {
   e.printStackTrace();
  }
  return sc;
 }

 public int getA() {
  return a;
 }

 public void setA(int a) {
  this.a = a;
 }

 public int[] getB() {
  return b;
 }

 public void setB(int[] b) {
  this.b = b;
 }
}

public class Example {
 public static void main(String[] args) {
  DeepClone c1 = new DeepClone();
  c1.setA(100);
  c1.setB(new int[] { 1000 });
  System.out.println("克隆前c1:  a=" + c1.getA() + " b[0]=" + c1.getB()[0]);
  DeepClone c2 = (DeepClone) c1.clone();
  c2.setA(50);
  int[] a = c2.getB();
  a[0] = 5;
  c2.setB(a);
  System.out.println("克隆后c1:  a=" + c1.getA() + " b[0]=" + c1.getB()[0]);
  System.out.println("克隆后c2:  a=" + c2.getA() + " b[0]=" + c2.getB()[0]);
 }
}

答案:
克隆前c1:  a=100 b[0]=1000
克隆后c1:  a=100 b[0]=1000
克隆后c2:  a=50 b[0]=5


自定义的深度克隆

98.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对
答案:

不对,有相同的hash code


99.覆盖equals()方法时需要注意的设计原则有哪些?
答案:

对称性:如果x.equals(y)返回是“true”,那么y.equals(x)也应该返回是“true”。
反射性:x.equals(x)必须返回是“true”。
类推性:如果x.equals(y)返回是“true”,而且y.equals(z)返回是“true”,那么z.equals(x)也应该返回是“true”。
一致性:如果x.equals(y)返回是“true”,只要x和y内容一直不变,不管你重复x.equals(y)多少次,返回都是“true”。
任何情况下,x.equals(null),永远返回是“false”;x.equals(和x不同类型的对象)永远返回是“false”。 

 


 

最新Java笔试题及答案,java高分面试指南 单个redis节点的并发能力是有限的,所以为了提高并发能力,我们需要搭建redis集群,就比如:主从复制。主从复制的流程主从复制主要分为:全量同步和增量同步。全量同步:在salve请求数据同步的时候会携带application Id和offset,如果master判断出applid和自己的不一样,就认为slave是第一次进行同步,所以会进行全量同步。 阅读详情

相关推荐

爱奇艺校招Hadoop工程师笔试复盘:HDFS、MapReduce与ZooKeeper实战解析

大数据处理的基础框架Hadoop生态,涵盖HDFS分布式文件系统、MapReduce计算模型、YARN资源调度及ZooKeeper协调服务等核心组件。理解这些底层原理与运行机制,是进行分布式系统调优和故障排查的前提。在视频网站的实际业务中,海量日志采集、用户行为分析、内容特征计算等场景对Hadoop组件依赖极深。通过复盘爱奇艺2018秋季校招笔试,可看到出题重点集中在HDFS读写流程、MapReduce的Shuffle细节、ZooKeeper高可用原理、集群搭建与数据倾斜处理等实战能力。内容围绕HDFS读写

weixin_33859231的博客 453

Java笔试题大全(附带答案)

一、单选题 1.下列哪一种叙述是正确的(D) A.abstract修饰符可修饰字段、方法和类 B. 抽象方法的body部分必须用一对大括号{ }包住 C. 声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 2.如下代码 public class Test { public int aMethod() { static int i = 0; i++; return i; } public static void main (String args[]) { Test test = new Test

web13618542420的博客 1万+

奇安信Go工程师笔试题解析:并发、内存与系统设计实战

Go语言作为云原生时代的高性能后端语言,其并发模型与内存管理机制一直是技术面试的高频考察点。GMP调度器如何实现轻量级协程?channel底层结构与死锁陷阱有哪些?GC调参和逃逸分析又该如何落地?这些原理不仅决定了服务的高并发稳定性,也直接映射到日志采集、告警系统等真实场景的架构设计中。从基础语法易错细节,到MySQL索引与事务优化,再到gRPC网络通信和连接池调优,系统化梳理Go工程能力的关键路径。本文结合奇安信春招Golang方向的笔试题型,深入拆解考点背后的安全业务逻辑,并给出可复用的备考策略与实战工

weixin_34124651的博客 450

2022Java笔试题选择题整理(附答案解析)走过路过不要错过了喂!

2022Java笔试题选择题

weixin_43474701的博客 1万+

Java基础选择题刷题指南:从考点逻辑到知识体系构建

在Java学习与面试准备过程中,基础知识的扎实程度往往决定了技术成长的边界。围绕Java核心语法、面向对象、集合框架、异常处理、多线程及JVM基础等高频考点,选择题作为一种高效的自测工具,能够帮助开发者快速暴露知识盲区。其价值不仅在于判断对错,更在于通过选项对比理解底层原理,例如运算符优先级、equals与hashCode的约定、字符串常量池机制等。掌握科学的刷题方法,将错题转化为知识延伸的起点,并主动验证代码运行结果,能显著提升学习效率。无论是准备笔试还是日常巩固,将零散考点串联成体系化的知识地图,是通往

weixin_34162228的博客 360

华为机考备考全攻略:从真题资料到ACM模式实战技巧

在技术招聘中,在线编程评测是衡量候选人工程能力的重要关卡,而ACM模式作为常见的代码提交范式,要求开发者独立处理完整的输入输出流程,这与日常业务开发中的函数调用习惯存在显著差异。理解评测系统的运行原理,掌握标准输入输出的边界处理、时间复杂度的合理估算以及数据结构与算法的灵活运用,是提升通过率的核心基础。从字符串处理、哈希表到二分查找与动态规划,每一类考点都对应着明确的工程实践场景。本文将围绕华为机考的真实考点,剖析如何高效利用试题与答案资料,识别优质复习内容,并通过科学的刷题节奏和考前冲刺策略,帮助读者在有

weixin_34072296的博客 294

Java入门基础:收集和整理了100道Java基础笔试考试题,主要是基础语法和面向对象编程

1.关于Java源代码文件,下列说法错误的是? A.一个源文件最多只能包含一个顶层的public类定义 B.一个源文件可以不包含任何代码定义。即它是一个空文件,编译时不会产生编译错误,一个包含类定义的最小源文件内容仅为class classname{} C.在一个原文件中,如果存在一个顶层的public类定义,则该源文件名必须与顶层的public类名一致,如果源文件中没有一个顶层的public类,...

nosprings的博客 4842

Java面试笔试题大汇总(最全+详细答案)

Java面试笔试题大汇总(最全+详细答案)

后台研发笔试面试题及答案解析整理

整理了个人在准备笔试面试过程中的一些基础知识及错题解析。适用于以java开发为主的后台研发人员进行阅读。 个人资源链接 (有积分的大神们可以直接下载,没积分的小伙伴也可以加我Q直接要) C笔试面试题及答案解析(一): 百度下载:https://wenku.baidu.com/view/30ae2c8d5ebfc77da26925c52cc58bd6318693da csdn下载:ht...

chenjhit的博客 3887

别再折腾SNAP了!ENVI 5.6.0 直接拖拽打开Sentinel-2 L2A数据的正确姿势

本文详细介绍了ENVI 5.6.0直接处理Sentinel-2 L2A数据的高效方法,无需通过SNAP进行繁琐的重采样预处理。通过直接拖拽XML文件,用户可以快速加载不同分辨率的波段数据,显著提升工作效率。文章还对比了直接打开与SNAP重采样流程的优劣,并提供了常见问题解决方案和高级应用技巧。

weixin_30296405的博客 635

Yolov26 在 Rk3588 上的 Rknn Onnx 部署实践(模型转换)

本文详细介绍了将YOLOv26 ONNX模型转换为RKNN模型的过程,适用于RK3588平台。主要内容包括:1)量化数据集的创建,通过随机抽取最多400张JPG图片生成校准数据集;2)ONNX转RKNN的完整脚本,支持多种量化方式和平台适配;3)模型转换的参考调用方式;4)模型结构对比展示。文章还提供了注意事项,强调量化数据集图片尺寸、mean/std值需与实际推理一致,并给出精度优化建议。该转换流程为YOLOv26模型在RK3588上的高效部署提供了完整解决方案。

qq_64366203的博客 1127

Java基础笔试练习(四)

A.实例变量指的是类中定义的变量,即成员变量,如果没有初始化,会有默认值。B.局部变量指的是在方法中定义的变量,如果没有初始化,会有默认值C.类变量指的是用static修饰的属性D.final变量指的是用final 修饰的变量BB.定义在类中的变量是类的成员变量,可以不进行初始化,Java会自动进行初始化,如果是引用类型默认初始化为null,如果是基本类型例如int则会默认初始化为0局部变量是定义在方法中的变量,必须要进行初始化。

2401_86963650的博客 1134

Windows 11下manage-bde命令实战:BitLocker锁了别慌,手把手教你用命令行找回数据

本文详细介绍了在Windows 11系统下使用manage-bde命令解锁BitLocker加密驱动器的实战方法。通过命令行诊断、恢复密钥获取、解锁流程演示及高级故障排除,帮助用户在系统锁定后快速找回数据,特别适合IT技术人员和遇到紧急情况的用户。

weixin_30902251的博客 329

银行IT岗笔试备考全攻略:以招行信用卡中心系统方向为例

在金融科技快速发展的背景下,银行IT岗位的笔试考察逻辑与互联网大厂截然不同,更注重知识面的广度与基础概念的扎实程度。系统方向作为银行技术体系的核心支撑,要求候选人掌握操作系统、Linux运维、数据库原理、中间件应用及网络协议等基础技术,同时还需具备行测逻辑与英语阅读能力。理解这一能力模型,有助于备考者从概念辨析、原理理解、场景应用三个维度构建系统化复习框架,并通过合理的时间分配与答题策略提升实战效率。本文以招商银行信用卡中心春招系统方向为例,梳理从岗位认知、考点拆解到应试技巧的完整路径,为准备进入银行业从事

weixin_34151004的博客 465

AI Agent评估:指标、策略与最佳实践

AI智能体正逐渐融入到各个领域,从日常的对话助手到复杂的工作流程自动化,其应用范围不断拓展。然而,确保这些智能体能够可靠、高效地完成任务至关重要,这就使得AI智能体评估成为了人工智能发展过程中不可或缺的一环。本文将深入探讨AI智能体评估的指标、策略以及最佳实践,为读者全面解读这一关键领域。

llm_way的博客 3498

AUTOSAR MCAL开发及EB Tresos工具使用总结

在基于AutoSar CP架构开发MCAL时,会使用到EB tresos工具。本文主要对MCAL开发及EB tresos工具使用进行总结,仅作为自学使用,以方便后续查漏补缺。

liuxu324的博客 2628

银行系测试开发秋招笔试复盘:题型拆解与备考策略

测试开发是连接研发与质量的桥梁,既要懂测试理论,也要具备编程与自动化能力。在银行IT岗位的秋招笔试中,考察逻辑与互联网大厂截然不同,更侧重业务理解、数据库操作、Linux基本功及用例设计思维。SQL、Linux命令、测试用例设计是银行笔试的高频考点,信用卡、还款、账单、风控等金融场景则贯穿始终。招行信用卡中心2019秋招IT笔试正是此类考核的典型样本,覆盖数据结构算法、编程题、SQL查询、Linux日志分析及业务场景用例设计。通过复盘题型结构与答题策略,可以明确银行系测试开发的岗位能力模型——硬技能、业务理

weixin_34253126的博客 418

【NVIDIA-B200 GPU固件升级】NVIDIA Blackwell B200 GPU 固件更新全指南

B200 GPU 固件更新并非 “执行一条命令即可” 的简单操作,而是涉及 “版本兼容性校验、BMC 环境准备、UEFI 引导、Redfish 协议交互” 的系统性工程。从文档翻译与技术解析来看,NVIDIA 的更新流程设计围绕 “安全” 与 “稳定” 两大核心 —— 无论是 0.9 版本的 “跳板限制”,还是 UEFI Shell 的引导要求,本质都是为了避免因操作不当导致硬件损坏。对于数据中心运维人员,建议在更新前做好三项准备:① 确认 GPU 当前固件版本(通过查询),规划升级路径;

jundao1997的专栏 743

顺丰科技大数据平台开发笔试考点全解析与复习指南

大数据平台开发是构建与维护分布式数据处理系统的核心工程方向,其技术体系涵盖Java虚拟机(JVM)内存与垃圾回收、并发编程、Hadoop生态组件(HDFS、MapReduce、YARN)、Spark与Flink计算引擎以及数据仓库分层建模等底层原理。理解这些原理不仅是排查集群故障、优化任务性能的基础,更是支撑PB级数据存储、实时物流追踪等大规模业务场景的关键能力。以顺丰科技秋招大数据平台开发客观题为蓝本,系统梳理各技术模块的考察重点与易混淆点,为校招求职或转行开发者提供一条从原理到实践的复习路径,帮助构建完

weixin_34133829的博客 274

【PHP面试题29】什么是PHP-FPM?它与PHP和Nginx有什么关系

PHP面试专区。计划将全覆盖PHP开发领域所有的面试题,对标资深工程师/架构师序列,欢迎大家提前关注锁定。PHP-FPM(FastCGI Process Manager)是PHP的FastCGI进程管理器,它是PHP 5.3.3及更高版本的一部分。它通过为每个请求分配一个独立的进程来提高PHP脚本的执行效率和性能,并且可以与Web服务器(如Nginx、Apache等)进行通信。PHP-FPM是PHP的FastCGI进程管理器,它通过为每个请求分配一个独立的进程来提高PHP脚本的执行效率和性能。

黑夜开发者的博客 1477

《UDS协议从入门到精通》系列——图解0x19:读取故障码信息

认识最核心的诊断服务“0x19”!!全网最强图解!一文搞懂所有常用子服务!

车载系统攻城狮 1万+

牛客2019二轮模考复盘:OJ判题规则与算法题备考策略

在编程笔试与算法面试中,除了掌握数据结构与核心算法,理解在线判题系统(OJ)的运作逻辑同样决定成败。时间复杂度、边界条件与输入输出解析方式,往往是将“样例通过”变为“全绿AC”的关键门槛。牛客模考作为模拟真实笔试的演练场,其题目梯度设计、高频题型及隐藏的判题规则,为备战秋招的开发者提供了极具参考价值的训练样本。从字符串处理、数组数学规律到双指针与动态规划,每类题型背后都暗含对工程思维的考察。本文通过复盘2019年二轮模考的典型题目,梳理OJ平台的常见失分点与优化策略,帮助读者建立一套从限时模拟、边界自测到变

weixin_30908103的博客 440

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

程序员面试算法题备战指南:从Hot 100到外包OD全解析

算法题是程序员技术面试中绕不开的环节,它考察的并非智商,而是数据结构、复杂度分析、代码实现与问题拆解等基本功。无论是准备校招、社招,还是考虑程序员外包或华为OD岗位,掌握系统性的刷题路线都至关重要。从理解数组、链表、二叉树、动态规划等核心概念,到熟悉LeetCode Hot 100等高频题单,再到针对不同岗位定制准备策略,都是提升面试通过率的关键。本文从基础算法原理出发,结合工程实践视角,梳理主流面试场景下的算法考核差异与高效的八周备考路径,帮助你理性应对算法面试,将刷题转化为真正的编程能力。

weixin_33816946的博客 279

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

软件测试期末考题设计:从知识考核到能力诊断

软件测试作为保障系统质量的核心工程活动,其本质是融合用户视角、技术手段与风险预判的系统性思维。理解测试用例设计原理、缺陷诊断逻辑与测试策略制定方法,是构建质量防线的基础能力。当前行业对测试人才的需求已从单纯执行转向质量赋能、左移协同与数据驱动,尤其强调在真实业务场景中识别边界风险、构建证据链、权衡资源约束的能力。‘软件测试期末考试题’不再只是教学闭环的评估工具,更是映射工程实践能力的体检报告——它检验的不是定义记忆,而是需求解构力、故障推理力与质量决策力。本文聚焦高校与企业共通的命题实践,解析如何通过场景化

weixin_34239169的博客 377

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

15个免费编程学习网站全解析:从零基础到实战进阶的自学路径

编程学习是掌握计算机科学核心技能的关键路径,其本质在于通过实践解决问题。从理解基础语法到构建复杂系统,学习过程遵循从理论到实践的认知规律。对于初学者和进阶者而言,免费且高质量的学习资源具有极高的技术价值,它们能有效降低入门门槛,并提供持续成长的平台。在Web开发、数据分析、算法面试等主流应用场景中,系统化的学习路径尤为重要。本文聚焦于交互式学习平台、大学公开课、开发者社区及专项工具等关键资源类型,其中freeCodeCamp的项目驱动模式和LeetCode的算法训练体系是构建扎实编程能力的核心热词。通过合理

weixin_33708432的博客 455

软件测试期末考题背后的工程能力体检逻辑

软件测试不是概念背诵,而是将理论知识转化为解决真实问题的能力。其核心原理在于需求解构、技术穿透与系统性验证,技术价值体现在缩短质量反馈闭环、支撑高可靠交付。典型应用场景覆盖金融交易验证、音视频倍速播放测试、微服务拆分后的混沌测试等企业级实践。本文聚焦如何通过期末试卷这一载体,考察测试设计能力、自动化实操深度与质量模型应用水平,揭示从‘知道是什么’到‘能做什么’的关键跃迁路径。

weixin_34354173的博客 303
上一篇: Java入门基础:剪刀石头布小游戏,练习if else和while等
下一篇: Java入门基础:基于源码深度剖析==和equals的区别,注意存在Java内存池的特殊情况
猿说猿道
博客等级 码龄8年 120粉丝 55原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值