Questions tagged «java»

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

3
在池中关闭JDBC连接
我们使用JDBC的标准代码部分是... Connection conn = getConnection(...); Statement stmt = conn.conn.createStatement (ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); ResultSet rset = stmt.executeQuery (sqlQuery); // do stuff with rset rset.close(); stmt.close(); conn.close(); 问题1:使用连接池时,是否应该在最后关闭连接?如果是这样,合并的目的就不会丢失吗?如果不是,那么DataSource如何知道何时释放Connection的特定实例并可以重用?我对此感到有些困惑,任何指针都表示赞赏。 问题2:以下方法是否接近标准?看起来像是尝试从池中获取连接,并且如果无法建立DataSource,请使用老式的DriverManager。我们甚至不确定哪个部分正在运行时执行。重复以上问题,是否应该关闭这种方法发出的连接? 谢谢-MS synchronized public Connection getConnection (boolean pooledConnection) throws SQLException { if (pooledConnection) { if (ds == null) { try { Context envCtx = (Context) …

13
创建数百万个小型临时对象的最佳实践
创建(和释放)数百万个小对象的“最佳实践”是什么? 我正在用Java编写国际象棋程序,并且搜索算法为每个可能的移动生成一个“移动”对象,并且名义搜索可以轻松地每秒生成超过一百万个移动对象。JVM GC能够处理我的开发系统上的负载,但是我对探索以下替代方法感兴趣: 最大限度地减少垃圾收集的开销,并且 减少低端系统的峰值内存占用量。 绝大多数对象的寿命很短,但是生成的移动的大约1%被保留并作为保留值返回,因此任何池化或缓存技术都必须提供排除特定对象被重复使用的能力。 我不希望完全编写出示例代码,但希望您提供进一步阅读/研究的建议,或者具有类似性质的开源示例。

