public class Concept {
int num;
public static void main(String args[])
{
Concept obj1=new Concept();
Concept obj2=obj1;
obj1.num=100;
obj2.num=200;
System.out.println(obj1.num);
System.out.println(obj2.num);
//obj1.num=null;
obj2.num=500;
System.out.println(obj1.num);
System.out.println(obj2.num);
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,这是一个简单的java程序.
输出是
200
200
500
500
Run Code Online (Sandbox Code Playgroud)
内存分配如何在这里工作?如何将null设置为Obj1.num = null?
我已经存在了ArrayList<Integer>,我想Integer在特定索引处添加1 .但是,它给我的错误是"赋值的左侧必须是变量".它是这样的:
arrayListOfIntegers.get(i) += 1;
Run Code Online (Sandbox Code Playgroud) 在我了解细节之前,我想清楚地表明我确实理解Java是按值传递而不是传递参考,但是我有点困惑,因为我看到一些函数就是这样做的.我想知道他们是怎么做到的.
我想发生什么:
public void yo() {
int a = 1;
String b = "hello";
Boolean c = false;
doSomething(a,b,c);
// a,b,c should have new values
}
public void doSomething(int x, String y, Boolean z) {
// Do Something
}
Run Code Online (Sandbox Code Playgroud)
我见过的功能是这样的:
// Works in Android Development
int[] location = new int[2];
view.getLocationInWindow(location);
// `location` has a new value now
// Same happens when you run getLocationOnScreen(arg)
Run Code Online (Sandbox Code Playgroud)
这是如何运作的?
是否可以在Java中的函数中传递Array by Value.当我们在默认情况下在函数中传递数组时,它通过引用传递,并且数组中的原始数据版本被修改.
因此想知道Java中是否存在pass by value选项?
我对此代码有疑问:
Object obj = null;
someMethod(obj);
System.out.println(obj.getId());
..
..
void someMethod(Object obj) {
obj = new Object();
obj.setId("Id1");
}
Run Code Online (Sandbox Code Playgroud)
上面的代码正在抛出NullPointerException.任何人都可以告诉我为什么即使在方法中实例化之后对象仍然为null?
为什么我的输出等于5?我期待6,因为在"addthenumber(x);"之后 line,方法被调用,我想的是方法执行计算,5变为6.所以sysout应该打印6,但它是如何5?
public class CodeMomkeyPassingvalue
{
public static void main(String[] args)
{
int x = 5;
addthenumber(x);
System.out.println(x);
}
private static void addthenumber(int number)
{
number = number+1;
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
5
Run Code Online (Sandbox Code Playgroud) 我有一个包含书籍的数组列表.我想要做的(出于各种原因)是使用While循环继续将书籍添加到我的数组列表,直到我告诉程序停止.为了让它停止,我使用扫描仪询问人类用户是否应该添加另一本书.如果用户说是,则该方法将重复,否则该方法将停止.
不幸的是,我被困在两个方面(现在).首先,我不知道如何将决定插入到方法中,我试过:
while(decision.equals("Yes"){addBooks(anyTitle,anyAuthor);},
Run Code Online (Sandbox Code Playgroud)
然而,这似乎是错误的,因为它进入一个循环(虽然我想),但它会导致2个问题:A)即使我输入其他东西,该方法也不会结束(除非我使用另一个扫描仪并包含一个中断),和B)相同的输入字段一遍又一遍地插入到数组列表中,而没有给我输入新字符串的机会.
/**
* Method to add a single book
*/
public void setOneBook(String anyTitle, String anyAuthor){
bookList.add (new Book(anyTitle,anyAuthor));
}
/**
* Method to add books to collection until the command to stop is given.
*/
public void addBooks(String anyTitle, String anyAuthor){
bookList.add (new Book(anyTitle,anyAuthor));
System.out.println("Would you like to add another book?");
String decision = keybd.next();
}
Run Code Online (Sandbox Code Playgroud)
我此刻感到非常愚蠢,所以请对自己保持嗤之以鼻的评论.
虽然这样做了,但我会搞乱我的代码,所以如果有任何变化(无论好坏),我会更新我的帖子.
由于某种原因,我的方法perfectShuffle(int [] values)正在改变传递给它的参数,请告诉我为什么这是......这对我没有意义,因为Java是一种"通过价值传递"编程语言.
public class Shuffler {
/**
* The number of consecutive shuffle steps to be performed in each call to
* each sorting procedure.
*/
private static final int SHUFFLE_COUNT = 4;
/**
* The number of values to shuffle.
*/
private static final int VALUE_COUNT = 5;
/**
* Tests shuffling methods.
*
* @param args
* is not used.
*/
public static void main(String[] args) {
System.out.println("Results of " + SHUFFLE_COUNT
+ " consecutive perfect shuffles:"); …Run Code Online (Sandbox Code Playgroud) 我正在尝试返回用户选择的文件.这很好.我可以在openFile中检查fileToOpen并且它是100%正确的,但是当我在main方法中sysout它时,我只是得到null.我想要用户选择的路径.
这是主要类:
public class Main {
public static void main(String[] args) {
File fileToOpen = null;
ReadIn openLog = new ReadIn();
openLog.openFile(fileToOpen);
System.out.println(fileToOpen);
}
}
Run Code Online (Sandbox Code Playgroud)
这是ReadIn类:
public class ReadIn extends JFrame{
public File openFile(File fileToOpen){
final JFileChooser fileChooser = new JFileChooser();
int modalToComponent=fileChooser.showOpenDialog(this);
if (modalToComponent == JFileChooser.APPROVE_OPTION) {
fileToOpen = fileChooser.getSelectedFile();
}
return fileToOpen;
}
}
Run Code Online (Sandbox Code Playgroud) 我需要从 中选取 N 个随机元素List<MyObject> objects。MyObject是一个复杂的类对象。我可以很容易地Collections.shuffle(objects)得到一个大小为 N 的子列表。
但后来我想到了一个想法。如果我创建 a List<Integer> indexes= [0, N-1],改洗此索引数组,获取一个子列表,并使用它从原始列表中获取元素,它会提高性能吗?
我的问题归结为:在 Java 中重排与轻量级对象列表之间是否存在有意义的性能差异?
ps:如果重要的话,我需要在新列表中返回随机选择,同时还将它们从原始列表中删除。