Java面试题总结一

1,请你说一说static方法和普通方法的区别?

static方法只能使用静态的成员变量,只能调用静态的方法,普通的变量都可以调用。

注意:非静态方法既可以访问静态数据成员 又可以访问非静态数据成员,而静态方法只能访问静态数据成员; 
非静态方法既可以访问静态方法又可以访问非静态方法,而静态方法只能访问静态数据方法。 


原因:因为静态方法和静态数据成员会随着类的定义而被分配和装载入内存中,而非静态方法和非静态数据成员只有在类的对象创建时在对象的内存中才有这个方法的代码段。

2,我们经常使用的https协议的端口号是(8080);

3,Class.forName()这个方法的作用是(加载mysql的驱动类);

4,IP地址中的私有地址:

      在A类地址中,10.0.0.0到10.255.255.255是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址)。

     在B类地址中,172.16.0.0到172.31.255.255是私有地址。

     在C类地址中,192.168.0.0到192.168.255.255是私有地址。

5,synchronized这个关键词的作用是什么?

Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。

     一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。

     二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。

     三、尤其关键的是,当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问将被阻塞。

     四、第三个例子同样适用其它同步代码块。也就是说,当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁。结果,其它线程对该object对象所有同步代码部分的访问都被暂时阻塞。

     五、以上规则对其它对象锁同样适用.

6.String和StringBuffer的区别


答:简单的说就是一个变量和常量的关系。StringBuffer对象的内容可以修改;
而String对象一但产生就不可以被修改;StringBuffer在内存使用上要优于String
StringBuffer是线程安全的,在多线程中可以很方便的使用,但是程序的执行效率稍微慢些。


7.抽象类和接口的理解


答:用abstract抽象类,该类不能够被实例化,抽象类中可以有抽象方法跟普通方法;
当抽象类中的属性都是常量,方法都是抽象方法的时候就可以吧这个类声明为接口。


8.java中的异常处理机制的简单原理和应用


答:当java程序违反了java的语义规则时,java虚拟机就讲会发生的错误
表示为一个异常。


9.多线程有几种实现方法?同步有几种实现方法?
答:多线程有两种实现方法,分别是继承Thread类和实现Runnable接口
同步的实现方法有两种,分别是Synchronized、wait与notify。


10.描述下GC的机制

答:当对象被创建时,GC就开始监控这个对象的地址、大小及使用情况

你可能感兴趣的:(java,面试题,数据)