Questions tagged «java»

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

7
使用IntelliJ设置Scala
我有安装了scala插件的Intellij Ultimate 11.1。 我使用自制软件安装了scala 2.9.2,它将scala放入: /usr/local/Cellar/scala/2.9.2> >which scala /usr/local/bin/scala >scala -version Scala code runner version 2.9.2 -- Copyright 2002-2011, LAMP/EPFL 创建一个新的Java模块项目,我得到以下信息: 有人可以帮我解决这些问题吗,为什么scala插件无法使这项工作立即可用?:)

8
Google Play服务更新到版本13后,出现错误
如何解决此错误? 原因:java.lang.illegalargumentexception 11-01 11:08:12.845:E / AndroidRuntime(28885):原因:java.lang.IllegalStateException:应用程序的AndroidManifest.xml中的元数据标记的值不正确。预期为4030500,但发现为0。元素中必须具有以下声明: google-play-services_lib清单: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.android.gms" android:versionCode="4030530" android:versionName="4.0.30 (889083-30)" > <uses-sdk android:minSdkVersion="8"/> </manifest> public void loginGooglePlus() { aHelper.setup(this, GameHelper.CLIENT_APPSTATE | GameHelper.CLIENT_GAMES); mHelper = aHelper.getAppStateClient(); //crash is here mHelper.connect(); } 完整的错误日志: 11-01 11:38:13.507: E/AndroidRuntime(31297): FATAL EXCEPTION: main 11-01 11:38:13.507: E/AndroidRuntime(31297): java.lang.RuntimeException: Unable to start …





