主函数例子
一个程序就是一个JVM实例
//------获取资源文件中内容,并处理占位符
Locale zhLocale=new Locale("zh","CN");
Locale enLocale=new Locale("en","US");
Locale frLocale=new Locale("fr","FR");
ResourceBundle zhRS=ResourceBundle.getBundle("Message",zhLocale);
ResourceBundle usRS=ResourceBundle.getBundle("Message",enLocale);
ResourceBundle frRS=ResourceBundle.getBundle("Message",frLocale);
//处理占位符,MessageFormat.format设置动态文本内容
System.out.println(MessageFormat.format(zhRS.getString("info"),"福瑞斯") );
System.out.println(MessageFormat.format(usRS.getString("info"),"frace"));
System.out.println(frRS.getString("info"));
//------获取资源文件中内容
下面添加即可资源文件和主函数类要放在默认的同一个文件夹下。
或将属性文件存放在新文件夹,然后将 新文件夹加入路径中,运行就可以了。 idea加入类路径的方法:项目右键--》Open Module Settings---》把新文件夹添加到resource里面。
// ResourceBundle resourceBundle=ResourceBundle.getBundle("Message");
// System.out.println(resourceBundle.getString("info"));
//------程序控制进程
直接控制Process可以进行系统进程的控制。
// Runtime run = Runtime.getRuntime();
// Process pro = null;
// try{
// pro=run.exec("C:/windows/system32/notepad.exe");
// }catch(IOException e){
// e.printStackTrace();
// }
// try{
// Thread.sleep(5000);
// }catch(InterruptedException e){
// e.printStackTrace();
// }
// pro.destroy();//销毁进程
//------runtime类的实践
Runtime类表示运行时操作类,是一个封装了JVM进程的类,每一个JVM都对应一个Runtime类的实例。
// Runtime run=Runtime.getRuntime();
// System.out.println("JVM最大的内存量:"+run.maxMemory());
// System.out.println("未进行操作前,JVM空闲的内存量:"+run.freeMemory());
// String string="Hello JVM";
// for (int i = 0; i < 1000; i++) {
// string+=i;
// }
// System.out.println("循环修改字符串产生垃圾,JVM空闲的内存量:"+run.freeMemory());//得出多次修改才会产生新垃圾,几次修改并不会产生新垃圾
// String str = "30";
// String str2 = str + ".3";
// System.out.println(str2);
// int i = Integer.parseInt(str);
// float f = Float.parseFloat(str2);
// System.out.println(" * = " + (i * i));
// System.out.println(" * = " + (f * f));
// System.out.println("计算,JVM空闲的内存量:"+run.freeMemory());//得出本次计算操作并不占用内存
// run.gc();
// System.out.println("垃圾回收后的,JVM空闲的内存量:"+run.freeMemory());
//四个线程、两加两减
//new Thread(new MyRunnable(),"add1").start();
// new Thread(new MyRunnable(),"add2").start();
// new Thread(new MyRunnable(),"sub1").start();
// new Thread(new MyRunnable(),"sub2").start();
// long l=200000000;
// System.out.println(l);
//----动态给二维数组赋值
// int[][] a=new int[3][];
// a[0]=new int[3];
// a[1]=new int[5];
// a[2]=new int[6];
//-----去掉0组成新数组
// int a[] ={1,3,5,2,4,0,2,0,3,4,0,53,5,0};
// int zero=0;
// for (int i:
// a) {
// if(i==0) zero++;
// }
// int newLength=a.length-zero;
// int[] newA=new int[newLength];
// for (int i = a.length-1; i >= 0; i--) {
// if (a[i]!=0) newA[--newLength]=a[i];
// }
// for (int i:
// newA) {
// System.out.print(i+",");
// }
//-----简单的登录
// if (args.length!=2){
// System.out.println("输入参数格式不对");
// System.exit(1);
// }
// String name=args[0];
// String pwd=args[1];
// if (name.equals("frace")&&pwd.equals("1234")){
// System.out.println("欢迎frace");
// }else {
// System.out.println("密码或用户名错误。");
// }
// new Student().fun();//P180 举例不好
//----包装类
// String str="30";
// String str2=str+".3";
// System.out.println(str2);
// int i=Integer.parseInt(str);
// float f=Float.parseFloat(str2);
// System.out.println(" * = "+(i*i));
// System.out.println(" * = "+(f*f));
//-----运行runnable
// MyRunnable myRunnable=new MyRunnable("Thread A");
// MyRunnable myRunnableB=new MyRunnable("Thread B");
// Thread t1=new Thread(myRunnable);
// Thread t2=new Thread(myRunnableB);
// t1.start();
// t2.start();
//-----Thread无法实现资源共享
// MyThread t1=new MyThread();
// MyThread t2=new MyThread();
// MyThread t3=new MyThread();
// t1.run();
// t1.run();
// t2.run();
// t3.run();
//------Runnable可以实现资源共享
// MyRunnable run1=new MyRunnable();
// new Thread(run1).run();
// new Thread(run1).run();
// new Thread(run1).start();
//-----试验join方法
// MyRunnable myRunnable=new MyRunnable();
// Thread t=new Thread(myRunnable,"线程A");
// t.start();
// for (int i = 0; i < 30; i++) {
// if(i>10){
// try {
// t.join();//在大于10时,先执行子线程,子线程执行结束才会继续执行main
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
// }
// System.out.println("main运行----"+i);
// }
//----interrupt
// Thread t2=new Thread(myRunnable,"线程B");
// t.start();
// t2.start();
// try {
// System.out.println("1、休眠开始前---main");
// Thread.sleep(2000);
// System.out.println("2、休眠结束---main");
// } catch (InterruptedException e) {
//// e.printStackTrace();
// System.out.println("3、休眠被终止---main");
// }
// t.interrupt();
// System.out.println("4、线程被interrupt---main");
//----后台线程
// t.setDaemon(true);
// t.start();//虽然run方法是死循环但是程序依然可以结束。死循环变成了后台运行。
//----线程礼让
// t.start();
// t2.start();
// RunnableWithParameter runWithParaA=new RunnableWithParameter("线程A",1000);
// RunnableWithParameter runWithParaB=new RunnableWithParameter("线程B",2000);
// RunnableWithParameter runWithParaC=new RunnableWithParameter("线程C",3000);
// new Thread(runWithParaA).start();
// new Thread(runWithParaB).start();
// new Thread(runWithParaC).start();
// new ThreadWithPara("线程A",1000).start();
// new ThreadWithPara("线程B",1000).start();
// new ThreadWithPara("线程C",1000).run();
//线程同步
// Thread t3=new Thread(myRunnable,"线程C");
// t.start();
// t2.start();
// t3.start();