最近投了风火山林的高级java工程师职位,对于我这种刚毕业的菜鸟来说能挺到第三轮,可能对大家来说还算可以,但我心里面对自己的要求可不是那样的。第三轮是算法题,就是发几个题目给你两天时间做完,实际上我一天就做完了,只是在算法的复杂度上没有考虑,我想这也是被刷下来的原因之一吧 。

题目如下:

这是工具类:
package www.work.service;
import java.util.List;
public interface Work_One {

public List<Integer> exec(int n,Integer[] data)throws Exception;
}

package www.work.service.impl;
import java.util.ArrayList;
import java.util.List;

import www.work.service.Work_One;
import www.work.util.CheckArray;
import www.work.util.Work_OneQuicksort;
/**题目描述:1.    请实现一个函数:凑14;输入很多个整数(1<=数值<=13),
 * 任意两个数相加等于14就可以从数组中删除这两个数,求剩余数(按由小到大排列);
 * 比如: 输入数组[9,1,9,7,5,13], 输出数组[7,9]
 *
 * @author 陈砚庭
 *
 */
public class Work_OneQSort implements Work_One{
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Work_OneQuicksort q=new Work_OneQuicksort();
        Work_One qSoft=new Work_OneQSort();
        Integer[] data={1,2,13,2,13,1,4,6,5,7,4,7,3};
        q.setData(data);
        q.sort(0, data.length-1);
        q.display();   
        List<Integer> lists=null;
        try {
              if(CheckArray.checkArray(data))
                 lists = qSoft.exec(14, data);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println(lists);   
    }
    public List<Integer> exec(int n,Integer[] data)throws Exception{
        if(data==null){
            throw new NullPointerException();
        }
        if(n<0){
            throw new IllegalArgumentException();
        }
        Integer temp=n%2==0? n/2:n/2+1;
        if(data[0]>temp||data[data.length-1]<temp){
            return null;
        }
        for(int i=0;i<data.length;i++){
            if(data[i]>temp){
                data[i]=n;
            }else{
                for(int j=i;j<data.length;j++){
                    if(data[i]+data[j]==n){
                        data[i]=0;
                        data[j]=0;
                    }
                }
            }
        }
        return getResult(n,data);
    }
    /**
     * 把数组中多余的元素剔除掉
     * @param n
     * @param arg0
     * @return
     */
    private List<Integer> getResult(int n,Integer[] arg0){
        List<Integer> lists=new ArrayList<Integer>();
        for(int i=0;i<arg0.length;i++){
            if(!(arg0[i]==0||arg0[i]==n)){
                lists.add(arg0[i]);
            }
        }
        return lists;
    }
}

package www.work.service;
import java.util.List;
public interface Work_Two {

/**
     * 根据一维坐标获取重叠部分
     * @param array
     * @return
     * @throws Exception
     */
    public  List<List<Double>> getSegment(Double[][] array)throws Exception;
}
package www.work.service.impl;

import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

import www.work.service.Work_Two;

/**
 * 问题描述:2.    请实现一个函数:线段重叠; 输入多个一维线段,
 * 求出这些线段相交的所有区域(也用线段表示); 
 * 一条线段用两个值表示(x0,x1), 其中x1>x0; 
 *比如: 输入线段数组[(2,4),(1.5,6),(0.5,3.5),(5,7),(7.5,9)], 输出线段数组[(1.5,4),(5,6)]
 * @author 陈砚庭
 *
 */
