目前存在的对Java的疑问?

1.传值和传引用的区别。

 首先基本参数类型传值,对象类型是传引用,形参数传值的都不会改变实参的值,传引用,改变里面成员值 eg: model.s=8  或者改变属性通过String s=s.append()类似的方法改变时。String s  形参为 s  这种传递不会改变实参的值。

2.equls和==,=  区别   && 和&区别。

equls 比较的是内容,==比较的是地址  

比如

   String  s1=new ('you are sb');

    String  s2=new("you are sb ");

  利用equls 比较是true 而用  ==  为FALSE  。

  两次new  建立的对象的地址肯定不一样 。

3,什么是单例模式是什么?单例的几种写法。


使用  singleton模式  这个类被创建后,只能提供一个实例供外部使用。

两种方式:

public class SingletonTest(){

      private SingletonTest(){

      }

      private static final Singleton instance=new SingletonTest();


     public static  SingletonTest getInstance(){

              return instance;

}

}  缺点:加载的时候就会初始化static 的instance ,消耗内存,不存在多线程同步的问题。

 public class SingletonTest(){

  private SingletonTest(){};

  private static volatile SingletonTest instance;

 public static SingletonTest getinstance(){

          if(instance=null){

            synchronized (SingletonTest.class){

         if(instance=null){

         instance=new SingletonTest();

 }

 return instance;

}

}

    

}


}

最优的解决方案,内存占用最低,线程安全,多线程操作原子性。

4.什么断言。???目前的面试还没有碰见过。。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值