黑马程序员—Java API(System类、Runtime类、Math类、Date类)

本文详细介绍了Java中的几个核心类,包括System类的功能如标准输入输出、时间操作等,Runtime类的单例设计模式及方法使用,Math类提供的数学运算方法,Date类用于日期和毫秒值之间的转换以及SimpleDateFormat类在日期格式化方面的应用。

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

------- android培训java培训、期待与您交流! ----------

 

System:类中的属性和方法都是静态的。
 *  out:标准输出,默认是控制台。
 *  in:标准输入。默认是键盘。

 *long currentTimeMillis(); //返回当前时间毫秒值

*exit(); // 退出虚拟机

 *  获取系统属性信息。static Properties getProperties()  确定当前的系统属性。

并将这些信息存储到Properties集合中。

 

代码示例:
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import static java.lang.System.*;

public class SystemDemo
{
	public static void main(String[] args)
	{
		//因为Properties是HashTable的子类,也就是Map集合的子类对象,可以通过Map的方法取出集合中的元素。
		//该集合中存储的都是字符串。没有泛型定义。
		Properties prop = System.getProperties();
		
		//如何在系统中定义一些特有信息呢?
		System.setProperty("MyKey", "MyValue");
		
		
		//获取系统所有的信息。
		for (Object obj : prop.keySet())
			sop(obj+"--"+prop.get(obj));

		//获取指定的系统信息。
		String info = System.getProperty("os.name");
		sop("os.name:"+info);
		
		//可不可以在jvm启动时,动态加载一些属性信息呢?
		String s = System.getProperty("itheima");
		sop(s);//可以在cmd命令窗口使用java命令格式为: (java -D 键名=值名 要运行的类)。
	}
	
	//打印功能
	public static void sop(Object obj)
	{
		out.println(obj);
	}
}

System.setProperty("myname","毕老师"); //给系统属性信息集添加具体的属性信息

//临时设置方式:运行jvm时,可以通过jvm的参数进行系统属性的临时设置,可以在java命令的后面加入–D<name>=<value> 用法:java –Dmyname=小明类名。

 

String name =System.getProperty("os.name");//获取指定属性的信息

 

//想要知道该系统是否是该软件所支持的系统中的一个。

Set<String> hs = new HashSet<String>();

hs.add("Windows XP");

hs.add("Windows 7");

if(hs.contains(name))

   System.out.println("可以支持");

else

   System.out.println("不支持");

 

Runtime类:
 *  该类中并没有提供构造函数,说明不可以new对象。会让人直接想到该类的方法都是静态的。
 *  发现该类中有非静态方法。说明该类肯定会提供方法获取本类对象,而且该方法是静态的,并且返回值类型是本类类型。
 *
 *  该方法是static Runtime getRuntime(); 返回与当前 Java 应用程序相关的运行时对象。
 *
 *  由这个特点可以看出该类使用了单例设计模式完成。

代码示例:

public class RuntimeDemo
{
	public static void main(String[] args) throws Exception
	{
		Runtime r = Runtime.getRuntime();
		//在单独的进程中执行指定的字符串命令,打开QQ
//		Process pro = r.exec("C:\\Program Files\\Tencent\\QQ\\QQProtect\\Bin\\QQProtect.exe");
//		//进程停留10秒钟
//		Thread.sleep(10000);
//		//杀掉子进程
//		pro.destroy();
		
		r.exec("notepad.exe D:\\java\\javaheima\\day18\\src\\day18\\SystemDemo.java");
	}
}

 

 

Math类:

     用于数学运算的工具类,属性和行为都是静态的。该类是final不允许继承。

    static double ceil(double a) ; //返回大于指定数值的最小整数

   static double floor(double a) ; //返回小于指定数值的最大整数

   static long round(double a) ; //四舍五入成整数

   static double pow(double a, double b) ; //ab次幂

   static double random(); //返回0~1的伪随机数

代码示例:

import java.util.Random;

public class MathDemo
{
	public static void main(String[] args)
	{
		sop(Math.E);
		sop(Math.PI);
		sop(Math.abs(-9));
		
		double d = Math.ceil(-5.33);//ceil方法的特征,返回大于指定参数的最小整数。
		sop(d);
		
		double d2 = Math.floor(-5.2);//和floor方法相反,返回小于指定参数的最大整数。
		sop(d2);
		
		double d3 = Math.round(5.5);//round方法返回最接近参数的整数,四舍五入。
		sop(d3);
		
		double d4 = Math.pow(3, 2);//pow方法,返回3的2次方的值。
		sop(d4);
		
		for (int i = 0; i < 20; i++)
		{
			int d5 = (int) (Math.random() * 10 + 1);//random方法返回带正号的 double 随机数值,该值大于等于 0.0 且小于 1.0
			sop(d5);
		}
		
		Random r = new Random();//创建Random类的对象。使用它的nextInt方法可以获取随机整数。
		for (int i = 0; i < 10; i++)
		{
			int result = r.nextInt(10)+1;//public int nextInt(int n) 参数必须为正数,0(包括)和 n(不包括)之间均匀分布的 int 值。
			sop(result);
		}
	}
	//打印功能
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}


 

 

Date类:

日期对象和毫秒值之间的转换。

      1,日期对象转成毫秒值。Date类中的getTime方法。

      2,如何将获取到的毫秒值转成具体的日期呢?

            Date类中的setTime方法。也可以通过构造函数。

 

