MyStopWatch

性能监控工具类(StopWatchUtil) NULL 博文链接:https://zhaoshijie.iteye.com/blog/2033620 立即下载


/*
 *  张老师Java高级教程GUI部分视频教程最后留的练习题
 *
 * 5、 为前边讲的自定义计时器组件增加功能:允许程序设置计时器显示文本的颜色,
 *   时间文本的字体大小随组件大小的改变而改变。
 *   
 * 思路:
 * 自定义一个组件类实现题目要求的功能
 *  a 要设置文本颜色,需要提供一个设置方法,可以用列表选择框或单选按钮等来实现
 *   这里用一组单选按钮实现,将它们放在一个单独的Panel里便于管理
 *  b 要让字体大小随组件大小的改变而改变,根据张老师视频中的方法就需要不断调整填充区域的大小
 *   这里换一种方法,用布局管理器来实现大小的自动调整,所以要用一个组件来实现计时器功能
 *  c 要将计时器组件和一组单选按钮Panel放在同一个组件里边实现题目要求的功能,
 *   为了方便将类设计为Panel的子类,就可以随意添加组件了
 *  d  要处理一组单选框按钮产生的事件,为了集中管理,让自定义的类实现ItemListener接口
 *   组件重绘过程中需要不断刷新时间值,需要一个单独的线程来执行这个任务,所以让类
 *   实现Runnable接口,让功能更加集中
 *
 * 已经实现的功能:
 *   计时功能已实现,在指定区域内(单选按钮左边的区域)按下鼠标开始计时,松开结束
 *   动态显示时间信息,每过去一秒都可以看得见
 *   通过点选指定的颜色按钮,动态改变计时器的文本颜色
 *   
 * 设置字体大小很容易,但根据窗口大小动态改变还真有点难住了。
 * 先试试看哪个可以监听到大小改变事件,下面的main函数中注释有编码时的思考过程
 * 最后发现给组件添加HierarchyBoundsListener,使用它的ancestorResized方法可以处理窗口大小改变的事件
 * 但是问题又来了,字体大小到底怎么根据窗口大小决定呢?
 * 用哪个方法获取到窗口大小,然后用一个固定数字除一下得到的值作为字体大小应该可以吧,试试看
 * 找到方法了,组将的getHeight和getWidth可以得到组件的宽高
 * 要动态设置字体大小,和动态改变颜色时方法差不多,所以要增加一个变量记录字体大小
 *
 * 大功告成,呵呵
 *
 */

package test.gui.stopwatch;
a
import java.awt.BorderLayout;
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.HierarchyBoundsAdapter;
import java.awt.event.HierarchyEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowStateListener;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
 * 	张老师Java高级教程GUI部分视频教程最后留的练习题
 * 
 * 5、	为前边讲的自定义计时器组件增加功能:允许程序设置计时器显示文本的颜色,
 * 		时间文本的字体大小随组件大小的改变而改变。
 * 		
 * 思路:
 * 自定义一个组件类实现题目要求的功能
 * 	a	要设置文本颜色,需要提供一个设置方法,可以用列表选择框或单选按钮等来实现
 * 		这里用一组单选按钮实现,将它们放在一个单独的Panel里便于管理
 * 	b	要让字体大小随组件大小的改变而改变,根据张老师视频中的方法就需要不断调整填充区域的大小
 * 		这里换一种方法,用布局管理器来实现大小的自动调整,所以要用一个组件来实现计时器功能
 * 	c	要将计时器组件和一组单选按钮Panel放在同一个组件里边实现题目要求的功能,
 * 		为了方便将类设计为Panel的子类,就可以随意添加组件了
 * 	d 	要处理一组单选框按钮产生的事件,为了集中管理,让自定义的类实现ItemListener接口
 * 		组件重绘过程中需要不断刷新时间值,需要一个单独的线程来执行这个任务,所以让类
 * 		实现Runnable接口,让功能更加集中
 * 
 * 已经实现的功能:
 * 		计时功能已实现,在指定区域内(单选按钮左边的区域)按下鼠标开始计时,松开结束
 * 		动态显示时间信息,每过去一秒都可以看得见
 * 		通过点选指定的颜色按钮,动态改变计时器的文本颜色
 * 		
 * 设置字体大小很容易,但根据窗口大小动态改变还真有点难住了。
 * 先试试看哪个可以监听到大小改变事件,下面的main函数中注释有编码时的思考过程
 * 最后发现给组件添加HierarchyBoundsListener,使用它的ancestorResized方法可以处理窗口大小改变的事件
 * 但是问题又来了,字体大小到底怎么根据窗口大小决定呢?
 * 用哪个方法获取到窗口大小,然后用一个固定数字除一下得到的值作为字体大小应该可以吧,试试看
 * 找到方法了,组将的getHeight和getWidth可以得到组件的宽高
 * 要动态设置字体大小,和动态改变颜色时方法差不多,所以要增加一个变量记录字体大小
 * 
 * 大功告成,呵呵
 * 
 */

