我读过大约4级隔离:
Isolation Level Dirty Read Nonrepeatable Read Phantom Read
READ UNCOMMITTED Permitted Permitted Permitted
READ COMMITTED -- Permitted Permitted
REPEATABLE READ -- -- Permitted
SERIALIZABLE -- -- --
Run Code Online (Sandbox Code Playgroud)
我想了解每个事务隔离对表的锁定
READ UNCOMMITTED - no lock on table
READ COMMITTED - lock on committed data
REPEATABLE READ - lock on block of sql(which is selected by using select query)
SERIALIZABLE - lock on full table(on which Select query is fired)
Run Code Online (Sandbox Code Playgroud)
下面是事务隔离中可能发生的三种现象
Dirty Read - no lock
Nonrepeatable Read - 没有脏读作为锁定提交数据
Phantom …
我被问到一个问题,我想在这里查看我的答案.
问:在哪种情况下扩展抽象类而不是实现接口更合适?
答:如果我们使用模板方法设计模式.
我对么 ?
如果我无法清楚地陈述问题,我很抱歉.
我知道抽象类和接口之间的基本区别.
1)当需求需要在特定操作的每个子类中实现相同的功能(实现方法)和其他一些操作的不同功能(仅方法签名)时,使用抽象类
2)如果需要将签名设置为相同(并且实现不同),请使用接口,以便您可以遵守接口实现
3)我们可以扩展一个抽象类的最大值,但可以实现多个接口
重申一个问题:除了上面提到的那些之外,还有其他任何场景,具体我们需要使用抽象类(一个是模板方法设计模式在概念上仅基于此)吗?
接口与抽象类
在这两者之间做出选择真的取决于你想做什么,但幸运的是,对我们来说,Erich Gamma可以帮助我们一点.
一如既往地存在权衡,接口为您提供基类的自由,抽象类使您可以自由地在以后添加新方法. - Erich Gamma
你无法在不改变代码中的许多其他东西的情况下更改接口,因此避免这种情况的唯一方法是创建一个全新的接口,这可能并不总是一件好事.
Abstract classes
应主要用于密切相关的对象.Interfaces
更好地为不相关的类提供通用功能.
可能重复:
如何在Oracle中缩短varchar2字段?
在Oracle(9i及以上)
Alter table employee
MODIFY ename varchar2(10);
Run Code Online (Sandbox Code Playgroud)
我想将表employee的列ename从varchar2(30)更改为varchar2(10)
情况1:如果表中的数据具有包含长度小于10个字符的值的ename列(我的意思是它可以很容易地适合varchar2(10)) - 这是否允许oracle?
情况2:如果表中的数据包含的ename列包含长度大于10 char的值(我的意思是它不能适合varchar2(10)) - 这是不是oracle允许的?
我试图找到这些答案,但无法在Google或Java文档中找到它.
情况1:在ConcurrentHashMap
,假设线程t1正在从段n读取,并且在同一个另一个线程t2想要在同一段n上写入:
问题1:这两个操作将是一个接一个,还是会同时执行?
情况2:在ConcurrentHashMap
,假设线程t1正在写入段n,并且在同一个另一个线程t2想要从同一段n读取,
问题2:这两个操作将是一个接一个,还是会同时执行?
public V get(Object key) {
if (key == null)
return getForNullKey();
int hash = hash(key.hashCode());
for (Entry<K,V> e = table[indexFor(hash, table.length)];
e != null;
e = e.next) {
Object k;
if (e.hash == hash && ((k = e.key) == key || key.equals(k)))
return e.value;
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
我所了解的是,如果你想获得一个物体的HashMap
,首先它通过搜索基于哈希码/散列值,然后遍历散列桶LinkedList
在同在hashbucket(假设DIFF对象具有相同的散列码,从而哈希桶).
但在查看上面的代码之后,我无法理解何时迭代LinekedList(以及LinkedList在哪里)
在HashMap文档中,提到:
现在假设我们的初始容量为16(默认值),如果我们继续添加100个元素,则hashmap的容量为100*loadfactor.
散列桶的数量是100还是16?
编辑:
从我读到的解决方案:存储桶不仅仅是添加的元素.以此为观点:因此,如果我们将字符串添加为键,我们将获得一个元素/存储桶,从而导致大量空间消耗/复杂性,我的理解是正确的吗?
我一直在寻找SOA和Microservices架构风格之间的差异,并找到了一个很好的链接https://www.infoq.com/articles/boot-microservices
它说:
作为“面向服务的体系结构”(SOA)的继承者,微服务可以归入同一类“分布式系统”中,并继承了许多相同的SOA概念和实践。但是,它们的区别在于对单个服务的责任范围。在SOA中,服务可能负责处理各种功能和数据域,而微服务的一般准则是它负责管理单个数据域以及该域周围的相应功能。
请帮助我了解:
单个数据域的含义(建议用于微服务)。是说必须构建一个单独的微服务来管理单个域/实体(以及与此单个域/实体相关联/复合的域/实体)。因为如果是这种情况,那么即使要实现基本功能(企业)应用程序,也会有许多(〜20到〜50)个微服务
编辑:我已经看过微服务架构和SOA之间的链接差异,但是它解释说,它在前两个原则上是相同的,在第三点上是不同的(在SOA中,服务共享模式和协定,而不是类),但是是SOAP合同,但是黑白SOA(使用REST)与微服务(主要是使用REST)有什么区别?
在Oracle 10+版本中,即使它们同时在同一个表的不同行上运行,也能在同一个表上更新和删除导致死锁吗?
该表具有由两列组成的主键,并且没有与任何其他表关联/引用的任何FK.并且与其他表没有父/子关系
我相信它不会造成僵局,但我在申请中面临一个问题.
添加oracle跟踪:
以下死锁不是ORACLE错误.由于应用程序设计中的用户错误或发出不正确的临时SQL,这是一个死锁.以下信息可能有助于确定死锁:
Deadlock graph:
---------Blocker(s)-------- ---------Waiter(s)---------
Resource Name process session holds waits process session holds waits
TX-0007003e-0081d6c3 45 790 X 104 20 X
TX-00080043-0085e6be 104 20 X 45 790 X
session 790: DID 0001-002D-000035F9 session 20: DID 0001-0068-000007F6
session 20: DID 0001-0068-000007F6 session 790: DID 0001-002D-000035F9
Rows waited on:
Session 790: obj - rowid = 0000F0C8 - AAAPDIAAMAAAEfIAAA
(dictionary objn - 61640, file - 12, block - 18376, slot - 0)
Session 20: obj - rowid …
Run Code Online (Sandbox Code Playgroud) 我正在尝试设置 E2E cypress 测试
同样,尝试(但失败)从 SSE 连接(模拟)获取事件,并在设置 SSE 连接之前发出推送事件
问:您能帮忙吗解决这个问题,因为我可能做错了整件事或遗漏了一些东西
注意:根据此 PR,cypress 支持 SSE - https://github.com/cypress-io/cypress/pull/2054
无法找到任何关于 cypress 的 SSE 支持参考 - https://docs.cypress.io/ api/命令/route.html
const EEmitter = new EventEmitter();
Run Code Online (Sandbox Code Playgroud)
cy.route({
method: 'GET',
url: `**/documentprocessing/startprocess`,
status:200,
response: {
"uniqueId": "abcd12345677",
},
})
.as(`startprocess`)
.route({
method: 'GET',
status:200,
url: '**/documentprocessing/getSSEStatus/**',
headers: {
'Content-Type': 'text/event-stream',
'Cache-Control': 'no-cache',
Connection: 'keep-alive',
},
onResponse: () => {
EEmitter.on('push', function(event, data) {
response.write(
'event: ' +
String(event) +
'data: ' +
String(data) +,
); …
Run Code Online (Sandbox Code Playgroud) 我相信它们是相同的,XML格式的文件,如下例所示:
<definitions name="HelloService"
targetNamespace="http://www.examples.com/wsdl/HelloService.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.examples.com/wsdl/HelloService.wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
//other code
</definitions>
Run Code Online (Sandbox Code Playgroud)
WSDL文档和WSDL合同之间有区别吗?
java ×5
hashmap ×2
oracle ×2
cypress ×1
interface ×1
soa ×1
sql ×1
transactions ×1
web-services ×1
wsdl ×1