java基础小知识(2)

一  绝对路径/相对路径

   1> 绝对路径   完整的URL

   2> 以/ 开头的相对路径  / 代表整个web 项目

   3> 不以/开头的相对路径  ./ 代表当前路径   ../代表上层路径

二  线程状态

           新建    就绪   执行  阻塞   死亡

三  爬楼梯算法分析

               共 n 层楼梯 ,  每步最多 m 层 ,有多少种爬法?

    分析: 一层楼梯一种爬法 二层 两种  三层 三种 四层五种 即是 f(n) = f(n-1)+f(n-2)+f(n-3)+..+f(0)

                         而限定最多m层时 最多f(n) =f(n-1)+f(n-2)+f(n-3)+..+f(n-m)     采用递归即可

    以下是核心算法程序:

        public  int getMethodCount(int  n, int  m ){

        if(0 == n){

          return 1;          //阶梯数为0

        }else if(1 == n){

          return 1;         //阶梯数为1

        }else {

          int result = 0;

          for(int i = 0;i <= n;i++){

            if(i <= m){

              result += getMethodCount( n-i, m );

            }

          }

          return result;   

        }

        }

四   把一个数组中的数组合全部列出  比如 1和 2 列出  1  2   12   21 

         以下是完整代码:

          public static void main(String[] args) {

        String[]  array = new String[] {"1","2"};
        listAll(Arrays.asList(array),"");
    }

    public static void listAll(List ca ,String p) {90
        System.out.println(p);
        for(int i = 0;i < ca.size();i++) {
        List temp = new LinkedList(ca);
        listAll(temp,p+temp.remove(i));
        }
    }

原文地址:https://www.cnblogs.com/rcjs/p/7602386.html