在什么编码中存储了Java char?

Java char类型是否保证以任何特定编码存储? 编辑:我错误地说了这个问题。 我要问的是保证使用任何特定编码的字面文字?

如何计算一段时间内的天数?

对于以下Period计算: Period.between(LocalDate.of(2015, 8, 1), LocalDate.of(2015, 9, 2)) 结果是: P1M1D 这相当于31天+ 1天= 32天。 本Period : Period.between(LocalDate.of(2015, 8, 1), LocalDate.of(2015, 10, 2)) 结果是: P2M1D 这相当于:31天(8月)+ 30天(9月)+ 1(10月)= 62天 java.time包中是否有一个方法可以给出一个Period的天数? 我找不到一个。 不确定我是否忽略了任何东西,或者它是否只是在那里。

Java中的数独求解器,使用回溯和递归

我正在用Java编写一个用于9×9网格的数独求解器。 我有方法: 打印网格 用给定的值初始化电路板 测试冲突(如果相同的数字在同一行或3×3子网格中) 一种逐个放置数字的方法,这需要最多的工作。 在我详细介绍该方法之前,请记住我必须使用递归来解决它,以及回溯(在这里观看applet作为示例http://www.heimetli.ch/ffh/simplifiedsudoku.html ) 另外,我通过垂直向下移动来解决这个数独,从左上角开始,到第一列,然后到第二列,等等。 到目前为止,我有以下内容: public boolean placeNumber(int column){ if (column == SUDOKU_SIZE){ // we have went through all the columns, game is over return true; } else { int row=0; //takes you to the top of the row each time while (row < SUDOKU_SIZE) loops through the column downwards, […]

如何制作直径为3xp的圆形javafx按钮?

我想制作一个非常小的圆形按钮,上面没有文字。 这是我尝试的方式。 Button bt = new Button(); bt.setShape(new Circle(1.5)); bt.setMaxSize(3,3); 但是,有两个问题: 1.按钮的形状不是完美的圆形,而是更像椭圆形。 2. bt.setMaxSize(1.5,1.5); 没有生效。 我估计,它的直径超过3 …… 我怎么能做一个更小的圆形按钮? 帮助感谢。

我应该在Java程序中使用多少个线程?

我最近inheritance了一个小型Java程序,它从大型数据库中获取信息,进行一些处理并生成有关信息的详细图像。 原作者使用单个线程编写代码,然后修改它以允许它使用多个线程。 在代码中他定义了一个常量; // number of threads public static final int THREADS = Runtime.getRuntime().availableProcessors(); 然后设置用于创建映像的线程数。 我理解他的理由是线程数不能大于可用处理器的数量,因此将其设置为从处理器中获取全部潜力的数量。 它是否正确? 或者是否有更好的方法来充分利用处理器的潜力? 编辑:为了进一步澄清,正在线程化的特定算法扩展到正在创建的图片的分辨率(每个像素1个线程)。 这显然不是最好的解决方案。 该算法所做的工作是一直需要的,并且是完全数学运算,没有锁或其他因素会导致任何给定的线程hibernate。 我只想最大化程序CPU利用率,以减少完成时间。

Java:有界类型的getClass()

当我在使用仿制药时,我发现了一些东西。 在下面的示例中, doStuff1编译但doStuff2不编译: public void doStuff1(T value) { Class theClass = value.getClass(); } public void doStuff2(T value) { Class theClass = value.getClass(); } 所以,我查找了Object.getClass()的文档,发现了这个: 实际的结果类型是Class <? extends | X |> where | X | 是擦除调用getClass的表达式的静态类型。 这让我有点好奇。 为什么getClass()这种方式设计? 如果适用的话,我可以理解将类型转换为它们的原始类,但是我没有明显的理由说明为什么它们必须使它同时杀掉T 有没有一个特定的原因,它也可以摆脱它,或者它只是一个普遍的“让我们摆脱一切因为它更容易;谁会永远需要它”的方法?

Java中的并发:同步静态方法

我想了解如何在Java中对静态方法进行锁定。 假设我有以下课程: class Foo { private static int bar = 0; public static synchronized void inc() { bar++; } public synchronized int get() { return bar; } 我的理解是,当我调用f.get() ,线程获取对象f的锁定,当我执行Foo.inc() ,线程获取类Foo上的锁。 我的问题是两个呼叫如何相互同步? 调用静态方法也会获取所有实例化的锁定,或者相反(这似乎更合理)? 编辑: 我的问题不是static synchronized工作原理,而是静态和非静态方法如何相互同步。 即,我不希望两个线程同时调用f.get()和Foo.inc() ,但这些方法获取不同的锁。 我的问题是这是如何可以预防的,并且在上面的代码中是否被阻止了。

使用子类中的super关键字访问超类私有字段

对于编码项目,我有一个包含嵌套类的类。 嵌套类在同一外部类中进行子类化。 目的是让外部类包含嵌套类的一些实例,它可以将其交给外部类的其他实例。 嵌套子类允许外部类修改内容,而其超类允许读取内容并调用某些方法。 因此,超类对象被传递给其他对象以链接链中的外部类对象。 我的问题涉及访问修饰符。 这是一个极简主义的代码示例: abstract class OuterClass { protected class NestedSuperClass { private T data; public NestedSuperClass (T t) { this.data = t; } public T getOutput() { return data; } } protected class NestedSubClass extends NestedSuperClass { public NestedSubClass (T t) { super(t); } protected void setOutput(T t) { super.data = […]

反转位数

例如,我有二进制数1011,它等于十进制11.我想要反向位的位置使它变为1101,即十进制13.这是代码: import java.util.*; public class bits { public static void main(String[] args) { Scanner scnr=new Scanner(System.in); System.out.println(“enter x:”); int x=scnr.nextInt(); int b=0; while (x!=0){ b|=( x &1); x>>=1; b<<=1; } System.out.println(b); } } 但是当我输入x 11然后它打印出来26.这是什么错误?

如何从Java发送短信?

我想从Web应用程序向特定的移动设备发送短信,并仅接收他的回复并查看网络应用程序。 是否可以使用Java技术创建?