Java面试基础题,Java基础知识面试题

  Java面试基础题,Java基础知识面试题

  如何解决写爬虫IP受阻的问题?立即使用。

  1.能a 吗。java的源文件包含多个类(不是内部类)?有什么限制?

  可以有多个类,但只能有一个public类,并且public的类名必须与文件名一致。

  (更多面试问题推荐:java面试问答)

  2.Java里有goto吗?

  java里的保留字现在java里不用了。

  3.谈论和的区别。

  和都可以用作逻辑and的运算符,表示逻辑AND。当算子两边表达式的结果都为真时,整个运算结果为真;否则,只要有一方是假的,结果就是假的。

  它还有短路的功能,即如果第一个表达式为假,则不会对第二个表达式求值,比如if(str!=null!Str.equals(s))表达式。str为null时,不会执行下面的表达式,所以不会出现NullPointerException。如果将更改为,将引发NullPointerException异常。If(x==33 y0) y会增长,但If(x==33 y0)不会。

  它也可以用作位运算符。当运算符两边的表达式都不是布尔时,表示按位AND运算。我们通常用0x0f对一个整数进行运算,得到整数的最低4位。例如,0x310x0f的结果是0x01。

  4.如何跳出JAVA目前的多重嵌套循环?

  在Java中,如果要跳出多重循环,可以在外循环语句前定义一个标签,然后在内循环体代码中使用带标签的break语句跳出外循环。

  例如:

  for(int I=0;i10i ){

  for(intj=0;j10j ){

  System.out.println("i=" i ",j=" j ");

  if(j==5)break ok;

  }

  }另外,我个人一般不用贴标签。而是我让外层的循环条件表达式的结果由内层的循环代码控制,比如在二维数组中求一个数。

  int arr[][]={{1,2,3},{4,5,6,7},{ 9 } };

  布尔发现=假;

  for(int I=0;长度!找到了;i ) {

  for(intj=0;贾尔[我]。长度;j ){

  System.out.println("i=" i ",j=" j ");

  if(arr[i][j]==5) {

  发现=真;

  打破;

  }

  }

  }(推荐学习:java入门教程)

  5.switch语句可以作用于byte、long和String吗?

  在switch(e)中,e只能是整数表达式或枚举常数(较大字体)。整数表达式可以是int基本类型或整数包装类型。由于byte、short和char可以隐式转换为int,因此这些类型及其包装器类型也是可能的。显然,long和String类型不符合switch的语法,不能隐式转换为int类型,因此不能在swtich语句中使用。

  说switch语句是否可以作用于String是错误的,Java1.7已经支持了!

  6、短S1=1;S1=(s1 1是int类型,等号左边的是short类型,需要强制)1 1;怎么了?短S1=1;S1=1;怎么了?(没毛病)

  简称S1=1;S1=S1 1;由于s1 1运算时表达式的类型会自动提升,所以结果是int类型。当它被赋给短类型s1时,编译器将报告一个需要强制转换的错误。

  简称S1=1;S1=1;因为=是java语言指定的运算符,所以java编译器会特殊处理,所以可以正确编译。

  7.一个汉字可以存储在char变量中吗?为什么?

  Char类型变量用于存储unicode编码的字符。Unicode编码的字符集包含中文字符,所以当然可以将中文字符存储在char类型的变量中。但是,如果unicode编码的字符集中没有包含特殊的中文字符,那么这个特殊的中文字符就不能存储在这个char变量中。注意:unicode代码占用两个字节,所以char类型的变量也占用两个字节。

  8.用最有效率的方法算出2乘以8是多少?

  2,(左移三位)因为一个数左移N位相当于乘以2的N次方,那么一个数乘以8只需要左移3位,位运算cpu直接支持,效率最高。因此,2乘以8最有效的方法是2 ^ 3。

  9.使用final关键字修改变量时,是引用不变还是被引用对象不变?

  当使用final关键字修饰变量时,意味着被引用的变量不能改变,但被引用的变量所指向的对象中的内容仍然可以改变。例如,对于以下语句:

  finalStringBuffer a=new string buffer( immutable );执行以下语句将报告编译时错误:

  a=new string buffer(“”);但是,可以编译以下语句:

  a.append( broken!);当定义一个方法的参数时,有人可能希望采用以下形式来防止该方法在内部修改传递的参数对象:

  公共void方法(最终StringBuffer参数){

  }其实这个做不到。仍然可以在此方法中添加以下代码来修改参数对象:

  param . append( a );(学习视频推荐:java课程)

  10.静态变量和实例变量有什么区别?

  语法定义上的区别:static关键字应该加在静态变量之前,不能加在实例变量之前。

  程序运行时,不同的是实例变量属于一个对象的属性。只有创建了实例对象,才能给实例变量分配空间,实例变量才能使用。静态变量不属于一个实例对象,而是属于一个类,所以也叫类变量。只要程序加载了类的字节码,就不需要创建任何实例对象,静态变量会被分配空间,可以使用。简而言之,必须先创建实例变量,然后才能通过该对象使用它们,而静态变量可以通过使用类名直接引用。

  比如下面这个程序,不管创建多少个实例对象,总是只赋一个staticVar变量,每创建一个实例对象这个staticVar就加1;但是,每次创建实例对象时,都会分配一个instanceVar,即可能分配多个instancevar,每个instance var的值只加一次。

  公共类变量测试{

  public static int static var=0;

  public int instance var=0;

  publicVariantTest(){

  staticVar

  instanceVar

  system . out . println(static var instance var);

  }

  }以上是java基础面试题(1)的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: