【java基础资料整理】

整理之中的意外收获:

1、java虚拟机监控命令:打开cmd窗口-->输入jvisualvm。第一次打开的话可能会稍微久一点,以后就好了。

2、两个变量切换的3种方式:

a、采取第三方变量

[java]  view plain  copy
  1. int a=8,b=9;  
  2. int temp;  
  3. temp = b;  
  4. b=a;  
  5. a=temp;  

b、不通过第三方变量

[java]  view plain  copy
  1. int a=8,b=9;  
  2. a=a+b;  
  3. b=a-b;  
  4. a=a-b;  
c、采取^的方式

[java]  view plain  copy
  1. int a=8,b=9;  
  2. a = a^b;  
  3. b = a^b; //(a^b)^b = a = 8  
  4. a = a^b; //(a^b)^a = b = 9  

3、java的垃圾回收机制:在堆内存当中, 不再被使用的实体 将会在垃圾回收机制中进行不定时的清除

4、二维数组和一维数组的定义方式:int[] x,int x[] ; int [] [] y,int y[][], int[] y[];

下面进入正题

单例模式

单例模式的用意如下:1、确保一个类只有一个实例被创建

2、提供一个对对象的全局访问指针

3、在不影响单例类的客户端的情况下允许有多个实例

饿汉式:

饿汉式存在的问题:由于实例不用做创建,是直接返回创建好的实例,所以饿汉式节省了时间上的消耗,但是由于实例本身是静态的,所以会一直占用内存空间

[java]  view plain  copy
  1. <span style="white-space:pre;"> </span>public class Single{  
  2.        private static Single s = new Single();  
  3.        private Single(){}  
  4.        public static getInstance(){  
  5.         return s;  
  6.        }  
  7.     }  
懒汉式:

一、

[java]  view plain  copy
  1. <span style="white-space:pre;"> </span>/** 
  2.     *这种懒汉式不适合多用户同时调用 
  3.     */  
  4.     public class Single{  
  5.         private static Single s = null;  
  6.         private Single(){}  
  7.         public static  Single getInstance(){  
  8.         if(s==null)  
  9.            s = new Single();  
  10.         return s;   
  11.         }  
  12.     }  
二、getInstance加锁

[java]  view plain  copy
  1. <span style="white-space:pre;"> </span>/** 
  2.     *这种加锁方式在多用户调用时,容易使内存损耗过多 
  3.     */  
  4.     public class Single{  
  5.         private static Single s = null;  
  6.         private Single(){}  
  7.         public static Single synchronized getInstance(){  
  8.         if(s==null)  
  9.            s = new Single();  
  10.         return s;   
  11.         }  
  12.     }  
三、内部双重判断和同步锁

[java]  view plain  copy
  1. <span style="white-space:pre;"> </span>/** 
  2.     *懒汉式最优方法,这种方式可以防止锁的多次创建,内存损耗较第一种方式更低 
  3.     */  
  4.     public class Single{  
  5.         private static Single s = null;  
  6.         private Single(){}  
  7.         public static Single  getInstance(){  
  8.         if(s==null){  
  9.            synchronized(Single.class){  
  10.             if(s==null)  
  11.                s = new Single();  
  12.            }  
  13.         }  
  14.         return s;   
  15.         }  
  16.     }  

java类与类之间不能多继承而可以多实现的原因
多继承继承的是另外一个类,而继承的方法有方法体。实现的接口中的方法是没有方法体的, 所以即使实现的多个接口间有相同的方法但是由于没有方法体,所以在实现类中实现该方法 之后会将所有接口中与该方法一致的方法进行覆盖。所以可以实现多实现而不可以实现多继承。  接口之间可以进行多继承,如果继承的接口间存在相同方法时,需要超类之间的方法返回值一致。  否则接口之间的多继承无法实现。

面向对象编程的三大特性:多态、继承、封装


判断引用对象数据类型关键字:A instanceof Object。instanceof一般用于子类类型有限的情况下。 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值