Java面试题归纳整理

Java面试题

1、用最有效率的方法算出2乘以8等于几?
     /**
	 * 1、用最有效率的方法算出2乘以8等于几?
	 *      因为向左移动n位表示乘以2的n次方,所以一个数乘以8,相当于向左移动3位
	 */
	public static void main(String[] args) {
		System.out.println(2<3);      //true
		System.out.println(2<<3);   //2*2^3
	}
2、“==”和equals方法有什么区别?
1).“==”默认比较的是基本数据类型,比较的是数据的属性值是否相等;
2).equals默认比较的是引用类型,比较的是对象所引用的地址值是否相等,如果该类重写了equals方法,则比较的是属性值是否相等.equals底层默认使用的也是“==”比较;
3、静态变量和实例变量的区别?
1).在语法定义上的区别
	 静态变量前要加static关键字,而实例变量前则不加
2).在程序运行时的区别
	实例变量属于某个对象的属性,必须创建了实例对象,其中的实例对象才会被分配空间,才能使用这个实例变量
	静态变量不属于某个实例对象,而时属于类,所以也被称为类变量
	实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接通过类名.来调用;
4、请说出作用域public、private、protected,以及不写时的区别?

在这里插入图片描述

1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用,在程序的任何其它地方进行访问。
2、protected:protected在同包,以及其子类中public,可以自由访问无限制,但对于其他外部类则private。
3、default(默认):同一包中的类可以访问,声明时没有加修饰符,认为是friendly。
4、private:private表示私有,私有的意思就是除了class自己之外,任何地方都不可以直接使用,加上这个修饰的属性和方法,只允许在自己本身这个类里访问,程序的任何其它地方都不能访问。
5、abstract class和interface有什么区别?
1.abstract修饰的类为抽象类,被abstract修饰的类不能被实例化;
2.abstract中定义抽象方法必须在子类中实现,如果子类没有实现父类中所有的抽象方法,则该子类也需要定义为abstract类
3.interface修饰的类称之为接口,接口可以看成是特殊的抽象类,接口中所有的方法都是抽象的;
6、java中实现多态的机制是什么?
override:存在子类和父类之间,子类定义的方法和父类的方法具有相同额方法名,相同的参数列表和相同的返回类型(两同两小一大:方法名,参数列表相同;返回值类型,抛出的异常类型小于父类;权限修饰符大于父类;)
overload:指同一个类中多个方法具有相同的名字,具有相同的参数列表;但参数的数量和参数类型不能完全相同;
7、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
可以进入其他非synchronized的方法,而synchronized方法不可以;
1.当一个线程访问对象的synchronized方法时,将对象上锁,方法不能并发执行;
2.其他线程阻塞等待当前线程方法执行完毕后,才有机会执行方法;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值