斗地主,,,Java中final、finalize()、finally三者的区别

package com.orcal.demo01;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

public class doudizhu {
public static void main(String[] args) {
    //创建扑克牌map和装有key值得集合
    Map<Integer, String> pooker=new HashMap<Integer, String>();
    ArrayList<Integer> pookerNumber=new ArrayList<Integer>();
    //封装Map
    String[] color={"","","",""};
    String[] number={"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
    int index=2;
    for(String n:number){
        for(String c:color){
            //封装map
            pooker.put(index, c+n);
            //封装集合
            pookerNumber.add(index);
            index++;
        }
    }
    //封装大小王
    pooker.put(0, "大王");
    pooker.put(1, "小王");
    
    //洗牌
    Collections.shuffle(pookerNumber);
    
    //创建四个容器
    ArrayList<Integer> player1=new ArrayList<Integer>();
    ArrayList<Integer> player2=new ArrayList<Integer>();
    ArrayList<Integer> player3=new ArrayList<Integer>();
    ArrayList<Integer> bottom=new ArrayList<Integer>();
    //发牌
    for(int i=0;i<pookerNumber.size();i++){
        if(i<3){
            bottom.add(pookerNumber.get(i));
        }else if(i%3==0){
            player1.add(pookerNumber.get(i));
        }else if(i%3==1){
            player2.add(pookerNumber.get(i));
        }else if(i%3==2){
            player3.add(pookerNumber.get(i));
        }
    }
//给每个容器排序
    Collections.sort(player1);
    Collections.sort(player2);
    Collections.sort(player3);
    Collections.sort(bottom);
    look("玩家1",pooker,player1);
    look("玩家2",pooker,player2);
    look("玩家3",pooker,player3);
    look("底牌",pooker,bottom);
}
//看牌的方法
public static void look(String name,Map<Integer, String> pooker,ArrayList<Integer> player){
    System.out.print(name+":");
    for(int num:player){
        System.out.print(pooker.get(num)+" ");
    }
    System.out.println();
}
}

Java中final、finalize()、finally三者的区别

   

Final是一个修饰符:

当final修饰一个变量的时候,变量变成一个常量,它不能被二次赋值

当final修饰的变量为静态变量(即由static修饰)时,必须在声明这个变量的时候给它赋值

当final修饰方法时,该方法不能被重写

当final修饰类时,该类不能被继承

Final不能修饰抽象类,因为抽象类中会有需要子类实现的抽 象方法,(抽 象类中可以有抽象方法,也可以有普通方法,当一个抽象类中没有抽象方 法时,这个抽象类也就没有了它存在的必要)

Final不能修饰接口,因为接口中有需要其实现类来实现的方法

Finally:

Finally只能与try/catch语句结合使用,finally语句块中的语句一定会执行, 并且会在return,continue,break关键字之前执行

finalize:

Finalize是一个方法,属于java.lang.Object类,finalize()方法是GC (garbage collector垃圾回收)运行机制的一部分,finalize()方法是在 GC清理它所从 属的对象时被调用的

手动清理,sysytem.gc

原文地址:https://www.cnblogs.com/111wdh/p/13330617.html