我试图了解 slf4j 的细节。我仍然不清楚如何将 slf4j 视为 Logging 门面?
门面的目的通常是 -
为子系统中的一组接口提供统一的接口。Facade 定义了一个更高级别的接口,使子系统更易于使用。
在 slf4j 的情况下,它提供了一个通用Logger接口,但每个绑定项目(如log4j, logback等)都需要提供它们的具体实现。
所以我理解如何adapter pattern适应,但我仍然无法理解如何Facade Pattern使用。
当我发现自己对Streams API如何对强制性for循环方法进行惰性评估感到困惑时,我正在观看Streams视频。
这是典型的for循环代码,该代码检查第一个大于3的数字,甚至是偶数,然后简单地将其打印并返回。
List<Integer> arr = Arrays.asList(1, 2, 3, 5, 4, 6, 7, 8, 9);
for (int i : arr) {
System.out.println(" Checking if is Greater: " + i);
if (i > 3) {
System.out.println("checking if is Even " + i);
if (i % 2 == 0) {
System.out.println(i * 2);
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这里是预期的输出:
Checking if is Greater: 1
Checking if is Greater: 2
Checking if is Greater: 3
Checking if is Greater: 5
Checking if is Even …Run Code Online (Sandbox Code Playgroud) 我在内部类中有一个被@Autowired 的类。但是在执行它时会抛出一个空指针异常,而在外部类中自动装配时它可以正常工作
class outer {
...
class inner {
@Autowired
private var somevar;
private process () {
somevar.someMethod();
}
}
Run Code Online (Sandbox Code Playgroud)
知道为什么这不起作用吗?somevar.someMethod();线正在生成 NPE。
所以我正在阅读一本关于Java 8的书,当我看到他们在外部和内部迭代之间进行比较并考虑比较两者时,性能明智.
我有一个方法,只是总结了一系列整数n.
迭代的:
private static long iterativeSum(long n) {
long startTime = System.nanoTime();
long sum = 0;
for(long i=1; i<=n; i++) {
sum+=i;
}
long endTime = System.nanoTime();
System.out.println("Iterative Sum Duration: " + (endTime-startTime)/1000000);
return sum;
}
Run Code Online (Sandbox Code Playgroud)
顺序一个 - 使用内部迭代
private static long sequentialSum(long n) {
long startTime = System.nanoTime();
//long sum = LongStream.rangeClosed(1L, n)
long sum = Stream.iterate(1L, i -> i+1)
.limit(n)
.reduce(0L, (i,j) -> i+j);
long endTime = System.nanoTime();
System.out.println("Sequential Sum Duration: " + (endTime-startTime)/1000000); …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Tabula-py 来阅读 pdf。我通过安装 tabula-pypip install tabula-py
我还安装了所需的依赖项
requests
pandas
pytest
flake8
Run Code Online (Sandbox Code Playgroud)
我的代码目前如下:
import tabula
import pandas as pd
df = tabula.read_pdf("report.pdf", pages=2)
print(df)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Traceback (most recent call last):
File "tabula_pdf_reader.py", line 1, in <module>
import tabula
ImportError: No module named tabula
Run Code Online (Sandbox Code Playgroud)
我在这里缺少什么输入?
当我浏览一些 JVM 字节码文章时,我看到了这个视频,该视频展示了内部类如何打开进入父作用域的后门,该后门可以被利用吗?(不确定,也许可以?)
这是我的测试代码。
public class Outer {
private String name = "You got me!";
public class Inner {
public void printName() {
System.out.println(name);
}
}
public static void main(String[] args) {
Outer o = new Outer();
Inner i = o.new Inner();
i.printName();
}
}
Run Code Online (Sandbox Code Playgroud)
现在,为了查看是否backdoor创建了这样的方法,我常常javap查看类文件。
这是结果,请参阅printName method
查看该行7:,您将看到invokestatic对 a 的调用Outer.access$0。
查看Outer.class我们可以看到该方法的定义。
这是一个安全漏洞吗?它可以被利用吗?我只是好奇想了解更多这方面的信息。
我是机器学习的新手 7 我已经开始关注 Udacity 的机器学习简介
当这个概念C and Gamma出现时,我正在关注简单向量机。我做了一些挖掘,发现了以下内容:
C - 高 C 尝试将训练数据的错误分类最小化,而低值尝试保持平滑分类。这对我来说很有意义。
Gamma - 我无法理解这个。
有人可以用外行的术语向我解释这一点吗?
我正在尝试使用AWS Java SDK连接到Local Dynamo DB.所以我安装了Local Dynamo DB并启动了javascript shell.一切正常,shell从通常的地址开始http://localhost:8000/shell/
现在,当我尝试通过AWS SDK访问Dynamo数据库实例时,事情开始破裂.
这是我的代码:
public class MyDynamoDB {
private AmazonDynamoDBClient client;
public MyDynamoDB() {
client = new AmazonDynamoDBClient();
client.setEndpoint("http://localhost:8000");
}
public void saveAndLoad() {
DynamoDBMapperConfig config = new DynamoDBMapperConfig(new TableNameOverride("xyz"));
DynamoDBMapper mapper = new DynamoDBMapper(client, config);
Data data = new Data();
...
mapper.save(data);
//check if persisted
Data d = mapper.load(Data.class, "Key");
if (d != null) {
System.out.println(" Found data: " + d.getStuff());
} else {
System.out.println("Data not found");
}
}
}
Run Code Online (Sandbox Code Playgroud)
在运行这个时,我得到以下堆栈跟踪 …
我正在通过Udacity的深度学习课程。我观察到的有趣的事情是,对于相同的数据集,我的1层神经网络工作得很好,但是当我添加更多层时,NaN的损失会增加。
我使用以下博客文章作为参考:我使用以下博客文章作为参考:http : //www.ritchieng.com/machine-learning/deep-learning/tensorflow/regularization/
这是我的代码:
batch_size = 128
beta = 1e-3
# Network Parameters
n_hidden_1 = 1024 # 1st layer number of neurons
n_hidden_2 = 512 # 2nd layer number of neurons
graph = tf.Graph()
with graph.as_default():
# Input data. For the training data, we use a placeholder that will be fed
# at run time with a training minibatch.
tf_train_dataset = tf.placeholder(tf.float32,
shape=(batch_size, image_size * image_size))
tf_train_labels = tf.placeholder(tf.float32, shape=(batch_size, num_labels))
tf_valid_dataset = tf.constant(valid_dataset)
tf_test_dataset = tf.constant(test_dataset)
# …Run Code Online (Sandbox Code Playgroud) 我有这样的表结构
<table>
<c forEach var="item" items="${manyItems}">
<tr>
<td id="item1"> ${item.data1} </td>
<td id="item2"> ${item.data2} </td>
<td> <button id="deleteButton"/> </td>
</tr>
</c:forEach>
</table>
Run Code Online (Sandbox Code Playgroud)
现在我想在deleteButton中添加一个click事件
在我的jquery是这样的:
$(function() {
$('#deleteButton').click(function() {
var ele = $(this).parent();
/* fetch the other <td> siblings of the #deleteButton */
/* delete code goes here having an ajax query*/
});
});
Run Code Online (Sandbox Code Playgroud)
此代码仅删除表的第一行,但不适用于任何其他行.
我相信这是因为我们需要有不同的身份证?
请指导我一个好的解决方案.
当我使用特定注释注释List时,我正在尝试绑定List的实例.
我尝试使用Instance Binding和Provider方法,但我一直收到错误.
这是我的@Provides方法和configure()
@Provides @Named("Regions")
public List<String> getRegions() {
return AppConfig.findVector("Regions"); //this would return a Vector<String>
}
@Override
protected void configure() {
bind(List.class).annotatedWith(Names.named("Regions")).to(Vector.class);
}
Run Code Online (Sandbox Code Playgroud)
以下是我尝试获取实例的方法 -
List<String> regions = injector.getInstance(Key.get(List.class, Names.named("Regions")));
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误
com.google.inject.ConfigurationException: Guice configuration errors:
1) No implementation for java.util.List annotated with @com.google.inject.name.Named(value=Regions) was bound.
while locating java.util.List annotated with @com.google.inject.name.Named(value=Regions)
Run Code Online (Sandbox Code Playgroud)