java之18天 常用的类(一)

本文详细介绍了Java中的System类用于获取系统属性信息,Runtime类用于执行命令并操作进程,Math类提供了数学运算方法,Date类用于处理日期和时间。文章通过实例展示了这些类的应用场景。
[size=medium][b]System类[/b][/size]

import java.util.Properties;

/**
* System:
* out:标准输出,默认是控制台
* in:标准输入,默认是键盘
*
* 描述系统的一些信息
* 获取系统的属性信息:Properties getProperties();
*
*
*
*/
public class SystemDemo {

public static void main(String[] args) {
Properties prop=System.getProperties();

//因为 Properties 是Hashtable的子类,也就是Map集合的一个子类对象
//那么可以通过map的方法取出集合中的元素.
//该集合中存储的都是字符串,没有泛型的定义

for(Object obj:prop.keySet()){
String value=(String)prop.get(obj);
System.out.println(obj+":"+value);
}

//如何在系统中自定义一些特有信息呢?
System.setProperty("maykey", "myvalue");

//获取指定属性的信息 //安装软件的过程中 下判断 系统的类型
String value=System.getProperty("os.name");
System.out.println(value);

//可以不可以在虚拟机启动的时候动态的加载一些信息呢?
String v=System.getProperty("haha");
System.out.println(v);//发现没有这个 key 对应的 value

//我们可以在启动虚拟机的时候 加入我们设置的自定义参数
//java 命令
//java -Dhaha=qqqqq SystemDemo 在运行的时候通过 -D 加入 属性
}

}

[size=medium][b]Runtime类[/b][/size]


import java.io.IOException;


/**
* Runtime对象
* 该类并没有提供构造函数
* 说明不可以new 对象,那么会直接想到该类中的方法都是静态的
* 发现该类中还有非静态方法.
* 说明该类肯定提供了方法获取本类对象,而且该方法是静态,并返回值为本类对象.
*
* 又这个特点可以看出该类使用单例设计模式完成
* 该方法是 static Runtime getRuntime();
*
* 98:command -- cmd
*
*/
public class RuntimeDemo {
public static void main(String[] args) throws IOException, InterruptedException {

Runtime r=Runtime.getRuntime();
//使用 java 打开扫雷 QQ ,暴风影音, ....
//Process p= r.exec("c:\\winmin.exe"); //返回打开的一个本地进程
Process p= r.exec("notepad.exe E:\\workspace4\\exam\\src\\com\\itheima\\day18\\RuntimeDemo.java"); //返回打开的一个本地进程


Thread.sleep(4000l);
p.destroy(); //销毁 上面创建的本地进程
}

}



[size=medium][b]Math类[/b][/size]

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Random;

public class MathDemo {

public static void main(String[] args) {

System.out.println("======util中的随机类==========");
method_Random();

MathDemo md=new MathDemo();
md.m1();
md.m2();
md.m3();
md.m4();
}
//给一个小数,保留两位小数
double f = 111231.5585;
public void m1() {
BigDecimal bg = new BigDecimal(f);
double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(f1);
}
/**
* DecimalFormat转换最简便
*/
public void m2() {
DecimalFormat df = new DecimalFormat("#.00");
System.out.println(df.format(f));
}
/**
* String.format打印最简便
*/
public void m3() {
System.out.println(String.format("%.2f", f));
}
public void m4() {
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
System.out.println(nf.format(f));
}


//java.util.Random
public static void method_Random(){
Random r=new Random();
for(int x=0;x<10;x++){
int d=r.nextInt(10)+1;//10(0-9)+1-->1-10
sop(d);
}

}
//java.lang.Math
public static void method_Math(){
double d=Math.ceil(-13.34); //返回大于这个数的最小整数
sop(d);

double d1=Math.floor(12.34);//返回小于这个数的最大整数.
sop(d1);

long l=Math.round(12.54); //四舍五入
sop(l);


double d2=Math.pow(2, 3); //a 的 3次幂
sop(d2);


for(int x=0;x<10;x++){
double d3=Math.random();
sop(d3);
}
System.out.println("=======1-10的随机数=====");
for(int x=0;x<10;x++){
int d3=(int)(Math.random()*10+1);//*10 (0-9)+1-->(1-10)

//下面的就是骰子 的随机数
//int d3=(int)(Math.random()*6+1);
sop(d3);
}

}

public static void sop(Object obj){
System.out.println(obj);
}

}


[size=medium][b]Date类[/b][/size]


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

public class DateDemo {

public static void main(String[] args) {
Date d=new Date();
System.out.println(d);

DateFormat df=new SimpleDateFormat("yyyy年MM月dd日E HH:mm:ss");
String temp=df.format(d);
System.out.println(temp);


Calendar c=Calendar.getInstance();
pringCalendar(c);

System.out.println("========重新设置时间=======");
//重新设置 时间的
Calendar cld=Calendar.getInstance();
cld.set(2012, 11, 23);
pringCalendar(cld);

System.out.println("========两天前=======");
Calendar c1=Calendar.getInstance();
c1.add(Calendar.DAY_OF_MONTH, -2);
pringCalendar(c1);

System.out.println("========两年后=======");
c1.add(Calendar.YEAR, 2);
pringCalendar(c1);

System.out.println("========获取 2014年2月的天数======");
sop("2014年2月有"+getTwoMethodDays(2014,2)+"天");

System.out.println("========获取昨天的现在的时刻======");
getYesterdayTime();

System.out.println("========获取两时间有效的天数===========");
sop(getYouxiaoDays());
}

public static int getYouxiaoDays(){
Calendar c=Calendar.getInstance();
c.set(2013, 0, 1);
c.add(Calendar.DAY_OF_MONTH, -1); //2012-12-12;
//pringCalendar(c);
//Calendar c1=Calendar.getInstance();
return c.get(Calendar.DAY_OF_YEAR);

}

//获取昨天的现在的时刻
public static void getYesterdayTime(){
Calendar c=Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -1);
pringCalendar(c);
}

