小编Ani*_*kur的帖子

如何在发生未处理的异常时跳过sys.exitfunc

正如你所看到的,即使该计划应该已经死亡,它也会从坟墓中说出来.有没有办法在例外的情况下"取消注册"退出功能?

import atexit

def helloworld():
    print("Hello World!")

atexit.register(helloworld)

raise Exception("Good bye cruel world!")
Run Code Online (Sandbox Code Playgroud)

输出

Traceback (most recent call last):
  File "test.py", line 8, in <module>
    raise Exception("Good bye cruel world!")
Exception: Good bye cruel world!
Hello World!
Run Code Online (Sandbox Code Playgroud)

python exception atexit

4
推荐指数
1
解决办法
2983
查看次数

ObjectClass.class变量在哪里定义/初始化?

考虑下面的示例代码

 public class Test {

    public static void main(String args[]) {

        Test t = new Test();
        Class c2 = Test.class;
        System.out.println(c2);

    }
}
Run Code Online (Sandbox Code Playgroud)

Test.class静态计算并返回编译时Class对象.看一下Test.class它看起来像变量类的语法type java.lang.Class and is static and public.我的问题是这个变量定义在哪里?它在Test类中不存在(因为我没有声明它),它也不在java.lang.Object类中.

我看到了一个类似的方法public final native Class<?> getClass();.这存在于java.lang.Object并且是native java method.此方法返回对象的运行时类.

所以我的问题是这个公共和静态类变量定义在哪里?(如果我错了,请纠正我)是否是一些原生实现?这是在编译时设置的,静态不需要创建类实例.所以即使这是一些本机实现,它是由registerNatives()java.lang.Object中的方法初始化的吗?

java class

4
推荐指数
1
解决办法
80
查看次数

将备份表数据还原到原始表SQL

我为我的国家/地区表创建了备份.

create table country_bkp as select * from country;
Run Code Online (Sandbox Code Playgroud)

我应该用什么SQL将country表恢复到原始状态?我可以

insert into country select * from country_bkp;
Run Code Online (Sandbox Code Playgroud)

但它只会有重复的条目,可能会失败,因为主键是相同的.

是否有用于合并数据的SQL命令?

最后的选择是

DROP TABLE country;
create table country as select * from country_bkp;
Run Code Online (Sandbox Code Playgroud)

但我想避免这种情况,因为所有人grants/permissions都会因此而迷失方向.

其他更干净的方式

delete from country ;
insert into country select * from country_bkp;
Run Code Online (Sandbox Code Playgroud)

但我正在寻找更多的合并方法,而无需从原始表中清除数据.

sql database oracle backup plsql

4
推荐指数
2
解决办法
9988
查看次数

可重入锁定并发哈希表是否使用其可选的“公平”参数?

在ConcurrentHashMap中,我们具有基本上扩展ReentrantLock的段。

static final class Segment<K,V> extends ReentrantLock implements Serializable
Run Code Online (Sandbox Code Playgroud)

这个ReentrantLock是否使用其公平属性?

public ReentrantLock(boolean fair) {
    sync = fair ? new FairSync() : new NonfairSync();
}
Run Code Online (Sandbox Code Playgroud)

因此,可以说线程t1在ConcurrentHashMap的一个分区上具有读取锁定,另外两个线程t2和t3在同一分区上分别等待读取和写入锁定。因此,一旦t1释放锁,哪个(t2或t3)将获得该锁。

据我所知,如果公平性设置为true,那将是等待时间最长的人。但是,在并发HashMap的情况下是否将其设置为true?如果不能,我们可以肯定地说哪个线程将获得下一个锁?

java synchronization concurrenthashmap

3
推荐指数
1
解决办法
1327
查看次数

JConsole没有连接到java进程

当我开始JConsole它标识我的java进程(本地)但它无法连接到它.

Connection Failed: Retry?
The connection to 17424 did not succeed.
Would you like to try again? 
Run Code Online (Sandbox Code Playgroud)

再次选择connect会产生相同的错误(17424是java进程的pid).另一方面 jvisualvm工作得很好.在jvisualvm中,我看到以下细节

PID: 17424
Host: localhost
Main class: Conatainer

