一些必须知道的JAVA基础知识

来源:互联网 发布:小说生成器软件 编辑:程序博客网 时间:2024/05/29 15:12

作为一名Android开发人员,面试的时候也会经常被问到一些java基础方面的。这就前段时间面试中遇到的一些java方面的,可能不全,只是我面试中遇到的。
写这篇博客只是为了自己在以后的面试中(虽然现在上班了)不要在被同样的问题难到,以后还会持续更新。

1. ArrayList 和 LinkedList:

1.两者是是集合,不同的是内部的数据结构和实现原理有所不同。ArrayList内部是数组结构,LinkedList内部是链表的数据结构。ArrayList的优点是get或set(查询)效率高。LinkedList是add(添加)和remove(删除)效率高。
2. ArrayList他既然是数组结构,数组就每一个元素都有索引,那么当向其中添加一个数据的话,则每一个元素的索引都会发生变化。这样导致效率地下。但是查询的话,我们可以根据索引很容易找到具体的元素。
LinkedList是链表数据结构,当向其中添加或者删除一个数据的时候,它只需要对其前后的数据改变引用即可。因此这方面它比ArrayList效率高。查询的话,由于链表,它必须从头到尾的去遍历,除非要找的元素正好在开头或者末尾,否则他是很好时的

这里写图片描述

2. Java类中的变量如果不写修饰符,则默认修饰符是什么 ?,是protected。

我面试的时候是直接给看了一张类似的图:
这里写图片描述
请问图中没有修饰符的textView的默认修饰符是什么。也是protected权限的

3. Java遍历List有几种方式,分别是什么?

  1. for循环(这个是最容易想到的)
  2. for eaceh
  3. Iterartor 迭代器遍历

示例代码:

public static void main(String[] args) {         List<String> list = new ArrayList<>();         for (int i = 1; i < 7; i++) {            list.add("星期" + i);        }         listFor(list); //for循环         listForEach(list);//foreach循环         listIterator(list);//迭代器循环    }    private static void listIterator(List<String> list) {        Iterator<String> iterator = list.iterator();        while (iterator.hasNext()) {            String i = (String) iterator.next();            System.out.println("Iterator循环---"+i);        }    }    private static void listForEach(List<String> list) {        for (String string : list) {            System.out.println("foreach循环---"+string);        }    }    private static void listFor(List<String> list) {        for (int i = 0; i < list.size(); i++) {            System.out.println("for循环---"+list.get(i));        }    }

输出结果:

这里写图片描述

原创粉丝点击