Questions tagged «java»

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


12
Google App Engine上的Java版JDO与JPA
我想使用Struts2在Google App Engine上开发项目。对于数据库,我有两个选项JPA和JDO。你们能建议我吗?两者对我来说都是新手,我需要学习它们。因此,在您回复之后,我将重点介绍一个。 谢谢。

5
正则表达式和GWT
我的问题是:在GWT中使用正则表达式是否有很好的解决方案? 例如,我对String.split(regex)的使用不满意。GWT将代码转换为JS,然后将正则表达式用作JS正则表达式。但是我不能使用Java Matcher或Java Pattern之类的东西。但是我需要这些来进行组匹配。 有没有可能或图书馆? 我尝试了Jakarta Regexp,但是还有其他问题,因为GWT不能模拟该库使用的Java SDK的所有方法。 我希望能够在客户端使用类似这样的东西: // Compile and use regular expression Pattern pattern = Pattern.compile(patternStr); Matcher matcher = pattern.matcher(inputStr); boolean matchFound = matcher.find(); if (matchFound) { // Get all groups for this match for (int i=0; i<=matcher.groupCount(); i++) { String groupStr = matcher.group(i); System.out.println(groupStr); } }
81 java  regex  gwt 

9
使用HttpRequest.execute()的异常:无效使用SingleClientConnManager:仍分配了连接
我正在使用google-api-client-java 1.2.1-alpha执行POST请求,并在我执行execute()HttpRequest时得到以下堆栈跟踪信息。 在我捕获并忽略从先前POST到相同URL的403错误并重新用于后续请求的传输之后,它立即发生。(这是将多个条目插入同一ATOM提要的循环)。 403之后,我应该做些什么来“清理”吗? Exception in thread "main" java.lang.IllegalStateException: Invalid use of SingleClientConnManager: connection still allocated. Make sure to release the connection before allocating another one. at org.apache.http.impl.conn.SingleClientConnManager.getConnection(SingleClientConnManager.java:199) at org.apache.http.impl.conn.SingleClientConnManager$1.getConnection(SingleClientConnManager.java:173) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:390) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554) at com.google.api.client.apache.ApacheHttpRequest.execute(ApacheHttpRequest.java:47) at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:207) at au.com.machaira.pss.gape.RedirectHandler.execute(RedirectHandler.java:38) at au.com.machaira.pss.gape.ss.model.records.TableEntry.executeModification(TableEntry.java:81) 为什么下面的代码会尝试获取新的连接?

5
为什么整数类的缓存值在-128到127的范围内?
关于我之前的问题,为什么与Integer.valueOf(String)进行==比较会得出127和128的不同结果?,我们知道Integer class有一个缓存用于存储-128和之间的值127。 只是想知道为什么在-128和127之间? Integer.valueOf()文档指出,它“缓存经常请求的值”。但是,-128和之间的值127是否经常被要求是真实的?我认为经常要求的价值观是非常主观的。 这背后有什么可能的原因吗? 从文档中还指出:“ ..并且可能会缓存此范围之外的其他值。 ” 如何实现?
81 java  caching 

8
G1上的Java 7(JDK 7)垃圾收集和文档
Java 7已经出现了一段时间,但是我在垃圾收集器(尤其是新的G1收集器)的配置上找不到任何好的资源。 我的问题: G1是Java 7中的默认收集器吗?如果不是,我如何激活G1? g1在Java7中有哪些可选设置? 是否对其他收集器(例如cms或Java 7中的并行收集器)进行了更改? 在哪里可以找到有关Java 7中垃圾回收的良好文档?


5
使用log4j创建多个具有不同内容的日志文件
有没有一种方法可以配置log4j,以便将不同级别的日志记录输出到不同的附加程序? 我正在尝试设置多个日志文件。主日志文件将捕获所有类的所有INFO及以上消息。(在开发中,它将捕获所有DEBUG及以上消息,并捕获特定类的TRACE。) 然后,我想要一个单独的日志文件。该日志文件将捕获类的特定子集的所有DEBUG消息,而忽略任何其他类的所有消息。 有没有办法得到我想要的东西? 谢谢,丹
81 java  log4j 


10
clone()vs复制构造函数vs工厂方法?
我对使用Java实现clone()进行了快速的搜索,发现:http : //www.javapractices.com/topic/TopicAction.do?Id=71 它具有以下注释: 复制构造函数和静态工厂方法提供了克隆的替代方法,并且易于实现。 我要做的只是制作一个深层副本。实现clone()似乎很有意义,但是这篇在Google上排名很高的文章使我有些害怕。 这是我注意到的问题: 复制构造函数不适用于泛型。 这是一些不会编译的伪代码。 public class MyClass<T>{ .. public void copyData(T data){ T copy=new T(data);//This isn't going to work. } .. } 示例1:在泛型类中使用复制构造函数。 工厂方法没有标准名称。 有一个可重用代码的接口是非常好的。 public class MyClass<T>{ .. public void copyData(T data){ T copy=data.clone();//Throws an exception if the input was not cloneable } .. …
81 java  clone 

9
Java是否有OAuth 2.0提供程序实现?(不是oauth客户端)
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 4年前关闭。 改善这个问题 所以基本上我想用OAuth 2.0保护我的API,并实现一个OAuth Provider来启用对accessTokens的获取。 开箱即用JOAuth可以完成吗? 是否有人已经使用开源库(Java)实现了类似的东西?


