编程面试题

  • HashMap中的存储桶数是什么意思?

    是的,确切地说,每个存储桶可以有多个键值对。 对象hashCode通过以下表达式确定要进入哪个存储桶:object.hashCode % n其中n =存储桶总数,%是模运算符。 大多数情况下,对象会在各个存储桶中很好地分布,但是您无法保证它们会到达何处。这取决于数据和hashCode函数。 显然,当hashC

  • 正确的俄语月份字符串翻译Java

    在我的 JDK-6 安装上,我可以重现您的问题: Date jud = new SimpleDateFormat"yyyy-MM-dd".parse"2014-02-28"; String month = DateFormat.getDateInstanceSimpleDateFormat.LONG, new Locale"ru".formatjud;

  • java SimpleDateFormat

    您尝试解析的时间似乎是ISO 8601格式的。SimpleDateFormat不幸的是,它不支持与ISO 8601相同的所有时区说明符。如果您希望能够正确处理ISO中指定的所有格式,最好的做法是使用a href="h

  • 资产子文件夹中包含的android列表文件

    您可能需要这样做: private void listFilesString dirFrom { Resources res = getResources; if you are in an activity AssetManager am = res.getAssets; String fileList[] = am.listdirFrom;

  • 如何在Java中进行线程限制

    像这样产生线程并不是要走的路。使用an ExecutorService并将池指定为5。将所有文件放在a BlockingQueue或另一个线程安全的集合中,所有正在执行的文件都可以随意使用poll。 public class ThreadReader { public static void mainSt

  • Maven-将集成测试与单元测试分开

    代替: exclude*integration***.javaexclude 尝试: include*unit**.javainclude 然后在集成配置文件中 includes>

  • Java中的空格

    boolean containsWhitespace = false; for int i = 0; i text.length !containsWhitespace; i++ { if Character.isWhitespacetext.charAti { containsWhitespace = true; } } return contai

  • Java:JVM将如何优化对void函数的调用?

    Java编译器将去掉语句a和b? 的javac(源到字节码)编译器不会破坏任何呼叫。(通过检查字节码很容易检查这一点;例如,查看javap -c输出。) 在这两种情况下(剥离还是不剥离),Java编译器决定背后的原

  • 放大Java Swing应用程序

    您可以尝试使用JXLayer库。 其中有几个工具,可以帮助您进行缩放。检查此处显示的示例。我建议您从该库中阅读有关TransformUI的更多信息。从该示例看来,它可以帮助解决您的问题。

  • 如何在Java中比较两个字符串日期?

    将它们转换为实际Date对象,然后调用before。 SimpleDateFormat sdf = new SimpleDateFormat"yyyyMMdd h:m"; System.out.printlnsdf.parsestartDate.beforesdf.parseendDate; 回想一下

  • InputStream.read()返回的0是什么意思?如何处理呢?

    a InputStream可能0从调用返回的唯一情况readbyte[]是byte[]传入的长度为0时: by

  • Eclipse JFace的向导

    如果您在其他几个页面上 彼此完全不同 取决于上一页中的先前选择 然后,您可以动态添加下一页(也如此处a href="http:dev.eclipse.orgmhonarcnews

  • 实现一个函数来检查字符串/字节数组是否遵循utf-8格式

    好吧,我感谢您的评论和回答。首先,我必须同意这是“另一个愚蠢的面试问题”。的确,在Java中,String已被编码,因此它将始终与UTF-8兼容。字符串的一种检查方法是: public static boolean isUTF8String s{ try{ byte[]bytes = s.getBytes"UTF-8"; }catchUnsupportedEncoding

  • 从特定单词后的字符串中获取子字符串

    yourString.substringyourString.indexOf"no" + 3 , yourString.length;

  • 比较Java中的两个Collection

    很难帮助,因为你没有告诉我们 如何 你想比较(大小相等)的集合。一些想法,希望能适合: 比较两个集合,如果它们包含相同顺序的相同对象 Iterator targetIt = target.iterator; for Object obj:source if !obj.equalstargetIt.next

  • J2ME应用程序的预验证是什么意思?

    从这里: Answer Preverification是Java应用程序开发和部署周期的一个新阶段,该Java应用程序旨在在J2ME CLDC上运行。预验证会在运行时对Java字节码执行某些检查。如果此第一遍验证通过,则预验证器注释类文件(使用标准Java字节码“属性”,以

  • 蜂窝3.2上的android searchview setOnActionExpandListener

    您可能会错过“ MenuItemCompat.OnActionExpandListener”接口具有静态实现,而不是实例方法的事实(就像我一样)。 因此,如果您有一个实现的类,MenuItemCompat.OnActionExpandListener则需要在该类中将其安装为侦听器,如下所示: MenuItem menuItem = menu.findItem

  • ConcurrentHashMap锁定

    是的,ConcurrentHashMap使用多个锁(默认情况下,使用16个锁),每个锁控制哈希的一部分。 在特定段中设置数据时,将获得该段的锁。 获取数据时,使用易失性读取。如果易失性读取导致未命中,则将获得该段的锁定,以进行成功读取的最后一次尝试。

  • 将新对象存储为哈希图的值?

    问题在于您的代码仅指定映射中的值为Object。您不仅仅知道这些,所以请告诉编译器以下信息: HashMapString, InfoStor mapper = new HashMapString, InfoStor; mapper.put"NS01", new InfoStor"NS01"; ... InfoStor value = mapp

  • Java:InputStream太慢,无法读取大文件

    我用183 MB文件运行了此代码。它打印了“经过250毫秒”。 final InputStream in = new BufferedInputStreamnew FileInputStream"file.txt"; final long start = System.currentTimeMillis; int cnt = 0; final byte[] buf = new byte[1000];

  • 关闭资源是否总是很重要?

    我猜我打开的所有资源都将在应用程序虚拟机退出时关闭释放。 无法正常释放的资源发生的情况是您无法控制的。它可能不会造成伤害,也可能会造成伤害。它也是高度依赖平台的,因此仅对其中一个进行测试将无济于事。 我为什么要在如此小的,短暂的应用程序中关闭这些资源? 应用程序的

  • 使用Java 8,打印文件中所有行的最优选,最简洁的方法是什么?

    这会在try围栏中使用带有lambda的新Stream。 我想说这是最可取的和简洁的方法,因为: 1)完成后,它将自动关闭流并正确引发任何异常。 2)这是懒惰的输出。在处理最后一行之后读取每一行。这也更接近原始的基于Java流的文件处理规范。 3)以最类似于文件中数据的方式打印每一行。 4)这会减少内存占用,因为它不会创建中间列表或数组,例如Files.re

  • 使用JMockit模拟正在测试的类的私有方法

    使用期望(或StrictExpectations) 结合使用Expectations和Deencapsulation.invoke(),可以部分模拟测试对象: import org.junit.Test; import static mockit.Deencapsulation.*; import mockit.*; public class TestAClass { public

  • Java,Ant错误:编码Cp1252的不可映射字符

    简单地更改“广告”编码并不能弥补文件中存在无法使用UTF-8解释理解的字节这一事实,这可能会很棘手。在Ant中,您需要更新javac任务以添加类似的编码,javac ... encoding="utf-8" 确保Eclipse中的文件编码也是UTF-8,因为某些cp1252字符也不会直接映射到UTF-8。您可能需要使用单一编码来维护整个项目。否则,编译器只需要一

  • 如何使用反射定义动态的setter和getter?

    你可以做这样的事情。您可以使此代码更通用,以便将其用于循环字段: Class aClass = f.getClass; Class[] paramTypes = new Class[1]; paramTypes[0] = String.class; get the actual param type String methodName = "set" + fieldName; fieldName

  • FileInputStream与ClassPathResource与getResourceAsStream和文件完整性

    我有同样的问题,您可能对maven过滤有疑问。 此代码从源代码加载文件,未经过滤 InputStream is = new FileInputStream"C:...srcmainresourcestemplate.xlsx"; 在maven过滤内容之后,此代码从目标目录加载文件 InputStream is

  • @异步对我不起作用

    当您从同一对象中的另一个方法调用@Async方法时,您可能会绕过异步代理代码,而只是调用您的普通方法,即在同一线程中。 解决此问题的一种方法是,确保对@Async方法的调用来自另一个对象。请参阅本文结尾处的评论:http

  • 确定Java关闭挂钩线程中的退出状态

    我试图覆盖该SecurityManager checkExitint status方法- 如果System.exitstatus在任何地方都显式调用此方法,则该方法有效- 但是,当应用程序“正常”退出(无活动线程)或错误导致VM退出时,它不会设置状态。 import java.io.Buffere

  • 为什么JSR / RET不推荐使用Java字节码?

    JSR和RET使字节码验证比原本可能要困难得多,这是由于某些常规字节码约束的放宽(例如,进入JSR时具有一致的堆栈形状)。好处非常小(在某些情况下,方法可能更小),并且验证程序在处理奇特的JSR RET模式(以及潜在的安全漏洞以及相关的完整验证的运行时成本)方面持续遇到的困难使其成为无用的功能继续拥有。 堆栈映射和由于数据而启用的轻量级验证程序是类加载期间的一项重大性能胜利,而不会牺牲安全性。

  • 使用键盘在弹出菜单中滚动时,如何使JComboBox选定项保持不变

    我相信您应该可以: comboBox.putClientProperty"JComboBox.isTableCellEditor", Boolean.TRUE; 创建comboBox实例以获取此功能后

  • 使用休眠更新数据库架构

    我们为自己创建了一个工具,该工具创建了必要的数据库列和表,并将其添加到为数据库更新生成的SQL中。但是我们必须在SchemaUpdate生成中添加一些附加功能,以使其工作: 我们必须添加非空属性的检查。这包括在数据上发出UPDATE语句以在可能的情况下消除null,从而导致默认值的下一点。 我们必须添加检查列的默认值。默认值由列及其数据类型的可为空性推断。基元始终被初始化为零或false

  • OutOfMemoryError增加什么以及如何增加?

    似乎Android应用程序上的堆空间有16 MB的硬限制,只能通过更改Android源来解决。您的程序已达到此限制:“内存不足:堆大小= 15559KB”。您需要弄清楚如何减少程序的内存使用量。一个很好的指导,在a href="http:ttlnews.blogsp

  • 使Java程序成为独立的exe(无需JVM运行)

    我使用Excelsior JET将Java编译为Windows上的本机可执行文件。它确实运作良好。总是有机会陷入困境-我认为JNI是一个问题-但我很高兴。

  • 基本类型类的用途/目的是什么?

    我不明白的是为什么会有这些。 考虑以下: public int foo { return 0; } ... Method method = someClass.getDeclaredMethod"foo"; Class? clazz = method.getReturnType; code

  • 从ant文件中引用ant脚本位置

    确保import.xml使用name属性定义项目。然后,您可以使用该名称作为通过ant.file.name属性的ant文件的绝对路径。 我已经大写了IMPORTED,因此您可以在代码中轻松看到它。 project name="IMPORTED" dirname property="IMPORTED.ba