Java tutorial
/* * * MIT License * * Copyright (c) 2017 https://blog.yeetor.com * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ package com.yeetor.util; import com.android.ddmlib.*; import org.apache.commons.lang3.RandomUtils; import java.io.IOException; import java.net.ServerSocket; import java.util.Arrays; import java.util.Random; /** * Created by harry on 2017/4/17. */ public class Util { public static byte[] subArray(byte[] byte1, int start, int end) { byte[] byte2 = new byte[end - start]; System.arraycopy(byte1, start, byte2, 0, end - start); return byte2; } public static byte[] mergeArray(byte[] a1, byte[] a2) { byte[] arr = Arrays.copyOf(a1, a1.length + a2.length); System.arraycopy(a2, 0, arr, a1.length, a2.length); return arr; } /** * ??? * @return */ public static int getFreePort() { ServerSocket tmp; int i = 10000; while (true) { try { i = RandomUtils.nextInt(10000, 65535); tmp = new ServerSocket(i); tmp.close(); tmp = null; return i; } catch (Exception e4) { continue; } } } }