Questions tagged «java»

Java是一种流行的高级编程语言。如果您在使用或理解语言本身时遇到问题,请使用此标签。这个标签很少单独使用,最常与[spring],[spring-boot],[jakarta-ee],[android],[javafx],[gradle]和[maven]结合使用。

30
为什么省略花括号被认为是不好的做法?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心寻求指导。 8年前关闭。 为什么每个人都告诉我编写这样的代码是一种不好的做法? if (foo) Bar(); //or for(int i = 0 i < count; i++) Bar(i); 关于省略花括号的最大论据是,有时花括号可能是花括号的两倍。例如,以下代码为C#中的标签绘制发光效果。 using (Brush br = new SolidBrush(Color.FromArgb(15, GlowColor))) { for (int x = 0; x <= GlowAmount; x++) { for (int y = 0; y <= GlowAmount; y++) { g.DrawString(Text, this.Font, br, new Point(IconOffset …
177 java  c#  c++  c  coding-style 


7
可通过参数运行吗?
我需要一个“接受参数的可运行对象”,尽管我知道这种可运行对象实际上并不存在。 这可能表明我的应用程序设计存在根本缺陷,并且/或者疲倦的大脑中存在智力障碍,因此我希望在这里找到一些建议,以在不违反基本的OO原则的情况下实现以下目标: private Runnable mOneShotTask = new Runnable(String str) { public void run(String str) { someFunc(str); } }; 任何想法如何完成上述工作?
177 java  runnable 

15
无法将Openssl识别为内部或外部命令
我希望为我的应用程序生成一个应用程序签名,以后将与Facebook集成。在Facebook的一篇教程中,我找到了以下命令: keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64 在本教程中,它说通过运行此cmd,将开始我生成签名的过程。 但是,此命令给出错误: openssl is not recognized as an internal or external command 我该如何摆脱呢?

21
使用==比较Java中的浮点数有什么问题?
根据此java.sun页面,它 ==是Java中浮点数的相等比较运算符。 但是,当我键入以下代码时: if(sectionID == currentSectionID) 进入编辑器并运行静态分析,我得到:“ JAVA0078与==”相比的浮点值 什么是错的使用==比较浮点值?正确的方法是什么?

