Java类库2


这里简单介绍Java类库中的System类,数据类型累,Cloneable类接口,Arrays类,Date类,Calendar类,Scanner类。

1,System类。

包含很多静态方法和变量,可以获取系统属性,以及包含标准输入输出。

示例1:

这个示例中分别使用两种计算方法来计算百元百鸡问题,然后使用System类中的方法获取当前时间,从而得到算法的运算时间。

我们也可以通过System类来访问系统属性。

public class Example02 {

	/**
	 * 类库练习
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//百元买百鸡
		//小鸡0.5,公鸡2.母鸡3;
		long time1,time2;
		time1=System.currentTimeMillis();
		System.out.println(1/2);
		System.out.println(1.0/2);
		int father,mother,child;
		for(father =0;father<=50;father++)
		{
			for(mother = 0;mother<34;mother++)
			{
				for(child = 0;child<=200;child++)
				{
					if(2*father+3*mother+(1.0/2)*child==100&&father+mother+child==100)
					{
						System.out.println("公鸡:"+father+"   母鸡:"+mother+"   小鸡:"+child);
					}
				}
			}
		}
		time2 = System.currentTimeMillis();   //用于获取当时时间
		System.out.println("第一种方法的计算时长为:"+(time2-time1));
		time1 = System.currentTimeMillis();
		for(father =0;father<=50;father++)
		{
			for(mother = 0;mother<34;mother++)
			{
				if(100-father-mother>=0&&(100-father-mother)*0.5+2*father+3*mother==100)
				{
					System.out.println("公鸡:"+father+"   母鸡:"+mother+"   小鸡:"+(100-father-mother));
				}
			}
		}
		time2 = System.currentTimeMillis();
		System.out.println("第一种方法的计算时长为:"+(time2-time1));
		System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
		System.out.println(System.getProperty("java.vm.version"));  //JVM版本
		System.out.println(System.getProperty("java.home"));        //Java目录
		System.out.println(System.getProperty("java.vendor.url"));  //JRE生产真的URL
		System.out.println(System.getProperty("os.home"));          //系统目录
		System.out.println(System.getProperty("os.arch"));          //OS架构
		System.out.println(System.getProperty("user.name"));        //用户名
		System.out.println(System.getProperty("user.dir"));         //用户当前目录
		System.out.println(System.getProperty("user.home"));        //用户的主目录
		
	}

}
在System类中我们也可以使用public static void exit(int status)方法来终止当前正在运行的Java虚拟机,结束运行。 status为退出状态,一般为0,表示正常退出。

示例2:

public class Example02 {

	/**
	 * 类库练习
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stu
		int integer1,integer2;
		integer1=4;
		integer2=6;
		System.out.println("two integers already inpput:");
		if(integer2==6)
		{
			System.exit(0);
		}
		System.out.println("the sum of integer1 and integer2:");
		System.out.println(integer1+integer2);
		
	}

}
在示例中,执行到System.exit(0)的时候Java虚拟机停止运行,后面的代码可以看作“无效”.

2.数据类型类。

Java中提供了各种数据类型,对各种数据类的值进行包装。其中较为重要的一个就是数值型和字符串类型之间的相互转换。

示例3:

public class Example02 {
	/**
	 * 类库练习
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int i = 123;
		String str;
		str = Integer.toString(i);
		System.out.println("转换String类型为:"+str+"   长度为:"+str.length());
		i = Integer.parseInt(str);
		System.out.println("再次转换为数字为:"+i);		
	}
}
其他类型诸如boolean类型、double类型都可以和字符串相互转换。

3.Cloneable接口

Cloneable接口实现了对象的复制,实现该接口后就可以直接利用Object.clone()方法复制对象。

示例4:

public class Example02 {
	/**
	 * 类库练习
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StudentInfo stu1,stu2;
		stu1=new StudentInfo("张三",18,201211009);
		System.out.println("第一个学生的信息:");
		System.out.println(stu1.name);
		System.out.println(stu1.age);
		System.out.println(stu1.number);
		stu2=(StudentInfo)stu1.clone();
		System.out.println("第二个学生的信息是:");
		System.out.println(stu2.name);
		System.out.println(stu2.age);
		System.out.println(stu2.number);		
	}
}
class StudentInfo implements Cloneable    //学生信息类
{
	public String name;
	public int age;
	public int number;
	public StudentInfo(String name,int age,int number)
	{
		this.name=name;
		this.age=age;
		this.number=number;
	}
	public Object clone()
	{
		StudentInfo s=null;
		try{
			s=(StudentInfo)super.clone();
		}catch(CloneNotSupportedException e)
		{}
		return s;
	}
}
4.Arrays类

Arrays类包含用来操作数组的各种方法,例如排序,查找等。

示例5:

public class Example02 {
	/**
	 * 数组的排序和搜索
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int array[]=new int [10];
		for(int j =0;j<=9;j++)
		{
			array[j]=(int)(Math.random()*100)+1;
			System.out.println(array[j]);
		}
		Arrays.sort(array);
		for(int j =0;j<=9;j++)
		{
			System.out.println(array[j]);
		}
		System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
		int arr[]={12,22,43,44,9,80,76,18,90,10};
		int pos;
		Arrays.sort(arr);
		pos=Arrays.binarySearch(arr,22);
		System.out.println("排序之后22的位置:"+pos);		
	}
}
5.Date类

该类的功能和方法主要是生成时间对象并访问时间值。

示例6:

import java.util.*;
public class Example03 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Date mydate=new Date();
		System.out.println("当前时间为:"+mydate);
		mydate.setTime(100000000L);  //表示100000000毫秒后的时间
		System.out.println("100000000L后的时间为:"+mydate);
	}
}
6.Calendar类

该类是一个抽象类,他提供了关于日历日期的多种算法。

示例7:

import java.util.*;
public class Example03 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Calendar mycal=Calendar.getInstance();
		mycal.setTime(new Date());
		String year=String.valueOf(mycal.get(Calendar.YEAR));//分别获取当前年份,月份,日期,时间
		String month=String.valueOf(mycal.get(Calendar.MONTH)+1);
		String day=String.valueOf(mycal.get(Calendar.DAY_OF_MONTH));
		String week=String.valueOf(mycal.get(Calendar.DAY_OF_WEEK)-1);
		int hour=mycal.get(Calendar.HOUR_OF_DAY);
		int minute=mycal.get(Calendar.MINUTE);
		int second=mycal.get(Calendar.SECOND);
		System.out.println("当前日期:");
		System.out.println(year+"年"+month+"月"+day+"日");
		System.out.println("当前时间:");
		System.out.println(hour+"时"+minute+"分"+second+"秒");
		long mytime1=mycal.getTimeInMillis();
		mycal.set(2020, 0, 0);
		long mytime2=mycal.getTimeInMillis();
		long distence=(mytime2-mytime1)/(1000*60*60*24);
		System.out.println("距离2020年1月1日还有:"+distence+"天");
	}
}
7.Scanner类

Scanner类有很多方法,嘴常用的就是数据输入的方法。

示例8:

import java.util.*;
public class Example03 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan=new Scanner(System.in);
		String  str=scan.nextLine();
		int number1=scan.nextInt();
		int number2=scan.nextInt();
		double number3=scan.nextDouble();
		System.out.println("字符串是:"+str);
		System.out.println("第一个数是:"+number1);
		System.out.println("第二个数是:"+number2);
		System.out.println("第三个数是:"+number3);
	}
}
另外,还有一个方法:

public void close()

用于关闭信息的输入扫描器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的别。由于各物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分问题:判断图像中的目标属于哪个别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分 基于深度学习的目标检测算法主要分为两大: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的别。由于各物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分问题:判断图像中的目标属于哪个别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分 基于深度学习的目标检测算法主要分为两大: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值