我试图找到在网站上构建寻呼机的总页数(所以我希望结果是一个整数.我得到一个记录列表,我想分成10页/页(页数)
当我这样做:
list.Count() / 10
Run Code Online (Sandbox Code Playgroud)
要么
list.Count() / (decimal)10
Run Code Online (Sandbox Code Playgroud)
而且list.Count() =12
,我得到了结果1
.
我将如何编码,以便2
在这种情况下得到它(其余部分应该总是添加1
)
众所周知,Java String
是不可变的.从一开始,不可变字符串就是java的重要补充.与C风格的字符串相比,不变性允许快速访问和大量优化,显着减少了错误,并有助于实施安全模型.
可以在不使用黑客的情况下创建可变的,即
java.lang.reflect
sun.misc.Unsafe
但它是否可以只用普通的Java,以便可以随时修改字符串?问题是如何?
我怎么能这样做?
我有一个arraylist,有浮动元素. (Arraylist <Float>)
(float[]) Floats_arraylist.toArray()
Run Code Online (Sandbox Code Playgroud)
它不起作用.
无法从Object []转换为float []
在ScheduledExecutorService中运行时,是否有一种很好的方法可以阻止任务内部重复任务?
可以说,我有以下任务:
Future<?> f = scheduledExecutor.scheduleAtFixedRate(new Runnable() {
int count = 0;
public void run() {
System.out.println(count++);
if (count == 10) {
// ??? cancel self
}
}
}, 1, 1, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)
从外面看,很容易通过f.cancel()取消,但是如何在指定的地方停止重复?(通过AtomicReference传递Future是不安全的,因为当scheduleAtFixedRate返回f迟到且变量设置得太晚时,有一个潜在的窗口,并且任务本身可能已经运行,在引用中看到null.)
java concurrency anonymous-class executorservice variable-initialization
如果我知道与该线程关联的ID,我如何才能获得对正在运行的线程的引用?
例如
long threadID = 12342;
Thread thread = (What goes here?) getThreadFromId(threadID); //I know this is totally made up
Run Code Online (Sandbox Code Playgroud) 有时候,我最终还是要抓住一个我知道永远不会发生的异常,比如这里
URLDecoder.decode("some string", "UTF-8"); //No unknown encoding possible
Run Code Online (Sandbox Code Playgroud)
或者在这里:
public void methodWithURL(URL url){
URI uri = new URI(url); //No invalud URI syntax possible
}
Run Code Online (Sandbox Code Playgroud)
你怎么处理这个?我通常会记录一个关于宇宙定律如何变化的有趣错误,然后抛出一个RuntimeException
.有没有更好的办法?
作为一项任务,我必须在局域网上找到所有活着的计算机.我正在使用类的isReachable
功能InetAddress
.但问题是没有任何东西可以显示给我.所以我试图isReachable
使用谷歌的IP,但仍然无法访问.
这是代码:
import java.net.*;
public class alive{
public static void main(String args[]){
try{
InetAddress ia = InetAddress.getByAddress(new byte[]{(byte)209, (byte)85, (byte)153, (byte)104});
boolean b = ia.isReachable(10000);
if(b){
System.out.println("Reachable");
}
else{
System.out.println("Unrachable");
}
}catch(Exception e){
System.out.println("Exception: " + e.getMessage());
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出是: Unreachable
说,"运行myApp.jar,cpu = 800,内存= 1024"
我已经做了多年的java编程,问这个问题是一个尴尬.我甚至不知道这是否可能.如果是这样,怎么样?
我只想知道是否可以设置java程序的最大内存和CPU使用率.我突然想到了这一点,因为我最近开始开发移动应用程序.我想知道应用程序在具有非常有限的内存和处理器的设备上的行为.
我看到物理引擎带有在浏览器上运行的演示应用程序,或者我可以在我的PC上执行.如果我在移动设备上运行它会怎么样?性能是否相同?我不是开发一个示例移动应用程序来测试库的性能,而是首先使用我的PC运行特定的cpu和内存.
顺便说一下,我试着谷歌搜索...我发现只是监控和性能调整.我可能使用错误的关键字.
我需要在列表或集合中保存大量元素(500k左右),我需要进行高性能遍历,添加和删除.这将在多线程环境中完成,我不关心我是否在遍历开始后看到更新完成(弱一致),Java集合适用于这种情况?
假设我有2个线程,t1和t2,以及一个锁定对象,m.线程t1处于无限循环中,在每次迭代时,它会抓取m上的锁定,执行某些操作,解锁m并立即重新启动.在一次迭代期间,t2请求对m进行锁定但被t1阻止并且必须等待.现在,当t1解锁m时,是否保证t2将获得m的下一次锁定?或者可以点t1下一轮迭代偷偷走在前面?
通常,是否为等待线程设置了队列?如果t1具有锁定,并且所有其他线程也希望该锁定按以下顺序被阻止:t2,t3,...,其余线程将按照它们被阻止的顺序继续执行(例如t2运行,然后是t3,等等.)?
(我简单地仔细阅读了java规范并找不到答案.如果它在那里,请告诉我,我会回去仔细阅读.)
谢谢!(首先是SO帖子,哇哦!)
java ×9
performance ×2
android ×1
arraylist ×1
arrays ×1
autoboxing ×1
c# ×1
casting ×1
collections ×1
concurrency ×1
cpu-usage ×1
icmp ×1
locking ×1
monitor ×1
networking ×1
rounding ×1
security ×1
string ×1