12
com.jcraft.jsch.JSchException:UnknownHostKey
我正在尝试使用Jsch在Java中建立SSH连接。我的代码产生以下异常: com.jcraft.jsch.JSchException: UnknownHostKey: mywebsite.com. RSA key fingerprint is 22:fb:ee:fe:18:cd:aa:9a:9c:78:89:9f:b4:78:75:b4 我在Jsch文档中找不到如何验证主机密钥。我在下面包含了我的代码。 import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; public class ssh { public static void main(String[] arg) { try { JSch jsch = new JSch(); //create SSH connection String host = "mywebsite.com"; String user = "username"; String password = "123456"; Session session = jsch.getSession(user, …
177 java  ssh  jsch 

17
Java中的回调函数
有没有办法在Java方法中传递回调函数? 我试图模仿的行为是传递给函数的.Net委托。 我见过有人建议创建一个单独的对象,但这似乎过于矫kill过正,但是我知道有时候矫kill过正是做事的唯一方法。

12
为什么在Java中String是不可变的?
采访中有人问我为什么String是不可变的 我这样回答: 当我们在Java中像这样创建一个字符串时,String s1="hello";将在字符串pool(hello)中创建一个对象,并且s1将指向hello。现在再次执行该操作String s2="hello";将不会创建另一个对象,但是s2将指向该对象,hello 因为JVM首先会检查如果在字符串池中是否存在相同的对象, 如果不存在,则仅创建一个新对象。 现在,如果假设Java允许串可变那么如果我们改变S1到hello world那么S2价值也将hello world因此Java字符串是不可改变的。 有谁能告诉我我的答案是对还是错?
177 java  string 

13
Java Set保留顺序?
Java Set是否保留顺序?有一种方法将Set返回给我,并且假定数据是有序的,但是遍历Set时,数据是无序的。有没有更好的方法来解决这个问题?是否需要更改方法以返回Set以外的内容?
177 java  sorting  set 

3
在Maven中指定Java版本-属性和编译器插件之间的区别
我对maven的经验不是很丰富,在尝试多模块项目时,我开始想知道如何为父maven pom中的所有子模块指定java版本。直到今天,我只使用: <properties> <java.version>1.8</java.version> </properties> 但是在研究时,我发现您还可以在maven编译器插件中指定Java版本,如下所示: <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> 然后将其包装到插件管理标签中,以启用子poms用法。因此,第一个问题是beetwen在属性和maven编译器插件中设置java版本有何区别? 我找不到明确的答案,但是在研究过程中,我发现您还可以通过以下方式指定Java版本: <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> 这表明即使我没有明确声明它也存在编译器插件。使用以下命令运行mvn软件包输出 maven-compiler-plugin:3.1:compile (default-compile) @ testproj --- 以及其他一些我未声明的插件。那么这些插件是Maven Pom的默认隐藏部分吗?beetwen在属性和maven插件配置元素中设置源/目标是否有任何区别? 还有一些其他问题-应该使用哪种方式(以及何时不相等)?哪一种最适合多模块项目,并且如果pom中指定的Java版本与JAVA_HOME中指向的版本不同,会发生什么?

1
Android Java;如何将资产文件夹中的本地JSON文件解析为ListView
我目前正在开发一个物理应用程序,该应用程序应显示公式列表,甚至可以解决其中的一些问题(唯一的问题是ListView) 这是我的主要布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="wrap_content" android:measureWithLargestChild="false" android:orientation="vertical" tools:context=".CatList" > <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/titlebar" > <TextView android:id="@+id/Title1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="@string/app_name" android:textAppearance="?android:attr/textAppearanceLarge" android:textColor="#ff1c00" android:textIsSelectable="false" /> </RelativeLayout> <ListView android:id="@+id/listFormulas" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView> </LinearLayout> 这是我的主要活动 package com.wildsushii.quickphysics; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import org.json.JSONException; import org.json.JSONObject; …

10
为什么在此示例中没有得到java.util.ConcurrentModificationException?
注意:我知道该Iterator#remove()方法。 在下面的代码示例中,我不明白为什么List.remove在main方法抛出ConcurrentModificationException,但不是在remove方法。 public class RemoveListElementDemo { private static final List<Integer> integerList; static { integerList = new ArrayList<Integer>(); integerList.add(1); integerList.add(2); integerList.add(3); } public static void remove(Integer toRemove) { for(Integer integer : integerList) { if(integer.equals(toRemove)) { integerList.remove(integer); } } } public static void main(String... args) { remove(Integer.valueOf(2)); Integer toRemove = Integer.valueOf(3); for(Integer …

8
在Java中(a == 1 && a == 2 && a == 3)可以评估为true吗?
我们知道它可以在JavaScript中使用。 但是是否可以在下面的Java条件下打印“成功”消息? if (a==1 && a==2 && a==3) { System.out.println("Success"); } 有人建议: int _a = 1; int a = 2; int a_ = 3; if (_a == 1 && a == 2 && a_ == 3) { System.out.println("Success"); } 但是通过这样做,我们正在更改实际变量。还有其他办法吗?
176 java 

5
使用流加BigDecimals
我有一个BigDecimals集合(在此示例中为LinkedList),我想将它们加在一起。是否可以为此使用流? 我注意到Stream该类有几种方法 Stream::mapToInt Stream::mapToDouble Stream::mapToLong 每种sum()方法都有一种方便的方法。但是,我们知道,float和double算术几乎总是一个坏主意。 那么,有没有一种方便的方法来汇总BigDecimals? 这是我到目前为止的代码。 public static void main(String[] args) { LinkedList<BigDecimal> values = new LinkedList<>(); values.add(BigDecimal.valueOf(.1)); values.add(BigDecimal.valueOf(1.1)); values.add(BigDecimal.valueOf(2.1)); values.add(BigDecimal.valueOf(.1)); // Classical Java approach BigDecimal sum = BigDecimal.ZERO; for(BigDecimal value : values) { System.out.println(value); sum = sum.add(value); } System.out.println("Sum = " + sum); // Java 8 approach …

13
如何在Java中哈希密码?
我需要对密码进行哈希处理以存储在数据库中。如何用Java做到这一点? 我希望使用纯文本密码,添加随机盐,然后将盐和哈希密码存储在数据库中。 然后,当用户想要登录时,我可以获取其提交的密码,从其帐户信息中添加随机盐,对其进行哈希处理,然后查看其是否等同于其帐户信息所存储的哈希密码。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.