Java基础_其他对象

本文深入介绍了Java中的几个核心类,包括System类的静态方法和属性、Runtime类的单例设计模式及其实例获取方式、Date类和SimpleDateFormat类用于日期时间的获取与格式化、Calendar类用于设置和操作日期时间、Math类提供的数学运算方法以及随机数生成方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

System

System类中的方法和属性都是静态的
out:是标准输出,默认是控制台
int:是标准输入,默认是键盘
描述系统的一些信息
获取系统属性信息:Properties getProperties();
因为Properties是HashTable的子类,也就是Map集合的一个子类对象,那么可以通过Map的方法取出该集合中的元素
该集合中存储的都是字符串,没有泛型定义

获取所有属性信息
Properties prop = System.getProperties();
for(Object obj : prop.keySet())
{
   String value = (String)prop.get(obj);
   System.out.println(obj+"::"+value);
}
获取指定属性信息
String value = System.getProperty("os.name"); //获取操作系统,可以判断支持的系统版本
如何在系统中自定义一些特有信息呢?
System.setProperty("myKey", "myValue");
可不可以在虚拟机启动时动态加载属性信息? 应用:tomacat服务器
java -Dhahaha=qqqq SystemDemo

Runtime

每个java程序都有一个Runtime类实例,是应用程序能够与其运行的环境相连接,可以通过getRuntime方法获取当前运行时(即当前运行的虚拟机)
该类并没有提供构造函数,说明不可以new对象,那么直接想到该类的方法都是静态的,发现该类中还有非静态方法,说明该类肯定提供了方法获取本类对象,而且该方法是静态的,返回值类型是本类类型,由这个特点可以看出该类使用了单例设计模式完成
该方法是static Runtime getRuntime();
Runtime r = Runtime.getRuntime();
Process p = r.exec("notepad.exe SystemDemo.java"); //exec()方法可以打开指定的应用程序,此例中可以用记事本打开指定的文本文件,注意Process是抽象类,无子类
Thread.sleep(4000);//让打开的线程停止4秒
p.destroy();//杀掉该进程

Date

主要用于获取当前的时间
import java.util.*; //导入Date类所属的包
import java.text.*; //导入SimpleDateFormat类所属的包
class DateDemo 
{
   public static void main(String[] args) 
  {
      Date d = new Date();
      System.out.println(d);//打印的时间看不懂,希望有些格式。

      //将模式封装到SimpleDateformat对象中。
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日E hh:mm:ss"); //注意模式中的字母不要写错,大小写区分

      //调用format方法让模式格式化指定Date对象。
      String time = sdf.format(d);

      System.out.println("time="+time);

      long l = System.currentTimeMillis();

      Date d1 = new Date(l);//传入毫秒值

      System.out.println("d1:"+d1);

      //只取年份
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
     //或者用getYear()
   }
}

Calendar

主要用于设置时间
首先通过getInstance方法获取日历的实例对象
字段值都是静态的,需要用类名来访问:Calendar.DAY_OF_MONTH
class  CalendarDemo2
{
	public static void main(String[] args) 
	{
		Calendar c = Calendar.getInstance();
		//c.set(2012,2,23);//设置年月日,注意中间的2代表的是三月
		c.add(Calendar.DAY_OF_MONTH,-18); //往前推18天
		printCalendar(c);
	}

	public static void printCalendar(Calendar c) //查表法友好显示获取的日历数据,因为月份和星期的数字均是中文的
	{
		String[] mons = {"一月","二月","三月","四月"
				,"五月","六月","七月","八月"
				,"九月","十月","十一月","十二月"};
		String[] weeks = {
				"","星期日","星期一","星期二","星期三","星期四","星期五","星期六",
		}; 
		int index = c.get(Calendar.MONTH);

		int index1 = c.get(Calendar.DAY_OF_WEEK);

		sop(c.get(Calendar.YEAR)+"年");
		//sop((c.get(Calendar.MONTH)+1)+"月");
		sop(mons[index]);
		sop(c.get(Calendar.DAY_OF_MONTH)+"日");
		//sop("星期"+c.get(Calendar.DAY_OF_WEEK));
		sop(weeks[index1]);
	}
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}

Math

变量和方法都是静态的

ceil、floor、round、pow方法

返回int double long都可以
Math.ceil(16.34);// d为17.0,ceil方法返回大于指定数据的最小整数
floor返回小于指定数的最大整数
round:四舍五入
pow:幂数运算

random方法

random:返回带正号的double值,一个大于等于0且小于1的随机数
(int)(Math.random()*10+1)生成一个1到10的随机整数,包括1和10

Random类

也可以用Random类
new Random();
nextInt() //返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。nextInt 的常规协定是,伪随机地生成并返回一个int 值。所有 232 个可能int 值的生成概率(大致)相同
nextInt(num)//返回下一个0到指定值num(不包括)之间的随机数,省去了强转过程,更加方便
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值