Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 456977
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 12, 20262026-05-12T22:31:28+00:00 2026-05-12T22:31:28+00:00

Which of the following would be more optimal on a Java 6 HotSpot VM?

  • 0

Which of the following would be more optimal on a Java 6 HotSpot VM?

final Map<Foo,Bar> map = new HashMap<Foo,Bar>(someNotSoLargeNumber);    
for (int i = 0; i < someLargeNumber; i++)
{
  doSomethingWithMap(map);
  map.clear();
}

or

final int someNotSoLargeNumber = ...;
for (int i = 0; i < someLargeNumber; i++)
{
  final Map<Foo,Bar> map = new HashMap<Foo,Bar>(someNotSoLargeNumber);      
  doSomethingWithMap(map);
}

I think they’re both as clear to the intent, so I don’t think style/added complexity is an issue here.

Intuitively it looks like the first one would be better as there’s only one ‘new’. However, given that no reference to the map is held onto, would HotSpot be able to determine that a map of the same size (Entry[someNotSoLargeNumber] internally) is being created for each loop and then use the same block of memory (i.e. not do a lot of memory allocation, just zeroing that might be quicker than calling clear() for each loop)?

An acceptable answer would be a link to a document describing the different types of optimisations the HotSpot VM can actually do, and how to write code to assist HotSpot (rather than naive attmepts at optimising the code by hand).

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-12T22:31:29+00:00Added an answer on May 12, 2026 at 10:31 pm

    Don’t spend your time on such micro optimizations unless your profiler says you should do it. In particular, Sun claims that modern garbage collectors do very well with short-living objects and new() becomes cheaper and cheaper

    • Garbage collection and performance on DeveloperWorks
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

any idea why the following would give me a segfault? buf_int = new int[12];
I'm curious which of the following below would be more efficient? I've always been
I have a file template.txt which contains the following: Hello ${something} I would like
I'm trying to compile some code which contains the following declaration, because I would
From the following list of frameworks, which one would you use to develop a
Out of the following queries, which method would you consider the better one? What
I have a JPanel, which I would like to detect the following events (1)
I have the following code, which works as I expect. What I would like
I've one interface which has following method signatures: public interface ITag { int M_Id
Question of the century? I basically want to know which would be more efficient

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.