欢迎来到专业的万有范文网平台! 工作总结 工作计划 心得体会 思想汇报 述职报告 教案设计 整改报告 事迹材料
当前位置:首页 > 范文大全 > 公文范文 > 正文

2023年java实习生面试题3篇(全文完整)

时间:2023-02-24 15:25:09 浏览量:

java实习生面试题1  1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。  Java语言提供了八种基本类型:  六种数字类型(四个整数型,两个浮点型)  字节型byt下面是小编为大家整理的2023年java实习生面试题3篇(全文完整),供大家参考。

2023年java实习生面试题3篇(全文完整)

java实习生面试题1

  1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。

  Java语言提供了八种基本类型:

  六种数字类型(四个整数型,两个浮点型)

  字节型byte 8位 短整型short 16位 整型int 32位

  长整型long 64位 单精度float 32位 双精度double 64位

  一种字符类型

  字符型char 8位

  还有一种布尔型

  布尔型:boolean 8位 可存储"True"和"false"。

  String本身就是一个对象而不是基本数据类型,String的变量名是对String类的引用。

  2.字符串的操作:

  写一个方法,实现字符串的反转,如:输入abc,输出cba

  public static String reverse(String s){

  int length=s.length();

  StringBuffer result=new StringBuffer(length);

  for(int i=length-1;i>=0;i--)

  result.append(s.charAt(i));

  return result.toString();

  }

  写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc。 String s = "bbbwlirbbb";

  s.replaceAll("wlirbbb","hhtccc");

  3.数据类型之间的转换

  如何将数值型字符转换为数字(Integer,Double)

  使用Integer.parseInt()和Double.parseDouble()方法。

  如何将数字转换为字符

  class my

  {

  int a=12;

  Label label=new Label();

  label.setText(String.valueOf(a));

  }

  如何取小数点前两位,并四舍五入。

  System.out.println("四舍五入取整:(3.856)="

  + new BigDecimal(i).setScale(2, BigDecimal.ROUND_HALF_UP));

java实习生面试题2

  1.日期和时间

  如何取得年月日,小时分秒

  Date dat=new Date();

  dat.getYear(); dat.getMonth(); dat.getDay(); dat.getHours(); dat.getMinutes(); dat.getSeconds();

  如何取得从1970年到现在的毫秒数

  long now=dat.getTime();

  如何获取某个日期是当月的最后一天

  DateFormate df=DateFormate.getInstance();df.Format(dat);

  如何格式化日期

  DateFormate df=DateFormate.getInstance();

  df.Format(dat);

  2.数组和集合

  数组与集合的区别:一:数组声明了它容纳的元素的类型,而集合不声明。这是由于集合以object形式来存储它们的元素。二:一个数组实例具有固定的大小,不能伸缩。集合则可根据需要动态改变大小。三:数组是一种可读/可写数据结构没有办法创建一个只读数组。然而可以使用集合提供的ReadOnly方 只读方式来使用集合。该方法将返回一个集合的只读版本。

  3.文件和目录(I/O)操作

  如何列出某个目录下的所有文件

  如何列出某个目录下的所有子目录

  判断一个文件或目录是否存在

  如何读写文件

  import java.io.BufferedReader;

  import java.io.File;

  import java.io.FileInputStream;

  import java.io.FileReader;

  import java.io.FileWriter;

  import java.io.IOException;

  import java.io.InputStreamReader;

  import java.io.PrintWriter;

  public class FileOpreate {

  public static void main(String [] args)

  {

  FileOpreate fo=new FileOpreate();

  try

  {

  //文件的写入

  /*String[] testStr=new String[50];

  for(int i=0;i

  {

  testStr[i]="我的测试数据00"+i;

  }

  fo.writeFile("D:\\","test.txt",testStr);

  */

  //文件的写入

  /*String str="测试";

  fo.writeFile("D:\\","test001.txt",str);*/

  //创建或者删除文件

  /*if(fo.createAndDeleteFile("D:\\","test001.txt"))

  {

  fo.createAndDeleteFile("D:\","test002.txt");

  }*/

  //创建或者删除文件夹

  /*fo.createAndDeleteFolder("D:\\","2009-07-06");*/

  //输出一个文件内的文件名称

  /*fo.readFolderByFile("D:\\");*/

  //判断一个文件是否是空的

  /*fo.fileIsNull("D:\\","test002.txt");*/

  //读取全部的文件内容

  /*fo.readAllFile("D:\\","test.txt");*/

  //一行一行读取文件内容

  fo.readLineFile("D:\\","test.txt");

  }

  catch(Exception e)

  {

  e.printStackTrace();

  }

  }


java实习生面试题3篇扩展阅读


java实习生面试题3篇(扩展1)

——java面试题3篇

java面试题1

  1、&和&&的区别?

  答:&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是null而且不是空字符串,应当写为:username != null &&!username.equals(""),二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常。注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此。

  补充:如果你熟悉JavaScript,那你可能更能感受到短路运算的强大,想成为JavaScript的高手就先从玩转短路运算开始吧。

  2、解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法。

  答:通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用内存中的栈空间;而通过new关键字和构造器创建的对象放在堆空间;程序中的字面量(literal)如直接书写的100、"hello"和常量都是放在静态区中。栈空间操作起来最快但是栈很小,通常大量的对象都是放在堆空间,理论上整个内存没有被其他进程使用的空间甚至硬盘上的虚拟内存都可以被当成堆空间来使用。

  String str = new String("hello");

  上面的语句中变量str放在栈上,用new创建出来的字符串对象放在堆上,而"hello"这个字面量放在静态区。

  补充:较新版本的Java(从Java 6的某个更新开始)中使用了一项叫"逃逸分析"的技术,可以将一些局部对象放在栈上以提升对象的操作性能。

  3、Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?

  答:Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加0.5然后进行下取整。

  4、swtich 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?

  答:在Java 5以前,switch(expr)中,expr只能是byte、short、char、int。从Java 5开始,Java中引入了枚举类型,expr也可以是enum类型,从Java 7开始,expr还可以是字符串(String),但是长整型(long)在目前所有的版本中都是不可以的。

java面试题2

  1、数组有没有length()方法?String有没有length()方法?

  答:数组没有length()方法,有length 的属性。String 有length()方法。JavaScript中,获得字符串的长度是通过length属性得到的,这一点容易和Java混淆。

  2、在Java中,如何跳出当前的多重嵌套循环?

  答:在最外层循环前加一个标记如A,然后用break A;可以跳出多重循环。(Java中支持带标签的break和continue语句,作用有点类似于C和C++中的goto语句,但是就像要避免使用goto一样,应该避免使用带标签的break和continue,因为它不会让你的程序变得更优雅,很多时候甚至有相反的作用,所以这种语法其实不知道更好)

  3、构造器(constructor)是否可被重写(override)?

  答:构造器不能被继承,因此不能被重写,但可以被重载。

  4、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?

  答:不对,如果两个对象x和y满足x.equals(y) == true,它们的哈希码(hash code)应当相同。Java对于eqauls方法和hashCode方法是这样规定的:(1)如果两个对象相同(equals方法返回true),那么它们的.hashCode值一定要相同;(2)如果两个对象的hashCode相同,它们并不一定相同。当然,你未必要按照要求去做,但是如果你违背了上述原则就会发现在使用容器时,相同的对象可以出现在Set集合中,同时增加新元素的效率会大大下降(对于使用哈希存储的系统,如果哈希码频繁的冲突将会造成存取性能急剧下降)。

java面试题3

  问题1:GregorianCalendar类是什么东西?

  答案:GregorianCalendar提供了西方传统日历的支持。

  问题2:ResourceBundle类是什么?

  答案:ResourceBundle用来存储指定语言环境的资源,应用程序可以根据运行时的语言环境来加载这些资源,从而提供不同语言的展示。

  问题3:为什么Java里没有全局变量?

  答案:全局变量是全局可见的",Java不支持全局可见的变量,因为:全局变量破坏了引用透明性原则。全局变量导致了命名空间的冲突。

  问题4:SimpleTimeZone类是什么?

  答案:SimpleTimeZone提供公历日期支持。

  问题5:while循环和do循环有什么不同?

  答案:while结构在循环的开始判断下一个迭代是否应该继续。do/while结构在循环的结尾来判断是否将继续下一轮迭代。do结构至少会执行一次循环体。

  问题6:Locale类是什么?

  答案:Locale类用来根据语言环境来动态调整程序的输出。

  问题7:面向对象编程的原则是什么?

  答案:主要有三点,多态,继承和封装。

  问题8:介绍下继承的原则

  答案:继承使得一个对象可以获取另一个对象的属性。使用继承可以让已经测试完备的功能得以复用,并且可以一次修改,所有继承的地方都同时生效。


java实习生面试题3篇(扩展2)

——java应届生面试题和答案3篇

java应届生面试题和答案1

  1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。

  Java语言提供了八种基本类型:

  六种数字类型(四个整数型,两个浮点型)

  字节型byte 8位 短整型short 16位 整型int 32位

  长整型long 64位 单精度float 32位 双精度double 64位

  一种字符类型

  字符型char 8位

  还有一种布尔型

  布尔型:boolean 8位 可存储"True"和"false"。

  String本身就是一个对象而不是基本数据类型,String的变量名是对String类的引用。

  2.字符串的操作:

  写一个方法,实现字符串的反转,如:输入abc,输出cba

  public static String reverse(String s){

  int length=s.length();

  StringBuffer result=new StringBuffer(length);

  for(int i=length-1;i>=0;i--)

  result.append(s.charAt(i));

  return result.toString();

  }

  写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc。 String s = "bbbwlirbbb";s.replaceAll("wlirbbb","hhtccc");

  3.数据类型之间的转换

  如何将数值型字符转换为数字(Integer,Double)

  使用Integer.parseInt()和Double.parseDouble()方法。

  如何将数字转换为字符

  class my

  {

  int a=12;

  Label label=new Label();

  label.setText(String.valueOf(a));

  }

  如何取小数点前两位,并四舍五入。

  System.out.println("四舍五入取整:(3.856)="

  + new BigDecimal(i).setScale(2, BigDecimal.ROUND_HALF_UP));

  4.日期和时间

  如何取得年月日,小时分秒

  Date dat=new Date();

  dat.getYear(); dat.getMonth(); dat.getDay(); dat.getHours(); dat.getMinutes(); dat.getSeconds();

  如何取得从1970年到现在的毫秒数

  long now=dat.getTime();

  如何获取某个日期是当月的最后一天

  DateFormate df=DateFormate.getInstance();df.Format(dat);

  如何格式化日期

  DateFormate df=DateFormate.getInstance();

  df.Format(dat);

java应届生面试题和答案2

  1.数组和集合

  数组与集合的区别:一:数组声明了它容纳的元素的类型,而集合不声明。这是由于集合以object形式来存储它们的元素。二:一个数组实例具有固定的大小,不能伸缩。集合则可根据需要动态改变大小。三:数组是一种可读/可写数据结构没有办法创建一个只读数组。然而可以使用集合提供的ReadOnly方 只读方式来使用集合。该方法将返回一个集合的只读版本。

  2.Java多态的实现(继承、重载、覆盖)

  多态可分为:

  1)编译多态:主要是体现在重载,系统在编译时就能确定调用重载函数的哪个版本。

  2)运行多态:主要体现在OO设计的继承性上,子类的对象也是父类的对象,即上溯造型,所以子类对象可以作为父类对象使用,父类的对象变量可以指向子类对象。因此通过一个父类发出的方法调用可能执行的是方法在父类中的实现,也可能是某个子类中的实现,它是由运行时刻具体的对象类型决定的。

  3.编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。

  String str = new String("字符串".getBytes("GB2312"),"ISO-8859-1");

  4.使用StringBuffer类与String类进行字符串连接时有何区别?

  JAVA*台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。

  5.谈谈final, finally, finalize的区别。

  final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 finally是异常处理语句结构的一部分,表示总是执行。

  finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

  6.int 和 Integer 有什么区别?

  Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。

  Int是java的原始数据类型,

  Integer是java为int提供的封装类。

  Java为每个原始类型提供了封装类。

  原始类型封装类booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble

  引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的.数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。


