`
huxiaoqing
  • 浏览: 5407 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

面试题汇总

阅读更多
1、用递归复制文件目录
public void copyFiles(String fromPath, String toPath){
    File fromFile = new File(fromPath);
    if (fromFile.isDirectory()){
        File toFile = new File(toPath);
        if(!toFile.exists()) {
            System.out.println("正在创建文件夹:" + toFile.getName());
            toFile.mkdir();
        }
        File[] files = fromFile.listFiles();
        for(File f : files){
            copyFile(f.getAbsolutePath(), toPath+ "/" + f.getName());
        }
    } else {
        System.out.println("正在复制文件:" + frompath);
        copy(fromPath, toPath);
    }
}

/**
 * 复制单个文件
 * @param fromPath
 * @param toPath
 */
private void copy(String fromPath, String toPath){
    try{
        // 建立一个输入流
        DataInputStream in = new DataInputStream(
                BufferedInputStream(
                        FileInputStream(fromPath)));
        byte[] data = new byte[in.available()];
        in.read(data);
        // 建立一个输出流
        DataOutputStream out = new DataOutputStream(
                BufferedOutputStream(
                        FileOutputStream(toPath)));
        out.write(data);
        // 关闭输入输出流
        out.close();
        in.close();
    } catch(Exception e){
        e.printStackTrace();
    }
}


2、try{}语句块有return语句,在try{}后面有finally{}code,该code是否会执行,什么情况下执行?
    我们先看个例子吧


import java.math.BigDecimal;

public class TryCatchTest {
	public static void main(String[] args){
		try {
			System.out.println("运行try{}代码块");
			new BigDecimal("a");
			return;
		} catch(Exception e) {
			e.printStackTrace();
			System.out.println("运行到catch代码块了");
		} finally {
			System.out.println("运行到finally代码块了");
		}
		System.out.println("运行try finally外代码");
	}
}

运行的结果为
运行try{}代码块
java.lang.NumberFormatException
	at java.math.BigDecimal.<init>(Unknown Source)
	at java.math.BigDecimal.<init>(Unknown Source)
	at hxq.study.test.TryCatchTest.main(TryCatchTest.java:9)
运行到catch代码块了
运行到finally代码块了
运行try finally外代码

从中可以看出,code还是有可能被执行的,当try中捕捉的异常时code就会执行,而且finally{}代码块始终都会执行

3、归并排序算法实现
import java.util.ArrayList;
import java.util.Iterator;

public class MergerSortor {
	
	public void sort(ArrayList<Integer> list){
		if(list == null) return;
		if(list.size() <= 1) return;
		
		ArrayList<Integer> l1 = new ArrayList<Integer>();
		ArrayList<Integer> l2 = new ArrayList<Integer>();
		Iterator<Integer> it = list.iterator();
		while(it.hasNext()){
			l1.add(it.next());
			if (it.hasNext()) l2.add(it.next());
		}
		sort(l1);
		sort(l2);
		// 归并
		list.clear();
		merger(list, l1, l2);
	}
	
	/**
	 * 将l1,l2归并到list中
	 * @param list
	 * @param l1
	 * @param l1
	 */
	private void merger(ArrayList<Integer> list, ArrayList<Integer> l1, ArrayList<Integer> l2){
		while (!l1.isEmpty() || !l2.isEmpty()) {
			if (l1.isEmpty()){
				list.add(l2.get(0));
				l2.remove(0);
			} else if (l2.isEmpty()) {
				list.add(l1.get(0));
				l1.remove(0);
			} else {
				Integer int1 = l1.get(0);
				Integer int2 = l2.get(0);
				if (int1 < int2) {
					list.add(int1);
					l1.remove(0);
				} else {
					list.add(int2);
					l2.remove(0);
				}
			}
		}
	}
	
	
	public static void main(String[] args){
		MergerSortor sortor = new MergerSortor();
		ArrayList<Integer> list = new ArrayList<Integer>();
		// 随机生成20个100内的整数
		int i = 20;
		while (i > 0) {
			int a = (int)Math.round(Math.random() * 100);
			list.add(a);
			i --;
		}
		
		System.out.println("排序前:" + list);
		sortor.sort(list);
		System.out.println("排序后:" + list);
	}
}

分享到:
评论

相关推荐

    超全的嵌入式工程师笔试面试题汇总.zip

    超全的嵌入式工程师笔试面试题汇总 单片机嵌入式应聘测试题(含答案).pdf 经典嵌入式面试题.pdf 嵌入式工程师笔试题带答案.pdf 嵌入式工程师经典面试题.pdf 嵌入式软件工程师笔试集锦.pdf 嵌入式软件工程师笔试题__...

    前端面试题汇总前端面试题汇总前端面试题汇总

    前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端...

    Redis面试题汇总.zip

    Redis面试题汇总.zipRedis面试题汇总.zipRedis面试题汇总.zipRedis面试题汇总.zipRedis面试题汇总.zipRedis面试题汇总.zipRedis面试题汇总.zipRedis面试题汇总.zipRedis面试题汇总.zipRedis面试题汇总.zipRedis面试...

    Vue面试题汇总.zip

    Vue面试题汇总.zipVue面试题汇总.zipVue面试题汇总.zipVue面试题汇总.zipVue面试题汇总.zipVue面试题汇总.zipVue面试题汇总.zipVue面试题汇总.zipVue面试题汇总.zipVue面试题汇总.zipVue面试题汇总.zipVue面试题汇总...

    java常见面试题汇总

    java常见面试题汇总 java常见面试题汇总 java常见面试题汇总 java常见面试题汇总 java常见面试题汇总 java常见面试题汇总 java常见面试题汇总 java常见面试题汇总 java常见面试题汇总 java常见面试题汇总 java常见...

    前端面试题汇总.pdf

    前端面试题汇总主要涵盖HTML和CSS相关的重要知识点,旨在考察面试者对于网页构建的基础知识、浏览器兼容性、页面性能优化以及SEO策略等的理解。以下是对这些面试题的详细解析: 1. **浏览器测试**:面试者应熟悉...

    mysql常见面试题汇总

    mysql常见面试题汇总,mysql常见面试题汇总 mysql常见面试题汇总,mysql常见面试题汇总 mysql常见面试题汇总,mysql常见面试题汇总 mysql常见面试题汇总,mysql常见面试题汇总 mysql常见面试题汇总,mysql常见面试题...

    web前端笔试题面试题汇总+前端优化总结

    web前端笔试题面试题汇总+前端优化总结 web前端笔试题面试题汇总+前端优化总结 web前端笔试题面试题汇总+前端优化总结 web前端笔试题面试题汇总+前端优化总结 web前端笔试题面试题汇总+前端优化总结 web前端笔试题...

    2021年最新版--Java+最常见的+200++面试题汇总+答案总结汇总.pdf

    为满足这一需求,市场上出现了大量针对Java开发者的面试准备资料,而“2021年最新版--Java+最常见的+200++面试题汇总+答案总结汇总.pdf”文档(以下简称“面试题汇总”)便是其中较为全面的一份。 首先,文档作者在...

    2018iOS面试题汇总

    ### 2018 iOS面试题汇总解析 #### 一、设计模式的理解及常见类型 设计模式是指在软件开发过程中,对于特定问题的一种普遍适用的解决方案。它代表着开发者们长期以来积累的经验教训,可以帮助我们更好地组织代码,...

    2021前端面试题.pdf

    前端面试题总结

    MySQL后端入门知识总结及面试题汇总.zip

    MySQL后端入门知识总结及面试题汇总.zipMySQL后端入门知识总结及面试题汇总.zipMySQL后端入门知识总结及面试题汇总.zipMySQL后端入门知识总结及面试题汇总.zipMySQL后端入门知识总结及面试题汇总.zipMySQL后端入门...

    嵌入式C语言面试题汇总(超经典).pdf

    我们在找嵌入式方面的工作时,让我们头疼的恐怕就是面试题了,因为我们摸不到企业的命题规律,也不知道该怎样去准备,今天将各大企业的面试题进行汇总,分享给大家,希望可以帮到各位小伙伴。加油哦!

    常见C++面试题汇总(最全c语言面试题)

    常见C++面试题汇总(最全c语言面试题) 所包含文件: 1、华为C++内部培训材料 2、130道面试题.doc 3、C++试题.htm 4、C-C++ 程序设计员应聘常见面试试题深入剖析.mht 5、C语言面试题大汇总之华为面试题.txt 6、C语言...

    asp.net面试题汇总

    asp.net面试题汇总

    2024最新网络安全面试题汇总(9份).zip

    2024最新网络安全面试题汇总,供大家学习参考,共9份。 【搞定网络协议】之网络安全面试题.docx 几率大的网络安全面试题(含答案).docx 网络安全、web安全、渗透测试之笔试总结(二).docx 网络安全、Web安全、...

    各大安全厂商网络安全面试题汇总(7份).zip

    各大安全厂商网络安全面试题汇总,共7份。适合找工作的安全同志。 360-几率大的网络安全面试题(含答案) 百度-搞定网络协议】之网络安全面试题 京东护网面试题总结+DD安全工程师笔试问题 渗透测试初级面试题 渗透...

    2023最新JAVA面试题集

    2023年最新版--Java+最常见的+200++面试题汇总+答案总结汇总 阿里百度美团面试题合集 大数据面试题 100道 多线程面试59题(含答案) 最新JAVA面试题总结之基础/框架/数据库/JavaWeb/Redis BIO,NIO,AIO,Netty面试题 ...

    阿里 面试题 总结

    阿里java后台开发面试题总结

Global site tag (gtag.js) - Google Analytics