有没有一种方法可以复制数组的一部分(不是arraylist)并从中创建一个新数组?
Example:
[1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
并从中创建一个新数组:
[1,2,3]
Run Code Online (Sandbox Code Playgroud)
有没有一行/方法可以做到这一点?
如何在使用套接字连接创建的BufferedReader和PrintWriter上设置超时?这是我现在为服务器提供的代码,直到服务器或客户端崩溃为止:
while(isReceiving){
str = null;
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter pw = new PrintWriter(socket.getOutputStream(), true);
while ((str = br.readLine()) != null){
System.out.println("Processing command " + str);
pw.println(client.message(str));
}
}
Run Code Online (Sandbox Code Playgroud)
在这段代码的范围之外,我已经施加了1000毫秒的套接字超时,它在等待初始连接时按预期工作.但程序阻塞在(str = br.readLine()).如果客户端挂起或崩溃,它永远不会停止阻止,除非我终止进程(即使这样也不总是有效).
有问题的客户端代码与此非常相似,并且以类似的方式阻塞.
由于Java 1.4没有枚举,我正在做这样的事情:
public class SomeClass {
public static int SOME_VALUE_1 = 0;
public static int SOME_VALUE_2 = 1;
public static int SOME_VALUE_3 = 2;
public void receiveSomeValue(int someValue) {
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
receiveSomeValue的调用者应传递这3个值,但他可以传递任何其他int.如果它是枚举,则调用者只能传递一个有效值.
应该receiveSomeValue抛出一个InvalidValueException吗?
什么是Java 5枚举的好方法?
调试java.lang.OutOfMemoryError
异常的最佳方法是什么?
当我们的应用程序发生这种情况时,我们的应用服务器(Weblogic)会生成堆转储文件.我们应该使用堆转储文件吗?我们应该生成Java线程转储吗?究竟有什么区别?
更新:生成线程转储的最佳方法是什么?是kill -3
(我们的应用程序在Solaris上运行)杀死应用程序并生成线程转储的最佳方法吗?有没有办法生成线程转储但不杀死应用程序?
我们一直坚持使用Java2SE v1.4直到2010年底.这真的很讨厌,但我们无法帮助它.我们现在有哪些选项可以使用一些新功能?我可以想到几种方式
更改字节码,例如使用Retrotranslator或Retroweaver.
库的后端,例如Concurrent Backport,但这对泛型无效.
模拟Java 5功能,例如检查集合,带辅助方法的Varargs等.
通过预编译更改源代码,在最终编译之前剥离所有1.5内容,例如使用Declawer可以执行此操作.
我最感兴趣的是使用Weblogic和"真实"的东西在生产环境中积极体验它.
什么是Java 1.4.2等效的Pattern.quote?
我在URI上使用Pattern.quote()但现在需要使它与1.4.2兼容.
目前我有一个String.format()
在Java 5中调用的方法,它的工作正常
String.format("%02x", octet) //octet is a int type
Run Code Online (Sandbox Code Playgroud)
但是由于某些问题,我们需要在JDK 1.4环境中部署此代码,并且1.4中不存在String.format.
任何人都知道任何替代方法来执行此功能?
我有一个有趣的问题需要使用Hashtables
; 我正在为S40诺基亚开发(合规级别为1.4)
我希望如何Hashtable
工作:
Hashtable table = new Hashtable();
table.put(1, "Hello World");
Run Code Online (Sandbox Code Playgroud)
但是我得到错误:
put(Object, Object)
类型中的方法Hashtable
不适用于参数(int, String)
但是,当我创建一个对象引用并传递引用时,它工作正常!为什么?!
工作范例:
Hashtable table = new Hashtable();
Integer test = new Integer(1);
table.put(test, "Hello World");
Run Code Online (Sandbox Code Playgroud)
任何解释都会很棒!
如何在Java中格式化浮点数,以便只有浮点组件不为零时才显示它?例如:
123.45 -> 123.45 99.0 -> 99 23.2 -> 23.2 45.0 -> 45
编辑:我忘了提 - 我还在Java 1.4上 - 对不起!
我尝试编译我的webapplication,javac – source 1.5 – target 1.4
我最终得到了错误:javac:source release 1.5需要目标版本1.5
因为我正在使用泛型和其他功能; 当我尝试编译时,–source 1.4
我最终得到了错误:
(use -source 5 or higher to enable generics)
(use -source 5 or higher to enable for-each loops)
(use -source 5 or higher to enable annotations)
Run Code Online (Sandbox Code Playgroud)
我需要部署到安装了Java 1.4的盒子; 其中我无法控制,所以升级是不可能的.
建议?
java ×10
java1.4 ×10
arrays ×1
backport ×1
copy ×1
coredump ×1
enums ×1
formatting ×1
hashtable ×1
java-5 ×1
java-me ×1
printwriter ×1
regex ×1
sockets ×1
thread-dump ×1