14
ResultSet到JSON的最有效转换?
以下代码ResultSet使用JSONArray和将转换为JSON字符串JSONObject。 import org.json.JSONArray; import org.json.JSONObject; import org.json.JSONException; import java.sql.SQLException; import java.sql.ResultSet; import java.sql.ResultSetMetaData; public class ResultSetConverter { public static JSONArray convert( ResultSet rs ) throws SQLException, JSONException { JSONArray json = new JSONArray(); ResultSetMetaData rsmd = rs.getMetaData(); while(rs.next()) { int numColumns = rsmd.getColumnCount(); JSONObject obj = new JSONObject(); for (int …
109 java  sql  json  resultset 

10
获取鼠标位置
我想在Java中模拟鼠标的自然运动(从这里到另一个像素)。为此,我需要知道起始坐标。 我找到了方法event.getX()和event.getY(),但是我需要一个事件... 我如何不做任何事情(或看不见的事情)就知道职位? 谢谢
109 java  mouse 

13
如何从字符串中提取数字并获取整数数组?
我有一个String变量(基本上是一个带有未指定数字数的英语句子),我想将所有数字提取到一个整数数组中。我想知道是否有使用正则表达式的快速解决方案? 我使用了Sean的解决方案,并对其进行了一些更改: LinkedList<String> numbers = new LinkedList<String>(); Pattern p = Pattern.compile("\\d+"); Matcher m = p.matcher(line); while (m.find()) { numbers.add(m.group()); }
109 java  arrays  regex  string 

13
如何等待多个线程完成?
有什么方法可以简单地等待所有线程进程完成?例如,假设我有: public class DoSomethingInAThread implements Runnable{ public static void main(String[] args) { for (int n=0; n<1000; n++) { Thread t = new Thread(new DoSomethingInAThread()); t.start(); } // wait for all threads' run() methods to complete before continuing } public void run() { // do something here } } 如何更改此main()方法,以便该方法在注释处暂停,直到所有线程的run()方法退出?谢谢!


29
如何提高Netbeans的性能?
有没有一种真正的方法来使Netbeans加载和工作更快? 当您编码一段时间后,它太慢并且会变得更糟。它吃光了我所有的RAM。 我在Windows计算机上,尤其是Windows Server 2008 Datacenter Edition x64、4Gb RAM,3Ghz Core 2 Duo处理器等。我正在使用x64 JDK。我使用NOD32防病毒软件,因为它对我而言是最佳的计算机性能。 在任务管理器中,netbeans.exe仅显示不超过20 Mb,java.exe则显示不超过600Mb。 我的项目是一个J2EE Web应用程序,有500多个类,仅不包括项目库(外部)。当我说慢时,我的意思是3、4、5分钟或更长时间的Netbeans被冻结了。 如果要读取NetBeans的所有文件以获取错误警告,svn状态等文件的状态,我的项目对Netbeans来说是否太大?我可以禁用所有这些吗?是否可以将其设置为仅在打开文件时扫描? 打开所有工具后,我的CPU使用率通常为30%,我的意思是Netbeans,MS SQL Manager,记事本,XMLSpy,任务管理器,Delphi,VirtualBox。Netbeans比我的虚拟化系统占用更多的RAM。 在Linux中,与在同一台计算机(Ubuntu 8.04 x64)中的Windows一样慢。 Netbeans团队确实提高了启动速度,但是当它打开时,它开始缓存所有内容。 我使用了一些JVM参数来设置较高的内存使用率,而其他一些则: "C:\Program Files\NetBeans Dev\bin\netbeans.exe" -J-Xms32m -J-Xmx512m -J-Xverify:none -J-XX:+CMSClassUnloadingEnabled 但是它仍然很慢。

3
不建议使用的ManagedQuery()问题
我有这种方法: public String getRealPathFromURI(Uri contentUri) { String[] proj = { MediaStore.Images.Media.DATA }; Cursor cursor = managedQuery(contentUri, proj, null, null, null); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); } 不幸的是,编译器向我显示了以下问题: Cursor cursor = managedQuery(contentUri, proj, null, null, null); 因为managedQuery()不推荐使用。 不使用该如何改写此方法managedQuery()?
109 java  android  deprecated 

15
HashMap的构建器
Guava为Java类型提供了很棒的工厂方法,例如Maps.newHashMap()。 但是,还有Java Maps的构建器吗? HashMap<String,Integer> m = Maps.BuildHashMap. put("a",1). put("b",2). build();
109 java  collections  guava 


15
用于密码验证的Regexp Java
我正在创建用于密码验证的正则表达式,以在Java应用程序中用作配置参数。 regexp是: ^.*(?=.{8,})(?=..*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$ 密码策略为: 至少8个字符 包含至少一位数字 包含至少一个较低的Alpha字符和一个较高的Alpha字符 一组特殊字符(@#%$^等)中包含至少一个字符 不包含空格,制表符等。 我只缺少第5点。我无法进行正则表达式检查空间,制表符,回车等。 有人可以帮我吗?
109 java  regex 

12
如何从Java的String表示中获取Locale?
是否有一种巧妙的方法可以从Locale 方法返回的“程序名称” 中获取Locale实例toString()?一个明显且丑陋的解决方案是解析String,然后根据该字符串构造一个新的Locale实例,但是也许有一种更好的方法/现成的解决方案? 我需要将一些特定于语言环境的设置(包括语言环境本身)存储在SQL数据库中,但是将序列化的语言环境对象放在那里是很难的。我宁愿存储它们的String表示形式,在细节上似乎也足够了。
109 java  locale 

8
Java队列中的add和offer方法有什么区别?
以http://java.sun.com/j2se/1.5.0/docs/api/java/util/PriorityQueue.html#offer(E)PriorityQueue为例 谁能给我一个例子,Queue其中add和offer方法有所不同? 根据Collection文档,该add方法通常会试图确保元素存在Collection而不是添加重复元素。所以我的问题是add和offer方法之间有什么区别? 该offer方法是否会添加重复项?(我怀疑这是因为如果a Collection仅包含不同的元素,则会绕开它)。 编辑:在PriorityQueue中add和offer方法是相同的方法(见我的回答如下)。谁能给我一个与add和offer方法不同的类的示例?
109 java  queue  add 


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.