java面试题
2017-12-21 本文已影响154人
果芽软件
一、for循环
1. 递增变量
1. 初始值
2. 最大值
3. 增量
4. 变量存储
int[] nums=new int[]{3,2,1,4}
for( int i=0 ; i< 10 ; i++){
/*
1. 初始值:0
2. 最大值:10
3. 增量:++,即自增,每次+1
4. 变量存储:int i
*/
System.out.println(nums[i]);
}
2. for each方式
1. 集合:数组、list等
2. 变量:变量类型、变量名
int[] nums=new int[]{3,2,1,4}
for(int i : nums){
System.out.println(i);
}
二、冒泡排序
image.png2个数字交换位置(引入一个临时变量)
image.png
package com.guoyasoft;
public class Java {
public static void main(String[] args) {
int[] nums=new int[]{5,1,3,7,2};
//第1步:循环多少轮,每一轮确定1个数字
for(int i=0;i<nums.length-1;i++){
//第2步:每一轮,循环比较多少次,总个数-1-轮数
for(int j=0;j<nums.length-i-1;j++){
//第3步:判断是否交换位置
if(nums[j]>nums[j+1]){
//第4步:引入一个临时变量,前后两个数字交换位置
int k=nums[j+1];
nums[j+1]=nums[j];
nums[j]=k;
}
}
}
//打印结果
for(int a:nums){
System.out.print(a);
}
}
}
三、打印1-1500之间3的倍数
package com.guoyasoft;
public class Java {
public static void main(String[] args) {
//最小值:0;最大值:1500;增量:3;存储变量:int i
for(int i=0;i<=1500;i=i+3){
System.out.println(i);
}
for(int i=0;i<=1500;i++){
if(i%3==0){
System.out.println(i);
}
}
}
}
四、webdriver切换窗口
public void switchToTitleWindow(String windowTitle) {
// 将页面上所有的windowshandle放在入set集合当中
Set<String> handles = driver.getWindowHandles();
for (String s : handles) {
driver.switchTo().window(s);
// 判断title是否和handles当前的窗口相同
if (driver.getTitle().contains(windowTitle)) {
break;// 如果找到当前窗口就停止查找
}
}
}
五、常用容器和区别
容器类 | 类名 | 用途 | 语法 |
---|---|---|---|
数组 | 类型[] | 固定大小,用下标取值 | 数组[下标]= |
list | ArrayList | 变动大小,用下标取值 | list.add(value); list.get(下标); |
map | HashMap | 变动大小,键值对,用key取value | map.put(key,value); map.get(key); |
六、面向对象三个特征
1. 封装:把过程和数据封装成对象
2. 继承:复用父类的代码,extends
3. 多态:一个接口或父类有多个实现类,同一个方法,不同的子类或实现类,可以接受相同的请求
七、接口与抽象类的区别
接口:接口是一种约定,所有方法都不实现,通过implements实现
抽象类:用于继承extends,里面可以有实现方法,也可以有未实现的方法