StringBuffer、System、Runtime 、日期、Math 、 random ——Java(一)

1. StringBuffer 类


/*
 *  StringBuffer 是一个存储字符的容器
 *  StringBuffer 底层是依赖了一个字符数组才能存储字符数据的。该字符串数组默认的初始容量式16,如果字符数组的长度不够使用,自动增加1倍。
 *  
 *  容器的具备行为
 *  
 *  增加:   append(boolean b)   任意类型的数据
 *        insert(int offset, char c) 
 * 
 * 
 *  删除     delete(int start, int end) 
 *       deleteCharAt(int index) 
 * 
 * 
 *  修改  :   reverse() 
 *         replace(int start, int end, String str)  
 *         setCharAt(int index, char ch)
 *   
 *  查看   capacity() 
 * 
 *                 StringBuilder 线程不太安全,但是推荐
 * 
 * 
 * */

public class test_1{
	   public static void main(String args[]){
	    
		// 先使用StringBuffer 的构造函数创建一个字符串缓冲类
		   
		   StringBuffer sb = new StringBuffer();
		   sb.append("abc");
		   
		   
		   sb.insert(2, "xiaoming");
		   
		   sb.reverse();
		   
		   System.out.println("huanchong:  " +  sb);
		   
	   }
	}

2. System 类

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Properties;
/*
 *    在 System 类提供的设施中,有标准输入、标准输出和错误输出流;
 *    对外部定义的属性和环境变量的访问;加载文件和库的方法;
 *    还有快速复制数组的一部分的实用方法。
 * 
 * arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 
 *     从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
 * 
 *    currentTimeMillis()   返回以毫秒为单位的当前时间。
 *  
 *    exit(int status)  终止当前正在运行的 Java 虚拟机
 *     非 0 的状态码表示异常终止。   
 *     在 try 里面  System.exit(0);   // jvm 退出
 *     在catch 里面 System.exit(1); 
 * * 
 *    gc()  建议 JVM 运行垃圾回收器。
 *    finalize()   如果一个对象被垃圾回收器回收的时候,会先调用对象 finalize()方法
 * 
 *    getenv(String name)   根据环境变量的名字,获取指定的环境变量值
 * 
 *   getProperties(key) 
 *    确定当前的系统属性。
 * 
 *   currentTimeMillis()   获取当前系统  返回以毫秒为单位的当前时间 * 
 * */

    class Person{ 	
    	String name;
		/*
		 *     快捷键  shift+alt+s
		 * 然后选择Generate Constructors from Superclass
		 * 或者Generate Constructors using Fields,
		 * 分别构造空参和带参数的构造函数
		 * */
		public Person(String name) {			
			this.name = name;
		}
 
		@Override
    	protected void finalize() throws Throwable {	
    	super.finalize();
    	System.out.println(this.name + " 被回收了");
    	}    		
    }

public class test_1{
	   public static void main(String args[]){
	      
		int[] srcArr = {10,12,14,16,19};
		int[] destArr = new int[4];
		
		System.arraycopy(srcArr, 2, destArr, 1, 2);
		
		//  System.exit(0);  //jvm 退出
		
		System.out.println("目标数组的元素:  " + Arrays.toString(destArr));
		System.out.println("环境变量: " + System.getenv("JAVA_HOME"));
		
		Properties   prop= System.getProperties();
		prop.list(System.out);	 
		
		String value = System.getProperty("os.name");
		System.out.println("当前系统 " + value);
		
		for(int i=0; i<4; i++) {
			
			new Person("fzx " +i);
			System.gc();
		}		
	   }
	}

3.  Runtime 

import java.io.IOException;
/*
 *  类   Runtime   该类主要代表了应用程序的环境
 *  
 *  每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。
 *  可以通过 getRuntime 方法获取当前运行时。 
 *  
 *  应用程序不能创建自己的 Runtime 类实例。 
 *  
 *   exec(String command)   在单独的进程中执行指定的字符串命令。
 * 
 *   freeMemory()   返回 Java 虚拟机中的空闲内存量,是以字节为单位
 * 
 *   maxMemory()   返回 Java 虚拟机试图使用的最大内存量。
 * 
 *   totalMemory()  返回 Java 虚拟机中的内存总量 * 
 * */
