Java经典面试题 带答案(一)_1、下列哪一种叙述是正确的d a

C.java.lang
  D.java.swing
  答案:A
  5.下列运算符合法的是()
  A.&&
  B.<>
  C.if
  D.:=
  答案:A
  6.执行如下程序代码
  a=0;c=0;
  do{
  --c;
  a=a-1;
  }while(a>0);
  后,C的值是()
  A.0
  B.1
  C.-1
  D.死循环
  答案:C
  7.下列哪一种叙述是正确的()
  A.abstract修饰符可修饰字段、方法和类
  B.抽象方法的body部分必须用一对大括号{}包住
  C.声明抽象方法,大括号可有可无
  D.声明抽象方法不可写出大括号
  答案:D
  8.下列语句正确的是()
  A.形式参数可被视为localvariable
  B.形式参数可被字段修饰符修饰
  C.形式参数为方法被调用时,真正被传递的参数
  D.形式参数不可以是对象
  答案:A
  9.下列哪种说法是正确的()
  A.实例方法可直接调用超类的实例方法
  B.实例方法可直接调用超类的类方法
  C.实例方法可直接调用其他类的实例方法
  D.实例方法可直接调用本类的类方法
  答案:D
二、多项选择题
  1.Java程序的种类有()
  A.类(Class)
  B.Applet
  C.Application
  D.Servlet
  2.下列说法正确的有()
  A.环境变量可在编译sourcecode时指定
  B.在编译程序时,所能指定的环境变量不包括class path
  C.javac一次可同时编译数个Java源文件
  D.javac.exe能指定编译结果要置于哪个目录(directory)
  答案:BCD
  3.下列标识符不合法的有()
  A.new
  B.$Usdollars
  C.1234
  D.car.taxi
  答案:ACD
  4.下列说法错误的有()
  A.数组是一种对象
  B.数组属于一种原生类
  C.intnumber=[]={31,23,33,43,35,63}
  D.数组的大小可以任意改变
  答案:BCD
  5.不能用来修饰interface的有()
  A.private
  B.public
  C.protected
  D.static
  答案:ACD
  6.下列正确的有()
  A. call byvalue不会改变实际参数的数值
  B. call by reference能改变实际参数的参考地址
  C. call byreference不能改变实际参数的参考地址
  D. call byreference能改变实际参数的内容
  答案:ACD
  7.下列说法错误的有()
  A.在类方法中可用this来调用本类的类方法
  B.在类方法中调用本类的类方法时可直接调用
  C.在类方法中只能调用本类中的类方法
  D.在类方法中绝对不能调用实例方法
  答案:ACD
  8.下列说法错误的有()
  A.Java面向对象语言容许单独的过程与函数存在
  B. Java面向对象语言容许单独的方法存在
  C.Java语言中的方法属于类中的成员(member)
  D.Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同
  答案:ABC
  9.下列说法错误的有()
  A.能被java.exe成功运行的javaclass文件必须有main()方法
  B. J2SDK就是Java API
  C.Appletviewer.exe可利用jar选项运行.jar文件
  D.能被Appletviewer成功运行的javaclass文件必须有main()方法
  答案:BCD
