问题2:以下界面有什么问题?
public interface SomethingIsWrong {
void aMethod(int aValue) {
System.out.println("Hi Mom");
}
}
Run Code Online (Sandbox Code Playgroud)
答案2:它有一个方法实现.只有默认和静态方法有实现(我认为这是错误的,因为界面不能有身体的方法,因为默认它的方法是抽象的).
问题3:修复问题2中的界面.
答案3:
public interface SomethingIsWrong {
void aMethod(int aValue);
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以将aMethod定义为默认方法:
public interface SomethingIsWrong {
default void aMethod(int aValue) {
System.out.println("Hi Mom");
}
}
Run Code Online (Sandbox Code Playgroud)
我在docs.oracle.com找到了这个,我想知道这些是ORACLE提供的正确答案吗?在我看来.
1.在答案2中,写道只有默认和静态方法有实现?
2.在回答3的替代方案中,它给出了aMethod可以定义为默认方法但是接口不能有其中的方法,因为默认接口中的方法是抽象的,我们只能在它的子类中实现它的方法.
请让我知道ORACLE网站是对还是错?
package com.spse.pricing.client.main;
import java.util.stream.IntStream;
public class NestedParalleStream {
int total = 0;
public static void main(String[] args) {
NestedParalleStream nestedParalleStream = new NestedParalleStream();
nestedParalleStream.test();
}
void test(){
try{
IntStream stream1 = IntStream.range(0, 2);
stream1.parallel().forEach(a ->{
IntStream stream2 = IntStream.range(0, 2);
stream2.parallel().forEach(b ->{
IntStream stream3 = IntStream.range(0, 2);
stream3.parallel().forEach(c ->{
//2 * 2 * 2 = 8;
total ++;
});
});
});
//It should display 8
System.out.println(total);
}catch(Exception e){
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
请帮助如何自定义并行流,以确保我们得到一致性结果。
我对Java很新,我在其中一本书中遇到过一两次这个问题.这是一个超级简单的程序,我只是不明白为什么它不起作用.我知道当你使用return时,方法中的任何东西都没有意义.那么这意味着你执行for语句或if语句是一个返回?
我在最新版本的Eclipse中使用Windows 8上的Java 8.
这是我的简单程序:
// Find the sum of 1 through 50 and the average.
class SumAndAverage
{
public static void main(String args[])
{
int sum = 0;
double average = 0;
for(int i = 1; 1 <= 50; i++)
{
sum += i;
}
// the following code is "unreachable"
average = sum / 100;
System.out.println("The sum is: " + sum);
System.out.println("The average is " + average);
}
}
Run Code Online (Sandbox Code Playgroud) 我遇到了这个问题,因此将其作为完整解决方案发布 -
使用Java 8,以下代码将失败并出现运行时异常.问题是getInteger方法返回一个通用的Integer类型,print方法需要精确的Object Type.
public static void main(String[] args) {
print(getInteger());
}
private static <T> T getInteger() {
return (T)new Integer(10);
}
private static void print(Object...o1){
for(Object o: o1){
System.out.println(o);
}
}
Run Code Online (Sandbox Code Playgroud) import java.util.ArrayList;
import java.util.List;
public class IterationBenchmark {
public static void main(String args[]){
List<String> persons = new ArrayList<String>();
persons.add("AAA");
persons.add("BBB");
persons.add("CCC");
persons.add("DDD");
long timeMillis = System.currentTimeMillis();
for(String person : persons)
System.out.println(person);
System.out.println("Time taken for legacy for loop : "+
(System.currentTimeMillis() - timeMillis));
timeMillis = System.currentTimeMillis();
persons.stream().forEach(System.out::println);
System.out.println("Time taken for sequence stream : "+
(System.currentTimeMillis() - timeMillis));
timeMillis = System.currentTimeMillis();
persons.parallelStream().forEach(System.out::println);
System.out.println("Time taken for parallel stream : "+
(System.currentTimeMillis() - timeMillis));
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
AAA
BBB
CCC
DDD
Time taken for …Run Code Online (Sandbox Code Playgroud) 考虑下面的代码
List<Integer> l=new ArrayList();
Set<Integer> l=new HashSet();
Run Code Online (Sandbox Code Playgroud)
以下哪个 for 循环是最佳的
for(Integer i: some arrray){
if(!l.contains(i))
l.add(i);
}
Run Code Online (Sandbox Code Playgroud)
或者
for(Integer i :some array){
s.add(i);
}
Run Code Online (Sandbox Code Playgroud) 我在 Java 中遇到 Date 和 SimpleDateFormat 对象的一些问题。我知道我需要在 Java 8 中使用新的日期和时间 API 来切换它们,我想这样做,但我有一个问题。当我从数据库中检索我的日期时(它是 SimpleDateFormat 并且我无法更改它),并且当我想添加一些小时(例如下午 4 点),然后我需要在用户从下拉列表中选择的时区中(假设美国/加拉加斯),所以我希望美国/加拉加斯的结果是 16 小时,但在我的情况下是 16 小时 UTC + UTC 和美国/加拉加斯之间的差异。这是我的代码:
Date startDate -> it's value is Tue Feb 23 20:00:00 CET 2021
Date date = new SimpleDateFormat("yyy-MM-dd").format( startDate + 4:00PM + America/Caracas);
Run Code Online (Sandbox Code Playgroud)
但是,奇怪的是,这种格式化广告 4 PM 值但不知何故忽略了时区的那部分。所以,相反,我在美国/加拉加斯有 20 小时,我在 UTC 时间有 20 小时。有人可以帮助我吗?
我得到的日期格式类似于LocalDate dateOfBirthday = LocalDate.of(2000, 1, 1);.
我需要从该日期获取该月的日期。我使用dateOfBirthday.getDayOfMonth()并且它有效并返回1,但我需要得到01.
我怎样才能做到呢?
我是 Java 新手,刚刚尝试了 Java 的摆动,我尝试制作一个登录表单,将 JTextField 的内容打印到控制台,但是当我尝试时控制台没有显示任何内容。
这是我的代码:
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JButton;
public class JavaTextField {
private JFrame frame;
private JTextField text1;
private JTextField text2;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
JavaTextField window = new JavaTextField();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public JavaTextField() {
initialize(); …Run Code Online (Sandbox Code Playgroud) 我正在读取XML文件并将其内容推送到ByteArrayOutputStream如下所示:
static final MY_XML_FILE = new File("...");
byte[] buffer = new byte[(int) MY_XML_FILE.length()];
int bytesRead;
ByteArrayOutputStream output = new ByteArrayOutputStream();
while ((bytesRead = fileInputStream.read(buffer)) != -1)
output.write(buffer, 0, bytesRead);
Run Code Online (Sandbox Code Playgroud)
哪个工作正常.
我不喜欢在-loop bytesRead之外可见的范围while,所以我把它改成了for-loop:
for (int bytesRead = fileInputStream.read(buffer); bytesRead != -1; )
output.write(buffer, 0, bytesRead);
Run Code Online (Sandbox Code Playgroud)
但是这会引发以下错误:
java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at java.util.Arrays.copyOf(Arrays.java:3236)
at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:113)
at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:140)
Run Code Online (Sandbox Code Playgroud)
我的问题是:两种循环方式不一样吗?如果没有,那么我想知道Java中的内存使用情况for和while循环是如何不同的.
java ×10
java-8 ×10
collections ×1
date ×1
datetime ×1
for-loop ×1
java-stream ×1
jtextfield ×1
localdate ×1
loops ×1
memory ×1
oracle ×1
performance ×1
swing ×1