java实习生面试题3篇(扩展3)

——java面试题全集3篇

java面试题全集1

  1)Java 中能创建 Volatile 数组吗?

  能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不是整个数组。我的意思是,如果改变引用指向的数组,将会受到 volatile 的保护,但是如果多个线程同时改变数组的元素,volatile 标示符就不能起到之前的保护作用了。

  2)volatile 能使得一个非原子操作变成原子操作吗?

  一个典型的例子是在类中有一个long 类型的成员变量。如果你知道该成员变量会被多个线程访问,如计数器、价格等,你最好是将其设置为 volatile。为什么?因为 Java 中读取 long 类型变量不是原子的,需要分成两步,如果一个线程正在修改该 long 变量的值,另一个线程可能只能看到该值的一半(前 32 位)。但是对一个 volatile 型的 long 或 double 变量的读写是原子。

  3)volatile 修饰符的有过什么实践?

  一种实践是用 volatile 修饰 long 和 double 变量,使其能按原子类型来读写。double 和 long 都是64位宽,因此对这两种类型的读是分为两部分的,第一次读取第一个 32 位,然后再读剩下的 32 位,这个过程不是原子的,但 Java 中 volatile 型的 long 或 double 变量的读写是原子的。volatile 修复符的另一个作用是提供内存屏障(memory barrier),例如在分布式框架中的"应用。简单的说,就是当你写一个 volatile 变量之前,Java 内存模型会插入一个写屏障(writebarrier),读一个 volatile 变量之前,会插入一个读屏障(read barrier)。意思就是说,在你写一个 volatile 域时,能保证任何线程都能看到你写的值,同时,在写之前,也能保证任何数值的更新对所有线程是可见的,因为内存屏障会将其他所有写的值更新到缓存。

  4)volatile 类型变量提供什么保证?

  volatile 变量提供顺序和可见性保证,例如,JVM或者 JIT为了获得更好的性能会对语句重排序,但是 volatile类型变量即使在没有同步块的情况下赋值也不会与其他语句重排序。 volatile 提供 happens-before 的保证,确保一个线程的修改能对其他线程是可见的。某些情况下,volatile 还能提供原子性,如读 64 位数据类型,像 long 和 double 都不是原子的,但 volatile 类型的 double 和 long 就是原子的。

  5) 10 个线程和 2 个线程的同步代码,哪个更容易写?

  从写代码的角度来说,两者的复杂度是相同的,因为同步代码与线程数量是相互独立的。但是同步策略的选择依赖于线程的数量,因为越多的线程意味着更大的竞争,所以你需要利用同步技术,如锁分离,这要求更复杂的代码和专业知识。

  6)你是如何调用 wait()方法的?使用 if 块还是循环?为什么?

  wait() 方法应该在循环调用,因为当线程获取到CPU 开始执行的时候,其他条件可能还没有满足,所以在处理前,循环检测条件是否满足会更好。下面是一段标准的使用 wait 和 notify 方法的代码:

  // The standard idiom for using the waitmethodsynchronized (obj) {while (condition does not hold)

  obj.wait(); // (Releases lock, andreacquires on wakeup)... // Perform action appropriate to condition}

  参见 EffectiveJava 第 69 条,获取更多关于为什么应该在循环中来调用 wait 方法的内容。


