在求职面试中,我被问到以下问题:
我们有一个客户端应用程序可以发送请求并接收一个int数据流(可能很大,但小于INT_MAX).我们需要这样做:
Int Data ----> Our ----> Sorted Int Data
Stream App Data Stream
Run Code Online (Sandbox Code Playgroud)
所以我会按如下方式编写方法:
public int[] sort(int[] array){
Arrays.sort(array);
return array;
}
Run Code Online (Sandbox Code Playgroud)
问题是大的 array不能装入堆栈并将被放入堆中,这会降低性能.如何以良好的性能重构它?
我能找到java,javac而javadoc却没有javah.exe我的jdk\\bin文件夹中.
我试图重新安装JDK但它仍然缺失.我怎么能得到它,为什么它会丢失?
我发现了一个类似的问题,操作系统是Linux,但我找不到Windows用户的答案.
我的操作系统是Windows 10.Java版本是10.0.1.
Java中最受欢迎的列表是ArrayList和LinkedList.
在科特林我看到ArrayList和List.是List实际上是一个LinkedList?例如
val list = listof("1st", "2nd")
Run Code Online (Sandbox Code Playgroud) NullPointerException当我使用方法引用绑定到dog后来分配null给变量的变量时,为什么代码没有抛出?
我正在使用Java 8。
import java.util.function.Function;
class Dog {
private int food = 10;
public int eat(int num) {
System.out.println("eat " + num);
this.food -= num;
return this.food;
}
}
public class MethodRefrenceDemo {
public static void main(String[] args) {
Dog dog = new Dog();
Function<Integer, Integer> function = dog::eat;
dog = null;
// I can still use the method reference
System.out.println("still have " + function.apply(2));
}
}
Run Code Online (Sandbox Code Playgroud) 我最近进行了一次采访,采访者要求我创建HashMap一个最多具有7个键/值对的。如果添加了第8个键/值对,则应删除第一个键/值对,并插入第8个键/值对,以此类推。
解决这个问题的好策略是什么?
如何使用单个for循环在java中打印二维数组?
我试图搜索答案,但只找到了使用多个循环的解决方案。
示例数组:
[
[1, 2, 3],
[4, 5],
[6, 7, 8],
[9]
]
Run Code Online (Sandbox Code Playgroud)
示例输出(确切格式无关紧要):
1, 2, 3, 4, 5, 6, 7, 8, 9
Run Code Online (Sandbox Code Playgroud)
使用单个 for 循环,而不是嵌套循环。
所以不是这样的:
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j] + " ");
}
}
Run Code Online (Sandbox Code Playgroud) 是否可以使用 Javas文本块功能(Java 15)但只写一行?
看来我是被迫写多行了。
例如,我想在一行写是为了避免逃避"它
String text = """<a href="https://sparkjava.com">https://sparkjava.com/</a>""";
Run Code Online (Sandbox Code Playgroud)
但它不能编译,我必须写
String text = """
<a href="https://sparkjava.com">https://sparkjava.com/</a>""";
Run Code Online (Sandbox Code Playgroud)
反而。
我是否忽略了什么?
List<Integer> test = List.of(955, 955);
if (test.get(1) == test.get(0))
...
Run Code Online (Sandbox Code Playgroud)
以上条件导致 false
List<Integer> test = List.of(955, 955);
int a = test.get(1);
int b = test.get(0);
if (a == b)
...
Run Code Online (Sandbox Code Playgroud)
上述条件返回true。
为什么会这样?片段之间有什么区别?
给定一个字符串值,如何将其显示在控制台的屏幕上?我必须写什么才能实现这一点?
作为一个例子,这是我到目前为止的代码:
public class Main {
public static void main(String[] args) {
String message = "I am a school student and just started learning Java.";
// What to write next?
}
}
Run Code Online (Sandbox Code Playgroud)
它可以工作,但显然还没有在控制台上显示该值。我必须写什么来展示它?
但我得到的只是这样:
我对以下行感到困惑:
Seq<String> s1 = seq.zip(split, Function::apply);
Run Code Online (Sandbox Code Playgroud)
在这个片段中:
static String underscoreToCamel(String str) {
UnaryOperator<String> capitalize = s -> s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase();
Seq<UnaryOperator<String>> seq = c -> {
c.accept(String::toLowerCase);
while (true) {
c.accept(capitalize);
}
};
List<String> split = Arrays.asList(str.split("_"));
Seq<String> s1 = seq.zip(split, Function::apply);
String a = s1.join("");
return a;
}
public interface Seq<T> {
void consume(Consumer<T> consumer);
static <T> Seq<T> unit(T t) {
return consumer -> consumer.accept(t);
}
default <E> Seq<E> map(Function<T, E> function) {
return consumer -> consume(t -> …Run Code Online (Sandbox Code Playgroud) java ×10
arrays ×2
arraylist ×1
autoboxing ×1
collections ×1
console ×1
hashmap ×1
integer ×1
javah ×1
kotlin ×1
lambda ×1
linked-list ×1
unboxing ×1
wrapper ×1