5
jQuery,Spring MVC @RequestBody和JSON-使之协同工作
我想要双向JSON到Java的序列化 我正在成功使用Java到JSON到jQuery的路径...(@ResponseBody)例如 @RequestMapping(value={"/fooBar/{id}"}, method=RequestMethod.GET) public @ResponseBody FooBar getFooBar( @PathVariable String id, HttpServletResponse response , ModelMap model) { response.setContentType("application/json"); ... } 在JQuery中,我使用 $.getJSON('fooBar/1', function(data) { //do something }); 这很好用(例如,感谢所有回答者,注释已经可以使用了) 但是,我该如何反向:使用RequestBody将JSON序列化回Java对象吗? 无论我尝试什么,我都无法工作: @RequestMapping(value={"/fooBar/save"}, method=RequestMethod.POST) public String saveFooBar(@RequestBody FooBar fooBar, HttpServletResponse response , ModelMap model) { //This method is never called. (it does …

10
Log4J:创建Logger实例的策略
我决定将Log4J日志记录框架用于新的Java项目。我想知道应该使用什么策略来创建/管理Logger实例,为什么? 每个类一个Logger实例,例如 class Foo { private static final Logger log = Logger.getLogger(Foo.class); } 每个线程一个Logger实例 每个应用程序一个Logger实例 水平切片:应用程序每一层(例如,视图层,控制器层和持久层)中Logger的一个实例 垂直切片:应用程序功能分区内Logger的一个实例 注意:这些文章已在某种程度上考虑了此问题: 创建Log4j记录器的开销是多少
70 java  logging  log4j 

8
Java 8:lambda表达式中的强制检查异常处理。为什么是强制性的而不是可选性的?
我正在使用Java 8的新lambda功能,发现Java 8提供的实践确实很有用。但是,我想知道是否有一种很好的方法来解决以下情况。假设您有一个对象池包装器,需要某种工厂来填充对象池,例如(使用java.lang.functions.Factory): public class JdbcConnectionPool extends ObjectPool<Connection> { public ConnectionPool(int maxConnections, String url) { super(new Factory<Connection>() { @Override public Connection make() { try { return DriverManager.getConnection(url); } catch ( SQLException ex ) { throw new RuntimeException(ex); } } }, maxConnections); } } 将功能接口转换为lambda表达式后,上面的代码变为: public class JdbcConnectionPool extends ObjectPool<Connection> { …


5
解释Collections。<String> emptyList()的语法
我只是研究了通用编程,List&lt;E&gt;接口和ArrayList,所以我可以理解下面的语句。 ArrayList&lt;String&gt; list = new ArrayList&lt;String&gt;(); 但是我不理解在浏览网络时看到的下一条语句。 List&lt;String&gt; list2 = Collections.&lt;String&gt;emptyList(); 什么Collections啊 为什么不是Collections&lt;E&gt;还是Collections&lt;String&gt;? 为什么&lt;String&gt;将方法名称放在前面emptyList? (emptyList&lt;String&gt;()对于Generic是否正确?) 该声明是什么意思?

5
这是JVM错误还是“预期行为”?
我注意到了一些意外的行为(相对于我的个人期望而言是意外的),我想知道是否是JVM中存在错误,或者这可能是一种边缘情况,在这种情况下我不了解某些确切的细节应该发生。假设我们自己在main方法中具有以下代码: int i; int count = 0; for(i=0; i &lt; Integer.MAX_VALUE; i+=2){ count++; } System.out.println(i++); 天真的期望是这样会印刷Integer.MAX_VALUE-1,最大的甚至可以代表int。但是,我认为整数算术应该在Java中“翻转”,因此将1加到会Integer.MAX_VALUE导致Integer.MIN_VALUE。由于Integer.MIN_VALUE仍然小于Integer.MAX_VALUE,因此循环将循环遍历负数甚至整数。最终它将回到0,并且此过程应作为无限循环重复进行。 当我实际运行此代码时,会得到不确定的结果。打印的结果往往大约为一百万,但是确切的值却有所不同。因此,当我认为循环应该是无限循环时,循环不仅终止了,而且似乎随机终止了。这是怎么回事? 我的猜测是,这要么是JVM中的错误,要么是正在进行许多时髦的优化,从而产生了预期的行为。哪有

5
为什么在HashMap.clear()中不再使用Arrays.fill()?
我注意到在实施时有些奇怪HashMap.clear()。这就是在OpenJDK 7u40中的样子: public void clear() { modCount++; Arrays.fill(table, null); size = 0; } 这就是从OpenJDK 8u40开始的样子: public void clear() { Node&lt;K,V&gt;[] tab; modCount++; if ((tab = table) != null &amp;&amp; size &gt; 0) { size = 0; for (int i = 0; i &lt; tab.length; ++i) tab[i] = null; } } …
70 java  arrays  hashmap  java-8 

22
如何获得两个数组之间的交集作为新数组?
在各种情况下,我多次面对这个问题。尽管我熟悉C或Java,但它对所有编程语言都是通用的。 让我们考虑两个数组(或集合): char[] A = {'a', 'b', 'c', 'd'}; char[] B = {'c', 'd', 'e', 'f'}; 如何获得两个数组之间的公共元素作为新数组?在这种情况下,数组A和B的交集为char[] c = {'c', 'd'}。 我想避免一个数组在另一个数组内的重复迭代,这将使执行时间增加(A的长度乘以B的长度),这对于大型数组而言实在太多了。 有什么方法可以在每个数组中进行一次传递来获取公共元素?
70 java  c++  c  algorithm 

14
附加Java源代码
我一生都无法将Java源代码附加到eclipse上,因此我可以看到该语言的内部工作原理。甚至没有像String Class这样简单的东西。 当我运行java -version时,这就是我所拥有的: java version "1.6.0_14" Java(TM) SE Runtime Environment (build 1.6.0_14-b08) Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode, sharing) 我正在从以下网站下载Java资源:http: //download.java.net/jdk6/source/ 当我附加它时,它说: The JAR file "C:\Program Files\Java\jre6\jdk-6u14-fcs-src-b08-jrl-21_may_2009.jar" has no source attachment. 我究竟做错了什么?
70 eclipse  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.