技术文章类别

 所有技术文章

  • 二进制信号量与ReentrantLock

    没有真正的理由拥有二进制信号量,因为二进制信号量可以做的所有事情也可以由ReentrantLock完成 如果您所需要的只是可重入互斥,那么是的,没有理由在ReentrantLock上使用二进制信号量。如果出于任何原因需要非所有权释放语义,那么显然信号灯是您唯一的选择。 另外,由于可重入锁还为每个对象提供一个锁,所以优

  • 为什么Throwable.fillInStackTrace()方法是公共的?为什么有人使用它?

    原因之一是性能。抛出和捕获异常很便宜;昂贵的部分是填充堆栈跟踪。如果您fillInStackTrace不执行任何操作,则创建异常也很便宜。 对于廉价的异常,您可以将异常用于a href="http:blogs.atlassian

  • 测试Java套接字

    如果要测试代码,请执行以下操作。 首先,重构代码,以便Socket不会在要测试的方法中直接实例化。下面的示例显示了我可以想到的最小更改。将来的更改可能会将Socket创建过程排除在一个完全独立的类之外,但是我喜欢一些小步骤,而且我不喜欢在未经测试的代码上进行大的更改。 public boolean sendToString hostname,

  • 带有运行时构造函数参数的Spring bean

    您可以将原型bean与一起使用BeanFactory。 @Configuration public class AppConfig { @Autowired Dao dao; @Bean @Scopevalue = "prototype" public FixedLengthReport fixedLengthReportString source

  • Java:通用的instanceof

    泛型是编译时功能。泛型在编译时添加检查,这在运行时可能没有任何意义。这是一个例子。您只能检查所引用对象的类型,它可能是代码中的超级类型。如果要传递类型T,则必须明确地执行此操作。 void someMethodClassT tClass { ifString.class.isAssignableFromtClass 要么 pr

  • kafka获取主题的分区计数

    在0.82 Producer API和0.9 Consumer api中,您可以使用类似 Properties configProperties = new Properties; configProperties.putProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"localhost:9092"; configProperties.putProducerConfig

  • 在Java中为对象实现内存中压缩

    如果要压缩实例,MyObject可以实现它Serializable,然后将对象流式传输到压缩的字节数组中,如下所示: ByteArrayOutputStream baos = new ByteArrayOutputStream; GZIPOutputStream gzipOut = new GZIPOutputStreambaos; ObjectOutp

  • Java:将一个列表分为两个子列表?

    快速半伪代码: List sub=one.subList...; List two=new XxxListsub; sub.clear; since sub is backed by one, this removes all sub-list items from one 它使用标准的List实现方法,并避免了所有循环运行。clear()方法还将code

  • Android ProGuard-仅混淆

    是的,通过指定 -dontshrink -dontoptimize 您可以在ProGuard手册中找到有关所有配置选项的详细信息。 请注意,缩小和优化可能有助于防止反向工程。

  • 如何停止和恢复Observable.interval发出滴答声

    这是一种可能的解决方案: class TickHandler { private AtomicLong lastTick = new AtomicLong0L; private Subscription subscription; void resume { System.out.println"resumed"; subscription

  • Spring AOP-为什么我需要AspectJWeaver?

    我认为Spring AOP实现正在重用AspectJ-Weaver中的某些类。它仍然使用动态代理-不进行字节码修改。 春季论坛的以下评论可能会澄清。

  • 正确的Java 10修复程序抱怨jaxb-impl 2.3.0的非法反射访问?

    jaxb-ri运行时用于ClassLoader#defineClass Unsafe#defineClass在运行时进行一些字节码修改以优化性能。ClassLoader#defineClass首先尝试导致警告。 jaxb-ri主站中已完全删除了此传统优化(在2.3.0之后,尚未发布)。 要为2.3.0禁用此优化,请设置系统属性 com.sun.

  • log4j 2向控制台附加程序添加多种颜色

    我想我找到了解决方案。我下载了log4j2-core- sources.jar并跟踪了源。您可以如下编写: pre

  • 如何解决“需要包含XY的封闭实例”?

    首先,您必须创建X类(外部类)objX.new InnerClass的对象,然后使用语法创建Y类的对象。 尝试, X x=new X; X.Y y=x.new Y;

  • 帮手删除Java列表中的空引用?

    list.removeAllCollections.singletonnull;

  • 使用Maven存储库将Java库添加到Android Studio项目

    Android Studio不使用Maven作为其构建器;它改用Gradle。幸运的是,Gradle可以使用Maven存储库来获取依赖关系,因此只需将要放入pom文件的信息并以Gradle格式使用即可。这些修改位于模块目录中的 build.gradle 文件中(而不是项目根目录中的生成文件中)。 首先,建立可在其中找到依赖项的存储库。 co

  • 如何创建由杰克逊批注组成的批注?

    对于Jackson,这可以通过@JacksonAnnotationsInside元注释来完成。有关更多信息,请参见本文,但其中的代码段为: @RetentionRetentionPolicy.RUNTIME IMPORTA

  • 如何为Kafka设置Java选项?

    我不同意接受的答案。bin不建议在目录中修改脚本。将Kafka升级到下一版本时,提取新的二进制文件将覆盖脚本中所做的更改。 首选方法应该是KAFKA_HEAP_OPTS在脚本外部设置环境变量。 export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" 如果在通过脚本启动Kafka之前设置了var,

  • Zookeeper错误:无法打开选举地址上的X通道

    如何在每个节点中定义本地服务器的IP?如果您提供了公共IP,则侦听器将无法连接到端口。您必须为当前节点指定0.0.0.0 server.1=0.0.0.0:2888:3888 server.2=192.168.10.10:2888:3888 server.3=192.168.2.1:2888:3888 此更改也必须在其他节点上执行。 d

  • Guava的Collections.unmodifiableSet()和ImmutableSet有什么区别?

    考虑一下: SetString x = new HashSetString; x.add"foo"; ImmutableSetString guava = ImmutableSet.copyOfx; SetString builtIn = Collections.unmodifiableSetx; x.add"bar"; Sy

  • Collections.unmodifiableList和防御性副本

    是的,您理解正确。这个想法是,返回的对象umodifiableCollection不能直接更改,而是可以通过其他方式更改(通过直接更改内部集合有效)。 只要可以访问内部列表,就可以更改“不可修改的”集合。 这就是为什么您 通常 构造一个不可修改的集合并确保没有任何东西可以进入内部列表的原因: CollectionInteger

  • 枚举需要多少内存?

    在Java中,an enum是成熟的类: Java编程语言的枚举类型比其他语言的枚举类型更强大。枚举声明定义了一个类(称为枚举类型)。枚举类主体可以包括方法和其他字段。 blockqu

  • 替换字符串中的所有双引号

    这是如何做 String details = "Hello \"world\"!"; details = details.replace"\"","\\\""; System.out.printlndetails; Hello \"world\"! 请注意,字符串是a href="http:en.wikipedia.orgwi

  • 如何从给定值中找到Java中STRING数组的索引?

    String carName = insert code here int index = -1; for int i=0;iTYPES.length;i++ { if TYPES[i].equalscarName { index = i; break; } } 这之后index是您的汽车的数组

  • 如何在Java中使用@inherited注释?

    只是没有误会:您确实要询问java.lang.annotation.Inherited。这是注解的注解,这意味着被注解的类的子类被认为具有与其父类相同的注解。 例 考虑以下2个注释: @Inhe

  • 如何检查输入值是整数还是浮点数?

    您应该检查数字的小数部分是否为0。 x==Math.ceilx 要么 x==Math.roundx 或类似的东西

  • 为什么我的Gradle版本因退出代码137而垂死?

    此问题似乎与Linux有关,而不是Jenkins文档中所述的Gradle: 在虚拟内存不足的情况下,内核OOM(内存不足)杀手可能会强行杀死Jenkins或单个版本。如果在Linux上发生这种情况,您可能会看到生成以退出代码137(128 + SIGKILL的信号编号)终止。该dmesg命令的输出将表明,将确认内核采取的操作日志消息。 bl

  • 如何在persistence.xml中指定JPA 2.1?

    根据官方文档,它必须是(像您的一样): persistence xmlns="http:xmlns.jcp.orgxmlnspersistence" xmlns:xsi="http:www.w3.org2

  • Java多参数点表示法-Varargs

    是的,就是这样。参数将自动放入数组中。参数“ urls”的行为类似于URL[]。Varargs记录在这里。它们是在Java 1.5中引入的,因此在J2SE 1.5+中可用,在所有Android中都可用,因为它支持Java

  • 在Java中将布尔对象转换为字符串的最佳方法

    我认为它们之间不会有明显的性能差异,但是我更喜欢第一种方法。 如果您有Boolean参考,则为Boolean.toStringboolean时抛出。由于引用在传递给方法之前已取消装箱。NullPointerException``null``boolean 同时,String.valueOf如源代码所示

  • 评论界面,实现或两者?

    作为一般规则,我使用与代码相同的DRY(不重复自己)原理: 在界面上,记录界面 在实施过程中,记录实施细节 特定于Java的 文档:在记录实现时,请使用{@inheritDoc}标记从界面“包括” javadocs。 想要查询更多的信息: a href="http

  • 余弦相似度

    a * b sima,b =-------- |a|*|b| a * b是点积 一些细节: def dota,b: n = lengtha sum = 0 for i in xrangen: sum += a[i] * b[i]; return sum d

  • Java:从本地小程序调用.dll…我做错了

    通过本地文件系统(file:)的浏览器插件运行的Applet受到的安全检查与从Web上加载的Applet几乎完全相同。区别在于从Web加载的小程序具有“回拨”权限,即。连接回源于该小程序的服务器,以及从文件系统加载的小程序都有权访问同一文件夹中的文件。 默认情况下,沙盒在两种情况下均不允许加载本机库。 您可以考虑签署小程序。用户将必须单击“安全性”对话框。并且,除非您有从证书颁发机构购买的代码签名证书,否

  • 如何在Netty中创建频道池?

    请参阅http:netty.ionews201505074-0-28-Final.html上的ChannelPool部分a href="http:

  • 删除并重新添加片段后,保留getChildFragmentManager导航堆栈

    所以这就是我解决的方法: MainActivity.xml RelativeLayout FrameLayout android:id="@+idcontainer" android:layout_width="match_parent" android:layout_height

  • 了解注释和JPA(休眠)

    除了Glenn Lane的答案中提到的级联,您还需要了解双向关联是如何工作的。 它们有一个所有者方面和一个相反方面。JPA只关心所有者方面,以决定实体之间存在哪个关联。该业主方是一个 不 具备的mappedBy属性。 您的代码为公司增加了部门,为部门增加了工人,但是仅初始化了反面。您忘记了初始化所有者方: worker

  • 将文件从OS拖放到JTable Java中

    我个人会放弃滚动窗格上的放置目标,这将导致您遇到许多问题。 您的放置方法有点怪异… 这是一个坏主意.... List fileList = null; try { fileList = List t .getTransferDataDataFlavor.javaFileListFlavor; } catch UnsupportedFlavorE

  • 使用Java从https获取图像

    有两个问题。您可以使用浏览器访问该网站,并查看错误。 服务器证书是自签名的,不受Java信任。您可以将其添加到信任库。 服务器证书与主机名“ ns6.host.md”不匹配,因此您需要一个HostnameVerifier忽略它的证书。 另一个答案也是如此,它提供了代码,不幸的是,它们使用了一

  • 应用程序连接到数据库

    看一下Jasypt,它是一个Java库,允许开发人员以最小的努力将基本的加密功能添加到他她的项目中,而无需对密码如何工作有深入的了解。 如果您使用Spring,则可以将您定义db.properties为: jdbc.driver=com.mysql.jdbc.Driver jdbc.url=

  • NFC标签上的图片

    您可以使用MIME类型记录将图像存储在NFC标签上。例如,如果您的图像是JPEG图像,则应使用MIME类型“ image jpeg”。您的NDEF记录可能如下所示: +----------------------------------------+ + MB=1, ME=1, CF=0, SR=0, IL=0, TNF=MIME + +----------------------------