public class test_1{
	   public static void main(String args[]) throws Exception{

	  Runtime timet =Runtime.getRuntime();   
	  
	//  Process process = timet.exec("G:\\java\\Runtime类.exe");   
	//  Thread.sleep(3000); //让当前程序停止3秒
	//  process.destroy();
		 System.out.println("空闲内存量  " + timet.freeMemory() );  
		 System.out.println("试图使用的最大内存量  " + timet.maxMemory()); 		 
		 System.out.println("虚拟机中的内存总量  " + timet.totalMemory());		 
	   }
	}

运行结果: 

空闲内存量  265832912
试图使用的最大内存量  4273995776
虚拟机中的内存总量  268435456

4.  日期

import java.text.Format;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Year;
import java.util.Calendar;
import java.util.Date;
/*
 * 类 Date   java.util.Date
 * 
 *  Calendar 类  ,但是构造函数是 protected  不能直接创建对象 
 *   因此 class 之后要 extends Calendar
 *  
 *   如果不继承class 不继承这个类, 则需 用静态方法获取这个类
 *    Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。
 *    Calendar 的 getInstance 方法返回一个 Calendar 对象,
 *    其日历字段已由当前日期和时间初始化: 
 * 
 *   日期格式化类  SimpleDateFormat  
 *    作用1: 可以把日期转换成指定格式的字符串   format(Date date, StringBuffer toAppendTo, FieldPosition pos) 
 *      将给定的 Date 格式化为日期/时间字符串,并将结果添加到给定的 StringBuffer
 *    作用2:  parse(String text, ParsePosition pos)  
 *         解析字符串的文本,生成 Date。
 * */
public class test_1{
	   public static void main(String args[]) throws Exception {

// 	 Date date = new Date(); 
		Calendar calendar = Calendar.getInstance(); // 使用默认时区和语言环境获得一个日历。
		
		System.out.println("年 : " + calendar.get(calendar.YEAR));
		System.out.println("月 : " + (calendar.get(calendar.MONTH)+1));   
		System.out.println("日 : " + calendar.get(calendar.DATE));   
		   
		System.out.println("时 : " + calendar.get(calendar.HOUR_OF_DAY));
		System.out.println("分 : " + calendar.get(calendar.MINUTE));   
		System.out.println("秒 : " + calendar.get(calendar.SECOND));   
			
		Date date = new Date();
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
		String time = dateFormat.format(date);
		System.out.println("当前系统时间   " + time);
		
		 String birthday = "1995年10月29日  06:06:06";  // 这个字符串需要和SimpleDateFormat格式一致
		 Date date2 = dateFormat.parse(birthday);	
		 System.out.println("fzx的阴历生日是: " + date2);		 
	   }
	}

运行结果:

年 : 2018
月 : 4
日 : 28
时 : 22
分 : 18
秒 : 41
当前系统时间   2018年04月28日 22:18:41
fzx的阴历生日是: Sun Oct 29 06:06:06 CST 1995

5.  Math 类 和 random 类,验证码

import java.util.Random;
/*
 *  Math 数学类 
 *   abs()   绝对值
 *   ceil(double a)   向上取整
 *   floor(double a)  向下取整
 *   round(float a)  返回最接近参数的 int。    四舍五入
 *   random()返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
 *       返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。
 * 
 *   随机数类  Random
 * */
public class test_1{
	   public static void main(String args[])  {

         Random  random = new Random();
         int rand = random.nextInt(10);
		 System.out.println("随机数:  " + rand);  // 产生的随机数在 0--10之间
		   
		 char[]  arr = {'付', '祖', '贤', '女', '侠', '博', '客'};
		 StringBuilder hh = new StringBuilder();  
		  for(int i =0; i<4; i++) {
			  
			 int index = random.nextInt(arr.length); 
			  hh.append(arr[index]);  
		  } 		   
		 System.out.println("验证码: " + hh);  
	   }
	}
运行结果: 
随机数:  7
验证码: 贤贤客侠


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值