//日期对象转成毫秒值

            Date d = new Date();

            long time1 = d.getTime();

            long time2 = System.currentTimeMillis(); //毫秒值。

           

            //毫秒值转成具体的日期

            long time = 1322709921312l;

            Date d = new Date();

            d.setTime(time);

 

 

      将日期字符串转换成日期对象:使用的就是DateFormat方法中的  Dateparse(String source)

      */

      publicstatic void method() throws Exception {

            String str_time = "2011/10/25";

            DateFormat df = newSimpleDateFormat("yyyy/MM/dd"); //SimpleDateFormat作为可以指定用户自定义的格式来完成格式化。

            Date d = df.parse(str_time);

 

 

如果不需要使用特定的格式化风格,完全可以使用DateFormat类中的静态工厂方法获取具体的已经封装好风格的对象。getDateInstance();getDateTimeInstance();

      */

            Date d = new Date();

            DateFormat df =DateFormat.getDateInstance(DateFormat.LONG);

            df =DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);

            String str_time = df.format(d);

 

      //将日期对象转换成字符串的方式:DateFormat类中的format方法。

          //创建日期格式对象。

            DateFormat df = new SimpleDateFormat(); //该对象的建立内部会封装一个默认的日期格式。11-12-1下午1:48

            //如果想要自定义日期格式的话。可使用SimpleDateFormat的构造函数。将具体的格式作为参数传入到构造函数中。如何表示日期中年的部分呢?可以必须要参与格式对象文档。

            df = new SimpleDateFormat("yyyyMMdd HH:mm:ss");

            //调用DateFormat中的format方法。对已有的日期对象进行格式化。

            String str_time = df.format(d);

 

      }

代码示例:

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateDemo
{
	public static void main(String[] args)
	{
		//创建Date对象
		Date d = new Date();//打印出来的时间没有比较人性化的格式。
		sop(d);
		
		//将时间模式封装到SimpleDateFormat对象中。
		SimpleDateFormat sd = new SimpleDateFormat("yyyy年-MM月-dd日-E-HH点-mm分-ss秒");
		//调用Format方法,让模式格式化指定的Date对象。
		String time = sd.format(d);
		sop(time);
	}
	
	//打印功能
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}


 

------- android培训java培训、期待与您交流! ----------
内容概要:本文针对火电厂参与直购交易挤占风电上网空间的问题,提出了一种风火打捆参与大用户直购交易的新模式。通过分析可再生能源配额机制下的双边博弈关系,建立了基于动态非合作博弈理论的博弈模型,以直购电价和直购电量为决策变量,实现双方收益均衡最大化。论文论证了纳什均衡的存在性,并提出了基于纳什谈判法的风-火利益分配方法。算例结果表明,该模式能够增加各方收益、促进风电消纳并提高电网灵活性。文中详细介绍了模型构建、成本计算和博弈均衡的实现过程,并通过Python代码复现了模型,包括参数定义、收益函数、纳什均衡求解、利益分配及可视化分析等功能。 适合人群:电力系统研究人员、能源政策制定者、从事电力市场交易的工程师和分析师。 使用场景及目标:①帮助理解风火打捆参与大用户直购交易的博弈机制;②为电力市场设计提供理论依据和技术支持;③评估不同政策(如可再生能源配额)对电力市场的影响;④通过代码实现和可视化工具辅助教学和研究。 其他说明:该研究不仅提供了理论分析,还通过详细的代码实现和算例验证了模型的有效性,为实际应用提供了参考。此外,论文还探讨了不同场景下的敏感性分析,如证书价格、风电比例等对市场结果的影响,进一步丰富了研究内容。
资源下载链接为: https://pan.quark.cn/s/d37d4dbee12c A:计算机视觉,作为人工智能领域的关键分支,致力于赋予计算机系统 “看懂” 世界的能力,从图像、视频等视觉数据中提取有用信息并据此决策。 其发展历程颇为漫长。早期图像处理技术为其奠基,后续逐步探索三维信息提取,与人工智能结合,又经历数学理论深化、机器学习兴起,直至当下深度学习引领浪潮。如今,图像生成和合成技术不断发展,让计算机视觉更深入人们的日常生活。 计算机视觉综合了图像处理、机器学习、模式识别和深度学习等技术。深度学习兴起后,卷积神经网络成为核心工具,能自动提炼复杂图像特征。它的工作流程,首先是图像获取,用相机等设备捕获视觉信息并数字化;接着进行预处理,通过滤波、去噪等操作提升图像质量;然后进入关键的特征提取和描述环节,提炼图像关键信息;之后利用这些信息训练模型,学习视觉模式和规律;最终用于模式识别、分、对象检测等实际应用。 在实际应用中,计算机视觉用途极为广泛。在安防领域,能进行人脸识别、目标跟踪,保障公共安全;在自动驾驶领域,帮助车辆识别道路、行人、交通标志,实现安全行驶;在医疗领域,辅助医生分析医学影像,进行疾病诊断;在工业领域,用于产品质量检测、机器人操作引导等。 不过,计算机视觉发展也面临挑战。比如图像生成技术带来深度伪造风险,虚假图像和视频可能误导大众、扰乱秩序。为此,各界积极研究检测技术,以应对这一问题。随着技术持续进步,计算机视觉有望在更多领域发挥更大作用,进一步改变人们的生活和工作方式 。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值