例如,1, 2, 128, 256
输出可以是(16位):
0000000000000001
0000000000000010
0000000010000000
0000000100000000
Run Code Online (Sandbox Code Playgroud)
我试过了
String.format("%16s", Integer.toBinaryString(1));
Run Code Online (Sandbox Code Playgroud)
它为左边填充放置空格:
` 1'
Run Code Online (Sandbox Code Playgroud)
如何将0
s用于填充.我在Formatter中找不到它.还有另一种方法吗?
提前致谢.
PS 这篇文章描述了如何使用左0填充格式化整数,但它不适用于二进制表示.
我的项目需要Java 1.6进行编译和运行.现在我需要使用Java 1.5(来自营销方面).我想替换方法体(返回类型和参数保持不变),以使其使用Java 1.5进行编译而不会出现错误.
详细信息:我有一个实用程序类OS
,它封装了所有特定于操作系统的东西.它有一种方法
public static void openFile(java.io.File file) throws java.io.IOException {
// open the file using java.awt.Desktop
...
}
Run Code Online (Sandbox Code Playgroud)
打开文件,如双击(start
Windows命令或open
Mac OS X命令等效).由于无法使用Java 1.5进行编译,因此我希望在编译期间将其排除,并替换为另一种调用run32dll
Windows或open
Mac OS X的方法Runtime.exec
.
问题:我该怎么办?注释可以帮到这里吗?
注意:我使用ant,我可以制作两个java文件OS4J5.java
,OS4J6.java
它们将包含OS
带有Java 1.5和1.6所需代码的类,并OS.java
在编译之前复制其中一个(或者一种丑陋的方式 - OS.java
根据java有条件地替换内容如果有另一种方式,我不想这样做.
详细说明:在CI中可以使用ifdef, ifndef
,在Python中没有编译,我可以hasattr
在Common Lisp中使用或其他东西检查功能,我可以使用#+feature
.Java有类似的东西吗?
发现这篇文章,但它似乎没有帮助.
任何帮助是极大的赞赏.KH.
我们应该声明私有字段,就像volatile
在多个线程中使用instanced一样吗?
在Effective Java中,有一个例子,代码在没有volatile的情况下不起作用:
import java.util.concurrent.TimeUnit;
// Broken! - How long would you expect this program to run?
public class StopThread {
private static boolean stopRequested; // works, if volatile is here
public static void main(String[] args) throws InterruptedException {
Thread backgroundThread = new Thread(new Runnable() {
public void run() {
int i = 0;
while (!stopRequested)
i++;
}
});
backgroundThread.start();
TimeUnit.SECONDS.sleep(1);
stopRequested = true;
}
}
Run Code Online (Sandbox Code Playgroud)
解释说
while(!stopRequested)
i++;
Run Code Online (Sandbox Code Playgroud)
优化到这样的事情:
if(!stopRequested)
while(true)
i++;
Run Code Online (Sandbox Code Playgroud)
所以stopRequested
后台线程看不到进一步的修改,所以它永远循环.(顺便说一句,该代码在没有 …
我想在我的代码中捕获bean实例化异常.我有什么选择?一种方法是使用基于Java的容器配置:
@Configuration
public class AppConfig {
@Bean
public SomeBean someBean() {
try {
return new SomeBean(); // throws SomeException
} catch(SomeException se) {
return new SomeBeanStub();
}
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以使用基于XML或基于注释的配置使用Spring为bean实例化定义异常处理程序?
我试图理解java.util.Calendar.get(java.util.Calendar.WEEK_OF_YEAR)
它是如何工作的,但似乎我错过了一些观点.
String time = "1998-12-31"; // year month day
java.util.Calendar date = java.util.Calendar.getInstance();
date.setTime((new java.text.SimpleDateFormat("yyyy-MM-dd")).parse(time));
System.err.println("Week of year = " + date.get(java.util.Calendar.WEEK_OF_YEAR));
// Week of year = 1 Why ???
Run Code Online (Sandbox Code Playgroud)
为什么date.get(java.util.Calendar.WEEK_OF_YEAR)
在一年的最后一周返回1?
而且,WEEK_OF_YEAR
因为"1998-01-01"
是1而且"1998-12-23"
它是52.
有没有人对这种行为有解释?
在下面的代码中(从Java Concurrency in Practice第2章,第2.5节,清单2.8中复制):
@ThreadSafe
public class CachedFactorizer implements Servlet {
@GuardedBy("this") private BigInteger lastNumber;
@GuardedBy("this") private BigInteger[] lastFactors;
@GuardedBy("this") private long hits;
@GuardedBy("this") private long cacheHits;
public synchronized long getHits() { return hits; }
public synchronized double getCacheHitRatio() {
return (double) cacheHits / (double) hits;
}
public void service(ServletRequest req, ServletResponse resp) {
BigInteger i = extractFromRequest(req);
BigInteger[] factors = null;
synchronized (this) {
++hits;
if (i.equals(lastNumber)) {
++cacheHits;
factors = lastFactors.clone(); // questionable line here
} …
Run Code Online (Sandbox Code Playgroud) 标题几乎是对它的总结-我们可以创建java.util.Random
(或SecureRandom
)的一个实例,并在每次需要一个随机值时使用它,也可以在每次需要时创建一个新的实例。想知道哪种方法是首选,为什么?
让我们对上下文有一些了解:随机值是在HTTP请求处理程序内部生成的,每个请求一个,并且我正在考虑多线程的问题,寻求安全性和性能的最佳组合。
我应该使用哪一个,有什么区别:
System.Windows.Forms.MessageBox
关于System.Windows.Forms.SaveFileDialog
和的相同问题Microsoft.Win32.SaveFileDialog
.
我只需要显示一个消息框并保存文件对话框(也在Windows XP上工作).
正确的重新标记是值得赞赏的.
先谢谢,kh.
...... 以及如何向管理层证明用例可以是非正式的还是有用的?
嗨伙计,
我进入项目的中间,发现没有用例,用户故事,要求,也没有任何类似于规范的东西.由于截止日期很短,目前的开发团队不想花时间在这些事情上.我想加入这个项目,但通过挖掘更多,我发现当前的开发只是通过考虑它们的"惊叹效应"来增加功能,并通过使用底层技术提供的简单性来选择添加的内容.我很惊讶他们如何设法到目前为止(超过4个月)没有要求,但这就是我们现在拥有的.我相信他们所选择的方式是最有把握的产品,具有良好的营销价值.
我是对的,在类似情况下你会做些什么来证明开发团队/管理层在前进之前制定用例/要求?先谢谢,kh.
PS两本Cockburn的书都在书架上......
在阅读了所有相关的问题之后,我找不到我的问题的答案.写信给你,希望你很快就会回答,并且会毫不犹豫地判断我在这个领域缺乏知识.
我有一个体现函数定义的类型:
type FunctionDefinition<'a>(exec:int->(Data.Reader->'a)) =
member x.Exec = exec
member x.ReturnType = typeof<'a>
Run Code Online (Sandbox Code Playgroud)
正如你在这里看到的,exec
应该是一个函数,它接受一个int
参数并返回另一个函数,它接受一个Data.Reader
参数并返回一个类型的值'a
(这样一个令人筋疲力尽的短语!).这里的定义Data.Reader
无关紧要.
另外,我有一个字典来保持string->FunctionDefinition
对,如下:
let FUNCTIONS = new Generic.Dictionary<string, FunctionDefinition<obj>>()
Run Code Online (Sandbox Code Playgroud)
FunctionDefinition
实例FUNCTIONS
将持有几种类型的功能,这就是为什么它FunctionDefinition<obj>
(我相信这是邪恶的根源,但我无法避免这种情况,所以我在这里).
然后我有一些函数要包装FunctionDefinition
并放入FUNCTIONS
:
/// Function definitions
let unchanged (id:int) =
let mutable last = null
fun (reader:Data.Reader) ->
if last = null then
false
else
let cur = reader.GetValue(id)
let ret = last.Equals(cur)
last <- cur
ret
let changed …
Run Code Online (Sandbox Code Playgroud) java ×7
.net ×1
binary ×1
c# ×1
calendar ×1
casting ×1
clone ×1
datetime ×1
exception ×1
f# ×1
generics ×1
memory-model ×1
namespaces ×1
performance ×1
random ×1
requirements ×1
spring ×1
use-case ×1
volatile ×1