package my.file;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
public class TravelAllFile {
public static void main(String[] args) {
String path = "E:/文件夹";
File f = new File(path);
if (f.isDirectory()) {
new TravelAllFile().getFileName(f);
}
delFolder("E:/文件夹");
System.out.println("deleted");
}
// 递归查找函数,参数为file对象
public void getFileName(File f) {
// File 数组
File[] files = f.listFiles();
for (int i = 0; i < files.length; i++) {
// 递归出子目录
if (files[i].isDirectory()) {
System.out.println("子目录是:" + files[i].getName());
getFileName(files[i]);
// 递归出子文件
} else {
System.out.println(files[i].getName());
}
}
}
//重命名
public void rename(){
File fl=new File("E:\\文件夹"); // 这里写上发替换的文件夹路径,注意使用双斜杠
String[] files=fl.list();
File f=null;
String filename="";
......
主要是利用Java提供的util包中的Properties类。废话不多说,直接看代码:
view plaincopy to clipboardprint?
import java.util.*;
public class YourJavaProperties {
public static void main(String args[]){
Properties props=System.getProperties();
System.out.println("Java的运行环境版本:"+props.getProperty("java.version"));
System.out.println("Java的运行环境供应商:"+props.getProperty("java.vendor"));
System.out.println("Java供应商的URL:"+props.getProperty("java.vendor.url"));
System.out.println("Java的安装路径:"+props.getProperty("java.home"));
System.out.println("Java的虚拟机规范版本:"+props.getProperty("java.vm.specification.version"));
System.out.println("Java的虚拟机规范供应商:"+props.getProperty("java.vm.specification.vendor"));
System.out.println("Java的虚拟机规范名称:"+props.getProperty(&qu ......
我这儿有一道JAVA的题·是英文的·简单的英文···我自己不太会·
In the Assignment One you are required to implement a command-line version of the
software. Your software will allow a manufacturer to create a list of required inventory
based on what is scheduled for production.
Project glossary:
• Product (or product item) – something that is produced by the manufacturer.
• Inventory item (or just inventory) – something that is requited for the manufacturing
of a particular product.
Task
1.Describe the manufacturer, e.g. name, address, main products,
clients, suppliers. Suggest ten (10) possible inventory items. Suggest two (2)
potential issues with the manufacturer’s supply chain and how they could be
improved.
2.Allow one product to be an inventory for another product.
3.Collect user input regarding how many items of each product are ......
在java中,每个对象都有两个池,锁(monitor)池和等待池
wait() ,notifyAll(),notify() 三个方法都是Object类中的方法.
锁池:假设线程A已经拥有了某个对象(注意:不是类)的锁,而其它的线程想要调用这个对象的某个synchronized方法(或者synchronized块),由于这些线程在进入对象的synchronized方法之前必须先获得该对象的锁的拥有权,但是该对象的锁目前正被线程A拥有,所以这些线程就进入了该对象的锁池中。
等待池:假设一个线程A调用了某个对象的wait()方法,线程A就会释放该对象的锁(因为wait()方法必须出现在synchronized中,这样自然在执行wait()方法之前线程A就已经拥有了该对象的锁),同时线程A就进入到了该对象的等待池中。如果另外的一个线程调用了相同对象的notifyAll()方法,那么处于该对象的等待池中的线程就会全部进入该对象的锁池中,准备争夺锁的拥有权。如果另外的一个线程调用了相同对象的notify()方法,那么仅仅有一个处于该对象的等待池中的线程(随机)会进入该对象的锁池.
下面通过一个例子来说明:
要求写两个线程,一个线程将某个对象的某个成员变量的值加1,而另外一个线程将这个成员变量的值减1.使得该变量的值始终处于[0,2].初始值为0.
package co ......
java中Arrays.sort使用了两种排序方法,快速排序和优化的合并排序。
快速排序主要是对哪些基本类型数据(int,short,long等)排序, 而合并排序用于对对象类型进行排序。
使用不同类型的排序算法主要是由于快速排序是不稳定的,而合并排序是稳定的。这里的稳定是指比较相等的数据在排序之后仍然按照排序之前的前后顺序排列。对于基本数据类型,稳定性没有意义,而对于对象类型,稳定性是比较重要的,因为对象相等的判断可能只是判断关键属性,最好保持相等对象的非关键属性的顺序与排序前一直;另外一个原因是由于合并排序相对而言比较次数比快速排序少,移动(对象引用的移动)次数比快速排序多,而对于对象来说,比较一般比移动耗时。
补充一点合并排序的时间复杂度是n*logn, 快速排序的平均时间复杂度也是n*logn,但是合并排序的需要额外的n个引用的空间 ......
对于开发新软件系统来说,面向对象编程无疑是当今使用最为广泛的编程模式。由于商业数据的持久性需求,关系数据库管理系统(RDBMS)取得了最为 广泛的应用。RDBMS 使用的是关系模型,它与软件系统中的域对象模型有所不同。使用面向对象编程语言开发软件系统并使用 RDBMS 来持久存储数据时,数据持久化框架将成为应用程序架构中非常关键和重要的组件,它们的作用是隐藏应用程序数据持久化的底层复杂性。
在过去的几年中,一些持久化框架得到了很好的发展,它们可帮助您管理对象关系映射和数据持久性需求。但是,根据需要选择一个合适的框架并不是一件简 单的任务,因为多种因素会影响到这个决定。在本文中,我将根据三个基本标准来讨论如何一些应用比较广泛的 Java 持久化框架中做出选择:选择、时机和优缺点。在“选择”这部分中,我将介绍如何选择框架;在“时机”这部分中,我将讨论一些您应该考虑应用框架的应用场景 以及一些您应该寻找备选方案的应用场景;最后,在“优缺点”这一部分中,我将讨论当您决定采用某个框架时,该框架所有的优势和缺点。首先要讨论的是下面这 个在 Java 持久化领域中最著名的框架。
Entity Enterprise Java B ......