我已经使用C++和Java几年了.我似乎无法理解的一件事是,为什么我们需要为类的构造函数提供名称?例如,如果我必须FOO在C++/Java中定义一个类,我将被迫提供FOO构造函数名称.但是,由于构造函数从未被显式调用,编译器的意义在于强迫我为它提供一个名称.
抽象范式决定了,我们隐藏了程序员不必要的细节.这就是原因,构造函数没有返回类型,因为它已经很好地定义了构造函数必须返回的内容.本着同样的精神,为什么我们不能只给所有类的构造函数赋一个通用名称 - 例如任何有意义的东西,比如initialize()或者只是什么都没有,只是参数( [arg [,arg]] )
我希望,我能够表达自己.如果有人有任何确定的答案,请告诉我.
在最近的一次采访中,我被问到以下问题:
使用给定
getrnd50()方法打印1-100中的随机数,该方法生成1-50的随机数.每个随机数应仅以随机顺序打印一次.不允许使用其他随机数生成器,我不允许更改其定义getrnd50().
我想出了以下代码,它给出了正确的输出.
import java.util.Random;
public class Test {
public static void main(String[] args) {
int[] rs = new int[100];
int count = 0;
int k;
while (count != 100) {
// I decided to simply multiply the result of `getrnd50()` by 2.
// But since that would generate only even numbers,
k = getrnd50() * 2;
// I decided to randomly subtract 1 from the numbers.
// Which i accomlished as follows.
if (getrnd50() <= …Run Code Online (Sandbox Code Playgroud) 我一直在尝试编写一个 XPath 语句,该语句将选择节点的第一个前同级。那个兄弟节点应该有一个特定的节点作为它的子节点。
例如:
<a>
<c></c>
....
<b></b>
</a>
<a></a>
....
....
<a></a>
<a>
<b> start </b>
</a>
Run Code Online (Sandbox Code Playgroud)
在上面的 XML 中,如果我的上下文位于其 child 中a包含start文本的节点b。如何选择a子节点为 的前一个节点b?
我试过,preceding-sibling::*[b][1]但它只选择节点,a如果b它是它的第一个孩子。我也试过,preceding-sibling::*[1][b]但它只检查前面的第一个a节点,如果它不包含b,则测试失败。
注意:我使用的是 XSLT 1.0
谁能建议我一个解决方案?
提前谢谢!!
我想在Ubuntu 14.04上安装MySQL 5.7.
以下是我遵循的步骤:
rm -rf /var/lib/mysql
mkdir -p /var/lib/mysql
cd
wget http://dev.mysql.com/get/mysql-apt-config_0.7.2-1_all.deb
dpkg -i mysql-apt-config_0.7.2-1_all.deb
apt-get update
apt-get -y install mysql-server
Run Code Online (Sandbox Code Playgroud)
除最后一步外,所有步骤都完美无缺.它给了我以下错误:
mysqld: Can't create/write to file '/var/lib/mysql/is_writable' (Errcode: 13 - Permission denied)
2016-05-10T02:10:24.219279Z 0 [ERROR] --initialize specified but the data directory exists and is not writable. Aborting.
2016-05-10T02:10:24.219530Z 0 [ERROR] Aborting
Run Code Online (Sandbox Code Playgroud)
以下是错误的完整日志:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
apparmor libaio1 libapparmor-perl libapparmor1 libmecab2 mysql-client
mysql-common mysql-community-client …Run Code Online (Sandbox Code Playgroud) 我正在玩一些异常程序,并遇到了一些我以前从未遇到过的惊喜.
import java.io.*;
class ExceptionTest
{
public static void main(String[] args)
{
try
{
System.out.println("hello");
}
catch(IOException ioe)
{
System.err.println("ioexception was thrown!!");
}
}
}
Run Code Online (Sandbox Code Playgroud)
这会引发编译器错误:
ExceptionTest.java:10: exception java.io.IOException is never thrown in body of
corresponding try statement
catch(IOException ioe)
^
1 error
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么会这样?
为什么编译器担心它肯定永远不会达到的代码片段.它可能只是一个警告,而不是一个完整的错误.毕竟我们可能希望保留catch块作为我们可能进行的一些未来更改的备份,或者程序员在一些编辑后忘记删除它.
我知道我知道它可以避免不必要的击键等等.但它不应该麻烦编译器引起错误.还是有其他原因吗?
代码中的IOException catch块也会产生编译器错误,但Exception catch块不会......为什么会这样?Thnx提前!!
我正在研究多态性.我无法确定Java中有关这两个功能的类比.
假设Animalclass是一个具体的超类,Cat并且Dog作为它的子类.我知道这是继承的情况.但是不是Cat和Dog类,类的多态Animal?
我很清楚Java中的接口.我无法理解为什么使用接口而不是具体类来解释多态性.可能是创建接口的整个目的是创建多态,但我想知道为什么接口而不是具体的类?
我已经jnlp从他们网站上提供的oracle教程中下载了一些文件作为示例.虽然它们运行但是还有什么方法可以从中检索源代码吗?这将真正帮助我更好地理解他们的例子.
Thanx提前!!
我想在Ubuntu上升级Node.js,但我想确保如果出现任何问题,我可以将我的源代码,已安装的模块和node二进制文件恢复到工作设置.怎么实现呢?
考虑以下XML:
<root>
<a>
<pos>
<c val="abc"></c>
<c val="def"></c>
<c val="ghi"></c>
<c val="jkl"></c>
<c val="mno"></c>
</pos>
<b>
<c></c>
</b>
<b>
<c></c>
<d>here</d>
</b>
<b>
<e>and</e>
<c></c>
<d>for</d>
</b>
<b>
<c></c>
<c></c>
<d>also</d>
</b>
</a>
<a>
<pos>
<c val="pqr"></c>
<c val="stu"></c>
<c val="vwx"></c>
<c val="yz"></c>
</pos>
<b>
<c></c>
<d>what</d>
</b>
<b>
<c></c>
</b>
<b>
<d>how</d>
</b>
<b>
<c></c>
<d>where</d>
<c></c>
</b>
</a>
</root>
Run Code Online (Sandbox Code Playgroud)
现在在我的输出中,当我遇到一个<c></c>内部a时b,我需要从节点val中输入a 的属性的相应值.通过对应的值,我的意思是内部节点的索引应该与所有节点组合的索引相同.<c></c><pos></pos>cposcb
所需的输出是:
<start>
<level>
abc
</level> …Run Code Online (Sandbox Code Playgroud) 我正在尝试为以下SVG形状制作投影:
<svg style="overflow:visible; ">
<defs>
<marker orient="auto" refY="4" refX="2" markerHeight="13" markerWidth="13" id="_x0000_s1094end">
<path style="fill:yellow; " d="M2,2 L2,6 L6,4 L2,2" />
</marker>
</defs>
<path d="M 288,164 L 108,176" style="stroke-width:8; stroke:yellow; marker-end:url(#_x0000_s1094end); " y="4" x="4"/>
</svg>
Run Code Online (Sandbox Code Playgroud)

在阴影之后,形状被假定为这样(忽略除箭头及其阴影之外的位):

我尝试了以下SVG:
<svg style="overflow:visible; ">
<defs>
<marker orient="auto" refY="4" refX="2" markerHeight="13" markerWidth="13" id="_x0000_s1094end">
<path style="fill:yellow; " d="M2,2 L2,6 L6,4 L2,2" />
</marker>
<filter id="f1" x="0" y="0" width="500%" height="500%">
<feOffset result="offOut" in="SourceAlpha" dx="-8" dy="-8" />
<feBlend in="SourceGraphic" in2="offOut" mode="normal" />
</filter>
</defs>
<path d="M 288,164 L 108,176" …Run Code Online (Sandbox Code Playgroud) java ×5
xml ×2
xpath ×2
xslt ×2
abstraction ×1
c++ ×1
constructor ×1
css ×1
exception ×1
html ×1
interface ×1
jnlp ×1
mysql ×1
node.js ×1
optimization ×1
polymorphism ×1
random ×1
svg ×1
svg-filters ×1
swing ×1
ubuntu ×1
xslt-1.0 ×1