• 斗地主,,,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

  • 相关阅读:
    编程珠玑(续) 读书笔记 -(第三章 程序员的忏悔)
    java for循环
    java 中的 instanceof
    大脑学习
    voa 2015.4.29
    编程珠玑(续) 读书笔记 -(前言+第一章性能监视工具)
    voa 2015 / 4 / 27
    voa 2015 / 4 / 26
    背包问题 算法实现
    LCS 算法实现
  • 原文地址:https://www.cnblogs.com/111wdh/p/13330617.html
Copyright © 2020-2023  润新知