在Java中,在没有初始化的情况下声明类级实例变量会花费内存吗?
例如:int i;如果我没有初始化它,是否使用任何内存i = 5;?
细节:
我有一个巨大的超级类,许多不同的(没有足够的不同,有自己的超类)子类扩展.一些子类不使用超类声明的每个单元.我可以简单地将这些原语保留为未初始化,并仅在必要的子类中初始化它们以节省内存吗?
根据某些条件(除了使用不同的顺序再次编写它们)之外,操作顺序的最佳方法是什么?
假设有一个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()根据优先级使方法调用其他三种方法?
注意:我想说明优先级可以在人与人之间发生变化.
我的一个朋友在他的电脑上粘贴了一个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没有经验.
我想将英语(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"未被识别为其中的一部分
我正在检查变量是否已初始化,但此时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检查的要点是确定它是否已初始化.
这是什么最好的做法?
在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); 对我来说似乎很难看.
我的程序正在读取文本文件并根据文本执行操作。但正文的第一行就有问题。显然它以“”开头。这搞乱了我的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
为什么会发生这种情况以及如何解决这个问题?我希望它意识到该行以“!”开头 不是 ””
我正在尝试将多个面板添加到另一个面板。我希望它们彼此重叠,所以我正在使用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中,我给我的对象提供了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)