选择题:
解析:A
1.创建线程有三个方式:继承Thread类,实现Runnable,实现Callable
2.同步说的是必须等待一个事情完了才能去干另一间事情,异步说的是不需要停下来一直等待一个事件结束,在等待的过程中还可以进行别的事情。这个东西在Callable中call方法返回一个Future体现的淋漓尽致。
3.线程创建时start方法,线程处于Runnable,线程只有run方法执行,才进入Running。
解析:B
代表引用的是实际的对象,对引用的修改就是对对象的修改
解析:B
1.构造方法也是类的方法,可以在创建对象时为成员变量赋值
2.构造方法可以进行重载,但是参数列表必须不相同,不以返回值和访问级别进行区分
3.构造方法没有返回值
4.构造方法一定要与定义为public的类同名
解析:D
ArrayList和LinkedList都实现List接口,Hashset实现Set接口
Arraylist在内存中基于数组实现,可以通过为止找到地址查找快,增加删除需要修改其后面的所以元素所以慢。LinkedList在内存中基于链表存放,查找慢,修改快。
HashMap运行任何键值对。即使是null也是支持的
ArrayList和LinkedList都实现List接口,Hashset实现Set接口
Arraylist在内存中顺序排放,可以通过为止找到地址查找快,增加删除需要修改其后面的所以元素所以慢。LinkedList在内存中链表存放,查找慢,修改快
HashMap运行任何键值对。即使是null也是支持的.
题目:
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。
//用两次for循环对一个数组每个元素进行比较,当下标相同时不进行比较
public class Solution {
public int MoreThanHalfNum_Solution(int [] array) {
int c=0;
if (array == null ||array.length == 0){
return 0;
}
int count = 1;
for (int i =0;i<array.length;i++){
for (int j = 0;j<array.length;j++){
if (i == j) {
continue;//当下标相同时不进行循环;
}
if (array[i]==array[j]){
count++;
}
}
if (count>array.length/2){
c =array[i];
break;
}
count=1;
}
return c;
}
}
测试代码:
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
int [] arr = new int[] {2,2,3,3};
Solution solution = new Solution();
int c = solution.MoreThanHalfNum_Solution(arr);
System.out.println(c);
}
}