IBM J9VM的默认堆大小是多少?

我安装了IBM的J9 VM(build 2.3,J2RE 1.5.0 IBM J9 2.3)。 获得OOM后,堆转储的大小为383MB。 JVM有多少堆? 我问的原因是400MB堆转储似乎对我预期的默认64MB堆有点多,但我没有指定任何-Xm选项。 J9是否使用不同的默认堆大小? 如果是这样,我怎么知道它是什么?

如何在android中通过图像id查看图像

我在MediaStore中获得了图片ID。 如何在ID中查看图库中的图像? 我目前使用以下代码: ContentResolver cr = context.getContentResolver(); String columns[] = new String[]{ Media._ID, Media.DATA }; Cursor cursor = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, Media._ID+”=?”, new String[]{id+””}, null); if(cursor.moveToNext()) { String imagePath = cursor.getString(cursor.getColumnIndex(Media.DATA)); Uri imageUri = Uri.fromFile(new File(imagePath)); Intent intent = new Intent(); intent.setAction(android.content.Intent.ACTION_VIEW); intent.addCategory(android.content.Intent.CATEGORY_DEFAULT); intent.setDataAndType(imageUri, “image/*”); ((Activity)context).startActivity(intent); } 它有效,但它太麻烦了。 我认为应该有一种更简单的方法来做到这一点。 关键是从图像ID获取图像Uri。

Java哈希码在一种情况下发生冲突而在另一种情况下不会发生碰撞,为什么? (以下代码)

我尝试编写一个小程序来演示java中的哈希冲突,只重写了equals而不是hashcode()方法。 这是为了certificate两个不等对象可以具有相同哈希码的理论。 这是针对行为问题的面试问题。 我创建了200,000个对象,将它们存储在一个数组中,然后将它们进行比较以查看哪些是重复的。 (为此我在对象创建阶段之后使用嵌套for循环迭代对象数组。)对于大约200,000个对象,我得到9次碰撞。 第一个是索引196和121949处的对象。然后我继续打印这些哈希码以显示两个值是相同的。 但是我得到了一些非常令人惊讶的行为。 如果我遍历嵌套的for循环并打印哈希码的第一次碰撞,我得到相同的哈希码值 1867750575 1867750575 对于索引196和121949处的两个对象。 但是如果我注释掉嵌套for循环以检测所有冲突并直接打印索引196和121949的元素的哈希码,我得到 1829164700 366712642 注意,我没有评论这些元素的创建,只是我检查碰撞的部分。 为什么会发生这种情况,即使我不迭代它们,哈希码是不是应该一致? 附录1:据我所知,有没有一个消息来源,按照生日原则,如果我创建200,000个对象,我必须得到一个碰撞,如何迭代每个hascode或不改变任何东西? 附录2:我尝试添加另一个200000大小的数组,只是为了查看碰撞索引是否发生了变化,但是没有,所以显然在未提交循环的情况下对二进制文件进行更改不会进行任何更改。 因此,更改二进制更改哈希码的假设并不成立。 这是我的代码 import java.util.HashMap; public class EmployeeFactory { private static int counter = 0; public int id; public String empName; EmployeeFactory() { id = counter; empName = “employee_” + id; counter++; } @Override public boolean equals(Object o) […]

在AndroidKeyStore密钥生成期间出现IllegalArgumentException(Unparseable date)

我在使用AndroidKeyStore的 RSA密钥生成期间在我的应用程序中遇到了以下问题,而不是理解它可以在Android SDK的BasicAndroidKeyStore示例应用程序中轻松复制。 因此,如果您的Locale.getDefault() == Locale.US比此示例效果好,但如果您将语言环境更改为”ar_EG” ,则会因exception而崩溃: java.lang.IllegalArgumentException:无效日期字符串:无法解析日期:“af`cadaaedcaGMT + 00:00”(在偏移0处)com的com.android.org.bouncycastle.asn1.DERUTCTime。(DERUTCTime.java:98)。在android.security.AndroidKeyPairGenerator.generateKeyPair(AndroidKeyPairGenerator)的com.android.org.bouncycastle.x509.X509V3CertificateGenerator.setNotBefore(X509V3CertificateGenerator.java:112)上的android.org.bouncycastle.asn1.x509.Time。(Time.java:62) .java:127)at java.security.KeyPairGenerator $ KeyPairGeneratorImpl.generateKeyPair(KeyPairGenerator.java:276)at com.example.android.basicandroidkeystore.BasicAndroidKeyStoreFragment.createKeys(BasicAndroidKeyStoreFragment.java:237) 因此,问题在于转换为String的密钥有效时间是针对默认语言环境进行的。 这是来自ASN1UTCTime类的代码片段,它在KeyPairGenerator.generateKeyPair()的引擎下使用,方法调用: public ASN1UTCTime( String time) { this.time = Strings.toByteArray(time); try { this.getDate(); } catch (ParseException e) { throw new IllegalArgumentException(“invalid date string: ” + e.getMessage()); } } 在调用此方法之前,Date对象将传递给以下Time构造函数,该构造函数使用默认系统区域设置: public Time( Date time) { SimpleTimeZone tz = new SimpleTimeZone(0, “Z”); […]

如何在Wildfly中部署时使用persistence.xml设置hibernate.hbm2ddl.auto

我需要为使用JPA的webapp生成部署模式。 服务器是Wildfly 9,Hibernate是JPA提供者。 我可以通过添加来实现这一点 到persistence.xml。 是否有另一种方法可以在Wildfly 9中为每个webapp和部署设置此属性? 我也尝试过hibernate.properties,但这没有效果。

Java Swing JScrollPane行号故障

我在JScrollPane中有一个简单的JEditorPane,它在左侧显示行号。 除非您将窗口移出屏幕并再次将其拉回,否则它会很有效,当您停止拖动时它会看起来像这样: 有任何想法吗? 我是否需要监听移动/拖动事件并在某处调用重绘/重新validation? 认为它可能是显而易见的,但这里有一些代码。 我正在使用JSyntaxPane。 public EditorPanel() { this.setLayout(new BorderLayout()); PythonSyntaxKit.initKit(); codeEditor = new JEditorPane(); JScrollPane scrPane = new JScrollPane(codeEditor); Dimension d = new Dimension(710,702); codeEditor.setPreferredSize(d); codeEditor.setContentType(“text/python”); codeEditor.setText(“Welcome to PhysUtil!”); this.add(scrPane, BorderLayout.CENTER); toolbar = new PhysUtilToolbar(); this.add(toolbar, BorderLayout.PAGE_START); this.repaint(); } //from MainFrame Class… public EditorPanel mainEditor; public MainFrame() { //Someone can figure out how […]

流减少不兼容的类型

我正在尝试创建一个包含多个谓词并减少它们的查找程序: public static Collection findOr( Context pContext, Class pClass, Predicate… pPredicates) { Predicate lReducedPredicate = Arrays.asList(pPredicates).stream().reduce(Predicate::or).orElse(r -> false); return find(pContext, pClass, lReducedPredicate); } 不幸的是我得到以下编译错误: Predicate lReducedPredicate = Arrays.asList(pPredicates).stream()。reduce(Predicate :: or).orElse(r – > false); 不兼容的类型:谓词不能转换为谓词,其中T是一个类型变量:T扩展在方法findOr(Context,Class,Predicate …)中声明的BusinessInterface,其中CAP#1,CAP#2是新的类型变量:CAP# 1扩展Object super:T从捕获? 超级T CAP#2扩展了Object super:T从捕获? 超级T 我在Eclipse中没有错误,我不知道出了什么问题。 任何帮助真的很感激:)。

Firestore:允许拒绝权限的事务

我们从Java应用程序引擎实例访问Firestore 。 非事务性请求正在成功,但事务失败并显示错误: firestore: PERMISSION_DENIED: Missing or insufficient permissions 示例交易 final long updatedValue = 15; Firestore db = firebaseManager.getFirestore(); CollectionReference fooCollectionRef = db.collection(SOME_COLLECTION); DocumentReference fooDocumentRef = fooCollectionRef.document(fooId); final ApiFuture future = db.runTransaction(transaction -> { DocumentSnapshot snapshot = transaction.get(fooDocumentRef).get(); transaction.update(fooDocumentRef, SOME_FIELD, updatedValue); return updatedValue; }); return future.get(); 据我所知,我们对开发项目的权限是完全开放的: service cloud.firestore { match /databases/{database}/documents { match /{document=**} […]

使对象弹簧管理

如何管理已存在的对象弹簧? 我想使用aspectj将它连接到Springs AoPfunction。 我知道这是一个挑战,因为Spring AoP使用可能与对象一起创建的动态代理。 我为什么需要这个? 我有一个第三方类,它接受一个只在运行时知道的构造函数参数,因此我似乎无法将它添加到我的applicationContext或使用spring FactoryBean接口进行构造。 还有别的办法吗? 我已经尝试了以下但没有取得很大的成功: Obj obj = new ThirdPartyObj(“runtime constructor arg”); appContext.getAutowireCapableBeanFactory().initializeBean(obj, “Obj”); 它可能是弹簧管理的,但我仍然不能用它来触发方面。 [编辑] axtavt指出问题是我不使用从initializeBean(..)返回的对象。 提到的两种方法都有效,但前提是: 使用接口ObjInterface obj = (ObjInterface) ac.getBean(“obj”, args); 或者我们会得到一个: java.lang.ClassCastException: $Proxy28 cannot be cast to com.company.Obj 不使用接口但启用CGLIB 。 这需要一个非私有的默认构造函数,否则我们将获得: java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given

使用带有GridLayoutManager的RecyclerView为手机和平板电脑的不同布局添加动态按钮

我正在为布局添加动态按钮。 每个按钮一次添加一个,如果根据用户的操作添加了新按钮,则布局必须自行更新。 所以布局可以有3个按钮,或者16个,或者其他什么,具体取决于用户的动作。 按钮可以在不同的时间添加。 因此,如果用户打开应用程序并添加按钮,然后离开并返回到应用程序并添加另一个按钮,则必须保留旧按钮。 我想将我的按钮逐个添加到这样的布局中: 我已经四处查看了如何做到这一点,并建议我使用带有GridLayoutManager的RecyclerView。 我已将此添加到我的代码中,但问题是,当我添加一个按钮,然后如果我添加另一个按钮,第二个添加到第一个按钮之上。 因此,如果用户操作说应该制作16个按钮,我只是将16个按钮放在彼此的顶部,而不是我想要的布局。 这是我的代码: 启动RecyclerView的主要片段:我有另一个活动启动“createButton”方法并传递drawable和字符串。 这些drawable和字符串将根据用户的操作一次一个地传递给此方法,并一次创建一个图像按钮 public class MyFragment extends Fragment { private GridLayoutManager lLayout; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } // onCreateView @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.my_fragment, container, false); // Create an empty list to initialize the […]