zoukankan      html  css  js  c++  java
  • 斗地主,,,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

  • 相关阅读:
    usb 安装系统
    跨站请求伪造攻击的基本原理与防范
    解决hexo神烦的DTraceProviderBindings MODULE_NOT_FOUND
    我知道
    MAC 重置MySQL root 密码
    线性变换与独立观察的期望和方差
    最小二乘法
    卡方检验中自由度的计算
    关于置信水平,求区间的简便算法
    独立观察与线性变换方差 均值计算
  • 原文地址:https://www.cnblogs.com/111wdh/p/13330617.html
Copyright © 2011-2022 走看看