java实习生面试题3篇(扩展4)

——java经典面试题目3篇

java经典面试题目1

 1、String 是最基本的数据类型吗?

  答:不是。Java中的基本数据类型只有8个:byte、short、int、long、float、double、char、boolean;除了基本类型(primitive type)和枚举类型(enumeration type),剩下的都是引用类型(reference type)。

  2、float f=3.4;是否正确?

  答:不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;。

  3、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?

  答:对于short s1 = 1; s1 = s1 + 1;由于1是int类型,因此s1+1运算结果也是int 型,需要强制转换类型才能赋值给short型。而short s1 = 1; s1 += 1;可以正确编译,因为s1+= 1;相当于s1 = (short)(s1 + 1);其中有隐含的强制类型转换。

  4、Java有没有goto?

  答:goto 是Java中的保留字,在目前版本的Java中没有使用。(根据James Gosling(Java之父)编写的《The Java Programming Language》一书的附录中给出了一个Java关键字列表,其中有goto和const,但是这两个是目前无法使用的关键字,因此有些地方将其称之为保留字,其实保留字这个词应该有更广泛的意义,因为熟悉C语言的程序员都知道,在系统类库中使用过的有特殊意义的单词或单词的组合都被视为保留字)

java经典面试题目2

  1、&和&&的区别?

  答:&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是null而且不是空字符串,应当写为:username != null &&!username.equals(“”),二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常。注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此。

  补充:如果你熟悉JavaScript,那你可能更能感受到短路运算的强大,想成为JavaScript的高手就先从玩转短路运算开始吧。

  2、解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法。

  答:通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用内存中的栈空间;而通过new关键字和构造器创建的对象放在堆空间;程序中的字面量(literal)如直接书写的100、”hello”和常量都是放在静态区中。栈空间操作起来最快但是栈很小,通常大量的对象都是放在堆空间,理论上整个内存没有被其他进程使用的空间甚至硬盘上的虚拟内存都可以被当成堆空间来使用。

  1String str = new String("hello");

  上面的语句中变量str放在栈上,用new创建出来的字符串对象放在堆上,而”hello”这个字面量放在静态区。

  补充:较新版本的Java(从Java 6的某个更新开始)中使用了一项叫”逃逸分析”的技术,可以将一些局部对象放在栈上以提升对象的操作性能。

  3、Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?

  答:Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四舍五入的"原理是在参数上加0.5然后进行下取整。

  4、switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?

  答:在Java 5以前,switch(expr)中,expr只能是byte、short、char、int。从Java 5开始,Java中引入了枚举类型,expr也可以是enum类型,从Java 7开始,expr还可以是字符串(String),但是长整型(long)在目前所有的版本中都是不可以的。


