Java知识点总结(一)

来源:互联网 发布:sql参考手册 编辑:程序博客网 时间:2024/05/17 18:02

最近在负责部门的Java工程师招聘,面试了一个星期,感觉2-3年工作经验的工程师普遍有个特点,基础知识不扎实,主流框架知识停留在应用的阶段,掌握的不够深入,当然,也有可能是高水平的不屑于来我们公司面试,我所说的不能代表整个行业,只是对本周面试工作的一点感想。同时,自己在面试的时候也在琢磨,面试别人需要问些什么,Java开发应该掌握些什么呢?所以现在自己也准备对一些知识点做一下反思和总结。


基本算法(排序)

1.冒泡排序

public static void bubbleSort(int[] a) {    for (int i = 0; i < a.length - 1; i++)        for (int j = i + 1; j < a.length; j++)            if (a[i] > a[j]) {                int x = a[i];                a[i] = a[j];                a[j] = x;            }}
// 冒泡升级版public static void cocktailSort(int[] a) {    int left = 0;    int right = a.length - 1;    while (left < right) {        for (int i = left; i < right; i++) {            if (a[i] > a[i + 1]) {                int x = a[i];                a[i] = a[i + 1];                a[i + 1] = x;            }        }        right--;        for (int i = right; i > left; i--) {            if (a[i - 1] > a[i]) {                int x = a[i];                a[i] = a[i - 1];                a[i - 1] = x;            }        }        left++;    }}

2.插入排序

public static int[] insertSort(int[] a) {    if (a != null && a.length > 0) {        for (int i = 1; i < a.length; i++) {            if(a[i] < a[i-1]){                int x = a[i];                a[i] = a[i-1];                int j= i-2;                while(j >= 0 && x < a[j]){                    a[j+1] = a[j];                    j--;                }                a[j+1] = x;            }        }    }}
// 插入升级版public static void insertSortDichotomy(int[] a) {    for (int i = 1; i < a.length; i++) {        int get = a[i];        int left = 0;        int right = i - 1;        while (left <= right) {            int mid = (left + right) / 2;            if (a[mid] > get)                right = mid - 1;            else                left = mid + 1;        }        for (int j = i - 1; j >= left; j--) {            a[j + 1] = a[j];        }        a[left] = get;    }}
// 插入排序-希尔排序public static void ShellSort(int[] a) {    int h = 0;    while (h <= a.length) {        h = 3 * h + 1;    }    while (h >= 1) {        for (int i = h; i < a.length; i++) {            int j = i - h;            int get = a[i];            while (j >= 0 && a[j] > get)            {                a[j + h] = a[j];                j = j - h;            }            a[j + h] = get;        }        h = (h - 1) / 3;    }}

3.选择排序

public static int[] selectSort(int[] a) {    if (a != null && a.length > 0) {        int min = 0;        for (int i = 0; i < a.length-1; i++) {            min = i;            for (int j= i+1; j< a.length; j++) {                if (a[min] > a[j])                    min = j;            }            if (min != i) {                int x = a[min];                a[min] = a[i];                a[i] = x;            }        }    }}

未完待续

【总监】十二春秋之,3483099@qq.com;
【Master】zelo,616701261@qq.com;【运营】运维艄公,897221533@qq.com;
【产品设计】流浪猫,364994559@qq.com;【体验设计】兜兜,2435632247@qq.com;
【iOS】淘码小工,492395860@qq.com;iMcG33K,imcg33k@gmail.com;
【Android】人猿居士,1059604515@qq.com;思路的顿悟,1217022114@qq.com;
【Java】首席工程师MR_W,feixue300@qq.com;【测试】土镜问道,847071279@qq.com;
【数据】fox009521,42151960@qq.com;【安全】保密,你懂的。

原创粉丝点击