以下是经典Concurency in Practice
:
当线程A写入volatile变量并且随后线程B读取相同的变量时,在写入volatile变量之前A可见的所有变量的值在读取volatile变量后变为B可见.
我不确定我是否真的能理解这句话.例如,在这种情况下所有变量的含义是什么?这是否意味着使用volatile
也会对非易失性变量的使用产生副作用?
在我看来,这句话有一些我无法理解的微妙含义.
有帮助吗?
如果证书已过期,java的TrustManager实现是否会被忽略?
我尝试了以下操作:
- 使用keytool
和参数-startdate "1970/01/01 00:00:00"
我创建了一个带有过期证书的P12密钥库.
- 我出口证书:
Keystore type: PKCS12
Keystore provider: SunJSSE
Your keystore contains 1 entry
Alias name: fake
Creation date: 5 ??± 2011
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Malicious, OU=Mal, O=Mal, L=Fake, ST=GR, C=GR
Issuer: CN=Malicious, OU=Mal, O=Mal, L=Fake, ST=GR, C=GR
Serial number: -1c20
Valid from: Thu Jan 01 00:00:00 EET 1970 until: Fri Jan 02 00:00:00 EET 1970
Certificate fingerprints:
MD5: A9:BE:3A:3D:45:24:1B:4F:3C:9B:2E:02:E3:57:86:11
SHA1: 21:9D:E1:04:09:CF:10:58:73:C4:62:3C:46:4C:76:A3:81:56:88:4D
Signature algorithm name: …
Run Code Online (Sandbox Code Playgroud) BETWEEN
在WHERE
子句中用于选择两个值之间的数据范围.
如果我是正确的,是否排除范围的端点是DBMS特定的.
我无法理解的内容如下:
如果我有一个值表,我会执行以下查询:
SELECT food_name
FROM health_foods
WHERE calories BETWEEN 33 AND 135;`
Run Code Online (Sandbox Code Playgroud)
查询返回结果行,包括卡路里= 33和卡路里= 135(即包括范围端点).
但如果我这样做:
SELECT food_name
FROM health_foods
WHERE food_name BETWEEN 'G' AND 'O';
Run Code Online (Sandbox Code Playgroud)
我没有food_name
开头的行O
.即排除范围的结束.
为了使查询按预期工作,我键入:
SELECT food_name
FROM health_foods
WHERE food_name BETWEEN 'G' AND 'P';`
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么BETWEEN
数字和文本数据会有这样的差异?
我有一个远程存储库和2个克隆.
我在其中一个克隆中创建了一个分支,例如test
.我做了一些工作和2次提交.我合并到master
分支和push -u
分支.
我git pull
在另一个克隆中做了一个.
我看到了两个master
和test
.
在我做的第一个克隆项目中:
git origin :test
删除test
远程存储库上的分支.
test
在远程回购中被删除.
我这样做git branch -D test
,test
分支也在本地删除.
如果我这样做,git branch -a
我得到:
*master
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
现在在第二个存储库中我做了一个git pull
.
在拉动局部test
似乎被删除但git
似乎"认为"远程test
分支仍然存在.
如果我这样做,git branch -a
我得到:
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/test
Run Code Online (Sandbox Code Playgroud)
为什么删除的test
分支显示为远程分支?
使用a的主要原因是javax.activation.DataHandler
什么?
它是否通过网络促进不实现Serializable的对象的传输?
即,例如,我已经看到文件从本地文件系统转换为字节,然后DataHandler
使用这些字节创建一个并DataHandler
通过网络传输.
这是人们使用的原因DataHandler
吗?
我binarySearch
对收藏品的性能分析感到困惑
它说:
如果指定的列表没有实现RandomAccess接口并且很大,则此方法将执行基于迭代器的二进制搜索,该搜索执行O(n)链接遍历和O(log n)元素比较.
我不知道如何解释这个O(n)
+ O(log n)
.
我的意思是,这不仅仅是简单地遍历链表并进行比较吗?我们仍然只得到O(n)
.
那么这句话对绩效意味着什么呢?如上所述,我无法理解链表中的简单线性搜索的区别.
我在这里误解了什么?
我知道这种行为,但我不确定为什么会这样.
据我所知,java中的实例变量没有多态性.变量由编译器静态解析.
但在下面我对某些事感到困惑:
class Animal{
String name = "Animal";
public void display(){
System.out.println("My name is "+ name);
}
}
public class Dog extends Animal {
String name = "Dog";
public static void main(String[] args) {
Animal a = new Dog();
Dog d = new Dog();
System.out.println(a.name);//Line 1
a.display();//Line 2
d.display();//Line 3
}
}
Run Code Online (Sandbox Code Playgroud)
我认为Line 1
它会显示Animal
为静态类型a
(由编译器解析).
让我困惑的是为什么Line 3
还要展示My name is Animal
?
将尝试调用该方法,Dog
因为这是运行时的实际对象,因为它不会被覆盖,所以可以在父类中找到该方法Animal
.
我没有得到的是为什么在操作的实际对象是a时,name
在方法内部使用父类.它不隐藏父变量吗?在我看来它并不是因为类型是静态解析的.这不是oject的内存布局的一部分吗?
就像里面只有父的变量是可见的.为什么? display …
我觉得我很困惑git rm --cached
.
我有一个存储库和一个文件已提交.我修改了文件,我做了:git add myfile
文件现在已经上演了.
当我这样做时git status
:
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: com/main/StringMain.java
#
Run Code Online (Sandbox Code Playgroud)
现在该文件是经过修改的跟踪文件.所以我认为这是在临时区域.所以我无法理解推荐的含义是什么(use "git reset HEAD <file>..." to unstage)
.所以我做了:git rm --cached
而是跟着一个git commit
.但这似乎删除了我的文件被跟踪并使其未跟踪.
如果我这样做git status
:
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# com/
nothing added …
Run Code Online (Sandbox Code Playgroud) 我是新手,但设法创造了一个下降的gui.
我的问题是,我无法应用参考/教程中建议的模式,主要是MVC模式.
是我,还是在JTree中使用SwingWorker,是不是可以清楚地分离控制器/视图/模型?
例如,我使用Swingworker,但是我无法在设计中"适应"控制器.
即控件的动作本质上是在doBackground方法中,例如在按钮的动作执行中.
所以没有控制器类.
swing工作器中的操作结果是更新一个Jtree,所以我将结果传递给一个名为model的类,但是这个类必须能够访问JFrame里面的Jtree的treeModel,即视图,所以没有明确分离视图和模型.
我查看了很多教程,但是所有呈现MVC都有一个简单的例子,在大多数情况下,视图(只是一些标签!)更新了所有内容.我是否完全混淆,或者在使用swingworkers和jtree的swing应用程序中集成MVC模式是不可行的,或者至少不容易?
我在谈论实际的域数据,而不是在swing组件中实现的MVC.
有人可以帮助我(并避免让我摆脱这种可怕的头痛),或者概述一下如何处理这种设计,或者至少有一个教程,这是有用的,有一个非常重要的例子吗?
谢谢
基本上我有一个控制游戏角色攻击的状态机,其时间基于动画长度.
例如:
我从默认状态开始,如果玩家遇到攻击按钮,它会启动攻击,切换状态并根据攻击长度设置计时器.状态机变得更复杂但是当我考虑可以取消的充电攻击时,可以根据击中的内容移动到不同状态的攻击,并且每个州都有独特的方式来处理受到攻击的角色.目前我有大型的switch语句.我考虑过多态,但是对于每个状态都需要一个新类,其中有很多(例如,开始攻击,攻击和完成攻击都需要单独的状态).
switch语句有效,但它非常大,并且不像基于继承的系统那样容易修改.
有关良好实施的任何建议?
编辑:这是使用java.
java ×7
git ×2
algorithm ×1
apache ×1
between ×1
class ×1
collections ×1
concurrency ×1
git-branch ×1
git-clone ×1
git-pull ×1
java-ee ×1
jtree ×1
list ×1
mysql ×1
numbers ×1
oop ×1
overriding ×1
polymorphism ×1
security ×1
sql ×1
ssl ×1
swing ×1
tomcat ×1
varchar ×1
volatile ×1
web-services ×1