package chunf.test;
public class Test2 {
// public static void doTest(int i, int j) {
// int a = i;
// i = j;
// j = a;
// }
//
// public static void main(String[] args) {
// int a = 3;
// int b = 4;
// doTest(a, b);
//
// System.out.println("a=" + a);
// System.out.println("b=" + b);
// }
//以上输出的是 3 4 虽然走了doTest方法 但是,传递的只是对a b 的引用,并未改变a b 的值。
//-----------------------------------------------------------------------------------
// public static void doTest(int[] counts) {
// counts[0] = 6;
// System.out.println(counts[0]);
// }
//
// public static void main(String[] args) {
// int[] count = { 1, 2, 3};
// doTest(count);
// }
//以上输出为6,因为数组传递至方法内,方法将数组改变并在改变后打印改变后的值。
//----------------------------------------------------------------------------------
// public static void doTest(Test1 a) {
// a = new Test1();
// a.a++;
// }
//
// public static void main(String args[]) {
// Test1 a = new Test1();
// doTest(a);
// System.out.println(a.a);
// }
/*
* Test1{
* int a = 2;
* }
* */
//以上输出依然为TEST1类中的初始a值,原因是a并非静态的变量,每当new一个新的类,指针指向的地址是变化的。并非被方法处理的TEST1类
//------------------------------------------------------------------------------------
// public static void doTest(Test1 a) {
// a = new Test1();
// a.a++;
// }
//
// public static void main(String args[]) {
// Test1 a = new Test1();
// doTest(a);
// System.out.println(a.a);
// }
/*
* Test1{
* static int a = 2;
* }
* */
//以上输出为3,因为TEST1类中的变量a是静态的,因此无论new了多少个TEST1类,变量a的地址是不变的。所以操作的都是同一个a
//例如下面例子
//public static void doTest(Test1 a){
// a = new Test1();
// a.a++;
//}
//
//public static void main(String[] args) {
// Test1 tst1 = new Test1();
// doTest(tst1);
// Test1 tst2 = new Test1();
// doTest(tst2);
// System.out.println(tst1.a);
// System.out.println(tst2.a);
//}
//这两行输出都是4,因为无论是tst1还是tst2,变量a的地址是不变的,操作的都是同一个a
//----------------------------------------------------------------------------------
// String str = new String("haha");
//
// char[] ch = { 'a', 'b', 'c' };
// public static void main(String args[]) {
// Test2 tst = new Test2();
// ex.change(tst.str, tst.ch);
// System.out.print(tst.str + " and ");
// System.out.println(tst.ch);
// }
//
// public void change(String str, char ch[]) {
// str = "lalala";
// ch[0] = 'd';
// }
//以上输出haha and dbc由于String是final的,那么tst.str是不被改变的。而数组并非如此,因此数组被改变
}
相关推荐
Gromacs实战:从蛋白质-小分子对接到分子动力学模拟全流程解析
本文详细解析了使用Gromacs进行蛋白质-小分子对接和分子动力学模拟的全流程,包括文件准备、拓扑生成、复合物构建、溶剂化处理、能量最小化及平衡模拟等关键步骤。通过实战案例,帮助研究者验证药物分子与靶标蛋白的结合稳定性,提升分子动力学模拟的效率和准确性。
Java面向对象笔记(二)方法的重载及值传递机制
Java面向对象笔记(二)方法的重载 方法的重载(overload) 1.定义:在同一个类中,允许存在一个以上的同名方法,只要他们的参数个数或者参数类型不同 “两同一不同”: 同一个类、相同方法名 参数列表不同:参数个数不同,参数类型不同 2.举例:Arrays类中重载的sort() / binarySearch() 3.判断方法是否重载:跟方法的权限修饰符、返回值类型、形参变量名、方法体都没有关系,只需关注==“两同一不同”== ...
从数据校准到论文呈现:fsQCA与NCA方法融合的完整实证研究指南
本文详细介绍了fsQCA(模糊集定性比较分析)与NCA(必要条件分析)方法融合的完整实证研究流程,从数据校准到论文呈现。通过软件操作技巧、R语言NCA包高效使用及论文写作规范,帮助研究者避免常见误区,提升研究质量与可靠性。特别适合需要进行组态分析的研究生和学者参考。
java 值_java的值传递笔记
1. 背景:开发小伙伴突然问我java是值传递还是引用传递,我说当然是值传递,只不过有时候传递一个对象时实际传递的是对象的地址值,所以让人容易产生一种引用传递的假象,貌似在李刚的疯狂java讲义有提到值传递。2.于是,今晚就写起代码来验证一下,我去,居然纠结了一段时间。因为直接写一个方法,带上基本类型和包装类型来一同做校验,思路是:方法内,对形参进行加减操作,以便查看是否实参也会改变值(如果是值传...
Cursor集成Claude 4.6免费版:本地IDE合规调用指南
大语言模型编程助手(LLM Copilot)已成为现代开发标配,其核心能力依赖于上下文理解、代码推理与结构化输出等关键技术原理。Anthropic官方提供的Claude系列模型,尤其Claude 4.6,凭借200K超长上下文、tool use函数调用和严格可控的API设计,在工程实践中展现出显著技术价值。该能力可无缝嵌入本地IDE环境,支撑代码解释、跨文件分析、单元测试生成等高频开发场景。本文聚焦Cursor这一开源可审计IDE,详解如何合规复用Anthropic免费tier接口(/v1/messages
32、生物医学中的多模态拉曼散射成像技术
本文综述了多模态拉曼散射成像技术在生物医学领域的应用,重点探讨其在肿瘤研究、癌症无创诊断和组织功能分析中的前沿进展。通过结合自发拉曼、相干拉曼散射(CARS/SRS)、光学相干断层扫描(OCT)、荧光寿命成像(FLIM)及多光子显微技术(TPEF/SHG)等多种模态,实现了对细胞和组织的高特异性生化信息与高分辨率形态学特征的同步获取。文章还介绍了多模态SERS纳米探针的设计及其在靶向成像与治疗一体化中的潜力,并系统分析了不同成像方式的操作流程、优势互补性及临床应用场景。最后展望了该技术向小型化、智能化和个性
学习笔记-java按值传递
java方法调用的按值传递
基于Simulink的轨道交通信号控制系统仿真详细介绍
轨道交通信号控制系统是确保列车安全、高效运行的核心技术。通过Simulink进行信号控制系统的仿真,可以验证系统的设计、优化调度策略并提高安全性。以下是如何在MATLAB和Simulink中设计并仿真一个轨道交通信号控制系统的详细步骤。通过上述步骤,我们成功设计并实现了基于Simulink的轨道交通信号控制系统仿真。该系统能够根据列车位置、速度和轨道状态生成控制指令,确保列车的安全、高效运行。通过虚拟场景仿真、硬件在环测试和实机测试,验证了系统的性能,并通过参数优化进一步提升了系统的可靠性。引入智能调度。
java值传递在于拷贝,Java填坑笔记:值传递与引用传递
Java中没有指针,只存在值传递对于对象(数组,类,接口)的传递似乎有点像引用传递,可以改变对象中某个属性的值。但是不要被这个假象所蒙蔽,实际上这个传入函数的值是对象引用的拷贝,即传递的是引用的地址值,所以还是按值传递。值传递示例:public class Test3 {public static void change(int a){a=50;}public static void main(S...
音视频开发基础(1):模拟视频技术简介
模拟视频技术是指用模拟技术对动态影像进行捕捉、记来、处理、存储、传输、复现的技术.模拟视频技术的发明、发展与模拟电视系统的发展密不可分.下面将通过模拟电视系统来介绍模拟视频技术中的基本概念. 首先,人的视觉系统的特征为电视等視稿系铳的发明、发展提供了理论依据.光线通过角膜、腫孔、晶状体的折射光线.透过玻璃体到达视网展.视网膜上分布着光感受器,光感受器在光线的剌激下...
MSP430FR6043超声波传感器设计记录
1.前言 最近项目设计了一个超声波传感器 参考TI官方的板子EVM430-FR6043搭建的电路 EVM430-FR6043评估模块是一个用于评估MSP430FR6043 MCU性能的开发平台。 MSP430FR6043 MCU是一款超低功耗器件, 集成了超声波感测模拟前端 用于精确地进行超声波测量。 专为超声波水表、热量计和燃气表而设计, MSP430FR6043 器件采用低功耗加速器 (LEA), 可实现基于高速 ADC 的信号采集以及后续优化数字信号处理, 为电池供电型计量提供了一款超低功耗、高
Java笔记 —— 值传递与“引用传递”
值传递:方法调用时,实参将它的值传递给形参。形参得到的是实参的副本,在方法内部对形参的修改不会影响实参本身。引用传递:方法调用时,实参将它的引用地址传递给形参。形参和实参指向同一个内存地址,对形参的修改会直接影响实参。很多编程语言(如 C++)同时支持这两种方式,但Java 只支持值传递。这是错误的。Java 对所有类型都是值传递,区别仅在于:基本类型传递的是数据值。引用类型传递的是引用值(内存地址)。Java 只有值传递,没有引用传递。基本类型:传递的是数值本身,方法内修改形参不影响实参。
YOLOv5改进策略|实战应用案例|YOLOv5苹果成熟度检测 ,准确率提升4.6%
苹果作为世界四⼤⽔果之⼀,富含多种维⽣素和矿物质,⼀直深受世界各地消费者的喜爱。据联 合国粮⻝及农业组织统计,全球⽔果产量中,苹果位列第⼆位,仅次于葡萄(贾等⼈,2020 )。然⽽,⼤多数苹果果实都是⼿⼯采摘的,这样的⽣产⽅法效率很低。此外,随着⼈⼝⽼龄化 和农村劳动⼒⼤量涌⼊城市,⽔果种植⾏业的劳动⼒成本也相应上升。所有这些因素都显着影响 着⽔果产品的市场竞争⼒。因此,实时⾼效采收苹果等⽔果,降低采收成本势在必⾏。基于机器 视觉的⽔果采摘机器⼈可以利⽤其信息感知来识别和采摘⽔果。
【基础笔记】值传递和引用传递 Java
值传递: 方法调用时,实际参数把它的值传递给对应的形式参数,函数接收的是原始值的一个copy,此时内存中存在两个相等的基本类型,即实际参数和形式参数,后面方法中的操作都是对形参这个值的修改,不影响实际参数的值。 引用传递: 也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,函数接收的是原始值的内存地址;在方法执行中,形参和实参内容相同,指向同一块内存...
android 蓝牙通讯demo
android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
Java学习笔记-按值传递
参数的值传递 实参必须与方法中次你故意的参数在次序和数量上匹配,在类型上兼容.类型兼容是指不需要经过显式的类型转换,实参的值就可以传递给形参.如将int型的实参值传递给double型形参. 当调用方法时,实参的值传递给形参,这个过程称为按值传递.如果是实参是变量而不是直接量,则将该变量的值传递给形参.无论形参在方法中是否改变,该变量都不受影响. package welcome; ...
深度学习工具包 DeepLearningToolbox
深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[](https://bitdeli.com/free "Bitdeli Badge")
[学习笔记]Java的值传递和引用传递,引用传递转值传递
1值传递: int,double,Integer,Double,String public class Test { public static void main(String args[]){ int i1 = 1; double d1 = 1.1; Integer I1 = 1; Double D1 = 1.1; String S1 = "一"; int i
RU DOS版、EFI版32bit/64bit BIOS常用工具
DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。
【Java学习笔记】值传递和引用传递
一 传参 传递的参数可以是简单数据类型:byte,short, int,long,float,double 也可以是引用数据类型:对象,数组。Java不允许传递方法,但是你可以传递一个引用了该方法的对象。 你可以用varargs结构传递任意数量的参数,当你不确定有多少参数时可以用这个,它其实是创建了一个数组 二。按值传递 指的是在方法调用时,传递的参数是按值的拷贝传递。示
Java自学笔记:值传递和引用传递
//值传递 public class op04 { public static void main(String[] args) { int a = 1; System.out.println(a);//1 op04.change(a); System.out.println(a);//1 } //返回值为空 public static void change(int a){ ...
Java值传递和引用传递学习笔记
Java值传递和引用传递学习笔记
Java学习笔记之Java方法值传递
在Java中,方法的参数传递方式是值传递,基本类型参数的传递方式是复制该基本类型参数,把该基本类型数值的复制品传给方法做参数,该基本类型数值和它的复制品之间没有关联关系,互不影响。 我们看以下的例子: public class PrimtiveTransferTest { public static void wrap(int a,int b){ System.ou
JAVA学习笔记(七)- 值传递与引用传递
值传递与引用传递概念值传递:在方法进行调用时,形式参数是由实际参数来传递的,方法执行中形式参数值的改变不影响实际参数的值。引用传递:就是地址传递。在方法进行调用时,实际参数的引用的是地址,而不是真正参数的值,方法执行中形式参数值的改变将会影响实际参数的值。代码实例public class Student { public int age; }public class Tool { p
Java学习笔记1--值传递,向方法传递对象参数
“Java中只有值传递” 三个例子: public class Test { public static void main(String[] args) { Date date = new Date(1234567); m1(date); System.out.println(date.getTime()); } public static void m1(Date date) { date = new Date(7654321); } } public class Test { publi
Java学习笔记(二十二)(Java的值传递机制)
1.针对于方法内变量的赋值举例: System.out.println("***********基本数据类型:****************"); int m = 10; int n = m; System.out.println("m = " + m + ", n = " + n); n = 20; System.out.println("m = " + m + ", n = " + n); System.out.println("***********引用数据类型:****
【JavaGuide学习笔记】Java 的值传递机制能完全保证数据安全吗?其实不能!
Java采用纯值传递机制:基本类型传递值拷贝,引用类型传递地址拷贝。引用类型共享堆中对象,方法内修改对象内容会影响原数据,但修改引用本身(如重新赋值)仅作用于拷贝。这并非设计缺陷,而是对象协作的基础。为确保数据安全,开发者应主动使用不可变对象、深拷贝或封装控制访问,而非依赖语言机制。在企业开发中,需平衡对象共享与副作用风险,通过设计模式(如DTO)管理状态变更。Java的值传递在灵活性与安全性之间取得了巧妙平衡。
java学习笔记-面向对象01——java参数传值机制_值传递
package 面向对象基础01; /** * 测试原理:赋值为地址的赋值,地址相同,则这些变量都是指向的是同一个对象,修改其中一个变量,就是修改该对象 * */ public class 测试值传递机制 { String name; //从属于对象的普通变量 public 测试值传递机制(String name) { this.name = name; //构造器,为...
Java学习笔记之三(按值传递和按引用传递)
方法参数按值传递和按引用传递: [list] 按值传递:所谓按值传递就是在方法内部改变参数的值并不会影响传递进来的外部对象,例如: Java代码 int i = 1; public void increment(int i){ i++; System.out.println(i); //输出为2 } System.
386



被折叠的 条评论
为什么被折叠?