public class MyStopWatch extends Panel implements ItemListener, Runnable
{
	//用Label作为计时器的主体,直接设置里边的文本即可
	Label label = new Label();
	//记录开始结束时间,默认为0
	long startTime, endTime;
	//记录计时器字体大小,便于动态调整字体大小,增加这个变量的原因下边注释有说明
	int fontSize = 25;
	//构造函数,让类对象一创建出来就具备想要的一些效果和功能
	public MyStopWatch()
	{
		//让自定义组件使用边界布局
		setLayout(new BorderLayout());
		//再用一个Label组件显示提示信息
		Label notic = new Label("在黑色区域按下鼠标开始计时,松开停止,单选按钮改变文字颜色");
		//设置提示文字颜色
		notic.setForeground(Color.RED);
		//设置提示文字对齐方式,居中
		notic.setAlignment(Label.CENTER);
		//设置提示文字字体
		notic.setFont(new Font("楷体_GB2312", Font.BOLD, 12));
		//将提示文字Label加入到自定义组件上方
		add(notic, "North");
		//将计时器主体Label加到自定义组件的中间
		add(label, "Center");
		//设置计时器的文本对齐方式
		label.setAlignment(Label.CENTER);
		//定义一个选择框组,管理用于改变颜色的一组单选按钮
		CheckboxGroup checkgroup = new CheckboxGroup();
		//创建3个颜色单选按钮,添加到同一个组中
		Checkbox cb_green = new Checkbox("绿色", false, checkgroup);
		Checkbox cb_red = new Checkbox("红色", true, checkgroup);
		Checkbox cb_white = new Checkbox("白色", false, checkgroup);
		//定义一个单独的Panel,集中存放单选按钮
		Panel checks = new Panel();
		//设置单选按钮区域的前景色和背景色
		checks.setBackground(Color.BLACK);
		checks.setForeground(Color.GREEN);
		//设置单选按钮区域的字体
		checks.setFont(new Font("楷体_GB2312", Font.BOLD, 15));
		//设置单选按钮面板的布局方式为网格布局,添加一列三行按钮
		checks.setLayout(new GridLayout(3, 1));
		checks.add(cb_green);
		checks.add(cb_red);
		checks.add(cb_white);
		//将颜色选择面板加入到自定义组件的右边
		add(checks, "East");
		//为3个单选按钮添加事件监听器,自定义组件本身已经实现了ItemListener接口
		//其本类对象就可以作为监听器对象使用
		cb_green.addItemListener(this);
		cb_red.addItemListener(this);
		cb_white.addItemListener(this);
		
		//**为计时器添加一个监听器,用来检测大小改变,以实现动态改变文字大小
		//查来查去发现好像这个才能实现吧。试过后确实可以,开工了
		label.addHierarchyBoundsListener(new HierarchyBoundsAdapter()
		{
			public void ancestorResized(HierarchyEvent e)
			{
				//System.out.println("大小变了");
				//看看哪个方法可以获取到窗口大小,找到了,第一次width:321,
				//字体大小也需要定义一个变量进行保存,和设置颜色类似,初始为25
				//int height = label.getHeight();
				//得到计时器的宽度,这里根据宽度计算字体大小
				int width = label.getWidth();
				//System.out.println("Width:"+width+"--Height:"+height);
				fontSize = width/12;
				//字体大小改变后,进行重绘
				repaint();
			}			
		});
		
		//为计时器添加鼠标监听器,实现计时功能		
		label.addMouseListener(new MouseAdapter()
		{
			//鼠标按下时的处理方式
			public void mousePressed(MouseEvent e)
			{
				//记录一下,表示鼠标已经按下,可以刷新时间值了
				isPressed = true;
				//开启线程,不断刷新时间值,以便实现时间动态显示的效果
				new Thread(MyStopWatch.this).start();
				//开始计时
				startTime = endTime = System.currentTimeMillis();
				//重绘组件,以免上次的时间值遗留在组件表面
				repaint();
			}
			//鼠标释放时的处理方式
			public void mouseReleased(MouseEvent e)
			{
				//将结束时间置为当前时间
				endTime = System.currentTimeMillis();
				//改变标记值,停止刷新
				isPressed = false;
				//再次重绘,将最后的时间值刷一下
				repaint();
			}
		});
	}
	//定义一个记录颜色值的变量,默认红色,便于颜色的动态改变
	Color color = Color.RED;
	//覆盖paint方法,实现自定义的重绘效果
	public void paint(Graphics g)
	{
		//定义SimpleDateFormat对象,便于将时间值进行格式化
		SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
		//计算鼠标按下到释放耗用的时间,因为计算机内部时间表示方式的差异,
		//与我们想要的效果(刚开始显示00:00:00)相差了8个小时,所以减掉8个小时
		Date costTime = new Date(endTime-startTime-8*60*60*1000);
		//将耗用的时间值格式化为我们想要的字符串形式
		String strTime = sdf.format(costTime);
		//设置计算器的背景色为黑色,前景色动态获取
		label.setBackground(Color.BLACK);
		label.setForeground(color);
		//设置计时器表面字体
		label.setFont(new Font("楷体_GB2312", Font.BOLD, fontSize));
		//将时间值显示在计算器表面
		label.setText(strTime);
	}
	//实现ItemListener接口中的方法,让自定义组件具有监听器功能
	public void itemStateChanged(ItemEvent e)
	{
		//定义一个Checkbox变量,记录产生事件的具体对象
		Checkbox cb = (Checkbox)e.getItemSelectable();
		//获取事件源表面的文字信息,便于对比和进行相应设置
		String strColor = cb.getLabel();
		if (strColor!=null)//如果获取到的信息不为空,应该不会空吧
		{
			//根据单选按钮表面的文字信息,动态修改计时器的前景色
			if (strColor.equals("绿色"))
			{
				color = Color.GREEN;
				label.setForeground(Color.GREEN);
			}
			else if (strColor.equals("白色"))
			{
				color = Color.WHITE;
				label.setForeground(Color.WHITE);
			}
			else
			{
				color = Color.RED;
				label.setForeground(Color.RED);
			}	
		}
	}
	//定义标记变量,记录鼠标按下状态,默认没有按下
	boolean isPressed = false;
	//实现Runnable接口,复写其中的run方法,让自定义组件具有自动运行指定任务的功能
	public void run()
	{
		//判断鼠标状态,如果按下就开始执行任务
		while (isPressed)
		{
			//让线程稍微休息一会,不能休息太长时间了,不然就不能实现较好的动态效果了
			try
			{
				Thread.sleep(500);
			} catch (InterruptedException e)
			{
				e.printStackTrace();
			}
			//将结束时间修改为当前时间,以便重绘后达到动态显示时间的效果
			endTime = System.currentTimeMillis();
			//对组件进行重绘,更新时间值
			repaint();
		}
	}
	
	//主函数,测试使用,也可以直接新建一个类,在Frame中加入一个此类对象
	public static void main(String[] args)
	{
		Frame frame = new Frame("My own StopWatch");
		//在窗口中加入一个上边的自定义组件
		frame.add(new MyStopWatch());
		frame.setSize(380, 180);
		//设置窗口最小值,以免用户调的太小,组件都挤不下难看死了
		frame.setMinimumSize(new Dimension(380, 180));
		//固定大小,用户不可调整
		//frame.setResizable(false);
		//给窗口添加窗口监听器,处理窗口事件
		frame.addWindowListener(new WindowAdapter()
		{
			//指定默认关闭事件处理方式
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);				
			}
			//想通过这个事件来动态调整计时器内的文本大小,发现这个好像没什么效果,
			//不知道具体有什么用,文档中只是简单地说状态i改变,到底什么状态呢
			public void windowStateChanged(WindowEvent e)
			{
				System.out.println("窗口大小改变了");
			}
		});
		//发现这个只有在最大化、最小化时起效果
		frame.addWindowStateListener(new WindowStateListener()
		{
			public void windowStateChanged(WindowEvent e)
			{
				System.out.println("窗口状态改变了");
			}
		});
		//设置窗口左上角的小图标
		//frame.setIconImage(frame.getToolkit().createImage("c:/logo.jpg"));
		frame.setVisible(true);
	}

}


 

 

基于Java17、SpringBoot、vue3、antdv-next、uniapp等主流技术构建的全场景极速开发平台 MDP内置3个web端、1个移动端 重点解决用户中心、开发者平台、管理后台3个应 MDP-主数据平台,后端项目。专注于单点登录解决方案。内置用户中心、开发者平台、管理后台3个应用。包含:单点登录、Oauth2 登录、用户身份管理、应用申请、应用接入、主数据维护、主数据订阅、主数据广播、应用接口调用、接口管理管理和查看、系统配置等功能。 立即下载

相关推荐

Win7时间修复(时间错误修复文件)

运行方法:解压后运行reg文件即可。 支持的Win7版本: 1. Windows 7 Starter(入门版 / 初级版) 2. Windows 7 Home Basic(家庭普通版) 3. Windows 7 Home Premium(家庭高级版) 4. Windows 7 Professional(专业版) 5. Windows 7 Enterprise(企业版) 6. Windows 7 Ultimate(旗舰版) 7. Windows 7 Professional for Embedded Systems(嵌入式专业版) 8. Windows 7 Ultimate for Embedded Systems(嵌入式旗舰版)

MyStopWatch - 高精度秒表工具

MyStopWatch - 高精度秒表工具 去发现同类优质开源项目:https://gitcode.com/ MyStopWatch 是一款基于 Qt 框架开发的千分位秒表工具,界面简洁美观,功能实用。它支持秒表时间的刷新频率调节,并提供极简设计的操作界面,是您计时的得力助手。 功能特点 刷新频率可调:秒表时间刷新频率可在 1-2000ms 范围内自由调节,通过鼠标滚动即可轻松调整。 极简设计:...

gitblog_06725的博客 409

YOLO26算法行人行走检测+训练好的模型+102张数据集+pyqt可视化界面.zip

附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[行走的人(person walking)] 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 67 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.8000** mAP50-95 | 0.5620 Precision | 0.5795 Recall | 0.8235 train/box_loss | 0.9538 train/cls_loss | 1.9897 val/box_loss | 0.9034 val/cls_loss | 2.7344 【训练过程分析】 进入训练阶段后,模型一开始的 mAP50 和 mAP50-95 均为 0.8000 和 0.5620,表明在开始阶段模型的收敛情况良好。从第 30 轮起,训练集的 mAP50 值稳定在了 0.8000,这说明模型在这之前能够迅速捕捉到主要目标,但精度提升的余地已然不大。同时,mAP50-95 在训练集上表现略差,从第 50 轮开始慢慢往上走至 0.5620。这反映出模型在检测更小、更远的目标上还存在一定差距,精度成为瓶颈。 随着训练深入,模型在验证集上的表现开始分化。从第 60 轮开始,验证集的 mAP50 和 mAP50-95 值分别为 0.7500 和 0.4500,相比训练集下降明显,表明模型存在一定程度的过拟合现象。训练集上的 box loss 和 cls loss 值分别为 ... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。

2.1、StopWatch 启动与停止(ok)

run 方法第第一步就是 创建一个StopWatch,然后启动 public ConfigurableApplicationContext run(String... args) { // 1、 StopWatch stopWatch = new StopWatch(); stopWatch.start(); // 略 ... } 1、new StopWatch() /****** org.springframework.util.StopWatch ******/ public StopWat

javaThinker的专栏 2586

科技中介服务机构想要提升服务效率,需要哪些数智工具支持?.docx

科技中介服务机构想要提升服务效率,需要哪些数智工具支持?

usb 扩容盘检测修复工具源码,编译产物

usb 扩容盘检测修复工具源码,编译产物

性能调优工具类MyStopwatch

类名:MyStopwatch 功能:输出一段程序的运行耗时。 用法: using (new MyStopwatch("Save")) //MyStopwatch: Save Took 1000 Ms{ Thread.Sleep(1000); } 输出:MyStopwatch: Save Took 1000 Ms 类代码: 代码 pu...

weixin_33911824的博客 149

融合UWB和IMU割草机定位EKF研究(Matlab代码实现)

内容概要:本文主要介绍了一个名为“Plecs全桥LLC谐振变换器仿真模型”的技术资源,该资源聚焦于电力电子领域中的LLC谐振变换器建模与仿真,涵盖开环、闭环控制、软启动设计及参数优化等核心内容。文档不仅提供了LLC变换器的详细建模方法与仿真案例,还系统梳理了其在高效电源转换系统中的应用,包括隔离型全桥拓扑结构的设计与性能分析。此外,资源汇总了大量Matlab/Simulink仿真模型及相关科研方向,涉及新能源并网、储能控制、电机驱动等多个前沿领域,全面展示LLC谐振变换器在现代电力系统中的关键技术实现路径。同时,文档附带多种学习资料获取途径,如网盘链接和公众号资源,便于研究人员深入实践与拓展研究。; 适合人群:具备扎实的电力电子、自动控制理论基础,从事新能源发电、开关电源设计、电力系统仿真等相关领域的研究生、工程师及科研人员。; 使用场景及目标:①深入理解LLC谐振变换器的工作原理、建模方法与控制策略;②开展电力电子变换器的仿真验证与参数优化设计;③支撑科研项目、学位论文或工程项目的系统仿真与方案验证; 阅读建议:建议结合所提供的仿真模型与参考文献,使用Plecs或Simulink软件进行动手实践,重点掌握LLC谐振变换器的建模流程、闭环控制设计、软启动机制及参数调试技巧,以全面提升在实际工程中的应用与创新能力。

Qt学习之秒表的实现(StopWatch) (转)

秒表对于我来说并不陌生,在之前自己学习单片机时,实现过秒表和数字钟;基本思路:开启单片机带的定时器,并设置它没10ms溢出一次,分别用三个变量hour,minute,secong记录秒表的时分秒,然后每0.5s刷新一次显示函数,这样最基本的秒表的基本功能就实现了;当然,在Qt里面设计一个秒表也可以用相似的方法就行实现。 由于嵌入式实验要用Qt做个俄罗斯方块游戏,想在游戏中加个模块(游戏的...

weixin_30824599的博客 320

基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)

基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)内容概要:本文主要介绍了基于Plecs的全桥LLC谐振变换器仿真模型,涵盖变频控制下的多相交错LLC谐振变换器闭环仿真、V2G电动汽车ACDC整流与双向CLLC谐振变换器充放电仿真、LLC谐振变换器的开环与闭环软启动设计,以及储能系统中双向Buck-Boost变换器结合模型预测电流控制和电压下垂控制的仿真研究。同时,文档列举了多种电力电子系统与控制策略的Simulink/Plecs仿真案例,涉及三相交错并联Buck变换器、三电平Buck直流变换器、单相Boost PFC电路等,展示了丰富的电力变换器建模与控制技术。此外,还包括参数设计报告、计算书及相关参考文献,适用于从事电力电子、新能源发电、电动汽车充放电系统等领域的研究人员和技术开发人员。; 适合人群:具备电力电子、自动控制理论基础,从事新能源、电动汽车、电力系统等相关领域研究的研发人员、高校研究生及高年级本科生。; 使用场景及目标:① 学习和掌握LLC谐振变换器及其他典型电力电子变换器的工作原理与建模方法;② 实现闭环控制策略如变频控制、软启动、模型预测控制、下垂控制等的仿真验证;③ 支持科研项目、毕业设计或工程开发中的系统仿真与优化设计。; 阅读建议:建议结合文中提供的仿真模型、设计报告与参考文献,逐步搭建并调试相应系统,重点关注控制策略的实现细节与参数整定过程,以深入理解系统动态响应特性与控制性能。

独立储能的现货电能量与调频辅助服务市场出清协调机制(Matlab代码实现)

内容概要:本文标题为“Plecs全桥LLC谐振变换器仿真模型”,但实际内容严重偏离主题,文档中混杂了大量来自优快云博客平台的无关信息,涵盖多个不同领域的Matlab/Simulink仿真项目,如电力系统优化、无人机路径规划、机器学习预测、微电网调度、卡尔曼滤波、无线能量传输等,导致核心内容缺失。文档未能提供关于Plecs平台下全桥LLC谐振变换器的建模方法、电路结构、参数设计、控制策略或仿真结果等关键技术细节,实质信息与标题完全不符,不具备作为该主题参考资料的有效性。; 适合人群:从事电力电子变换器研究、电源系统设计及相关领域的工程师、高校研究生与科研人员,尤其是希望掌握LLC谐振变换器建模与仿真的专业技术人员。; 使用场景及目标:① 学习并掌握全桥LLC谐振变换器的工作原理与Plecs仿真建模技术;② 开展高效电源转换器的研发与性能优化;③ 作为教学或科研项目中电力电子电路仿真的参考资料。; 阅读建议:鉴于文档内容与标题严重不符,建议读者谨慎甄别,优先选择专业书籍、学术论文或官方仿真软件教程等权威资源进行学习,避免被无效信息误导。

Qt学习之秒表的实现(StopWatch)

秒表对于我来说并不moshen

lpp0900320123的专栏 1万+

基于多元宇宙优化算法的微电网日前经济调度模型研究(Matlab代码实现)

内容概要:文档《Plecs全桥LLC谐振变换器仿真模型.txt》虽以“Plecs全桥LLC谐振变换器仿真模型”为名,实则是一份涵盖电力电子、电力系统、电机控制、新能源并网、微电网优化调度、储能系统、电动汽车调度、无人机路径规划、信号处理、雷达与状态估计等多个技术方向的综合性仿真资源汇编。内容依托Matlab/Simulink、PLECS、PSCAD等主流仿真平台,聚焦于现代优化算法(如粒子群、遗传算法、多目标差分进化、多元宇宙算法等)在能源系统建模、参数优化与控制策略设计中的应用。文档不仅提供了丰富的仿真案例和研究主题,还附带大量可下载的仿真代码、模型及参考文献,构成一个服务于科研与教学的资源集合。; 适合人群:具备电力电子、电力系统、自动化、控制工程或相关专业背景的研究生、科研人员及工程技术人员,尤其适合熟悉Matlab/Simulink、PLECS或PSCAD等仿真工具并从事相关领域研究的人员。; 使用场景及目标:①为电力系统动态分析、微电网能量管理、电机驱动控制、无人机路径规划等课题提供仿真建模思路与实例参考;②学习和复现先进智能优化算法在复杂工程问题(如经济调度、参数辨识、故障诊断)中的实现方法;③获取可用于学术论文撰写、毕业设计或科研项目申报的完整仿真资源与技术支持。; 阅读建议:此文档为典型的资源聚合型文本,建议读者根据自身研究方向有针对性地选择相关章节进行深入研读,优先关注与自己课题契合度高的仿真模型和算法实现,并结合所提供的代码与模型进行实践验证与二次开发,注意区分不同研究主题的边界,避免信息混淆。

我的StopWatch

项目中一个功能很耗时,头儿让我看看是什么原因造成的,看能不能有什么调优。 分析原因时得用数据支持吧, 也就是说看都有哪些因素造成了耗时,各贡献值具体是多少。顺着这个思路想起来和apache中common框架中的一个工具类org.apache.commons.lang.time StopWatch。 它很好的模拟了秒表,通过它的split方法和getS...

weixin_34184561的博客 96

Floyd算法在社交网络中的应用:如何找到六度人脉的最短路径?

本文探讨了Floyd算法在社交网络分析中的核心应用,特别是如何利用该算法高效计算任意两人之间的最短路径,从而量化“六度人脉”理论。文章通过构建微型社交网络模型,详细拆解了Floyd算法的动态规划原理与代码实现,并展示了如何从计算出的最短路径距离矩阵中挖掘节点中心性、识别社群等关键洞察,为社交推荐、影响力分析等场景提供技术支撑。

blockchain9miner的博客 1003

基于单片机红外线遥控Proteus仿真电路发射接收

*单片机设计介绍,基于单片机红外线遥控Proteus仿真电路发射接收。

2201_75940997的博客 3943
上一篇: 自己写的一个网页版的简单五子棋
下一篇: 进制转换巩固练习之c语言实现
luck638
博客等级 码龄17年 13粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值