Questions tagged «java»

Java是一种流行的高级编程语言。如果您在使用或理解语言本身时遇到问题,请使用此标签。这个标签很少单独使用,最常与[spring],[spring-boot],[jakarta-ee],[android],[javafx],[gradle]和[maven]结合使用。

1
字符串文字池是对字符串对象的引用集合,还是对象的集合
阅读了SCJP提示行作者Corey McGlone在javaranch网站上的文章后,我都感到困惑。从字面上看是Strings,由Kathy Sierra(javaranch的联合创始人)和Bert Bates共同编写的《 SCJP Java 6程序员指南》。 我将尝试引用Corey先生和Kathy Sierra女士对String Literal Pool的引用。 1.根据科里·麦格隆先生的说法: 字符串文字池是指向字符串对象的引用的集合。 String s = "Hello"; (假设"Hello"堆上没有名为“ Hello”的对象),将在堆上创建一个String对象,并将对该对象的引用放入String Literal Pool(常量表)中。 String a = new String("Bye");(假定堆上没有名为“ Bye”new的对象,操作员将要求JVM在堆上创建一个对象。 现在,在本文中"new",有关创建字符串及其引用的运算符的说明 有些混乱,因此,下面将介绍本文本身的代码和说明。 public class ImmutableStrings { public static void main(String[] args) { String one = "someString"; String two = new String("someString"); System.out.println(one.equals(two)); System.out.println(one …


8
如何从Hibernate Criteria API获取SQL(*不*用于记录)
有没有办法从Hibernate获取(待生成的)SQL Criteria? 理想情况下,我将具有以下内容: Criteria criteria = session.createCriteria(Operator.class); ... build up the criteria ... ... and then do something like ... String sql = criteria.toSql() (But this of course does not exist) 然后的想法是将SQL用作巨大的“ MINUS”查询的一部分(我需要找到2个相同模式之间的差异-结构相同,而不是数据相同-且Hibernate不支持MINUS) (顺便说一句,我知道我可以从日志文件中检查SQL)
73 java  sql  hibernate  criteria 

2
为什么分配单个2D数组要比分配总大小和形状相同的多个1D数组的循环要花更长的时间?
我认为直接创建起来会更快,但是实际上,添加循环只需要一半的时间。发生了什么,放慢了这么多? 这是测试代码 @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.MICROSECONDS) public class Test_newArray { private static int num = 10000; private static int length = 10; @Benchmark public static int[][] newArray() { return new int[num][length]; } @Benchmark public static int[][] newArray2() { int[][] temps = new int[num][]; for (int i = 0; i < temps.length; i++) …
73 java  performance 

1
为什么T在Collections.max()签名中受对象限制?
刚刚经历了Java 7java.util.Collections类的实现,并看到了一些我不理解的东西。在max函数签名中,为什么T受限制Object? public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll) { Iterator<? extends T> i = coll.iterator(); T candidate = i.next(); while (i.hasNext()) { T next = i.next(); if (next.compareTo(candidate) > 0) candidate = next; } return candidate; } max 如果省略Object绑定,似乎工作正常。 public static <T …
73 java  generics 


4
什么是泛型泛型?它们如何解决“类型擦除”问题?为什么不进行重大更改就不能添加它们?
我已经阅读了尼尔·古夫特(Neal Gafter)关于该主题的博客,但在很多方面仍不清楚。 为什么在给定Java,JVM和现有collection API当前状态的情况下,无法创建Collections API的实现来保留类型信息?这些难道不能以保留向后兼容性的方式替换Java未来版本中的现有实现吗? 举个例子: List<T> list = REIList<T>(T.Class); REIList是这样的: public REIList<T>() implements List { private Object o; private Class klass; public REIList(Object o) { this.o = o; klass = o.getClass(); } ... the rest of the list implementation ... 并且这些方法使用Object o和Class klass来获取类型信息。 为什么保留通用类信息需要更改语言而不仅仅是JVM实现更改? 我不明白什么?



7
迭代Java 8中的枚举
是否可以Enumeration使用Lambda表达式进行迭代?以下代码段的Lambda表示形式是什么: Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces(); while (nets.hasMoreElements()) { NetworkInterface networkInterface = nets.nextElement(); } 我没有在其中找到任何信息流。

9
无法使Maven识别Java 1.8
我似乎无法让Maven使用Java 1.8。使用1.8作为目标会出现以下错误: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project csaro: Fatal error compiling: invalid target release: 1.8 -> [Help 1] 错误的原因很明显:Maven没有使用正确的Java版本: $ mvn -version Apache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e; 2014-06-17T07:51:42-06:00) Maven home: /usr/local/Cellar/maven/3.2.2/libexec Java version: 1.7.0_51, vendor: Oracle Corporation Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre Default locale: en_US, platform encoding: UTF-8 OS …
73 java  maven 

6
如何捕获传递给Groovy脚本的参数?
我只是从Groovy开始。我在任何地方都找不到如何处理Groovy脚本参数的示例,因此我自己修改了此方法。一定有更好的方法可以做到这一点?如果是这样,我正在寻找这种更好的方法,因为我可能忽略了显而易见的方法。 import groovy.lang.Binding; Binding binding = new Binding(); int x = 1 for (a in this.args) { println("arg$x: " + a) binding.setProperty("arg$x", a); x=x+1 } println binding.getProperty("arg1") println binding.getProperty("arg2") println binding.getProperty("arg3")

16
用Java生成唯一且简短的文件名的最佳方法是什么
我不一定要使用UUID,因为它们相当长。 该文件仅需要在其目录中唯一。 我想到的一个想法是使用File.createTempFile(String prefix, String suffix),但这似乎是错误的,因为该文件不是临时文件。 需要处理在同一毫秒内创建的两个文件的情况。
73 java  file 

14
无法解决:com.google.firebase:firebase-core:16.0.1
我正在尝试将Firebase云存储添加到我的应用程序。以下是应用程序build.gradle。但它说:无法解决:com.google.firebase:firebase-core:16.0.1。为什么?依赖项中根本没有firebase-core。 apply plugin: 'com.android.application' android { compileSdkVersion 27 defaultConfig { applicationId "com.louise.udacity.mydict" minSdkVersion 15 targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support.constraint:constraint-layout:1.1.0' implementation 'com.google.firebase:firebase-storage:16.0.1' implementation 'com.google.firebase:firebase-auth:16.0.1' …

7
如何在Spring Batch中从ItemReader访问作业参数?
这是我的一部分job.xml: <job id="foo" job-repository="job-repository"> <step id="bar"> <tasklet transaction-manager="transaction-manager"> <chunk commit-interval="1" reader="foo-reader" writer="foo-writer" /> </tasklet> </step> </job> 这是商品阅读器: import org.springframework.batch.item.ItemReader; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component("foo-reader") public final class MyReader implements ItemReader<MyData> { @Override public MyData read() throws Exception { //... } @Value("#{jobParameters['fileName']}") public void setFileName(final String name) { //... } } …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.