三、判断题
  1.Java程序中的起始类名称必须与存放该类的文件名相同。()
  答案:正确
  2.Unicode是用16位来表示一个字的。()
  答案:正确
  3.原生类中的数据类型均可任意转换。()
  答案:错误
  1.分别写出BOOL,int,float,指针类型的变量a 与“零”的比较语句。
  答案:
  BOOL : if ( !a ) orif(a)
  int : if ( a == 0)
  float : const EXPRESSION EXP = 0.000001
  if ( a < EXP && a >-EXP)
  pointer : if ( a !=NULL) or if(a == NULL)
  2.请说出const与#define 相比,有何优点?
  答案:1) const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。
  2) 有些集成化的调试工具可以对const 常量进行调试,但是不能对宏常量进行调试。
  3.简述数组与指针的区别?
  数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。指针可以随时指向任意类型的内存块。
  (1)修改内容上的差别
  char a[]= “hello”;
  a[0] = ‘X’;
  char *p = “world”; // 注意p 指向常量字符串
  p[0] = ‘X’;// 编译器不能发现该错误,运行时错误
  (2) 用运算符sizeof 可以计算出数组的容量(字节数)。sizeof§,p为指针得到的是一个指针变量的字节数,而不是p 所指的内存容量。C++/C语言没有办法知道指针所指的内存容量,除非在申请内存时记住它。注意当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。
  char a[] =“hello world”;
  char *p = a;
  cout<< sizeof(a) << endl; // 12字节
  cout<< sizeof§ << endl; // 4 字节
  计算数组和指针的内存容量
  voidFunc(char a[100])
  {
  cout<< sizeof(a) << endl; // 4 字节而不是100字节
  }
  4.类成员函数的重载、覆盖和隐藏区别?
  答案:
  a.成员函数被重载的特征:
  (1)相同的范围(在同一个类中);
  (2)函数名字相同;
  (3)参数不同;
  (4)virtual 关键字可有可无。
  b.覆盖是指派生类函数覆盖基类函数,特征是:
  (1)不同的范围(分别位于派生类与基类);
  (2)函数名字相同;
  (3)参数相同;
  (4)基类函数必须有virtual 关键字。
  c.“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
  (1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。
  (2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual 关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)
  5. There are two int variables: a and b, don’t use “if”, “? :”, “switch”orother judgement statements, find out the biggest one of the two numbers.
  答案:( ( a + b ) + abs( a - b ) ) / 2
6. 如何打印出当前源文件的文件名以及源文件的当前行号?
  答案:
  cout << FILE ;
  cout<<LINE ;
  __FILE__和__LINE__是系统预定义宏,这种宏并不是在某个文件中定义的,而是由编译器定义的。
  7. main主函数执行完毕后,是否可能会再执行一段代码,给出说明?
  答案:可以,可以用_onexit 注册一个函数,它会在main 之后执行intfn1(void), fn2(void), fn3(void), fn4 (void);
  void main( void )
  {
  String str(“zhanglin”);
  _onexit( fn1 );
  _onexit( fn2 );
  _onexit(fn3 );
  _onexit( fn4 );
  printf( “This is executed first.\n” );
  }
  int fn1()
  {
  printf( “next.\n” );
  return 0;
  }
  int fn2()
  {
  printf( "executed " );
  return 0;
  }
  int fn3()
  {
  printf( "is " );
  return 0;
  }
  int fn4()
  {
  printf( "This “);
  return 0;
  }
  The _onexit function is passed the address of afunction (func) to be called when the program terminates normally. Successivecalls to _onexit create a register of functions that are executed in LIFO(last-in-first-out) order. The functions passed to _onexit cannot takeparameters.
  8. 如何判断一段程序是由C 编译程序还是由C++编译程序编译的?
  答案:
  #ifdef __cplusplus
  cout<<“c++”;
  #else
  cout<<“c”;
  #endif
  9.文件中有一组整数,要求排序后输出到另一个文件中
  答案:
  #i nclude
  #i nclude
  using namespace std;
  void Order(vector& data)//bubble sort
  {
  int

必看视频!获取2024年最新Java开发全套学习资料 备注Java

count = data.size() ;
  int tag = false ; //设置是否需要继续冒泡的标志位
  for ( int i = 0 ; i < count ; i++)
  {
  for ( int j =0 ; j < count - i - 1 ; j++)
  {
  if ( data[j] > data[j+1])
  {
  tag = true ;
  int temp = data[j] ;
  data[j] = data[j+1] ;
  data[j+1] = temp ;
  }
  }
  if ( !tag )
  break ;
  }
  }
  void main( void )
  {
  vectordata;
  ifstreamin(“c:\data.txt”);
  if ( !in)
  {
  cout<<“file error!”;
  exit(1);
  }
  int temp;
  while (!in.eof())
  {
  in>>temp;
  data.push_back(temp);
  }
  in.close(); //关闭输入文件流
  Order(data);
  ofstream out(“c:\result.txt”);
  if ( !out)
  {
  cout<<“fileerror!”;
  exit(1);
  }
  for ( i = 0 ; i < data.size() ; i++)
  out<<DATA[I]<<” ?;
  10. 链表题:一个链表的结点结构
  struct Node
  {
  int data ;
  Node next ;
  };
  typedef struct Node Node ;
  (1)已知链表的头结点head,写一个函数把这个链表逆序 ( Intel)
  Node * ReverseList(Node
head) //链表逆序
  {
  if ( head == NULL || head->next == NULL )
  returnhead;
  Node *p1 = head ;
  Node *p2 = p1->next ;
  Node *p3 =p2->next ;
  p1->next = NULL ;
  while ( p3 != NULL )
  {
  p2->next = p1 ;
  p1 = p2 ;
  p2 = p3 ;

最后

分布式技术专题+面试解析+相关的手写和学习的笔记pdf

还有更多Java笔记分享如下:

image

Node *p2 = p1->next ;
  Node *p3 =p2->next ;
  p1->next = NULL ;
  while ( p3 != NULL )
  {
  p2->next = p1 ;
  p1 = p2 ;
  p2 = p3 ;

最后

分布式技术专题+面试解析+相关的手写和学习的笔记pdf

还有更多Java笔记分享如下:

[外链图片转存中…(img-ONyMYfDO-1716465233723)]

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我无法提供完整的Java笔试题大全答案。然而,以下是11道经典Java笔试题,希望可以帮助你进行准备和练习: 1. 什么是 Java 的基本数据类型? Java 的基本数据类型包括整数类型(byte、short、int、long)、浮点数类型(float、double)、字符类型(char)和布尔类型(boolean)。 2. Java 中如何实现多态? Java 中实现多态的方式是通过继承和接口。子类可以继承父类并重写父类的方法,从而实现多态。同时,Java 中还可以使用接口来定义一组规范,实现这个接口的类都需要实现这些规范,从而达到多态的目的。 3. Java 中的 final 关键字有什么作用? final 关键字可以用来修饰类、方法和变量,表示它们是不可改变的。在类中,final 关键字表示该类不能被继承;在方法中,final 关键字表示该方法不能被重写;在变量中,final 关键字表示该变量是一个常量,一旦被赋值就不能再次修改。 4. Java 中的 static 关键字有什么作用? static 关键字可以用来修饰类、方法和变量,表示它们是静态的。在类中,static 关键字表示该类的所有对象共享同一个静态成员;在方法中,static 关键字表示该方法是类方法,可以直接通过类名调用;在变量中,static 关键字表示该变量是静态变量,所有对象共享同一个变量。 5. Java 中如何实现线程? Java 中可以通过继承 Thread 类或实现 Runnable 接口来实现线程。继承 Thread 类的方式比较简单,但是由于 Java 不支持多重继承,因此如果要继承其他类就无法使用这种方式。实现 Runnable 接口则比较灵活,可以同时继承其他类,但需要创建一个 Thread 对象来启动线程。 6. Java 中如何处理异常? Java 中可以使用 try-catch-finally 块来处理异常。try 块中包含可能会抛出异常的代码,如果发生异常则会被 catch 块捕获并处理。finally 块中的代码无论是否发生异常都会被执行。 7. Java 中如何实现文件的读写操作? Java 中可以使用 FileInputStream 和 FileOutputStream 类来进行文件的读写操作。其中 FileInputStream 用于读取文件,FileOutputStream 用于写入文件。可以使用字节流(byte stream)和字符流(character stream)来读写不同类型的文件。 8. Java 中如何实现排序算法? Java 中可以使用 Arrays 类和 Collections 类来实现常见的排序算法。Arrays 类提供了 sort() 方法来对数组进行排序,可以使用自然排序或自定义排序。Collections 类提供了 sort() 方法来对集合进行排序,同样可以使用自然排序或自定义排序。 9. Java 中如何实现反射? Java 中可以使用 Class 类和 java.lang.reflect 包来实现反射。Class 类表示一个类的定义,可以获取类的信息,如类名、包名、方法和属性等。java.lang.reflect 包提供了一组类和接口,可以在运行时获取类的信息并调用类的方法。 10. Java 中如何处理日期和时间? Java 中可以使用 java.util.Date 类来表示日期和时间。可以使用 SimpleDateFormat 类来格式化日期和时间,并将字符串转换为日期对象。Java 8 中引入了新的日期和时间 API,可以使用 java.time 包来处理日期和时间。 11. Java 中如何实现网络编程? Java 中可以使用 java.net 包来实现网络编程。可以使用 Socket 类来创建客户端程序,使用 ServerSocket 类来创建服务器程序。可以使用 TCP 协议和 UDP 协议来实现不同类型的网络通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值