黑马程序员_JavaAPI

 ----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

System.out.println();是可以输出引用类型数据的!
必须收当定义了一个学生类的时候,而这个学生类什么也没有定义,
只是一个空类,运行测试类的时候,是可以实例化的,然后
System.out.println();直接输出 学生类对象的!
输出的是:cn.itcast.Student@1db05b2
输出语句可以输出引用类型的!
cn.itcast.Student@1db05b2   1db05b2后面的是一个16进制的地址值!从这个地方引用出来源码!
找到JDK中的,有一个src打包文件, java文件夹 然后是lang包,其中找到了math.java文件。
我们之前就用过math文件,但是用的都是class文件,
也就是说:我们用的文件统统都打包放到了lib文件中
在tools.jar 和dt.jar中  这两个jar文件里面放的都是class文件。
于是:如果都在这些jar文件中,那是如何使用的?
都是在每个项目的JRE System Library【JavaSE-1.7】中都可以找到,这里面装的都是class文件
导入包的时候,都是直接已经有了!代码都已经有了!类似于我们自己导入我们自己的包。相似。
我们用的ApI都在里面。其实,API就是一个目录索引!
因此:
以后,如果我们在使用API提供的功能的时候,知道怎么用了,还是想知道如何实现的
那就必须看源码!
源码是什么就是  (.java  文件)
System.out.println  前面的System.out是一个对象,println()是一个方法!
也就是这个可以通过类名调用,也就是前面直接就是一个对象。

* class System {
 * public static final PrintStream out = ...;
 * 
 * //自己定义的
 * public static final int x = 10;
 * 
 *   使用的时候:
 *   int y = System.x;
 *  
 *   下面这个也应该理解:
 *   PrintStream ps = System.out;//   System.out  是ps对象的,而ps对象时PrintStream的
System.out 是一个输入流中的一个方法!!
那这个地方问道之前的  1db05b2  是怎么输出的!
看源码:
如何看:在查看的内容,左手Ctrl 右手点击!
在Eclipse中的window中的Prefence中  Installed JREs中,有关于JDK
安装路径,其实导入的时候已经导入了所有的文件 
class 文件,和  java文件!
类object是层次结构的根类,每个类都是以object作为超类(根类),所有的
类都直接或者间接的继承自boject类!
如果我定义一个对象s,  然后我System.out.println(s); 用输入语句输出这个s,
这个s属于某个类,这个类一定是object的子类,继承自object,也就是说,s可以调用object的方法。
其实,System.out.println(s); 就是用的就是object中的 tostring()方法。
这以写成 System.out.println(s.tostring());
输出语句,输出对象的时候,一般调用的是对象的toString()方法,这个方法来自object
要记住object类是从JDK1.0开始使用的!
要记住的方法:toString():返回该对象的字符表示。
返回该对象的字符串表示。
通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。
结果应是一个简明但易于读懂的信息表达式。
建议所有子类都重写此方法。
返回的值等价于:
getClass().getName() + '@' + Integer.toHexString(hashCode())    
cn.student.student@530cf2
等价于:
该类的类名,应该是全路径+@+对象的哈希值的十六进制的表示。
object也有一个方法,也就是他的本省getclass();
getClass():返回此 Object 的运行时类
public  final  Class  getClass()
其实getClass()返回的是class文件的对象。
class是字节码文件,于是这个类就是表示字节码文件的类!反射的时候讲!
所以上述getClass().getName() + '@' + Integer.toHexString(hashCode()) 
getName()是返回的是getClass()的,而getClass()返回的又是public  final  Class  getClass()中的Class!
于是找到了class类,属于java.lang,里面有个方法,getName
getName类:以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。 
 String.class.getName()
     returns "java.lang.String"
 byte.class.getName()
     returns "byte"
 (new Object[3]).getClass().getName()
     returns "[Ljava.lang.Object;"
 (new int[3][4][5][6][7][8][9]).getClass().getName()
     returns "[[[[[[[I"
通过对getNeme中的了解!
public final Class getClass():放回此object的运行时类。反射的时候讲。
简单记:getName():次对象返回的所表示的类或接口名。一定是带包的。
getClass().getName() + '@' + Integer.toHexString(hashCode())
Integer.toHexString(hashCode())
首先解释了  hashCode() 
返回该对象的哈希码值!
简单记忆就是这个哈希值可以理解为对象的逻辑地址值,
但不是对象的实际地址值。(java拿不了对象的实际地址值)
Integer.toHexString(hashCode())
Integer.toHexString() 推断HexString是一个静态的方法,Integer是一个类名。
toHexString()方法:
如果对象是空的,运行返回一个对象逻辑地址值时:每一次都不一样,
因为每一次运行的时候都是从新申请空间。所以每一次值都不一样!
System.out.println(s);//cn.student.student@530cf2
System.out.println(Integer.toHexString(s.hashCode()));//530cf2
System.out.println(s.hashCode());//5442802
我们可以发现第三个地址是将第一个地址换算过来的!
讲了这个多,才发现toString()的方法实现!
但是之前提到的:
要记住的方法:toString():返回该对象的字符表示。
返回该对象的字符串表示。
通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。
结果应是一个简明但易于读懂的信息表达式。//
建议所有子类都重写此方法。
结果应该是一个简明但易于读懂的,如果是对象输出的时候输出的不是地址值,而是成员变量。
所以子类要重写toString()方法!
System.out.println(s);
//这个地方应该调用的是父类的,但是,对toString()进行了重写,
//于是,直接对student类进行了调用。
//这里就是对多态的应用。
//但是为什么没有直接调用student,因为有可能调用的不是student
//也可以是teacher类。所以在源码中
//写的是(object x)
以上说的就是:
如果没有将toString()重写的话,那就是无聊的一堆地址值。
如果重写了,那就是输出应该得出的值。
结论就是:当输出对象的时候不是地址值得话,那就是重写了toString()方法,
 当输出对象的时候是地址值得花,那就是没重写toString()方法!
连个对象是不会相等的,因为不同的对象有不同的地址。
System.out.println(s1==s2);//结果是false;
如果s1=s2;
System.out.println(s1==s2);//这个时候对象就是相等的,true;
equals  object类中方法。
        指示其他某个对象是否与此对象“相等”。 这里比较对象是比较的地址值。
面试题:
==和equals的区别
==:     在基本类型的比较中: 比较的是基本类型的值是否相同?      默认比较的是:对象地址值
        在引用类型的比较中: 比较的是对象的地址值是否相同?
equals:在默认的情况下,我们比较的是:对象的地址值是否相同。     默认比较的是:对象地址值
但,一般我们都会重写该方法,用于比较对象的内容是否相同。
length() :String()类中的方法!返回字符串的长度。
String()是不需要导入包的!
StringBuffer 是属于java.lang包下,只要在这个包下面是不需要导包的。
StringBuffer是线程安全的可变字符序列。
是一个可变的字符串!
同时:StringBuffer也是从JDK1.0版本就开始有了。
StringBuffer是线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。
虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。
String和StringBuffer的区别是:
String的长度固定,但是StringBuffer长度是可以发生变化的。
比如有两个空间hello、world!
如果是String的话,必须要从新开辟空间,同时hello和world这两个空间都浪费了,
但是:StringBuffer却是可以直接将world补充到hello的那个空间里的! 
StringBuffer叫做字符串的缓冲区,所以说跟String中的方法有许多相似处,
用法一样。在刘意讲的视频中,就没有讲。
StringBuffer中重点讲的两个删除方法是:delete   deleteCharAt
这两个方法都是从JDK1.2方法开始的。
StingBuffer是从1.1开始的,而这两个方法都是从1.2开始的。也就是说:
不是出现类之后就相应的出现了类中的方法。
如果说:一个类中的方法没有标明版本,那就是说:方法是随着类的出现而出现的。
StringBuffer中的方法,append(),insert(),delete(),deleteCharAt(),返回的都是
StringBuffer的类型。
当翻开API功能文档的时候记得看每个类和方法的版本。有时候类出现的版本和方法的版本不一样。
开发工具产生的方法都是private修饰的,并不是public修饰的,所以说:我们在开发的时候,建议还是

用public修饰。之所以用private修饰是因为能够更好的封装。


 ----------- android培训java培训、java学习型技术博客、期待与您交流! ------------















 














内容概要:本文研究了基于CNN-BiGRU-Attention混合神经网络模型的风电功率预测方法,旨在提升风力发电功率预测的准确性。该模型融合卷积神经网络(CNN)以提取输入变量中的局部时空特征,结合双向门控循环单元(BiGRU)充分捕捉时间序列前后向的长期依赖关系,并引入注意力机制(Attention)动态加权关键时间步的特征信息,增强模型对重要时刻的敏感度。研究采用多变量输入进行单步预测,综合纳入风速、风向、温度等多种气象因素作为模型输入,全面反映环境变量对风电输出的影响。通过Matlab平台完成模型构建、训练与仿真验证,实验结果表明该混合模型在预测精度与稳定性方面优于传统单一模型,有效提升了风电功率预测性能。; 适合人群:具备一定机器学习与深度学习理论基础,熟悉Matlab编程环境,从事新能源发电预测、电力系统调度、智能算法应用等相关领域的科研人员、工程技术人员及高校研究生。; 使用场景及目标:①应用于风电场实际运行中的短期功率预测,提高电网调度的安全性与可再生能源消纳效率;②为深度学习模型在复杂时序预测任务中的设计与优化提供实践范例,推动AI技术在能源系统智能化中的深度融合;③支持学术研究复现、课程项目设计与教学演示,帮助深入理解CNN、BiGRU与Attention机制的协同建模范式与实现细节。; 阅读建议:建议结合提供的Matlab代码进行动手实践,重点关注数据预处理流程、模型网络结构设计、超参数调优及训练收敛过程,鼓励尝试替换输入变量组合、调整网络层数或优化注意力结构,以进一步探究模型性能边界并提升预测鲁棒性。
内容概要:本文研究了基于Benders分解算法与输电网-配电网运营商(TSO-DSO)协调机制的双层优化模型,旨在有效应对新能源出力波动、负荷不确定性等对现代电力系统运行带来的挑战。模型上层由输电网运营商(TSO)负责全局资源优化与主网稳定性调控,下层由多个配电网运营商(DSO)实现本地分布式能源的灵活调度,通过Benders分解实现上下层之间的迭代协调与信息交互,从而在保障系统安全的前提下提升整体运行的经济性与鲁棒性。研究提供了完整的Matlab代码实现,涵盖数学建模、算法求解、收敛性分析及仿真结果可视化等环节,有助于深入理解双层优化架构在输配电网协同调度中的具体应用与技术细节。; 适合人群:具备电力系统分析、优化理论基础及一定Matlab编程能力的研究生、科研人员,以及从事电网调度、能源系统规划等相关领域的工程技术人员。; 使用场景及目标:①掌握Benders分解在电力系统双层优化问题中的建模与求解流程;②理解TSO-DSO协同机制下输配电网交互建模的核心思想与实现方法;③复现并拓展高水平学术论文中的优化模型,服务于科研项目攻关或实际工程仿真需求。; 阅读建议:建议结合凸优化理论、电力系统经济调度与Benders分解原理进行系统学习,优先运行并调试所提供的Matlab代码,调整关键参数以观察算法收敛行为与模型性能变化,从而深化对协调机制与优化机理的理解。
内容概要:本文档是一份关于经济学期刊论文复现的研究资料,聚焦核心议题“数字化转型能否促进企业的高质量发展”。文档构建了一个完整的量化分析框架,基于中国上市公司数据,实证探讨数字化转型对企业全要素生产率(TFP)及高质量发展的实际影响。内容涵盖数字化转型指标的构建、企业高质量发展评价体系的设计、计量经济模型的选择与应用(如固定效应模型、GMM方法),并提供Matlab代码实现全过程,包括数据处理、模型估计与稳健性检验。研究还系统梳理了OL、FE、LP、OP、GMM等多种全要素生产率的测算方法,为读者复现高水平经济学论文、深入理解数字经济时代的企业发展路径与政策含义提供了详尽的技术支持与理论指导。; 适合人群:具备扎实的经济学理论基础和较强的定量分析能力,熟悉Matlab或Python编程语言,正在从事经济管理、产业经济或数字经济等领域研究的研究生、高校教师及科研机构研究人员。; 使用场景及目标:①完整复现经济学顶刊论文的实证研究流程,掌握规范的学术研究范式;②学习并应用数字化转型与企业绩效间的因果识别策略,提升独立开展实证研究的能力;③为撰写学位论文、申报科研课题或编制政策咨询报告中涉及数字经济效应的章节提供直接的方法论参考和代码支持; 阅读建议:建议读者务必结合文档提供的数据与Matlab代码进行同步实操,重点钻研变量定义、模型设定、内生性处理和稳健性检验等关键环节,通过反复调试与验证,深刻领会高水平实证研究的严谨逻辑与技术细节,从而全面提升自身的科研素养与论文写作水平。
内容概要:本文围绕“绿电直连型电氢氨园区优化运行”开展创新性未发表研究,提出一种集成绿色电力直接供给、电解水制氢与合成氨工艺的多能耦合系统优化模型,旨在实现园区能源系统的低碳化、高效化与经济化运行。研究采用Matlab与Python编程语言,结合实际气象与负荷数据,构建涵盖电-氢-氨能量转换、存储与利用全过程的能量流、物质流及经济性协同优化框架,重点解决可再生能源出力波动导致的供需失衡问题,并通过优化电解槽、储氢罐、合成氨反应器等关键设备的运行策略与容量配置,提升系统对风光能源的就地消纳能力。文中配套提供完整的仿真代码、原始数据及Word格式论文,支持结果复现与模型拓展,具有较高的科研参考价值与工程应用潜力。; 适合人群:具备电力系统、能源工程、优化建模或新能源技术背景,从事综合能源系统、氢能利用、碳中和园区等相关领域研究的研发人员及硕士、博士研究生。; 使用场景及目标:①研究绿电直供模式下电-氢-氨多能系统协同运行机制与优化调度策略;②探索高比例可再生能源就地转化为高附加值化工产品的技术路径;③为工业园区实现深度脱碳与能源自洽提供决策支持;④作为学术论文撰写、课题申报或科研复现的高质量参考资料。; 阅读建议:建议结合Matlab与Python代码逐模块解析模型实现过程,重点关注目标函数构建、约束条件设定(如设备动态特性、能量平衡、安全边界)以及多场景仿真对比分析,宜在调试过程中调整权重系数与参数设置,深入理解系统灵敏度与优化机理,并尝试引入更多不确定性因素进行鲁棒性扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值