面试3道测试题

1.题目:判断101-200之间有多少个素数,并输出所有素数。
判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
package interviewWjw;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

public class Test1 {

	/**1.题目:判断101-200之间有多少个素数,并输出所有素数。
	 * 判断素数的方法:从二开始分别去除2到sqrt(这个数),
	 * 如果能被整除,则表明此数不是素数,反之是素数。
	 */
	public static void main(String[] args) {
	//将获取到的素数存入集合中:	
		Set<Integer> PrimeNum = getPrimeNum();
	//对集合遍历并输出元素:	
		for (Iterator iterator = PrimeNum.iterator(); iterator.hasNext();) {
			Integer integer = (Integer) iterator.next();
			
			System.out.println(integer);
		}
		System.out.println("素数个数是:"+PrimeNum.size());
		
	}

	private static Set<Integer> getPrimeNum() {
		//创建集合:
		Set<Integer> list = new TreeSet<Integer>();
		//往集合中添加素数:
		boolean b = false;
		for(int i = 101;i<=200;i+=2){
			
			for(int j=2;j<Math.sqrt(i);j++){
				//若i除j为零,则说明不是素数:终止循环
				if(i%j==0){
					b = false;
					break;
				}else{
					b = true;
				}
			}
			if(b==true) list.add(i);
		}
		
		return list;
	}
}



2.应用FileInputStream类,编写应用程序,从磁盘上读取一个Java程序,并将源程序代码显示在屏幕上。(被读取的文件路径为:E:/myjava/Hello.java)

package interviewWjw;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;

public class Test2 {

	/**
	 * 2.应用FileInputStream类,编写应用程序,从磁盘上读取一个Java程序,
	 * 并将源程序代码显示在屏幕上。(被读取的文件路径为:E:/myjava/Hello.java)
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		
		File file = new File("e:\\file.txt");
		
		BufferedInputStream bfi = new BufferedInputStream(new FileInputStream(file));
		
		PrintWriter out = new PrintWriter(System.out);
		
		int num = 0;
		while((num=bfi.read())!=-1){
				out.print((char)num);
		}
		
		bfi.close();
		out.close();
			
	}

}


3.List<Integer> list = new ArrayList<Integer>(); 在这个泛型为Integer的ArrayList中存放一个String类型的对象。

package interviewWjw;

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
 * 3.List<Integer> list = new ArrayList<Integer>();
 *  在这个泛型为Integer的ArrayList中存放一个String类型的对象。
 */
public class Test3 {
	public static void main(String[] args) throws Exception {
		
		String str = "asb";
		
		List<Integer> list = new ArrayList<Integer>();
		//使用java的反射机制:
		//我们先输出list的所有方法:
		Method[] methods = list.getClass().getMethods();
		System.out.println("list对象共有"+methods.length+"个方法。");
			//遍历:
		System.out.println("-------------------");
			for (int i = 0; i < methods.length; i++) {
				System.out.println(methods[i]);
			}
		System.out.println("-------------------");
		
		//1,获取add添加方法:
		Method add = list.getClass().getDeclaredMethod("add", Object.class);
		//2,添加进去:
		//invoke(Object obj, Object... args):对带有指定参数的指定对象调用由此 Method 对象表示的底层方法。
		add.invoke(list, str);
		
		//3,遍历list
		for (int i = 0; i <list.size(); i++) {
			System.out.println("输出list中的内容:"+list.get(i));
		}
	}
}



你可能感兴趣的:(java,多线程,面试题,博客)