小编WVr*_*ock的帖子

未初始化的原始实例变量是否使用内存?

在Java中,在没有初始化的情况下声明类级实例变量会花费内存吗?
例如:int i;如果我没有初始化它,是否使用任何内存i = 5;

细节:

我有一个巨大的超级类,许多不同的(没有足够的不同,有自己的超类)子类扩展.一些子类不使用超类声明的每个单元.我可以简单地将这些原语保留为未初始化,并仅在必要的子类中初始化它们以节省内存吗?

java primitive memory-management initialization

42
推荐指数
4
解决办法
5630
查看次数

改变方法调用类的不同实例的顺序

根据某些条件(除了使用不同的顺序再次编写它们)之外,操作顺序的最佳方法是什么?

假设有一个Person类,Person的每个对象代表一个不同的人.

class Person{
    int eatingPriority = 3;
    int sleepingPriority = 2;
    int recreationPriority = 1;

    void eat() {/*eats*/}
    void sleep() {/*sleeps*/}
    void watchTv() {/*watches tv*/}

    void satisfyNeeds() {
        //HOW TO DO THIS
    }
}
Run Code Online (Sandbox Code Playgroud)

如何satisfyNeeds()根据优先级使方法调用其他三种方法?

注意:我想说明优先级可以在人与人之间发生变化.

java methods call

17
推荐指数
5
解决办法
1793
查看次数

找不到com.android.tools.build:gradle:2.2.2

我的一个朋友在他的电脑上粘贴了一个libgdx项目文件夹并将项目发送给我(通过谷歌驱动器).我们都使用Android Studio.我下载并导入了项目,它在模拟器上正常工作.但是它无法在桌面上运行.在他的电脑上,它适用于桌面和模拟器.

当我尝试在桌面上运行它时,Android Studio会给出以下错误消息:

Error:Gradle: A problem occurred configuring root project 'bouncerGDX - Copy'.

> Could not resolve all dependencies for configuration ':classpath'.

> Could not find com.android.tools.build:gradle:2.2.2.
 Searched in the following locations:

https://repo1.maven.org/maven2/com/android/tools/build/gradle/2.2.2/gradle-2.2.2.pom

https://repo1.maven.org/maven2/com/android/tools/build/gradle/2.2.2/gradle-2.2.2.jar

https://oss.sonatype.org/content/repositories/snapshots/com/android/tools/build/gradle/2.2.2/gradle-2.2.2.pom

https://oss.sonatype.org/content/repositories/snapshots/com/android/tools/build/gradle/2.2.2/gradle-2.2.2.jar
 Required by:
     :bouncerGDX - Copy:unspecified
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?我对Gradle没有经验.

java gradle libgdx android-studio

17
推荐指数
2
解决办法
4万
查看次数

如何在java中将"i"与土耳其语匹配?

我想将英语(i)的"I"的小写字母与土耳其语(i)的"İ"的小写字母相匹配.它们是相同的字形,但它们不匹配.当我做System.out.println("?".toLowerCase());字符i和打印点(此网站不能正确显示)

有没有办法匹配那些?(最好没有硬编码)我想让程序匹配与语言和utf代码无关的相同字形.这可能吗?

我测试了规范化没有成功.

public static void main(String... a) {
    String iTurkish = "\u0130";//"?";
    String iEnglish = "I";
    prin(iTurkish);
    prin(iEnglish);
}

private static void prin(String s) {
    System.out.print(s);
    System.out.print(" -  Normalized : " + Normalizer.normalize(s, Normalizer.Form.NFD));
    System.out.print(" - lower case: " + s.toLowerCase());
    System.out.print(" -  Lower case Normalized : " + Normalizer.normalize(s.toLowerCase(), Normalizer.Form.NFD));
    System.out.println();

}
Run Code Online (Sandbox Code Playgroud)

结果未在网站中正确显示,但第一行(iTurkish)仍然具有? 接近小写的i.

目的和问题

这将是一个多语言词典.我希望程序能够识别"İFEL"以"if"开头.为了确保它们不区分大小写,我首先将两个文本转换为小写.İFEL成为i(点)fel并且"if"未被识别为其中的一部分

java unicode normalization unicode-normalization

9
推荐指数
1
解决办法
831
查看次数

在null检查时可能没有初始化错误

我正在检查变量是否已初始化,但此时netbeans正在给我variable reader might not have been initialized警告.我该如何修复/压制这个?

