烽火JAVA面试题目

1.Java的3种标准输入输出?

Java遵循标准I/O的模型,提供了Syetem.in,System.out,以及System.err。System.out是一个已经预先处理过的,被包装成PrintStream的对象。和System.out一样,System.err也是一个PrintStream,但是System.in不是,它是一个未经处理的InputStream。也就是说,可以直接使用System.out和System.err打印输出到控制台,但是使用System.in直接读取数据不可以,必须先做处理。


3.异常问题

Java异常的基类为java.lang.Throwable,java.lang.Error和java.lang.Exception继承Throwable,RuntineException和其他Exception等继承Exception,具体的RuntimeException继承RuntimeException.

Thread类的方法有,Start(),run(),getPriority(),没有exit().

错误(Error)一般来说,最常见的错误有程序进入死循环、内存泄漏等。在这种情况下,程序运行时本身无法解决,只能通过其他程序干预,Error类对象由java虚拟机生成并抛弃(通常Java程序不对这类异常进行处理)。

异常(Exception)是程序执行时遇到的非正常情况或者意外行为。如:代码或者调用的代码(如公共库)中有错误,操作系统资源不可用,公共语言运行库遇到意外情况(如无法验证代码)等。常见的有数组下标越界、算法溢出(超出数值表达范围)、除数为零、无效参数、内存溢出等。这种情况,程序运行时本身可以解决,由异常代码调整程序运行方向,可使程序继续运行,直至正常结束。Java 提供了两类主要的异常 :runtime exception 和 checked exception 。运行时异常代表运行时由Java虚拟机生成的异常,原因是编译错误。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过 NullPointerException 异常。非运行时异常有 IO 异常,以及 SQL 异常。


Error和RuntimeException 及其子类都是未检查的异常(unchecked exceptions),而所有其他的Exception类都是检查了的异常(checked exceptions).


checked exceptions通常是从一个可以恢复的程序中抛出来的,并且最好能够从这种异常中使用程序恢复。比如FileNotFoundException, ParseException等。


unchecked exceptions通常是如果一切正常的话本不该发生的异常,但是的确发生了。比如ArrayIndexOutOfBoundException, ClassCastException等。从语言本身的角度讲,程序不该去catch这类异常,虽然能够从诸如RuntimeException这样的异常中catch并恢复,但是并不鼓励终端程序员这么做,因为完全没要必要。因为这类错误本身就是bug,应该被修复,出现此类错误时程序就应该立即停止执行。 因此,面对Errors和unchecked exceptions应该让程序自动终止执行,程序员不该做诸如try/catch这样的事情,而是应该查明原因,修改代码逻辑。

二者的不同之处:

 

Exception:

1.可以是可被控制(checked) 或不可控制的(unchecked) 

2.表示一个由程序员导致的错误 

3.应该在应用程序级被处理

 

Error:

1.总是不可控制的(unchecked) 

2.经常用来用于表示系统错误或低层资源的错误 

3.如何可能的话,应该在系统级被捕捉


4.java 斐波那契数列

public class Fibonacci {

public static void main(String args[]){
  int nums = fibonacci(8);
  for(int i =0;i<8;i++) {
  System.out.print(fibonacci(i)+" ");
  }
}
static int fibonacci(int n){
   if(n<=1) return 1;
   return fibonacci(n-1)+fibonacci(n-2);
   } 

}



5.SQL语句 基本查询 

distinct去重复

  1. --创建表aa  
  2. create table aa(  
  3.     name varchar(10),  
  4.     kecheng varchar(10),  
  5.     fengshu int  
  6. )  
  7.   
  8. --插入数据到表aa中  
  9. insert into aa values('张三','语文',81)  
  10. insert into aa values('张三','数学',75)  
  11. insert into aa values('李四','语文',76)  
  12. insert into aa values('李四','数学',90)  
  13. insert into aa values('王五','语文',81)  
  14. insert into aa values('王五','数学',100)  
  15. insert into aa values('王五','英语',90)  
  16.   
  17.   
  18. --用一条SQL语句查询出每门课都大于80分的学生姓名  
  19. select distinct name from aa where name not in (select distinct name from aa where fengshu<=80)  

查询分数总和

select name, Sum(score) 
from table
group by name;

2.继承问题

class HelloA {
public HelloA(){
     System.out.println(HelloA);
}
{System.out.println(I'm A class );}
static {System.out.println( static A);}  
}
public class HelloB extends HelloA{
 
     public HelloB(){
         System.out.println(HelloB);
     }
     {System.out.println(I'm B class );}
     static {System.out.println( static B);}
     
     public static void main(String[] args) {
         new HelloB();
     }
}


运行结果:

static A
static B
I'm A class
HelloA
I'm B class
HelloB

你可能感兴趣的:(学习)