Wednesday, December 21, 2011

Send Mails in JAVA

Fetch email userPassword and name from the database or the form and pass it in postMail method as shown below.

postMail(new String[]{email}, "Your Password", userPassword, "support@gmail.com", name);

public void postMail(String recipients[], String subject, String password, String from, String name) throws MessagingException
{
        boolean debug = false;

        //Set the host smtp address
        Properties props = new Properties();
        props.put("mail.smtp.host", "localhost");

        // create some properties and get the default Session
        Session session = Session.getDefaultInstance(props, null);
        session.setDebug(debug);

        // create a message
        Message msg = new MimeMessage(session);

        // set the from and to address
        InternetAddress addressFrom = new InternetAddress(from);
        msg.setFrom(addressFrom);

        InternetAddress[] addressTo = new InternetAddress[recipients.length];

        for (int i = 0; i < recipients.length; i++) {
            addressTo[i] = new InternetAddress(recipients[i]);
        }

        msg.setRecipients(Message.RecipientType.TO, addressTo);

// Optional : You can also set your custom headers in the Email if you Want
        msg.addHeader("MyHeaderName", "myHeaderValue");

        String message = "";

        // Setting the Subject and Content Type
        message = "Hi " + name;
        message = message + "\n";
        message = message + "\n";
        message = message + "Your access password is " + password;
        message = message + "\n";
        message = message + "\n";
        message = message + "Thanks & Regards\n";
        message = message + "Support Team";

        msg.setSubject(subject);
        msg.setContent(message, "text/plain");
        Transport.send(msg);
    }

Monday, December 19, 2011

Performance Improvement techniques in Collections

Lists:

  1. Use ArrayList with proper initialization if you don't want thread safe for the collection whenever you  add/remove/access objects at end and middle of collection.
  2. Use Vector with proper initialization if you want thread safe for the collection whenever you  add/remove/access objects at end and middle of collection.
  3. Use LinkedList if you don't want thread safe for the collection whenever you  add/remove/access objects at beginning of collection.
  4. Use synchronized LinkedList if you want thread safe for the collection whenever you add/remove/access objects at beginning of collection.
  5. Use ListIterator than Iterator and Enumeration for List types
 

Sets:

  1. Use HashSet for maintaining unique objects if you don't want thread safe for the collection for all basic(add/remove/access) operations otherwise use synchronized HashSet for thread safe.
  2. Use TreeSet for ordered and sorted set of unique objects for non-thread safe collection otherwise use synchronized TreeSet for thread safe


Maps:

  1. Use HashMap for non-thread safe map collection otherwise use Hashtable for thread safe collection.
  2. Use TreeMap for non-thread safe ordered map collection otherwise use synchronized.
  3. TreeMap for thread safe.
Home