public class Work_TwoSegment implements Work_Two {

/**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        // TODO Auto-generated method stub
        Double[][] array={{2.0,4.0},{1.5,6.0},{0.5,3.5},{5.0,7.0},{7.5,9.0}};
        Double[][] arrayInt={{2.0,4.0},{4.0,6.0},{6.0,7.0},{7.0,7.0},{7.5,9.0}};
        Double temp[][]={{1.5,6.0},{2.4,7.8}};
        Work_Two two=new Work_TwoSegment();
        System.out.println(two.getSegment(array));
    }

public List<List<Double>> getSegment(Double[][] array) throws Exception {

if (array == null) {
            throw new NullPointerException();
        }

//将二维数组转化为一维数组
        Double[] temp = new Double[array.length * 2];
        int[] count = new int[array.length * 2];//存放点的基数的数组,基数越大代表该点被包含的区间越多
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                temp[i * array[i].length + j] = array[i][j];
            }
        }
        Arrays.sort(temp);
        Double x = 0.0;
        Double y = 0.0;
        for (int i = 0; i < array.length; i++) {
            x = array[i][0];
            for (int j = 1; j < array[i].length; j++) {
                y = array[i][j];
                for (int k = 0; k < temp.length; k++) {
                    if (temp[k] >= x && temp[k] < y)
                        ++count[k];
                }
            }
        }
        List<List<Double>> resultList = new LinkedList<List<Double>>();
        List<Double> list = null;
        int flag = 0;
        for (int i = 0; i < count.length; i++) {
            if (count[i] > 1 && flag == 0) {
                flag = 1;
                list = new LinkedList<Double>();
                list.add(temp[i]);
            } else if (count[i] == 1 && flag == 1) {
                flag = 0;
                list.add(temp[i]);
                resultList.add(list);
                list = null;
            }
        }
        return resultList;
    }

}

package www.work.service;
import java.util.ArrayList;
public interface Work_Three {
    public  ArrayList<ArrayList<Integer>> getLongest(Integer[] array) throws Exception;
}
package www.work.service.impl;
import java.util.ArrayList;
import java.util.Arrays;
import www.work.service.Work_Three;
import www.work.util.CheckArray;
/**
 * 题目描述:3.    请实现一个函数:最长顺子;输入很多个整数(1<=数值<=13),
 * 返回其中可能组成的最长的一个顺子(顺子中数的个数代表顺的长度);
 * 其中数字1也可以代表14; 顺子包括单顺\双顺\3顺;单顺的定义是连续5个及以上连续的数,
 * 比如1,2,3,4,5、3,4,5,6,7,8和10,11,12,13,1等;双顺的定义是连续3个及以上连续的对(对:两个相同的数被称为对),
 * 比如1,1,2,2,3,3、4,4,5,5,6,6,7,7和11,11,12,12,13,13,1,1等;3顺的定义是连续2个及以上连续的3张(3张:3个相同的数被称为3张),
 * 比如1,1,1,2,2,2、3,3,3,4,4,4,5,5,5,6,6,6和13,13,13,1,1,1等等;
 *比如:输入数组[1,5,2,3,4,4,5,9,6,7,2,3,3,4], 输出数组[2,2,3,3,4,4,5,5]
 * @author 陈砚庭
 *
 */
public class Work_ThreeSequence implements Work_Three{
    private int[] tempCount=null;
    public static void main(String[] args) {
        Work_Three longest=new Work_ThreeSequence();
        Integer[] array = { 1, 5, 2, 3, 4, 4, 5, 9, 6, 7, 2, 3, 3, 4 ,1,13,13,13,11,11,11,12,12,12,1,2};
        try {
           if(CheckArray.checkArray(array))
               System.out.println(longest.getLongest(array));
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    public  ArrayList<ArrayList<Integer>> getLongest(Integer[] array)throws Exception{
        if(array==null){
            throw new NullPointerException();
        }
        Arrays.sort(array);//对数组进行排序
        ArrayList<ArrayList<Integer>> listOne=null;
        ArrayList<ArrayList<Integer>> listTwo=null;
        ArrayList<ArrayList<Integer>> listThree=null;
        try{
             listOne = getLongest(array, 1);
             listTwo = getLongest(array, 2);
             listThree= getLongest(array, 3);
            int list1Length=listOne.get(0).size();
            int list2Length=listTwo.get(0).size();
            int list3Length=listThree.get(0).size();
            if(list2Length>list1Length){
                listOne=listTwo;
            }
            if(list3Length>list1Length){
                listOne=listThree;
            }
        }catch(Exception e){
            throw new NullPointerException();
        }
        return listOne;
    }
    /**
     * 获得数组中的顺子
     * @param array
     * @param count
     * @return
     */
    private  ArrayList<ArrayList<Integer>> getLongest(Integer[] array, int count) throws NullPointerException,IllegalArgumentException{
        if(array==null){
            throw new NullPointerException();
        }
        if(count<1){
            throw new IllegalArgumentException();
        }
         tempCount=new int[14];
         //取得每个数字在数组中出现的个数
         for(int i=0;i<array.length;i++){
             tempCount[array[i]]++;
         }
        ArrayList<Integer> longest = new ArrayList<Integer>();//记录最长的顺子
        ArrayList<Integer> temp = new ArrayList<Integer>();//记录当前的顺子
        ArrayList<ArrayList<Integer>> longests=new ArrayList<ArrayList<Integer>>();//记录最长的顺子,不分大小
        for (int i = 0; i < array.length;i+=tempCount[array[i]]) {
            int start = array[i];
            if (getCount(start, count)) {
                for (int j = 0; j < count; j++) {
                    temp.add(start);
                }
            } else {
                continue;
            }
            while (start <= 13) {
                if (getCount(start + 1, count)) {
                    for (int j = 0; j < count; j++) {
                        if (start + 1 == 14) {
                            temp.add(1);
                        } else {
                            temp.add(start + 1);
                        }
                    }
                } else {
                    break;
                }
                start++;
            }
            if (temp.size()>longest.size()) {
                longest = (ArrayList<Integer>) temp.clone();
                longests.clear();
                longests.add(longest);
            }else if(temp.size()==longest.size()){
                if(!temp.equals(longest)){
                    longests.add(temp);
                }
            }
            temp = new ArrayList<Integer>();
        }
        return longests;
    }
    /**
     * 在数组中查找n是否出现count次
     * @param n  寻找的次数
     * @param count 出现的次数
     * @return
     */
    private  boolean getCount(int n, int count) {
        if (n == 14) {
            n = 1;
        }
        if(tempCount[n]>=count){
            return true;
        }else{
            return false;
        }
    }
}

package www.work.util;
public class Work_FourArrayFile {
    private int index = 0;// 数组长度
    private String[] files = null;
    public synchronized void add(String file) {
        index++;
        String[] tempFiles = new String[index];
        if (files == null) {
            tempFiles[0] = file;
        } else {
            tempFiles[tempFiles.length - 1] = file;
            System.arraycopy(files, 0, tempFiles, 0, files.length);
        }
        files = tempFiles.clone();
    }
    public synchronized void remove(String file) {
        if (index < 0) {
            throw new IllegalArgumentException();
        }
        index--;
        String[] tempFiles = new String[index];
        int indexTemp = 0;
        for (int i = 0; i < files.length; i++) {
            if (files[i] == file) {
                indexTemp = i + 1;
                continue;
            }
        }
        if (indexTemp != 0) {
            if (indexTemp != 1) {
                System.arraycopy(files, 0, tempFiles, 0, indexTemp - 1);
            }
            if (indexTemp != files.length) {
                System.arraycopy(files, indexTemp, tempFiles, indexTemp - 1,
                        files.length - indexTemp);
            }
            files = tempFiles.clone();
        }
    }
    public int getIndex() {
        return index;
    }

public String[] getFiles() {
        return files;
    }
    /*
     * public void clear() { files=null; }
     */
    public static void main(String... args) {
        Work_FourArrayFile work_FourArrayFile = new Work_FourArrayFile();
        int[] temp = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        int[] index = new int[9];
        System.arraycopy(temp, 1, index, 0, 9);
        for (int i = 0; i < index.length; i++) {
            System.out.println(index[i]);
        }
        work_FourArrayFile.add(100 + "");
        work_FourArrayFile.add(101 + "");
        work_FourArrayFile.add(102 + "");
        work_FourArrayFile.add(103 + "");
        work_FourArrayFile.add(104 + "");
        work_FourArrayFile.add(105 + "");
        work_FourArrayFile.add(106 + "");
        work_FourArrayFile.add(107 + "");
        work_FourArrayFile.add(108 + "");
        work_FourArrayFile.add(109 + "");
        for (String i : work_FourArrayFile.getFiles())
            System.out.print(i + "\t");
        System.out.println();
        work_FourArrayFile.remove(100 + "");
        for (String i : work_FourArrayFile.getFiles())
            System.out.print(i + "\t");
        System.out.println();
        work_FourArrayFile.remove(101 + "");
        for (String i : work_FourArrayFile.getFiles())
            System.out.print(i + "\t");
        System.out.println();
        work_FourArrayFile.remove(102 + "");
        for (String i : work_FourArrayFile.getFiles())
            System.out.print(i + "\t");
        System.out.println();
        work_FourArrayFile.remove(103 + "");
        for (String i : work_FourArrayFile.getFiles())
            System.out.print(i + "\t");
        System.out.println();
        work_FourArrayFile.remove(104 + "");
        for (String i : work_FourArrayFile.getFiles())
            System.out.print(i + "\t");
        System.out.println();
        work_FourArrayFile.remove(105 + "");
        for (String i : work_FourArrayFile.getFiles())
            System.out.print(i + "\t");
        work_FourArrayFile.remove(106 + "");
        for (String i : work_FourArrayFile.getFiles())
            System.out.print(i + "\t");
        System.out.println();
        work_FourArrayFile.remove(107 + "");
        for (String i : work_FourArrayFile.getFiles())
            System.out.print(i + "\t");
        System.out.println();
        work_FourArrayFile.remove(108 + "");
        for (String i : work_FourArrayFile.getFiles())
            System.out.print(i + "\t");
        System.out.println();
        work_FourArrayFile.remove(109 + "");
        for (String i : work_FourArrayFile.getFiles())
            System.out.print(i + "\t");
        System.out.println("sdfd");
    }
}
package www.work.util;

import java.util.HashMap;
import java.util.Map;
public class Work_Fourutil {
    private Work_Fourutil(){}
    private static Map<String, Long> maps = new HashMap<String, Long>();
    public  static void put(String arg0,Long arg1){
        maps.put(arg0, arg1);
    }
    public static Map<String, Long> getMaps() {
        return maps;
    }
}
package www.work.service;
import java.util.Map;
public interface Work_Four {
    /**
     * 从指定目录下读取文件
     * @param path
     * @return
     * @throws Exception
     */
    public Map<String, Long> readProject(String path)throws Exception;
}
package www.work.service.impl;
import java.util.Map;
import www.work.service.Work_Four;
import www.work.util.Work_FourArrayFile;
import www.work.util.Work_Fourutil;
/**
 * 4.请设计一个程序:使用多线程,统计程序源代码行数;源代码是可以编译通过的合法的代码, 统计其物理总行数、其中的空行行数、其中含有有效代码的行数、
 * 其中含有注释内容的行数;(要求必须利用多线程编程, 如果代码框架能更容易的扩展到支持多种语言的源代码行数统计,将获得更高的评价。)
 *
 * @author Administrator
 *
 */
public class Work_FourImpl implements Work_Four {
    private Work_FourThreadFileImpl filesArray = null;
    private Work_FourThreadLineIpml lineArray = null;
    private boolean flag = false;
    public static void main(String... args) throws Exception {
        Work_Four w = new Work_FourImpl();
        String path = "D:\\java\\test\\src\\main\\java\\www\\work\\impl";
        Work_FourArrayFile wf_file=new Work_FourArrayFile();
        Map<String, Long> maps = w.readProject(path);
        for (String map : maps.keySet()) {
            System.out.println(map + "=" + maps.get(map));
        }
    }
    public Map<String, Long> readProject(String path) throws Exception {
        // TODO Auto-generated method stub
        exec(path);
        while(filesArray.getWf_product().isLineflag()){ 
        }
        end();
        return Work_Fourutil.getMaps();
    }
    private void end(){
        Work_Fourutil.put("空格行", filesArray.getWf_product().getBlank_Lines());
        Work_Fourutil.put("有效代码行", filesArray.getWf_product().getCode_Lines());
        Work_Fourutil.put("注释行", filesArray.getWf_product().getComment_Lines());
        Work_Fourutil.put("物理行", (filesArray.getWf_product().getBlank_Lines()+filesArray.getWf_product().getCode_Lines()+filesArray.getWf_product().getComment_Lines()));
    }
    private void exec(String path) {
        Work_FourArrayFile wf_file=new Work_FourArrayFile();
        Work_FourProduct wf_product=new Work_FourProduct(path,".java",wf_file);
        //获取文件目录的线程
        filesArray=new Work_FourThreadFileImpl(wf_product);
        Thread thread1 = new Thread(filesArray);
        //统计文件的线程
        lineArray = new Work_FourThreadLineIpml(wf_product);
        Thread thread2 = new Thread(lineArray);
        thread1.start();
        thread2.start();
    }
}
package www.work.service.impl;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import www.work.util.Work_FourArrayFile;
public class Work_FourProduct {
    private Work_FourArrayFile wf=null;
    private  boolean fileflag = true;// 标志位,判断获得文件路径的线程是否运行完成
    private  boolean lineflag = true; 
    public boolean isFileflag() {
        return fileflag;
    }
    public void setFileflag(boolean fileflag) {
        this.fileflag = fileflag;
    }
    private String path=null;//要遍历的文件路径
    private String suffix=null;//文件后缀
    private  long code_Lines = 0; // 可执行代码行数
    private  long comment_Lines = 0; // 注释行数
    private  long blank_Lines = 0; // 空格行数
    public long getCode_Lines() {
        return code_Lines;
    }
    public long getComment_Lines() {
        return comment_Lines;
    }
    public long getBlank_Lines() {
        return blank_Lines;
    }
    public Work_FourProduct(String path,String suffix,Work_FourArrayFile wf) {
        super();
        this.path = path;
        this.suffix=suffix;
        this.wf=wf;
    }
    public Work_FourArrayFile getWf() {
        return wf;
    }
    public boolean isLineflag() {
        return lineflag;
    }
    public void setLineflag(boolean lineflag) {
        this.lineflag = lineflag;
    }
    public synchronized void execSetWf() throws Exception{
        while(true){
            if(wf.getIndex()>0){
                this.wait();
            }else{
                break;
            }
        }
         readsFile(path,suffix);
         this.notify();
    }
    private  void  readsFile(String path,String suffix) throws Exception {
        // TODO Auto-generated method stub
        File f = new File(path);
        File[] ff = f.listFiles();
        for (File child : ff) {
            if (child.isDirectory()) {
                readsFile(child.getPath(),suffix);
            } else if (child.getName().matches(".*\\"+suffix+"$")) {
                wf.add(child.getPath());
            }
        }
    }
    public synchronized void execGetWf() throws InterruptedException{
        while(true){
            if(wf.getIndex()<=0){
                this.wait();
            }else{
                exec();
                this.notify();
                break;
            }
        } 
    }
    private void exec() {
        String[] files = wf.getFiles();
        if (files != null&&files.length>0) {
            for (String f : files) {
                try {
                    readFileLines(new File(f));
                    wf.remove(f);
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
    private void readFileLines(File f) throws Exception {
        BufferedReader br = null;
        boolean tempFlag = false;
        try {
            br = new BufferedReader(new FileReader(f));
            String line = "";
            while ((line = br.readLine()) != null) {
                line = line.trim(); // 除去注释前的空格
                if (line.matches("^[ ]*$")) { // 匹配空行
                    blank_Lines++;
                } else if (line.startsWith("//")) {
                    comment_Lines++;
                } else if (line.startsWith("/*") && !line.endsWith("*/")) {
                    comment_Lines++;
                    tempFlag = true;
                } else if (line.startsWith("/*") && line.endsWith("*/")) {
                    comment_Lines++;
                } else if (tempFlag == true) {
                    comment_Lines++;
                    if (line.endsWith("*/")) {
                        tempFlag = false;
                    }
                } else {
                    code_Lines++;
                }
            }
        } catch (FileNotFoundException e) {
            throw e;
        } catch (IOException e) {
            throw e;
        } finally {
            if (br != null) {
                try {
                    br.close();
                    br = null;
                } catch (IOException e) {
                    throw e;
                }
            }
        }
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    }
}
package www.work.service.impl;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import www.work.util.Work_FourArrayFile;
/**
 * 此类用于读取指定目录下的java源文件
 * @author 陈砚庭
 *
 */
public class Work_FourThreadFileImpl implements Runnable {
    public static void main(String ...args){
        String path="D:\\java\\test\\src\\main\\java\\www\\work\\impl";
        Work_FourArrayFile wf_file=new Work_FourArrayFile();
        Work_FourProduct wf_product=new Work_FourProduct(path,".java",wf_file);
        Work_FourThreadFileImpl w=new Work_FourThreadFileImpl(wf_product);
        Thread t=new Thread(w);
        t.start();
        //System.out.println(Work_FourArrayFile.getFiles());
    }
    public Work_FourProduct getWf_product() {
        return wf_product;
    }
    private Work_FourProduct wf_product=null;
    public Work_FourThreadFileImpl(Work_FourProduct wf_product) {
        super();
        this.wf_product=wf_product;
    }
    public void run() {
        // TODO Auto-generated method stub
        while(wf_product.isFileflag()){
            try {
                wf_product.execSetWf();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                wf_product.setFileflag(false);
                System.out.println("Work_FourThreadFileImpl线程执行完毕!!!!");
            }
        }
    }
}
package www.work.service.impl;
/**
 * 此线程类用于保存行数
 *
 * @author Administrator
 *
 */
public class Work_FourThreadLineIpml implements Runnable {
    private Work_FourProduct wf_product = null;
    public Work_FourThreadLineIpml(Work_FourProduct wf_product) {
        this.wf_product = wf_product;
    }
    public void run() {
        // TODO Auto-generated method stub
        while (wf_product.isLineflag()) {
            try {
                wf_product.execGetWf();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                wf_product.setLineflag(false);
                System.out.println("Work_FourThreadLineIpml线程执行完毕!!!!");
            }  
        }
    }
}

通过这次的面试,明显的知道了自己的不足,以后要多往算法复杂度方面去思考问题,上面的方法都是可以改进的。

转载于:https://blog.51cto.com/chenyanxi/1046928

风林火山高级java工程师面试题相关推荐

  1. 1000道阿里巴巴初级~高级Java工程师面试题(含答案,2021最新华为Java校招面试题

    如何显示前50 行? 可以使用多少列创建索引? Now( )和CURRERT_DATE()有什么区别? 什么是非标准字符串类型? 什么是通用sQI函数? MySQL支持事务吗? MysQL里记录货币用 ...

  2. 高级java工程师面试题

    一.面试具体技术内容 1.面试java基础 (1)java 为什么分为基础对象,引用对象,两者的区别 (2)多线程,多线程安全怎么做.用过current 包里面的内容吗     多线程之间的通信如何处 ...

  3. 大V推荐!高级java工程师面试题库

    前言 随着k8s 作为容器编排解决方案变得越来越流行,有些人开始拿 Docker 和 k8s进行对比,不禁问道:Docker 不香吗? k8s 是kubernets的缩写,'8'代表中间的八个字符. ...

  4. 1000道阿里巴巴初级~高级Java工程师面试题(含答案,软件架构师之路阅读

    Redi s的持久化机制是什么?各自的优缺点? Redi s常见性能问题和解决方案:10.redis过期键的删除策略? Redis的回收策略(淘汰策略〉? 为什么ediz需要把所有数据放到内存中?13 ...

  5. 1000道阿里巴巴初级~高级Java工程师面试题(含答案

    chubby是什么,和zookeeper比你怎么看? 说几个zookeeper常用的命令. ZAE和F axos算法的联系与区别? Zookeeper的典型应用场景 Dubbo面试篇 ======== ...

  6. 2022年最新Java工程师面试题从基础到中级到高级

    2022年最新Java工程师面试题从基础到中级到高级 一.基础 Java面向对象有哪些特征,如何应用 面向对象编程是利用类和对象编程的一种思想.万物可归类,类是对于世界事物的高度抽象 ,不同的事物之间 ...

  7. Java高级开发工程师面试题

    对于高级工程师来讲,自身的技术修为尤为重要,比如算法.设计模式.底层原理等,只有把这些基础熟练之后,才能在开发过程中知其然知其所以然,出现问题时达到得心应手.接下来与大家一起分享Java高级工程师面试 ...

  8. J2EE高级软件工程师面试题集

      第一章:J2EE高级软件工程师面试题集 --JAVA基础部分 1.面向对象的特征有哪些方面1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不 ...

  9. java工程师考试题目_成功拿到Offer,Java工程师笔试题及答案!

    1.是否可以从一个static方法内部发出对非static方法的调用? 不可以.因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时 ...

最新文章

  1. 浏览器允许的并发请求资源数是有限制的-分析
  2. 一条命令monkey命令
  3. java 文件读写demo
  4. html5 video css样式修改,htmlvideo标签用法
  5. ORACLE 等待事件的分类
  6. linux算法设计,红黑树的原理分析和算法设计
  7. 在Google Cloud platform上创建Kubernetes cluster并使用
  8. 【C语言笔记进阶篇】第二章:字符串函数和内存函数
  9. Linux 技巧: 从命令行创建像素标尺
  10. 用DOS命令快把系统看透
  11. Python数字类型:数值运算操作符、数值运算函数、类型判断函数、类型转换函数
  12. 词法分析程序 LEX和VC6整合使用的一个简单例子
  13. 探索数据可视化,业务数据是核心
  14. arcgis10.2之Maplex(高级标注扩展模块)
  15. 【转】金蝶KIS云·专业版私有云V16.0于2021年12月31日发布全新安装包
  16. 2022年fw保研经验(东南大学网安、湖南大学计科学硕、中科院沈阳自动化所,最终东南网安)
  17. linux双线路由,双线机房双IP linux设置路由
  18. 网络准入系统usersafe守护企业内网安全
  19. online learning
  20. chromeDriver下载地址

热门文章

  1. Gorm学习(四)基础:关联
  2. linux zfs raid,揭秘ZFS RAID世界-高性能ZFS RAID10Z0
  3. 什么是ARM处理器?ARM处理器有哪些优点?
  4. 【观察】“凌动数据管理”方案应运而生,联想凌拓本地化提速以行践言
  5. win11台式电脑插入耳机(耳麦)后麦克风没声音,无法识别输入设备
  6. HBase简单API
  7. latex中怎么在符号正上和正下方编写公式
  8. antd design Upload文件上传,删除,批量上传组件封装
  9. 阜城搜索引擎排名_衡水哪个区最富,哪个县最穷?没想到阜城的排名居然是......
  10. python微信搭建_python搭建微信公众平台