Y450的Linux之路【01-1】——安装系统、显卡(安装第一天,持续更新)
2014-10-23 14:45
357 查看
1、用递归复制文件目录
2、try{}语句块有return语句,在try{}后面有finally{}code,该code是否会执行,什么情况下执行?
我们先看个例子吧
运行的结果为
从中可以看出,code还是有可能被执行的,当try中捕捉的异常时code就会执行,而且finally{}代码块始终都会执行
3、归并排序算法实现
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); } }
相关文章推荐
- linux系统必备软件安装(持续更新)
- Ubuntu Linux系统下安装NVIDIA显卡驱动
- vmware 下安装学习linux(持续更新)
- VMware虚拟机安装Linux英文改中文系统并更新yum安装输入法
- Linux学习-01-安装虚拟机与linux系统
- RedHat / Centos Linux 系统运维与管理实践技巧荟萃,持续更新
- 主流显卡Linux系统驱动安装--nVidia篇(图)
- LINUX入门基础——第一天LINUX系统安装
- LINUX中各种与系统有关配置文件(持续更新)
- 菜鸟的进击之路(一)-------linux系统centos的安装
- Linux 下 AVI 视频播放 软件 MPlayer 的安装. 请注意系统显卡驱动的安装。 3ff8
- Linux常用系统查看命令(持续更新)
- Linux安装后更新系统
- 运维自动化01-批量安装linux系统
- 主流显卡Linux系统驱动安装--nVidia篇
- linux 系统相关的一些小知识点(持续更新)
- Linux系统下主流显卡驱动安装
- Linux常用系统查看命令(持续更新)
- 第一天,linux系统的安装
- 【snmp+ssh+linux】实现自动化运维与监控系统--持续更新中