为什么抽象方法不能同步?

我正在从CodeRanch读取一个线程,说抽象方法无法同步,因为抽象类无法实例化,这意味着没有锁定对象。 这没有意义,因为抽象类是子类的定义(契约)。 子进程的同步方法的抽象定义不需要锁定。 所有抽象标题都表明孩子必须同步这个方法。 我的逻辑是否正确? 如果没有,有人可以解释为什么我错了吗?

GridBagLayout不起作用

this.rootComponent.setLayout(new GridBagLayout()); GridBagConstraints gbc=new GridBagConstraints(); //gbc.gridwidth=2; gbc.gridx=0; gbc.gridy=0; gbc.gridwidth=8; gbc.anchor=GridBagConstraints.FIRST_LINE_START; this.rootComponent.add(new JLabel(“Test label 1”),gbc); gbc.gridx=8; gbc.gridy=12; gbc.gridwidth=GridBagConstraints.REMAINDER; gbc.anchor=GridBagConstraints.FIRST_LINE_START; this.rootComponent.add(new JLabel(“Test label”),gbc); 想要像这样格式化。 灰色部分显示jpanel部分。 最初我想正确布局前2个jpanel。 这是行不通的。 怎么解决?

使用java.io.File时出现NullPointerException

我试图使用这个程序来计算D:\驱动器中的所有文件,但是当我运行它时它会抛出exception。 package lmh; import java.io.File; public class FileList { static int fileNum = 0; static int directoryNum = 0; static int cannotRead = 0; public static void main(String[] args) { File f = new File(“e:/”); printFileStructure(f); System.out.println(“result:”); System.out.println(“file number:” + fileNum); System.out.println(“directory number:” + directoryNum); System.out.println(“cannot rend:” + cannotRead); } public static void printFileStructure(File f) […]

如何复制保护我的Java应用程序?

我想用PayPal销售我的Java应用程序。 收到付款后,客户会通过邮件向我的应用程序发送一次性下载链接。 我的问题是,如何阻止人们将.jar文件发送给他们的朋友/在互联网上上传? 显然,我需要在应用程序中进行某种检查,只允许它在一台计算机上运行。 这是另一个问题,我不希望客户在一台计算机上有限制,他们应该能够在家里和工作中运行它等。 也许某种cd-key可以解决这个问题? 那里有Java的任何cd-key资源吗? 或者我应该建立自己的算法? 这是另一个问题,逆向工程.. 请帮帮我解决这个:)

对没有使用过它们的人定义“类”和“对象”这两个词的最佳方法是什么?

我的邻居正在参加“Java简介”,并请我帮助解释一些第一天的概念。 我意识到,因为我每天都这样做,所以我没有初学者的想法,而且从头开始很难将这些东西联系起来。 对我来说,实际上并非无足轻重的解释是“什么是一个阶级?” 我到目前为止最好的: 变量包含某种数据; 一个变量可能是名字,另一个变量可能是你的体重(磅)。 方法是一个函数,它做的东西,并且可以用这些变量做事。 一种方法可能会在屏幕上显示您的名字,或者告诉您,为了获得良好的BMI比率,您应该减掉多少体重。 对象包含变量和方法; 一个对象可能代表你,第二个对象可能代表我。 类是描述每个对象中的方法和变量的蓝图或模板。 对象是实例化的(一个实例)类; 一个对象就是某种东西,而这个类只是制作这个东西的计划。 继续这个例子,我们有一个Person对象,它被实例化以保存Alice的数据,另一个Person对象被实例化以保存Bob的数据,另一个用于Carol,依此类推。 我如何调整这个例子以使其更有意义,和/或什么是更好的方法? “实例化”这个词在这一点上感觉太重了。 (我认为这是一个有用的问题,但显然是主观的;标记为社区维基。)

Java双打不擅长数学

我目前正在用java编写计算器程序。 这是我的第一个java程序,我习惯于c ++。 我注意到java中的双打完全不像c ++中的双打。 在java和c ++中尝试这个 4.1 * 3 那/ 0.1 它应该是 12.3然后123,c ++给出了这个结果,但java给出了 12.299999999999999和122.99999999999999 我怎么能像在c ++中使用双打一样进行数学运算,我知道你在程序中使用12.299999999999999的任何东西都不会与12.3相比没有区别,但是当用户正在阅读数字时,这非常难看。 我已经查看了BigDecimal类,但是我不能对该类执行trig和logarithms等等

通过enum方式的Singleton是否被延迟初始化?

这是一个非常广泛的枚举单例代码: public enum enumClazz{ INSTANCE enumClazz(){ //do something } } 和一堆地方说这是一个懒惰的初始化。 但在阅读“ Java虚拟机内部”第7章 – 类型的生命周期后,我感到困惑: Java虚拟机规范为类和接口加载和链接的时序提供了实现的灵活性,但严格定义了初始化的时间。 所有实现必须在其第一次活动使用时初始化每个类或接口。 以下六种情况符合有效用途: 创建一个新的类实例(在字节码中,执行新指令。或者,通过隐式创建,reflection,克隆或反序列化。) 调用由类声明的静态方法(在字节码中,执行invokestatic指令) 使用或赋值由类或接口声明的静态字段,除了最终的静态字段并由编译时常量表达式初始化(​​在字节码中,执行getstatic或putstatic指令) 在Java API中调用某些reflection方法,例如Class类中的方法或java.lang.reflect包中的类 初始化类的子类(类的初始化需要事先初始化其超类。) 在Java虚拟机启动时将类指定为初始类(使用main()<方法) 粗体样式的第三点澄清如果字段是static final ,则字段的初始化在编译时发生。 同样, enumClazz的INSTANCE隐含等于public static final并符合第三点。 如果我的理解错了,有人可以纠正我吗?

Java:从图像中裁剪出具有特定颜色的区域

我想知道是否有办法裁剪出具有指定颜色的图像区域? 我有一个图像是一个canvas区域,上面有一个实际图像,我想删除“canvas”区域,只留下实际图像。 干杯

开源替代oracle一致性?

是否有任何开源替代oracle一致性? (顺便说一下,连贯性的成本是多少?)

Spring OAuth2 – 在令牌存储中手动创建访问令牌

我有一种情况,我想自己创建一个访问令牌(所以不通过通常的过程)。 我想出了这样的事情: @Inject private DefaultTokenServices defaultTokenServices; … OAuth2Authentication auth = xxx; OAuth2AccessToken token = defaultTokenServices.createAccessToken(auth); 唯一的问题是我不知道如何创建OAuth2Authentication(在我的代码中使用xxx的部分)。 我有用户和客户信息,我知道我想授予此令牌的权限。