这是我的代码(摘要):

final Reader reader;
try {
        reader = new Reader(directory);
        //additional stuff that can cause an exception
    } catch (Exception ex) {
        //do stuff
    } finally {
        if (reader != null);
    }
Run Code Online (Sandbox Code Playgroud)

if检查的要点是确定它是否已初始化.

这是什么最好的做法?

java final initialization

8
推荐指数
1
解决办法
2847
查看次数

在Java中使用arrayList增加Integer的最佳方法

在ArrayList中增加Integer的最简洁方法是什么?

ArrayList<Integer> ints = new ArrayList<>();
ints.add(5);
ints.add(9);
Run Code Online (Sandbox Code Playgroud)

增加最后一个元素的最简洁方法是什么?

ints.set(ints.size() - 1, ints.get(ints.size() - 1) + 1); 对我来说似乎很难看.

java integer arraylist

6
推荐指数
2
解决办法
2万
查看次数

字符串以空字符串 ("") 开头

我的程序正在读取文本文件并根据文本执行操作。但正文的第一行就有问题。显然它以“”开头。这搞乱了我的startsWith()支票。

为了理解这个问题,我使用了这段代码:

   System.out.println(thisLine 
        + " -- First char : (" + thisLine.charAt(0) 
        + ") - starts with ! : " 
        + thisLine.startsWith("!"));
Run Code Online (Sandbox Code Playgroud)

String thisLine是文本文件中的第一行。

它将以下内容写入控制台: ! use ! to add comments. Lines starting with ! are not read. -- First char : () - starts with ! : false

为什么会发生这种情况以及如何解决这个问题?我希望它意识到该行以“!”开头 不是 ””

java string text

5
推荐指数
1
解决办法
2701
查看次数

“该项目没有构建脚本”错误

我正在使用 Net Beans (v8.0.2。) 以前在这个项目中没有这样的问题,但在我的项目上工作了几个小时后,我尝试再次将它作为 jar 进行测试。我按了“清理并构建”,我收到了“项目没有构建脚本”的错误消息。在此处输入图片说明

我不知道为什么会发生这种情况。我该如何解决这个问题?

请注意,当我按“运行项目”时,程序可以正常工作。

netbeans build-script netbeans-8

2
推荐指数
1
解决办法
3228
查看次数

使用JLayeredPane将多个JPanel添加到一个JPanel

我正在尝试将多个面板添加到另一个面板。我希望它们彼此重叠,所以我正在使用JLayeredPane。我为每个按钮都添加了一个按钮。工作时应出现两个按钮。

import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;

public class PanelTest {
public static void main(String[] args) {
    JFrame frame = new JFrame();
    JPanel mainPanel = new JPanel();
    JPanel panel1 = new JPanel();
    JPanel panel2 = new JPanel();

    JLayeredPane layers = new JLayeredPane();
    mainPanel.add(layers);

    panel2.setOpaque(false);
    panel1.setOpaque(false);
    panel1.setVisible(true);
    panel2.setVisible(true);

    panel1.add(new JButton("1111111111"));
    panel2.add(new JButton("2"));

    frame.setContentPane(mainPanel);
    layers.add(panel1, new Integer(2));
    layers.add(panel2, new Integer(3));

    frame.setVisible(true);
    frame.setSize(500, 500);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Run Code Online (Sandbox Code Playgroud)

仅显示mainPanel的灰色背景。我究竟做错了什么?

java swing jpanel jlayeredpane

1
推荐指数
1
解决办法
2363
查看次数

哪个更快:int比较与对象比较

在JAVA中,我给我的对象提供了id号(int).我想比较给定的对象是否是预期的对象.

我应该使用哪个?哪个更快?

if(civ!=this)
Run Code Online (Sandbox Code Playgroud)

要么

if(civ.id!=id)
Run Code Online (Sandbox Code Playgroud)

编辑:

额外的信息:

Class Civ {
int id;

public Civ(int i){
id = i;
 }

public boolean checkIfOther(Civ civ){
Run Code Online (Sandbox Code Playgroud)

这个:

  return (civ.id !=id);
Run Code Online (Sandbox Code Playgroud)

或这个:

  return(civ !=this);
Run Code Online (Sandbox Code Playgroud)

-

}
}
Run Code Online (Sandbox Code Playgroud)

java int optimization compare object

-4
推荐指数
1
解决办法
58
查看次数