7
从Java字符串中剥离所有不可打印字符的最快方法
String用Java剥离所有不可打印字符的最快方法是什么? 到目前为止,我已经尝试并测量了138字节,131个字符的字符串: 字符串的replaceAll()-最慢的方法 517009个结果/秒 预编译模式,然后使用Matcher的 replaceAll() 637836个结果/秒 使用StringBuffer,使用codepointAt()一对一获取代码点并追加到StringBuffer 711946结果/秒 使用StringBuffer,使用charAt()一对一获取字符并追加到StringBuffer 1052964结果/秒 预分配char[]缓冲区,使用charAt()一对一获取字符并填充该缓冲区,然后转换回String 2022653个结果/秒 预分配2个char[]缓冲区-旧的和新的,使用一次获取现有String的所有字符,一次又一次getChars()遍历旧缓冲区并填充新缓冲区,然后将新缓冲区转换为String-我自己最快的版本 2502502结果/秒 具有2个缓冲区的相同内容-仅使用byte[],getBytes()并将编码指定为“ utf-8” 857485结果/秒 具有2个byte[]缓冲区的相同内容,但将编码指定为常量Charset.forName("utf-8") 791076个结果/秒 具有2个byte[]缓冲区的相同内容,但是将编码指定为1字节本地编码(几乎没有理智的事情) 370164结果/秒 我的最佳尝试是: char[] oldChars = new char[s.length()]; s.getChars(0, s.length(), oldChars, 0); char[] newChars = new char[s.length()]; int newLen = 0; for (int j = 0; j < s.length(); j++) …

2
Android AudioRecord强制另一个流到MIC音频源
更新3:我已经与另一位开发人员建立了合作伙伴关系,我们似乎发现有人可以为此花很多钱。他们给我们发送了一个测试apk,它似乎有效。我们将继续购买源。我希望我们不会被骗。我一发现就会更新 更新2:仍在努力。经过更多痛苦的日子后,我现在认为没有什么幻想了,但他们只是在本机端使用AudioFlinger(请参阅链接)来调用AudioFlinger :: setParameters 我现在正在寻找如何编写一个简单的JNI来使用audio_io_handle_t ioHandle,const String8&keyValuePairs调用AudioFlinger :: setParameters 我知道keyValuePairs可以是什么,但不是关于audio_io_handle_t的线索 更新:我现在相信其他应用程序可能会在CAF中使用QCOM音频。见audio_extn_utils_send_audio_calibration在链接相同 和voice_get_incall_rec_snd_device在链接相同 我没有C / ++知识。如何确定是否可以从本机端调用这些方法?由于其他应用程序可以,因此必须有一种方法。 我每天至少要花5-6个小时来努力解决40余天。我不确定SO是否允许,但我也很乐意为正确答案捐款。 我有一个使用VOICE_CALL音频源的通话记录应用程序。尽管ASOP并未实现/授权它,但大多数制造商已经实现了VOICE_CALL,并且使用VOICE_CALL音频源的应用程序在许多设备上都能正常工作。直到Android 6。 Google使用Android 6更改了此行为。现在,打开VOICE_CALL音频源需要android.permission.CAPTURE_AUDIO_OUTPUT,该权限仅授予系统应用程序。 这实质上会停止通话录音,或者应该停止通话录音。好吧,它适用于我的和200多个其他通话记录应用程序,其中3个已经找到解决此限制的方法。 我一直在使用Android 6的许多不同手机上尝试这些应用程序,并发现它们在记录方式上的某些特征。 它们都使用Android AudioRecord类并打开MIC音频源。我也做; 但是在我的应用程序上,我只能从MIC而不是从对方获得音频。我发现告诉他们在开始录制之前或之后,他们正在发出某种系统调用。 查看以下日志表格,其中一个成功记录VOICE_CALL的应用程序之一,即使它使用MIC进行记录也是如此。看起来应用程序似乎是一些如何将VOICE_CALL音频源混入/路由/流/合并到MIC的方式。 - D/audio_hw_primary: in_set_parameters: enter: kvpairs=input_source=1;routing=-2147483644 - D/PermissionCache: checking android.permission.MODIFY_AUDIO_SETTINGS for uid=10286 => granted (432 us) - D/audio_hw_primary: in_set_parameters: enter: kvpairs=input_source=4;routing=-2147483584;format=1 - D/audio_hw_primary: select_devices: …

1
如何在Android中实现自定义可折叠工具栏?
使用本教程来实现“灵活空间”模式(带有折叠工具栏的模式)。 我正在尝试实现与Lollipop Contacts活动中类似的效果,该活动在开始时进入活动时,视图仅是图像标题的一部分: 然后,用户可以向下滚动图像下方的布局以显示更多布局,直到达到最大值为止: 在我的应用中,我无法使其正常运行。 发生的情况是,在进入活动时,图像标头以其最大大小,AppBarLayout的大小显示,就像上面的布局一样,并且与Lollipop Contacts活动不同,后者仅显示图像的一部分。 这是设置AppBarLayout的高度的代码(我希望屏幕的宽度为最大高度): int widthPx = getResources().getDisplayMetrics().widthPixels; AppBarLayout appbar = (AppBarLayout)findViewById(R.id.appbar); appbar.setLayoutParams(new CoordinatorLayout.LayoutParams(CoordinatorLayout.LayoutParams.MATCH_PARENT, widthPx)); 这是设置RecyclerView的代码。使用scrollToPosition进行了尝试,认为它可以提升RecyclerView的视图,但它完全没有效果: mRecyclerView = (RecyclerView) findViewById(R.id.activity_profile_bottom_recyclerview); mRecyclerView.setHasFixedSize(true); // use a linear layout manager mLayoutManager = new LinearLayoutManager(this); mRecyclerView.setLayoutManager(mLayoutManager); // specify an adapter (see also next example) if(mAdapter == null){ mAdapter = new …

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.