Import classes or packages

import java.util.*;
import java.util.ArrayList,java.uitl.HashMap;
What difference it makes to the performance of a class
file when we import a specific class or an entire package

For a great Q & A on this very question:
http://www.javaworld.com/javaworld/javaqa/2001-04/01-qa-0406-import.html?
Here is the quoted information:
"Q. Does importing an entire package cause any runtime or compile time overhead? For example, does:
import java.util.*
compared with:
import java.util.Vector
cause any added overhead?
A. In answering your questions a few definitions are helpful:
Imports of the type java.util.Vector; are referred to as single type import
Imports of the form java.util.*; are referred to as import on demand
Both import on demand and single type import are passive mechanisms. As passive mechanisms, import loads information about the package and types only when it is needed. Indeed, the compiler will load this information only when a type is actually used, not when it is simply imported. The import simply tells the compiler where to look when it actually needs a type.
So no, importing an entire package produces no more overhead than importing a specific type.
That being said, it is generally regarded as bad practice to import an entire package using import on demand. Sometimes the number of imports may be large. However, you can quickly look at the list and know what classes the importing class uses. Such a list of imports can provide important documentation to someone unfamiliar with the code. "

Similar Messages

  • Not allowed to import classes without package names?

    Hi,
    I have a few questions on Packages and importing?
    1. Is the following true that it is illegal to import classes in the same package as the current class, will this cause a comilation error? If this is the case where in the Java Language specification is this actually written as I could not find it?
    2. This has probably been answered by question 1 but if I have 2 classes in the same package and if I import 1 of the classes into the other class, is it illegal to import it by just using the class name and not the package name as well, ie
    if the package name is ie.tcd
    and the 2 class names are exp1.class and exp2.class, can I do this in class 2
    package ie.tcd;
    import exp1;
    public class exp2 {
    3. Is it illegal to import classes that are not explicitly part of any package or must a class be part of a package to be imported. I read somewhere that while this was always illegal it is only after jdk 1.4.2 that this is being enforced? If this is the case where in the Java Language specification is this actually written as I could not find it either?
    Thanks very much for any help,
    John

    Was just also wondering, 1 other thing, I am looking
    at someone elses code they have 2 classes (Class A
    and Class B) in the same package (pkg). The person
    imports class A into B:
    package pkg;
    import A;
    public class B {
    Is this legal code (or was it ever)?Not if A is really in pkg.A. If there is an A in the unnamed package it was legal, or at least it was understood by the compiler, and now it isn't (to both).
    Can you import or is there a point in importing a class in the same
    package?Only by naming the package in the import statement. If the current and the import statement are in the same package the import is redundant.
    If there is a point would you import just be
    using the class name (this would be illegal after jdk
    1.4) or should you use the whole package name even
    though it is in the package anyways?As I understand it you must always use the whole package name in imports.

  • Import class without package

    hellow, i have a web aplication named test , and i have a class named conexion
    when i import a package "pack" with the class conexion, not problem (test/WEB-INF/classes/pack/conexion.class) <% import="pack.* " %> but when i have only the class conexion WITHOUT package (test/WEB-INF/classes/conexion.class) and i import <%import ="conexion" %> i have problem ("The import conexion cannot be resolved") and when i not import the class i have problem (conexion cannot be resolved to a type) , my question is:
    how to i import a class without package in JSP , and if the test/WEB-INF/classes is in the classpath when compile the servlet , why the tomcat not found the class conexion?
    (tomcat 5.5.20 , jdk 1.5.09 , vim)
    thank
    (Sorry my english , i'm from Chile)

    Hi I am hosting my JSP application with Resin 2.17 which uses classes directly in JSP code (not packages). To make this work I had to specify the classpath in Resin.conf and it worked.
    My problem is getting this to work with TomCat or any other application server that will allow me to debug my project in Eclipse or NetBeans IDE. (I have yet to find an IDE that Supports debugging JSP/Java code running on Resin - so I want to switch my application server but I am not sure how to configure my classpath for the application servers to look for java classes in the specified directory just like I did with Resin.

  • How to import outer classes into package inner classes?

    Hi, hope you all under stand my question. Sample as below:
    import A.*;
    public class ClassA{
        public ClassA{
            ClassB.CA = this;
    package A;
    public class ClassB{
         public static ClassA CA;  //Problem Here
    }As the sample above, i cannot declare public static ClassA CA in ClassB. Any way I can solve this? Can I import ClassA into package A? Thanks.
    Edited by: ocboon8 on Apr 6, 2008 6:50 AM

    A class that is in a package cannot access a class that is not in a package.
    db

  • Importing class packages

    i am currently developing a flash movie with no graphics at
    the moment. It is being done with a lot of classes and packages,
    many of the AS classes import the same packages as well. I have
    many linked movie clips to those classes.
    The problem is that when i compile it takes quite a long
    time. I want to know if there is a way to have a single file for
    all my classes (like an include file) as opposed to having a dozen
    import lines of code in each AS script.

    I'm a newbie too, but I thought I would give you this URL. It was extremely helpful when I began using packages. I hope it helps.
    http://developer.java.sun.com/developer/onlineTraining/new2java/divelog/part1/page9.jsp

  • How can I import my class or package in JSP?

    Hello.
    I develop jsp. When I assign variables in jsp, everything work fine. For Example:
    connStr="jdbc:oracle:thin:@191.168.0.1:1521:orcl";
    But I want put some variables inside class or package, so using text editor I created and compiled package:
    package Pack1;
    public class Test1 extends java.lang.Object {
    public static void main(String[] args) {
    String ConnStr = "jdbc:oracle:thin:@191.168.0.1:1521:orcl";
    or class
    class Test1 {
    public static void main(String[] args) {
    String connStr = "jdbc:oracle:thin:@191.168.0.1:1521:orcl";
    But as soon as I put in my jsp line
    <%@ page import="Test1" %> or <%@ page import="Pack1.*" %>
    I always have an error.
    JSP Error:
    Request URI:/DateN/search/Search.jsp
    Exception:
    oracle.jsp.provider.JspCompileException:
    Errors compiling:e:\orant\oem8i\apache\apache\htdocs\daten\_pages\_daten\_search\_Search.java
    C:\orant\oem8i\apache\apache\htdocs\daten\_pages\_daten\_search\_Search.java:12: Package DateN not found in import.
    import Pack1.*; (or Test1)
    ^
    1 error
    I using OEM2.2 with Apache-Server under Win2000. I put my classes:
    Test1 in package: in folder: C:\orant\oem8i\Apache\Apache\htdocs\WEB-INF\classes\Pack1
    If just class, when just in folder: C:\orant\oem8i\Apache\Apache\htdocs\WEB-INF\classes
    If I using just class, when I put just in folder: C:\orant\oem8i\Apache\Apache\htdocs\WEB-INF\classes.
    Im stack. Anybody can help?
    Thank you.

    Another way. You can use a USB flash drive & the camera connection kit.
    Plug the USB flash drive into your computer & create a new folder titled DCIM. Then put your movie/photo files into the folder. The files must have a filename with exactly 8 characters long (no spaces) plus the file extension (i.e., my-movie.mov; DSCN0164.jpg).
    Now plug the flash drive into the iPad using the camera connection kit. Open the Photos app, the movie/photo files should appear & you can import. (You can not export using the camera connection kit.)
    Secrets of the iPad Camera Connection Kit
    http://howto.cnet.com/8301-11310_39-57401068-285/secrets-of-the-ipad-camera-conn ection-kit/
     Cheers, Tom

  • Importing classes/packages

    Does importing an entire package cause the classloader to load ALL the classes in that package into memory or are they loaded only on demand?
    Suppose package called MyPackage.
    import MyPackage.* - Does this cause all the classes to be loaded into memory ?

    Here's some more info on the 'import' statement:
    http://developer.java.sun.com/developer/TechTips/2000/tt0110.html#tip2

  • Importing packages vs importing classes

    What impact does it have if I import a complete package like:
    import java.util.*
    or import the classes that I need seperately like
    import java.util.Vector;
    import java.util.Collection;
    import java.util.Iterator;

    Nothing as far as Java is concerned, the compiler only uses what it needs, so there is no efficiency or size considerations.
    However, when you have to modify or debug a program that someone else wrote - which has only package imports - you will curse her/him!
    So, class imports are by far the better choice.

  • How to import classes from an external actionscript file

    This is driving me crazy, I've been trying to resolve this on my own for ages, and I've reviewed a lot of different materials, but I still can't seem to just import some external actionscript classes correctly.
    I'm using Flash Builder 4 with the Flex 4 SDK on mac osx 10.6
    the class I'm trying to import (I'll call it DesiredClass) is in a folder like this
    /libraries/com/foreignproject/com/foreignproject/DesiredClass.as
    within the class itself, the package declaration looks like this (I left all the guts out for clarity):
    package com.foreignproject
        import flash.display.Sprite;
        public class DesiredClass extends Sprite
            public function DesiredClass()
    I'm working on a totally different actionscript file at
    /Users/username/Documents/Adobe Flash Builder 4/TestProject/src/TestProject.as
    in this file I try to import the DesiredClass:
    package
         import com.foreignproject.DesiredClass;
         import flash.display.Sprite;
         public class TestProject extends Sprite
              public function TestProject()
              var neatClass:DesiredClass = new DesiredClass();
    And then I try to add the class I want to the source path.
    I've tried adding each folder to the source path separately:
    /libraries/com/foreignproject/com/foreignproject/DesiredClass.as
    /libraries/com/foreignproject/com/foreignproject/DesiredClass.as
    /libraries/com/foreignproject/com/foreignproject/DesiredClass.as
    /libraries/com/foreignproject/com/foreignproject/DesiredClass.as
    /libraries/com/foreignproject/com/foreignproject/DesiredClass.as
    If I choose the libraries folder or either of the com folders then an error shows up in theTestProject.as file, saying:
    Definition com.foreignproject:DesiredClass could not be found.
    But f I choose either of the foreignproject folders then an error shows up in theDesiredClass.as file saying:
    a file found in a source-path must have the same package structure 'com.foreignproject', as the definition's package, ".
    What am I doing wrong? Please help. I bought a book on actionscript, started doing the flex-in-a-week series, read numerous online discussion boards, and I still can't import these classes.
    Thanks in advance.

    I don't know if this method is supported anymore but you can give it a try.
    If you backed up bookmarks in IE using the following directions, you should be good!
    *In IE, "File -> Import and Export -> Export Cookies".
    *Open newly exported "cookies.txt" in a text editor and put a period before every line that starts with a domain. So a line starting with <b>altavista.com TRUE / FALSE 1388491200 AV_ALL 1</b> will become <b>.altavista.com TRUE / FALSE 1388491200 AV_ALL 1</b>
    *Then, move the "cookies.txt" file to your profile folder.
    You can get to the Profile folder two ways
    *Help > Troubleshooting Information > Profile Directory > Show Folder
    or
    *Go to '''about:support''' and click Show Folder next to Profile Directory.

  • Importing Class

    I was reading the tutorial on importing class's. This is what
    I read
    Importing classes
    To reference a class in another script, you must prefix the
    class name with the class's package path. The combination of a
    class's name and its package path is the class's fully qualified
    class name. If a class resides in a top-level classpath
    directory--not in a subdirectory in the classpath directory--then
    its fully qualified class name is its class name.
    To specify package paths, use dot (.) notation to separate
    package directory names. Package paths are hierarchical, where each
    dot represents a nested directory. For example, suppose you create
    a class named Data that resides in a com/xyzzycorporation/ package
    in your classpath. To create an instance of that class, you could
    specify the fully qualified class name, as shown in the following
    example:
    var dataInstance = new com.xyzzycorporation.Data();
    My Question is about com/xyzzycorporation/ . would the full
    class parth be c:/com/xyzzycorporation/ . Why do they never state
    the drive letter when teaching about directories.

    Because there is no need. you don't need to reference the
    drive letter.
    Here's the basic jist of what they are saying....
    Single Class File...
    If you create your own custom class and want to use it in
    your flash file, save it into the same directory as the fla file
    and call the classes constructor. By default flash will look inside
    the folder where the fla resides in for the class files if it
    cannot find it inside the default directory.
    Multiple Class Files - 1 Project (often referred to as
    packages)
    Use your qualified domain name but backwards.....
    my domain is www.sd-dezign.com so if I was going to include a
    package of utility class files in my document I would do the
    following
    Create a folder in the same folder with my fla name it com
    and inside that a folder called sddezign and inside that utils and
    all my as files would be in there...the folder structure might look
    like this....
    myfile.fla
    com
    >sddezign
    >>utils
    >>>box.as
    >>>circle.as
    To call the constructor for each class, I have two options.
    The first which is by far the easiest looks like this
    In whatever frame you need to call that class constructor
    include "com.sddezign.utils.*";
    var myBox:Box = new Box();
    The second method requires more typing and can get tedious
    var myBox = new com.sddezign.utils.Box();
    Hope this helps you a bit better.

  • Error in import Class

    hi,
    i just want to conform that .....
    if u r importing a class from same package then u have to write a import for that Class or not.
    As in my case i tried both import and no import statement for class1 to import it in class2, but it gives compiler error in both the cases as-----------cannot resolve symbol
    symbol : class User
    location: class org.apache.struts.example.Dbservlet
         public void addUser(User user)
    ^
    plz help to solve this......
    Amita

    If your directory structure is something like this:
    D:\java\org\apache\struts\example
    And in this directory you have the classes Dbservlet.java
    and User.java, with the following package statement in both the java class files:
    package org.apache.struts.example;
    you will not get any error if you compile from the D:\java directory like this:
    D:\java>javac org\apache\struts\example\DBServlet.java

  • Compilation Error for import classes not found in generated Proxy Class

    Hi,
    We are generating java classes for the COM dll using JCOM com2java compiler.
    We are getting a compilation error for import class not found when compiling the
    generated Proxy java source code. It can't find the com.bea.jcom.Dispatch class that
    the generated Proxy java source code extends. It also can't find com.bea.jcom.Variant
    or com.bea.jcom.Param. These are interfaces or data types or classes used by COM
    library.
    I added weblogic.jar to my class path and the only Dispatch class i found inside
    the weblogic.jar is com.linar.jintegra.Dispatch;
    We have com objects for which we want to develop an EJB client to interface with
    the COM object using JCOM with Native Mode disabled.
    Any help on the compilation error..I tried changing the extends for Dispatch to com.linar.jintegra.Dispatch
    but the other errors are still there.
    To begin with, I think the generated code should not refer to any of the COM data
    types.
    Any help please.
    Thank you in advance,
    Regards,
    Rahul Srivastava
    [email protected]

    Hi,
    I resolved the other errors by changing all references from com.bea.jcom.Variant
    etc to com.linar.jintegra.class name..all were present under the com.linar.jintegra
    package.
    Thank you all anyways,
    Regards,
    rahul
    "Rahul Srivastava" <[email protected]> wrote:
    >
    Hi,
    We are generating java classes for the COM dll using JCOM com2java compiler.
    We are getting a compilation error for import class not found when compiling
    the
    generated Proxy java source code. It can't find the com.bea.jcom.Dispatch
    class that
    the generated Proxy java source code extends. It also can't find com.bea.jcom.Variant
    or com.bea.jcom.Param. These are interfaces or data types or classes used
    by COM
    library.
    I added weblogic.jar to my class path and the only Dispatch class i found
    inside
    the weblogic.jar is com.linar.jintegra.Dispatch;
    We have com objects for which we want to develop an EJB client to interface
    with
    the COM object using JCOM with Native Mode disabled.
    Any help on the compilation error..I tried changing the extends for Dispatch
    to com.linar.jintegra.Dispatch
    but the other errors are still there.
    To begin with, I think the generated code should not refer to any of the
    COM data
    types.
    Any help please.
    Thank you in advance,
    Regards,
    Rahul Srivastava
    [email protected]

  • Inner class vs. imported class

    Hi everyone,
    I have entitiy beans created for a client's web app I'd like to use in the
    web service using WebLogic Workshop 7.0. Say the classes are imported like
    this in the services:
    import com.hoike.clientname.ap.bean.Invoice
    import com.hoike.clientname.ap.bean.Vendor
    Instances of these classes are used in callback methods and some of the
    service methods.
    When I generate the CTRL file, it actually adds those imported classes as
    inner class of the service defined.
    The problem is that when I try to used these services from another service,
    I cannot use the imported classes (as Invoice or Vendor), but instead I have
    to use the inner class (InvoiceService.Invoice or VendorService.Vendor)
    Does WebLogic Workshop 7.0 only allow you to use inner classes? Is there a
    way to use custom classes as method parameters?
    Thanks in advance!
    Makoto

    how do you declare your inner class?
    Is it (public)
    public static class MyInnerClassor (private)
    private static class MyInnerClassor (package)
    static class MyInnerClassor (protected)
    protected static class MyInnerClassTry to change the way you declare the inner class. Use protected or package or public instead.

  • Problem importing classes and beans

    Hey there. Im having one major fustrating problem! When I code supporting classes and beans for my JSPs I get a code 500 internal server error when trying to import (via <%@ page import="class" %> and <jsp:useBean/>) Im storing my classes and beans in the WEB-INF folder and the calling JSPs are located in /ROOT/tests/8/jsp.jsp. Im using the following to import a class or bean:
    <%@ import="aClass" %>
    Seen as tho its in the WEB-INF folder I won't have to explicitly refer to where the class is located, just the class name.
    I never had this problem when I was using my hosting service. Its only on my localhost server in which I get the Internal Server error.
    Help appreciated, thx.
    PS: Im quite new to JSP/Java Servlet.

    import (via <%@ page import="class" %> and
    <jsp:useBean/>) Im storing my classes and beans in the
    WEB-INF folder try put your class file in WEB-INF/classes.
    or first put bean in the package, like WEB-INF/classes/packagename/beanclass
    in jsp page:
    <jsp:useBean id="Mybean" class="packagename.beanclass" scope="request" />
    Question: is /ROOT a context entry in your server.xml?
    Which JSP Container (version) you use? Maybe your localhost server's set up is different with your hosting.

  • Importing class causes freeze

    here's the code, on the swf's _root:
    import com.website.package.Application;
    //Application.Main( this, "Menu" );
    even with the second line commented out, we get a big freeze,
    whole seconds of wait. the movie just completely stops playing,
    even an onEnterFrame method on the _root won't run until the import
    is finished. just nothing but waiting for the code to import.
    Application.as links off to an MVC architecture with a whole bunch
    of additional classes etc. and the inclusion of this line is enough
    to turn a 3K swf into a 443K swf.
    erk! what can you do about that?!?!?
    r

    i'd love to. the problem is though that the movie itself has
    frozen. i put a test preloader in that displays bytes loaded
    alongside bytesto load. they sat and did nothing until the import
    was finished, then both displayed 442K. so then i got rid of that
    and put a simple 2 frame vibrating MC on their instead. it was
    motionless until the import was finished
    i can't emphasise this enough: it's not a big preload its the
    fact that the movie won't run AT ALL until the import is done. its
    a big problem.

Maybe you are looking for