关于声明区域:
每个名称都在程序文本的某些部分中引入,称为声明性区域,这是该名称有效的程序的最大部分.
关于范围:
通常,每个特定名称仅在称为其范围的程序文本的一些可能不连续的部分内有效.
它们之间有什么区别?
我想,我们不能覆盖service()
任何特定servlet中的方法.那么目的是httpservlet service method
什么?
我已经为实验编写了代码 reinterpret_cast<T>
#include <iostream>
#include <cstdlib>
using std::cout;
using std::endl;
int foo()
{
cout << "foo" << endl;
return 0;
}
void (*bar)();
int main()
{
bar = reinterpret_cast<void (*)()>(foo); //Convertion a function type to a pointer to function type
bar(); //displays foo. Is it UB?
}
Run Code Online (Sandbox Code Playgroud)
首先,为什么reinterpret_cast
允许这种转换?我认为这种转换是不正确的。
我怀疑方法局部变量仅在方法执行时才存在.此外,GC Eden
或Long-generation
块溢出时触发(轻微/主要GC)等......所以,如果在方法体的末尾Eden
没有溢出,那么就不需要触发GC.尽管没有触发主要/次要GC,我们将销毁所有局部变量.怎么做?
我正在使用PostgreSQL 8.4
.我有一个表的列,my_tbl
其中包含日期(timestamp without timezone
).例如:
date
-------------------
2014-05-27 12:03:20
2014-10-30 01:20:03
2013-10-19 16:34:34
2013-07-10 15:24:26
2013-06-24 18:15:06
2012-07-14 07:09:14
2012-05-13 04:46:18
2013-01-04 21:31:10
2013-03-26 10:17:02
Run Code Online (Sandbox Code Playgroud)
如何编写以下格式返回所有日期的SQL查询:
xxxx-xx-xx 23:59:59
Run Code Online (Sandbox Code Playgroud)
这个日期将设置为当天结束.
JLS 8.1.3为我们提供了关于未在内部类中声明但在类中使用的变量的规则.
使用但未在内部类中声明的任何局部变量,形式参数或异常参数必须声明为final或者是有效的final(§4.12.4),否则在尝试使用时会发生编译时错误.
一个例子:
class A{
void baz(){
int i = 0;
class Bar{ int j = i; }
}
public static void main(String[] args){
}
}
Run Code Online (Sandbox Code Playgroud)
为什么编译代码?我们在内部类中使用了非final的局部变量,该变量在那里没有声明.
Mojarra 2.2.12
以下是接管FacesContext实例化的代码片段:
FacesContext context = facesContextFactory.getFacesContext
(servletConfig.getServletContext(), request, response, lifecycle);
Run Code Online (Sandbox Code Playgroud)
表达非常清楚.获得请求后,我们从中获取全局信息并FacesContext
使用它创建实例.因此,为每个请求创建实例.但在facesContextFactory
我看来,获得这种感觉更加棘手.
// Acquire our FacesContextFactory instance
try {
facesContextFactory = (FacesContextFactory)
FactoryFinder.getFactory
(FactoryFinder.FACES_CONTEXT_FACTORY);
} catch (FacesException e) {
//others
}
Run Code Online (Sandbox Code Playgroud)
哪里
String javax.faces.FactoryFinder.FACES_CONTEXT_FACTORY = "javax.faces.context.FacesContextFactory"
Run Code Online (Sandbox Code Playgroud)
JavaDocs用于FactoryFinder
描述所谓的
JavaServer Faces API中指定的所有工厂对象的标准发现算法.
这就是我感到困惑的地方.
现在,让我们考虑创建工厂实例的实际方法:javax.faces.FactoryFinderInstance #getFactory(String factoryName)
try {
factoryOrList = factories.get(factoryName);
if (!(factoryOrList instanceof List)) {
return factoryOrList;
}
} finally {
lock.readLock().unlock();
}
Run Code Online (Sandbox Code Playgroud)
该factories
字段初始化如下copyInjectionProviderFromFacesContext():
private void copyInjectionProviderFromFacesContext() { …
Run Code Online (Sandbox Code Playgroud) 由于StringBuffer
是线程安全的,因此可以安全地发布.考虑StringBuffer
(来源)的公共构造函数:
public StringBuffer() {
super(16);
}
Run Code Online (Sandbox Code Playgroud)
在哪里super(16)
指定这个:
AbstractStringBuilder(int capacity) {
value = new char[capacity];
}
Run Code Online (Sandbox Code Playgroud)
其中值声明为
char[] value;
Run Code Online (Sandbox Code Playgroud)
问题:如何StringBuffer
安全发布?
我有以下课程:
public class Holder{
public final StringBuffer sb = new StringBuffer();
}
Run Code Online (Sandbox Code Playgroud)
它可以被视为安全出版物吗?我想,它不可能.
final
保证我们会看到参考的新值sb
.但写入sb
内部状态AbstractStringBuilder(int capacity)
并不是同步的.因此,有没有happens-before
这反过来又意味着,从读命令value
调用发生时,sb.append(2);
并写入value
在构造函数是活泼的.
你能帮忙理解这个吗?也许我错过了什么......
我有一些误解的合同的thenCompose(Function<? super T,? extends CompletionStage<U>> fn)
。这是那里所说的:
返回一个新的
CompletionStage
,当这个阶段正常完成时,将这个阶段作为提供函数的参数执行。
该函数似乎接受 this 的结果CompletionStage
,而不是它CompletionStage
本身。那么他们是什么意思呢?
那么返回的 代表的任务CompletableFuture
呢?
Runnable r;
ExecutorService es;
Function<Void, CompletableFuture<Void>>f;
//...
CompletableFuture.runAsync(r, es)
.thenCompose(f);
Run Code Online (Sandbox Code Playgroud)
这是否意味着,由CompletableFuture
返回的任务thenCompose
将ThreadPool
与Runnable r
?
我正在解决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 ×6
c++ ×2
algorithm ×1
binary-tree ×1
class ×1
java-8 ×1
java-ee ×1
jsf ×1
lifecycle ×1
postgresql ×1
scope ×1
servlets ×1
sql ×1
threadpool ×1