java实习生面试题3篇(扩展5)

——java常见面试题目3篇

java常见面试题目1

  第一,谈谈final, finally, finalize的区别。

  final:修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载

  finally:再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。

  finalize:方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

  第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

  匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现。

  第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。

  Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。

  注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象

  第四,&和&&的区别。

  &是位运算符。&&是布尔逻辑运算符。

  第五,HashMap和Hashtable的区别。

  都属于Map接口的类,实现了将惟一键映射到特定的值上。

  HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。

  Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。

  第六,Collection 和 Collections的区别。

  Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。

  Collection是个java.util下的接口,它是各种集合结构的父接口。

  第七,什么时候用assert。

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

  assert(a > 0); // throws an AssertionError 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 标记。还可以在包的基础上启用或者禁用断言。

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

  第八,GC是什么? 为什么要有GC? (基础)。

  GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:System.gc() Runtime.getRuntime().gc()

  第九,String s = new String("xyz");创建了几个String Object?

  两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。

  第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

  Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;

java常见面试题目2

  第一,short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

  short s1 = 1; s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确。

  第二,sleep() 和 wait() 有什么区别? 搞线程的最爱

  sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级

  (b)正在运行的线程因为其它原因而阻塞。

  wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。

  第三,Java有没有goto? Goto?

  java中的保留字,现在没有在java中使用。

  第四,数组有没有length()这个方法? String有没有length()这个方法?

  数组没有length()这个方法,有length的属性。 String有有length()这个方法。

  第五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

  方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

  第六,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

  Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。

  equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

  第七,给我一个你最常见到的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

  第八,error和exception有什么区别?

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

  第九,List, Set, Map是否继承自Collection接口?

  List,Set是 Map不是

  第十,abstract class和interface有什么区别?

  声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

  接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的`接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。


java实习生面试题3篇(扩展6)

——华为实习生面试经验3篇

华为实习生面试经验1

  今天第一次找工作面试,因为导师不让实习,所以以打酱油的状态来到面试地点,本来预约是2点,我们1点多就到了,随即领了排队的号码排队,没过多久就轮到我参加一面(经验一、提早去排队)。

  一面技术面,这方面华为还是很松的,轻松都能过关,基本上分为两部分:语言,问的是c和c++的问题;项目。感觉自己语言方面还是比较扯淡,问到了c++的static变量和非static的区别,然后给了一个程序题,找改错。确实蒙了,很长时间找不到错,比较郁闷,心想必挂了,给的程序是一个字符串倒叙的算法,主要错误有:字符串会有个"/o"所以在动态分配内存时,长度要+1,动态分配完后要判断是否分配成功,程序结束后要free动态分配的空间(这个很容易忘了),倒转字符串后要加上"/0".5处错误就找出2处,看来基础还是不行,好的习惯没养成。然后是问项目,这块忽悠的还可以,所以被告知一面通过。

  接下来是二面,群面。12人分两组,先是自我介绍,说说优缺点,爱好。优缺点是主要的吧,面试官会即兴提问,比如你说出一个缺点,他会说,举个例子...然后是12人分两组,6 vs 6辩论,我们的论题是愚公改移山还是搬家,然后讨论,在讨论的时候会有面试官在旁边听,一定要积极讨论,再就是争取第一个发言开题;第二个阶段是辩论,这时候每个人只有一次发言机会,要注意听别人和对方的观点,做记录,面试官可能会问你别人说了什么。第三个阶段是面试官为难你了,他为难我让我说出我方最有力的论点,以及给我方人马按表现排序,这个比较郁闷。不过大胆的排序就是了,他还会问你的队友对这个排序满意否,以及会问被你排在后面的人有什么意见,之类,总之是各种为难人。

  三面是性格测试,这个没得准备,一些题换着说法循环出现,让你在3个问题里选一个最符合和最不符合。不少人过不了测试,华为这个比较扯。


java实习生面试题3篇(扩展7)

——大学生面试题目及答案3篇

大学生面试题目及答案1

  问题1:你为什么想离开目前的职务?

  A.别的同仁认为我是老板前的红人,所以处处排挤我。

  B.调薪的结果令我十分失望,完全与我的付出不成正比。

  C.老板不愿授权,工作处处受限,绑手绑脚、很难做事。

  D.公司营运状况不佳,大家人心惶惶。

  解答:超过一半的人事主管选择C,其次为D。选择C的回答,可以显示应征者的企图心、能力强,且希望被赋予更多的职责。选择D,则是因离职原因为个人无法改变的客观外在因素,因此,面谈者也就不会对个人的能力或工作表现,有太多的存疑。

  问题2:你对我们公司了解有多少?

  A.贵公司在去年里,长达8个月的时间,都高居股王的宝座。

  B.贵公司连续3年被XX杂志评选为“求职者最想进入的企业”的第一名。

  C.不是很清楚,能否请您做些介绍。

  D.贵公司有意改变策略,加强与国外大厂的OEM合作,自有品牌的部分则透过海外经销商。

  解答:以D居多。道理很简单,他们希望求职者对所申请的工作有真正的了解,而不仅仅是慕名而来。

  问题3:你找工作时,最重要的考虑因素为何?

  A.公司的远景及产品竞争力。

  B.公司对员工生涯规划的重视及人性化的管理。

  C.工作的性质是否能让我发挥所长,并不断成长。

  D.合理的待遇及主管的管理风格。*人才指南网

  解答:以C居多,因为公司要找工作表现好、能够真正有贡献的人,而非纯粹慕名、求利而来的人。

  问题4:为什么我们应该录取你?

  A.因为我深信我比别人都优秀。

  B.因为我有很强烈的企图心,想要与贵公司共同成长。

  C.您可以由我过去的.工作表现所呈现的客观数据,明显地看出我全力以赴的工作态度。

  D.我在这个产业已耕耘了8年,丰富的人脉是我最大的资产。

  解答:这题理想的回答是C。你如何让对方看到你的好?单凭口才,是很难令对方信服的,因此,从履历表内容或之前的回答内容中,如果能以客观数字、具体的工作成果,来辅助说明,是最理想的回答。

  问题5:请谈谈你个人的最大特色。

  A.我人缘极佳,连续3年担任福委会委员。

  B.我的坚持度很高,事情没有做到一个令人满意的结果,绝不罢手。

  C.我非常守时,工作以来,我从没有迟到过。

  D.我的个性很随和,是大家公认的好好先生(小姐)。

  解答:这题理想的回答是B。A、C、D虽然都表示出应征者个性上的优点,但只有B的回答,最能和工作结合,能够与工作表现相结合的优点、特质,才是面谈者比较感兴趣的回答。

大学生面试题目及答案2

  如果你被录用后,在单位里你的两位比较要好的同事突然在办公室里争吵起来,你应该怎么处理呢?

  1、首先要弄清楚他们争吵的原因是什么,可以分别询问他们本人,同时也要询问他们周围的人,这样可以避免偏听偏信,以便全面地了解情况,对症下药。

  2、知道原因之后,如果是因为工作造成的矛盾,可以找他们谈谈心,分析情况,说明大家都是为了工作,都不是针对哪个具体的人,一般讲道理的人都会理解等等。

  3、如果是因为比较私人的事情,可以对他们说私事归私事,但不能影响工作,你们互相争吵,会影响团结,不利于工作的开展,要使他们认识到在工作时间内,私事不能影响正常的工作。

  4、如果了解到矛盾的造成是因为误解造成的,那就要当好协调人,把误会解除。如果可能的话,等他们情绪控制之后,可以找个机会,约他们到一个适当的地方比如我家里来吃顿饭,把问题谈开,彻底解决这个问题。

  5、问题解决后,自己也要从中汲取经验,遇事多和同事们沟通,发生问题时要充分利用这三者的力量来解决矛盾,并提高自己的协调能力,以便更好地干好工作。


java实习生面试题3篇(扩展8)

——大学自主招生面试题3篇

大学自主招生面试题1

  1,哥本哈根会议是不是一场政治博弈?

  2,人的生命是否属于自己?

  3,优质学生享受优质教育是天经地义吗?

  4,如果你是联合国秘书长,如何解决索马里海盗问题?

  5,何为碳汇,谈谈对碳排放交易权的看法。

  6,南方人性格柔弱,北方人性格粗犷,你如何评价?

  7,农村的孩子会种地,城里的孩子会画画,前者是否也是一种素质?

  8,蔬菜价格上涨超过肉类,怎么看这个现象?

  9,怎么看逆向思维?

  10,英国一思想家说,国家的首要荣誉应该属于立法者和国家缔造者。怎么看这句话?

  11,*目前是否有信仰,与道德、伦理和法制是否冲突?

  12,水蒸气也是温室气体,为什么只治理二氧化碳?

  13,怎样看教育多元化和教育公*的关系?

  14,谈谈雷锋精神的内涵理解,现在社会该不该提倡雷锋精神?

  15,现代社会需要包公吗?

  16,狗咬人不是新闻,人咬狗才是新闻,你怎么看?

  17,何为软实力,如何构建国家软实力?

  18,我是一个克隆人,我有血和骨,把我的Y基因换成X基因,我的`小克隆人长大后就成了异性。怎么看这首诗。

大学自主招生面试题2

  现场面试题目:

  1,如何看待高考加分政策?

  2,《阿凡达》很火,欧美大片、日本动漫也很受欢迎。如何在这种环境下发展*文化?

  3,用一个成语形容你眼中的哥本哈根气候会议。

  4,用关键词概括2009年*现状。

  5,*是否已步入高房价时代,你的观点是?

  6,一根火柴在不能折断的前提下,如何摆成一个三角形?

  7,就张磊向耶鲁大学捐款8888888美元发表观点。

  8,第一次和第二次世界大战期间,有什么重大的化学发明?

  9,为什么要把清华大学作为第一志愿填报?

  远程面试题目:

  1,谈古论今:任选*古代和当代人物各一位作对比阐释。

  2,为什么要上大学,是否每个人都应该上大学?

  3,假设你是清华校长,说说明年怎么举办清华百年校庆?

推荐访问: