个人阶段知识总结(一) String三兄弟以及classpath

本文深入浅出地介绍了Java中String、StringBuffer与StringBuilder的区别及联系,并解析了Classpath的工作原理,帮助初学者更好地理解Java底层知识。

  以前每当提到关于一些java底层的问题的时候总是让我头疼,相信这是很多java初学者都经历过的,近段在网上看了一些关于java稍微底层的资料,下面给出一些个人阶段小总结

 1.  String  StringBuffer  StringBuilder区别联系

 

简单的说String是一个字符串常量,StringBuffer是线程安全的字符串变量,StringBuilder是线程不安全的字符串变量。

 

看了网上那么多的资料,也有一些简单的理解:String是一个不可变的对象,当每次改变他的内容的时候实际是创建的一个新的对象,然后这个String指向这个新的对象。所以说String是一个字符串常量。而StringBuffer指向的字符串长度内容可以改变,当频繁的改变一个的字符串的内容时候推荐使用StringBuffer,而如果要简单的得到一个字符串对象,使用String即可。

 

由于改变String的内容需要重新去创建一个对象,然后改变指向的对象,但是一个有趣的现象是:当在进行String Str=”abc”+”def”这样的字符串操作时候,选用String的运行速度要快于StringBuffer,使用StringBuffer添加一段字符串的方法有appendinsert两个append只能在末尾添加,insert是在一个指定的位置,当使用String来操作”a”+”b”的时候,默认的是直接将其作为ab一个字符串来看待,所以String的速度在这种情况下优于StringBuffer

 

下面说一下StringBuufferStringBuilder,后者是在JDK5.0新增的一个类,他与StringBuffer最大的区别在于他是单线程变量,主要在单线程时使用,他可以执行StringBuffer所有的操作,但是不执行同步,即不能在多线程情况下使用,所以一般使用StringBuffer,所以StringBuilder是线程不安全的。

 

2. Classpath

 

ClasspathJava虚拟机(JVM)借助类装载器装入应用程序使用的类,具体装入哪些类根据当时的需要决定。CLASSPATH环境变量告诉类装载器到哪里去寻找第三方提供的类和用户定义的类以及JVM要到哪里去寻找 .class文件。

 

一般我们将我们需要的第三方类的路径在系统环境变量中去设置,我们没运行一个java程序,就会生成相应的 .class文件,对于我们需要的String这些第三方类JVM去哪里找到呢,这时候就需要Classpath了,java会在Classpath中一个一个寻找,如果不在系统环境变量设置,每次都需要在运行前去设置Classpath,对于Java所需的.class文件,必须通过classpath来指定。下面要谈一下java中的package了。Sun公司最初使用package的原因是为了避免命名冲突,如果我们设计了一个很简单的Person类,如果某人开发了一个类库,其中恰巧也有一个Person类,当我们使用这个类库时,两个Person类出现了命名冲突,JDK不知道我们到底要使用哪个Person类。

 

Eclipse中的java文件都会有package ***这个代表我们当前的java文件存放的路径(不是文件绝对路径),如果我们引用了其他的类,就会在上面使用import java.*这样的字样,其实在编译的过程中,会自动的将这些路径添加到classpath中去,这样javac命令就会找到我们的java文件,当我们使用java命令去运行一个.class文件的时候就不必去指定文件的路径。

  对于classpath可以参考下面网址的资料    

http://www.exam8.com/computer/Java/zonghe/200707/659761.html

提供了基于BP(Back Propagation)神经网络结合PID(比例-积分-微分)控制策略的Simulink仿真模型。该模型旨在实现对杨艺所著论文《基于S函数的BP神经网络PID控制器及Simulink仿真》中的理论进行实践验证。在Matlab 2016b环境下开发,经过测试,确保能够正常运行,适合学习研究神经网络在控制系统中的应用。 特点 集成BP神经网络:模型中集成了BP神经网络用于提升PID控制器的性能,使之能更好地适应复杂控制环境。 PID控制优化:利用神经网络的自学习能力,对传统的PID控制算法进行了智能调整,提高控制精度稳定性。 S函数应用:展示了如何在Simulink中通过S函数嵌入MATLAB代码,实现BP神经网络的定制化逻辑。 兼容性说明:虽然开发于Matlab 2016b,但理论上兼容后续版本,可能会需要调整少量配置以适配不同版本的Matlab。 使用指南 环境要求:确保你的电脑上安装有Matlab 2016b或更高版本。 模型加载: 下载本仓库到本地。 在Matlab中打开.slx文件。 运行仿真: 调整模型参数前,请先熟悉各模块功能输入输出设置。 运行整个模型,观察控制效果。 参数调整: 用户可以自由调节神经网络的层数、节点数以及PID控制器的参数,探索不同的控制性能。 学习修改: 通过阅读模型中的注释查阅相关文献,加深对BP神经网络与PID控制结合的理解。 如需修改S函数内的MATLAB代码,建议有定的MATLAB编程基础。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值