//获取任意年2月的天数
public static int getTwoMethodDays(int year,int month){
if(month<0 || month>11)
throw new RuntimeException("无效的月份异常");
Calendar c=Calendar.getInstance();
c.set(year, month, 1);// 表示的是3月1号
c.add(Calendar.DAY_OF_MONTH, -1);
return c.get(Calendar.DAY_OF_MONTH);
}


public static void pringCalendar(Calendar c){
int year=c.get(Calendar.YEAR);
sop(c.get(Calendar.YEAR)+"年");
//月份 可以采用 查表法 进行映射成 1月 String[] mons={"一月"....};
sop((c.get(Calendar.MONTH)+1)+"月");
sop(c.get(Calendar.DAY_OF_MONTH)+"日");
//星期 也可以采用查表发 进行 映射
sop("星期"+c.get(Calendar.DAY_OF_WEEK));
sop("第"+c.get(Calendar.DAY_OF_WEEK_IN_MONTH)+"周");

}

public static void sop(Object obj){
System.out.println(obj);
}

}
基于遗传算法的新的异构分布式系统任务调度算法研究(Matlab代码实现)内容概要:本文档围绕基于遗传算法的异构分布式系统任务调度算法展开研究,重点介绍了种结合遗传算法的新颖优化方法,并通过Matlab代码实现验证其在复杂调度问题中的有效性。文中还涵盖了多种智能优化算法在生产调度、经济调度、车间调度、无人机路径规划、微电网优化等领域的应用案例,展示了从理论建模到仿真实现的完整流程。此外,文档系统梳理了智能优化、机器学习、路径规划、电力系统管理等多个科研方向的技术体系与实际应用场景,强调“借力”工具与创新思维在科研中的重要性。; 适合人群:具备定Matlab编程基础,从事智能优化、自动化、电力系统、控制工程等相关领域研究的研究生及科研人员,尤其适合正在开展调度优化、路径规划或算法改进课题的研究者; 使用场景及目标:①学习遗传算法及其他智能优化算法(如粒子群、蜣螂优化、NSGA等)在任务调度中的设计与实现;②掌握Matlab/Simulink在科研仿真中的综合应用;③获取多领域(如微电网、无人机、车间调度)的算法复现与创新思路; 阅读建议:建议按目录顺序系统浏览,重点关注算法原理与代码实现的对应关系,结合提供的网盘资源下载完整代码进行调试与复现,同时注重从已有案例中提炼可迁移的科研方法与创新路径。
【微电网】【创新点】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究(Matlab代码实现)内容概要:本文提出了种基于非支配排序的蜣螂优化算法(NSDBO),用于求解微电网多目标优化调度问题。该方法结合非支配排序机制,提升了传统蜣螂优化算法在处理多目标问题时的收敛性和分布性,有效解决了微电网调度中经济成本、碳排放、能源利用率等多个相互冲突目标的优化难题。研究构建了包含风、光、储能等多种分布式能源的微电网模型,并通过Matlab代码实现算法仿真,验证了NSDBO在寻找帕累托最优解集方面的优越性能,相较于其他多目标优化算法表现出更强的搜索能力和稳定性。; 适合人群:具备定电力系统或优化算法基础,从事新能源、微电网、智能优化等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于微电网能量管理系统的多目标优化调度设计;②作为新型智能优化算法的研究与改进基础,用于解决复杂的多目标工程优化问题;③帮助理解非支配排序机制在进化算法中的集成方法及其在实际系统中的仿真实现。; 阅读建议:建议读者结合Matlab代码深入理解算法实现细节,重点关注非支配排序、拥挤度计算和蜣螂行为模拟的结合方式,并可通过替换目标函数或系统参数进行扩展实验,以掌握算法的适应性与调参技巧。
本项目是个以经典51系列单片机——STC89C52为核心,设计实现的款高性价比数字频率计。它集成了信号输入处理、频率测量及直观显示的功能,专为电子爱好者、学生及工程师设计,旨在提供种简单高效的频率测量解决方案。 系统组成 核心控制器:STC89C52单片机,负责整体的运算和控制。 信号输入:兼容多种波形(如正弦波、三角波、方波)的输入接口。 整形电路:采用74HC14施密特触发器,确保输入信号的稳定性和精确性。 分频电路:利用74HC390双十进制计数器/分频器,帮助进行频率的准确测量。 显示模块:LCD1602液晶显示屏,清晰展示当前测量的频率值(单位:Hz)。 电源:支持标准电源输入,保证系统的稳定运行。 功能特点 宽频率测量范围:1Hz至12MHz,覆盖了从低频到高频的广泛需求。 高灵敏度:能够识别并测量幅度小至1Vpp的信号,适合各微弱信号的频率测试。 直观显示:通过LCD1602液晶屏实时显示频率值,最多显示8位数字,便于读取。 扩展性设计:基础版本提供了丰富的可能性,用户可根据需要添加更多功能,如数据记录、报警提示等。 资源包含 原理图:详细的电路连接示意图,帮助快速理解系统架构。 PCB设计文件:用于制作电路板。 单片机程序源码:用C语言编写,适用于Keil等开发环境。 使用说明:指导如何搭建系统,以及基本的操作方法。 设计报告:分析设计思路,性能评估和技术细节。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值