zoukankan      html  css  js  c++  java
  • java基础

    1、方法重载和方法重写的区别

      比较点 重载 重写
    1 单词 Overload Override
    2 方法的声明 方法名相同,参数列表不同 方法名相同,参数列表相同
    3 返回值 没有要求 返回值必须相同或者子类
    4 访问权限 没有要求 比父类大
    5 异常范围 没有要求 比父类小或者与父类相同
    6 范围 同一个类中 继承关系中

    2、在别人博客看到一篇文章,说写一个方法:指定一个整数n,返回一组随机数,包含0--( n-1),不能重复。

    评论里有人收用Set可以直接返回,因为HashSet存的元素是无序的,觉得想法有新意。

    但是还是验证了下:

        public static void getRandomList(int len) {
            Set set = new HashSet();
            for (int i = 0; i < len; i++) {
                set.add(i);
            }
    
            Iterator iterator = set.iterator();
            while (iterator.hasNext()) {
                System.out.println(iterator.next());
    
            }
    
        }
    

    发现传入10,100,1000...都是顺序返回,后来传入1000,000 发现总体是递增的,局部有乱序。

    HashSet是不保证有序,但不是保证无序,这是有区别的。

    评论下其他的方法:

        public static void getRandomList(int len) {
            List list = new ArrayList(len);
            List list2 = new ArrayList(len);
            for (int i = 0; i < len; i++) {
                list.add(i);
            }
            Random r = new Random();
    
            while (list.size() > 0) {
                list2.add(list.remove(r.nextInt(list.size())));
            }
    
            System.out.println(list2);
        }
    

    2、代码执行顺序

    public class Pa {
        public static void static_method() {
            System.out.println("Pa:static_method");
        }
    
        static {
            System.out.println("Pa:static_area");
        }
    
        {
            System.out.println("Pa:normal_area");
        }
    
        public Pa() {
            System.out.println("Pa:constructor");
        }
    
    }
    
    public class A extends Pa {
    
        public static void static_method() {
            System.out.println("A:static_method");
        }
    
        static {
            System.out.println("A:static_area");
        }
    
        {
            System.out.println("A:normal_area");
        }
    
        public A() {
            System.out.println("A:constructor");
        }
    }
    
        public static void main(String[] args) {
            A a = new A();
    
        }
    

     结果:

    Pa:static_area
    A:static_area
    Pa:normal_area
    Pa:constructor
    A:normal_area
    A:constructor
    
  • 相关阅读:
    简单实现抽象工厂模式
    mongodb 最新版安装和配置(单机版)
    排序的三个基础算法 (python实现)
    关于学习,关于工具
    嵌入式linux教程
    用软件工程分析开源项目octave的移植
    C++高质量编程笔记
    从高级软件工程角度分析毕业设计项目存在的问题
    史话未完待续。。。
    乔治布尔
  • 原文地址:https://www.cnblogs.com/lanqie/p/7636844.html
Copyright © 2011-2022 走看看