JVM: Java HotSpot(TM) 64-Bit Server VM (23.6-b04, mixed mode)
Java: version 1.7.0_11, vendor Oracle Corporation
Java Home: /home/aniket/jdk1.7.0_11/jre
JVM Flags: <none> 
Run Code Online (Sandbox Code Playgroud)

有没有人遇到过这种情况?这是一个错误吗?有工作吗?

java jconsole jvisualvm

3
推荐指数
1
解决办法
3583
查看次数

如何进行堆转储?

我想在JVM崩溃时收集堆转储

所以我写了一个简单的代码

public class Test {
private String name;

public Test(String name) {
    this.name = name;
}

public void execute() {

    Map<String,String> randomData = new HashMap<String,String>();
    for(int i=0;i<1000000000;i++) {
       randomData.put("Key:" + i,"Value:" + i);
    }
}

public void addData() {
}

public static void main(String args[]) {
    String myName = "Aniket";
    Test tStart = new Test(myName);
    tStart.execute();
}
}
Run Code Online (Sandbox Code Playgroud)

我按如下方式运行它

[aniket@localhost Desktop]$ java -cp . -Xms2m -Xmx2m Test
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at Test.execute(Test.java:15)
    at Test.main(Test.java:25) …
Run Code Online (Sandbox Code Playgroud)

java jvm jvm-crash heap-dump

3
推荐指数
1
解决办法
6585
查看次数

Android权限和ProtectionLevel

我们如何找到特定权限所需的Android防护级别.

让我们说android.permission.SET_ACTIVITY_WATCHER(docs)

它属于什么保护级别?(docs)

  • 定期
  • 危险
  • 系统或签名

permissions android

3
推荐指数
1
解决办法
1万
查看次数

Spring Webflow - 如何获取流 ID 列表

获取 Spring Webflow 生成的 FLOW ID 完整列表的最佳方法是什么?

这是我的配置:

<webflow:flow-registry id="flowRegistry" 
           flow-builder-services="flowBuilderServices" 
           base-path="/WEB-INF/pageFlows">
     <webflow:flow-location-pattern value="/**/*-flow.xml"/>    
</webflow:flow-registry>
Run Code Online (Sandbox Code Playgroud)

[更新 1] 我应该澄清我想在 Java 代码中执行此操作,而不是通过检查我的配置。

[更新 2] 答案: requestContext.getActiveFlow().getApplicationContext()

spring-webflow

3
推荐指数
1
解决办法
3257
查看次数

var arg和array之间的区别

假设我有一个类似的代码

public class HelloWorld {

    public static String method1(String[] array){return ""+array.length;}
    public static String method2(String... array){return ""+array.length;}


    public static void main(String args[]) {
        System.out.println(method1(new String[]{"test"})); //allowed
        //System.out.println(method1("test")); Not allowed
        System.out.println(method2(new String[]{"test"}));  //allowed
        System.out.println(method2("test")); //allowed
    }
}
Run Code Online (Sandbox Code Playgroud)

当我做 javap HelloWorld

C:\Users\athakur\JavaProjectWorkspace\HelloWorld\bin\test>javap HelloWorld
Compiled from "HelloWorld.java"
public class test.HelloWorld extends java.lang.Object{
    public test.HelloWorld();
    public static java.lang.String method1(java.lang.String[]);
    public static java.lang.String method2(java.lang.String[]);
    public static void main(java.lang.String[]);
}
Run Code Online (Sandbox Code Playgroud)

因此,根据类文件method1和method2采用相同的数组参数.那为什么他们可以采取的输入差异?

类似method1不能采用简单的String输入,因为var arg可以采用变量String输入和数组?

java arrays variadic-functions javap

3
推荐指数
1
解决办法
992
查看次数

将现有项目推送到 github 删除了现有的自述文件

据我了解,您无法从本地远程初始化存储库。因此,我使用自述文件在远程创建了一个存储库。

在此处输入图片说明

然后我尝试将本地项目推送到这个存储库。

  1. mkdir MyTestRepo
  2. cd MyTestRepo/
  3. 触摸测试.txt
  4. 混帐初始化
  5. git 添加。
  6. git commit -m "第一次提交"
  7. git 远程添加源https://github.com/aniket91/MyTestRepo.git
  8. git push -f 源主

在此处输入图片说明

为什么会这样?

git github

3
推荐指数
2
解决办法
510
查看次数