以下简单示例会导致编译时错误.但目前尚不清楚为什么.
public static void main (String[] args) throws java.lang.Exception
{
int i = 0;
d:
{
System.out.println("d");
}
while(i < 10){
i++;
continue d;
}
}
Run Code Online (Sandbox Code Playgroud)
- 和 -
public static void main (String[] args) throws java.lang.Exception
{
int i = 0;
d:
{
System.out.println("d");
while(i < 10){
i++;
continue d;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但以下工作正常:
public static void main (String[] args) throws java.lang.Exception
{
int i = 0;
d:
while(i < 10){
{
System.out.println("d");
}
i++;
continue d;
} …
Run Code Online (Sandbox Code Playgroud) JSR 907 JTA 1.2
定义了"全局事务"术语:
UserTransaction.begin方法启动全局事务并将事务与调用线程相关联.
那是什么意思?它是最外层的交易还是什么?
我正在阅读J.Bloch的Effective Java并提出以下内容(关于枚举的Setcion):
将多个行为与单个方法相关联,可以减少很少的枚举.在这种相对罕见的情况下,更喜欢使用常量特定的方法来打开自己的值
对我来说,这种使用编译时常量的情况并不清楚.难道你不能提供一个反映这个的简单例子吗?
从文档中
Future表示异步计算的结果.
是否意味着调用Future#get方法的线程不应该是执行计算的线程?那么,如果调用Future#的线程如果还没有开始计算,它是否合适?我不确定我是否可以将其称为异步计算...
我正在使用以下方法:
public void m(List<? extends Object[]> objs){
objs.stream()
.map(oa -> oa[0]) //compile error
//array type expected
.forEach(System.out::println);
}
Run Code Online (Sandbox Code Playgroud)
为什么不起作用?我认为扩展数组的所有东西都可以看作是一个数组.实际上我可以length
从阵列中获得.
我只是理解了什么类型的构造函数和更高级的kinded类型状态,现在我正在尝试理解Monad.以下是Monad
特质的表现scalaz
:
trait Monad[F[_]] extends Applicative[F] with Bind[F] { self =>
////
override def map[A,B](fa: F[A])(f: A => B) = bind(fa)(a => point(f(a)))
//The rest is omitted
}
Run Code Online (Sandbox Code Playgroud)
问题是我不明白为什么Monad
是更高的kinded类型?我们有标准的List[T]
,Option[T]
单子不属于高kinded类型.
我不是理论类专家所以我将monad视为monads法则的容器.
为什么我们不按如下方式声明monad:
trait Monad[V]{
//...
}
Run Code Online (Sandbox Code Playgroud)
不是更高的一种.
Option[T]
在这种情况下,标准monad 如何看起来像一个子类?
我试图创建MAP_GROWSDOWN
映射,期望它会自动增长。如手册页中所述:
MAP_GROWSDOWN
此标志用于堆栈。它向内核虚拟内存系统指示映射应该在内存中向下扩展。返回地址比在进程的虚拟地址空间中实际创建的内存区域低一页。 触摸映射下方“守卫”页面中的地址会导致 映射增长一页。这种增长可以重复,直到映射增长到下一个较低映射的高端页面内,此时触摸“保护”页面将产生
SIGSEGV
信号。
所以我写了下面的例子来测试映射的增长:
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif
#include <stdlib.h>
#include <string.h>
#include <inttypes.h>
#include <errno.h>
#include <sys/mman.h>
#include <stdio.h>
int main(void){
char *mapped_ptr = mmap(NULL, 4096,
PROT_READ | PROT_WRITE,
MAP_ANONYMOUS | MAP_PRIVATE | MAP_STACK | MAP_GROWSDOWN,
-1, 0);
if(mapped_ptr == MAP_FAILED){
int error_code = errno;
fprintf(stderr, "Cannot do MAP_FIXED mapping."
"Error code = %d, details = %s\n", error_code, strerror(error_code));
exit(EXIT_FAILURE);
}
volatile char *c_ptr_1 = mapped_ptr; //address returned by mmap
*c_ptr_1 …
Run Code Online (Sandbox Code Playgroud) 我使用jdk 11并尝试了解--patch-module
Java编译器的选项。这是我拥有的简单模块:
mdl-platform
|
|
|___com.test.mdl.platform
| |
| |___ ...
| |
| |___Patch.java
|
|___module-info.java
Run Code Online (Sandbox Code Playgroud)
module-info.java
:
module com.test.mdl.plarform {
exports com.test.mdl.platform;
}
Run Code Online (Sandbox Code Playgroud)
Patch.java
:
public class Patch { }
Run Code Online (Sandbox Code Playgroud)
我有Patch.java
文件,想用它来修补模块。我试过了:
一世。
$ javac --patch-module com.test.mdl.platform=mdl-plarform/src/main/java/ \
mdl-plarform/src/main/java/com/test/mdl/platform/Patch.java
error: module not found: com.test.mdl.platform
1 error
Run Code Online (Sandbox Code Playgroud)
我还运行了一些伪造的模块路径,并且运行良好(生成了有效class
文件):
二。
$ javac --patch-module com.test.mdl.platform=some/fake/path/ \
mdl-plarform/src/main/java/com/test/mdl/platform/Patch.java
Run Code Online (Sandbox Code Playgroud)
那么为什么第一个示例失败,但是目录存在并且包含有效目录module-info.java
,但是第二个都可以正常工作,即使路径不存在?
我正在尝试配置我requirements.txt
的以下内容:
wheel
apache-airflow
Run Code Online (Sandbox Code Playgroud)
我创建python3.8 -m venv ~/test-env
并尝试进行安装。问题是
python -m pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
产生大量消息
error: invalid command 'bdist_wheel'
----------------------------------------
Failed building wheel for thrift
Run Code Online (Sandbox Code Playgroud)
我确保wheel
在安装时requirements.txt
安装了它:
Collecting wheel (from -r requirements.txt (line 1))
Using cached https://files.pythonhosted.org/packages/00/83/b4a77d044e78ad1a45610eb88f745be2fd2c6d658f9798a15e384b7d57c9/wheel-0.33.6-py2.py3-none-any.
Run Code Online (Sandbox Code Playgroud)
但是如果我单独安装
python -m pip install wheel
python -m pip install -r requirements
Run Code Online (Sandbox Code Playgroud)
它工作正常,并且python -m pip -r requirements
没有错误消息。
那么是不是可以将wheel
安装放入requirements.txt
?安装时处理它的正确方法是什么venv
?安装前要requirements.txt
安装吗?
我正在解决leetcode 问题以找到二叉树的最大深度。递归解决方案相当简单,因此我尝试实现迭代 DFS 方法。这是我的想法:
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
public TreeNode() {}
public TreeNode(int val) { this.val = val; }
public TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
public static int maxDepthDfs(TreeNode root){
Deque<TreeNode> stack = new LinkedList<>();
Deque<Integer> depths = new LinkedList<>();
TreeNode current = root;
int maxDepth = 0;
int currentDepth = 0;
while(!stack.isEmpty() || current != null){
if(current == …
Run Code Online (Sandbox Code Playgroud) java ×7
algorithm ×1
arrays ×1
binary-tree ×1
c ×1
enums ×1
future ×1
java-9 ×1
java-module ×1
java-platform-module-system ×1
jta ×1
linux ×1
mmap ×1
monads ×1
pip ×1
python ×1
python-3.x ×1
python-venv ×1
python-wheel ×1
scala ×1