在git存储库中,使用git grep优质旧版本是否有任何差异/好处grep?
一个例子是?
我对以下内容感兴趣:
是否有一个字符列表永远不会作为base 64编码字符串的一部分出现?
例如*.我不确定这是否会发生.如果原始输入实际上*是其中的一部分,那么编码方式会不同吗?
我想从键值对语法中提取值对,但我不能.
我试过的例子:
echo employee_id=1234 | sed 's/employee_id=\([0-9]+\)/\1/g'
Run Code Online (Sandbox Code Playgroud)
但这给了employee_id=1234而不是1234实际上是捕获组.
我在这做错了什么?我也尝试过:
echo employee_id=1234| egrep -o employee_id=([0-9]+)
Run Code Online (Sandbox Code Playgroud)
但没有成功.
我有一个Tomcat 7在Linux上运行,我通过开始$CATALINA_HOME/bin/startup.sh通过和关闭$CATALINA_HOME/bin/shutdown.sh
从/etc/init.d
一切都没问题,除了1个问题.有时tomcat不会停止.
虽然我停止它,但我看到catalina.out日志正在下降,如果我这样做,ps -ef我仍然可以看到进程正在运行.
可能是什么问题呢?我该怎么调试呢?我的感觉是,这与线程有关.
因此,可疑的部分如下:
1)我使用Log4j的LogManager来检测log4j配置是否已经更改,但我做Log4jManager.shutdown 了contextDestroyed ServletContextListener
2)我使用H2数据库,我在关机时看到:
严重:Web应用程序[/ MyApplication]似乎已经启动了一个
名为[H2 Log Writer MYAPPLICATION] 的线程,但未能阻止它.
这很可能造成内存泄漏严重:Web应用程序[/ MyApplication]似乎已经启动了一个
名为[H2 File Lock Watchdog
/opt/myOrg/tomcat/webapps/MyApplication/db/myDatabase.lock.db] 的线程,但
未能阻止它.这很可能造成内存泄漏.
2012年4月2 日上午9:08:08 org.apache.catalina.loader.WebappClassLoader
clearReferencesThreads严重:Web应用程序[/ MyApplication]
似乎已经启动了一个名为[FileWatchdog]但未能
阻止它的线程.这很可能造成内存泄漏.
有什么帮助吗?我怎样才能在这里发现问题?
更新:
我kill -3按照@daveb的建议做了一个,并在catalina.out中看到:
JVMDUMP006I正在处理转储事件"user",详细信息"" - 请稍候.JVMDUMP032I JVM使用'/etc/init.d/javacore.20120402.093922.2568.0001.txt'请求Java转储,以响应写入/etc/init.d/javacore.20120402.093922.2568.0001.txt的JVMDUMP010I Java转储事件JVMDUMP013I已处理的转储事件"用户",详细信息"".
有一个javacore /etc/init.d但我不知道如何处理它.即我应该调查哪些部分
我想知道这样的代码:
List<String> list = new ArrayList<String>();
for(CustomObject co : objects) {
list.add(co.getActualText());
}
Run Code Online (Sandbox Code Playgroud)
可以用不同的方式书写吗?我的意思是当然在某些时候会有一个循环,但我想知道是否有一个我忽略的API用法
我无法理解EXPORT_OKvs 的区别/用例是什么EXPORT.
大多数资源都提到了以下内容:
@Export允许使用标准导入方法将模块的函数和变量导出到用户的命名空间.这样,我们不需要为模块创建对象来访问其成员.
@EXPORT_OK根据需要导出符号,用于模块的符号(子例程和变量)的选择列表.
但我真的没有看到这里的区别/含义.
有人可以提供这两个符号的差异/用法的一个小基本例子吗?
这与这篇文章有关.
我认为我的H2意思是它没有正确关闭.
我怀疑这是因为我看到myDB.lock.db我关闭tomcat并且进程没有停止.
我使用Tomcat的连接池,数据库的URL是:
url="jdbc:h2:file:/opt/myOrg/tomcat/webapps/MyApplication/db/myDatabase;SCHEMA=myschema"
从文件关闭H2:
通常,数据库在最后一次连接关闭时关闭....默认情况下,数据库在最后一个连接关闭时关闭.但是,如果它从未关闭,则在虚拟机使用关闭挂钩正常退出时,数据库将关闭
我无法理解我是否做错了什么.
我应该通过命令强制关闭数据库吗?这是关机钩子的意思吗?
我在这做错了什么?
注意:
我在Google中找不到如何H2正确关闭的示例(除了它在上次连接关闭时自动关闭的声明).我应该给SHUTDOWN自己打电话吗 这是正确的方法吗?
我已经看到投票来结束这个问题了,但我正在研究的一个例子没有理由或联系
更新:
在Joonas Pulakka回答一些额外信息之后:
从javacore我使用kill -3我看到的线程:
"H2 Log Writer MYAPPLICATION"J9VMThread:0x08DC6F00,j9thread_t:0x08C9B790,java/lang/Thread:0xE7206CC8,状态:CW,prio = 5 3XMTHREADINFO1(本机线程ID:0xA32,原生优先级:0x5,本机策略:UNKNOWN)3XMTHREADINFO2
(原生)堆栈地址范围从:0xE5E26000,到:0xE5E67000,大小:0x41000)3XMTHREADINFO3 Java callstack:
java/lang/Object.wait上的
4XESTACKTRACE (本机方法)java/lang/Object.wait上的4XESTACKTRACE(Object.java:196(编译代码) ))4xESTACKTRACE at org/h2/store/WriterThread.run(WriterThread.java:102)
4XESTACKTRACE at java/lang/Thread.run(Thread.java:736)3XMTHREADINFO"pool-8-thread-1"J9VMThread:0x087C0200,j9thread_t:0x0840566C,java/lang/Thread:0xE79BFC80,state:P,
prio = 5 3XMTHREADINFO1(本机线程ID:0xE1A,本机优先级:0x5,本机策略:UNKNOWN )3XMTHREADINFO2
(本机堆栈地址范围:0xE5F69000,至:0xE5FAA000,大小:0x41000)3XMTHREADINFO3 Java callstack:
4XESTACKTRACE at sun/misc/Unsafe.park(本机方法)
4XESTACKTRACE at java/util/concurrent/locks/LockSupport.park( LockSupport.java:184(Compiled Code))4XESTACKTRACE at java/util/concurrent/locks/AbstractQueuedSynchronizer $ ConditionObject.await(AbstractQueuedSynchronizer.java:1998(Compiled Code))4XESTACKTRACE at java/util/concurrent/LinkedBlockingQueue.take(LinkedBlockingQueue. java:413(编译代码))4XESTACKTRACE at …
在MVP模式中谁负责处理用户界面的点击?
例如,非MVP方法将是这样的:
counterButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
totalClicks++;
counterTextView.setText("Total clicks so far: "+totalClicks);
}
});
Run Code Online (Sandbox Code Playgroud)
使用MVP是onClick责任Presenter吗?或者View可以处理?
有人可以澄清一下吗?