精华内容
下载资源
问答
  • java import类提示找不到符号

    千次阅读 2021-03-06 20:39:45
    javac时提示找不到符号DataProc,...importjava.sql.*;importjava.util.*;publicclassSelectList{Stringstr="select*fromotable";St...javac时提示找不到符号DataProc,是不是指找不到类DataProc?java文件如下:pa...

    javac时提示找不到符号DataProc,是不是指找不到类DataProc?java文件如下:packagedb;importjava.sql.*;importjava.util.*;publicclassSelectList{Stringstr="select*fromotable";St...

    javac时提示找不到符号DataProc,是不是指找不到类DataProc?

    java文件如下:

    package db;

    import java.sql.*;

    import java.util.*;

    public class SelectList{

    String str="select * from otable";

    String str2=null;

    ResultSet rs=null;

    Vector bmlist=null;

    DataProc dataproc=null;

    public SelectList() throws Exception{

    try{

    bmlist=new Vector();

    dataproc=new DataProc();

    }catch(Exception e){throw e;}

    }

    public Vector getList() throws Exception{

    try{

    dataproc.setSQL(str);

    rs=dataproc.getData();

    while(rs.next())

    {bmlist.addElement(new String(rs.getString(1)));}

    return bmlist;

    }catch(SQLException e){throw e;}

    }

    public ResultSet manList(String strbm) throws Exception{

    try{str2="select * from utable";

    dataproc.setSQL(str2);

    rs=dataproc.getData();

    return rs;

    }catch(SQLException e){throw e;}

    }

    }

    ======================

    DataProc.class与这个java是同一个文件夹db里的,试了在前面加上import DataProc;也不行,不知是什么原因,忘 高手指教,谢谢。

    package db;

    import java.sql.*;

    public class DataProc{

    String strsql="";

    String rvalue="";

    Connection con=null;

    ResultSet rs=null;

    Statement stmt=null;

    public DataProc() throws Exception{

    try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

    String url="jdbc:odbc:dblink";

    String uid="";

    String pwd="";

    con=DriverManager.getConnection(url,uid,pwd);

    }catch(SQLException e){throw e;}

    }

    public void setSQL(String str)

    {this.strsql=str;}

    public void newData() throws Exception

    {try{stmt=con.createStatement();

    stmt.executeUpdate(strsql);

    stmt.close();

    con.close();

    }catch(SQLException e){throw e;}

    }

    public ResultSet getData() throws Exception

    {try{stmt=con.createStatement();

    rs=stmt.executeQuery(strsql);

    return rs;

    }catch(SQLException e){throw e;}

    }

    public void closeCon() throws Exception...

    展开

    展开全文
  • 这篇文章起因是 code review 时和同事关于 import 导入声明的分歧。 用过 IDEA 的都知道,默认情况下,通过 import 导入类时,当数量达到设置数量(类 5 个、静态变量 3 个),就会改为按需导入方式,也就是使用使用...

    java import 导入包

    你好,我是看山。

    这篇文章起因是 code review 时和同事关于 import 导入声明的分歧。

    用过 IDEA 的都知道,默认情况下,通过 import 导入类时,当数量达到设置数量(类 5 个、静态变量 3 个),就会改为按需导入方式,也就是使用使用*号折叠导入。

    同事建议不要采用按需导入,要使用单类型导入 (single-type-import)。而我是觉得既然 IDEA 作为宇宙级的 IDE,不会在这种地方出现纰漏,所以想继续按照 IDEA 默认配置来。

    所以总结一下这两种方式的差异。如果对 java import 不熟悉,可以从 这里 看看。

    import 的两种导入声明

    在 java 中,通过 import 导入类的方式有两种:

    • 单类型导入(single-type-import),例如 import java.io.File:这种方式比较容易理解,而且大部分时候我们用的都是这种方式。通过明确指明类和接口路径,将他们导入进来。
    • 按需类型导入(type-import-on-demand),例如 import java.io.*:通过通配符*定义导入方式,但是并不是直接导入这个包下的所有类,而是可以导入所有类。也就是说,如果需要就导入,不需要就不导入。

    有如下属性:

    1. java 以这样两种方式导入包中的任何一个public的类和接口(只有 public 类和接口才能被导入)
    2. 上面说到导入声明仅导入声明目录下面的类而不导入子包,这也是为什么称它们为类型导入声明的原因。
    3. 导入的类或接口的简名(simple name)具有编译单元作用域。这表示该类型简名可以在导入语句所在的编译单元的任何地方使用。这并不意味着你可以使用该类型所有成员的简名,而只能使用类型自身的简名。例如:java.lang 包中的 public 类都是自动导入的,包括MathSystem类。但是,你不能使用它们的成员的简名PI()gc(), 而必须使用Math.PI()System.gc(). 你不需要键入的是java.lang.Math.PI()java.lang.System.gc()
    4. 程序员有时会导入当前包或java.lang包,这是不需要的,因为当前包的成员本身就在作用域内,而java.lang包是自动导入的。java 编译器会忽略这些冗余导入声明 (redundant import declarations)。

    按需导入机制

    按需类型导入在大部分情况用起来更加方便,一个通配符可以导入包下的所有类,就不用费劲写一堆导入了。

    但是,根据能量守恒,在敲代码时节省下来的能量,必然会在其他地方消耗。

    比如,Date类,如果完全使用按需类型导入,可以写做import java.util.*。当这个类恰好需要,PrepareStatement时,又需要加上import java.sql.*导入,这个时候,编译器不知道Date类是要用java.util包里的还是java.sql里面的了,就会报出Reference to 'Date' is ambiguous, both 'java.util.Date' and 'java.sql.Date' match异常,也就是所说的命名冲突

    解决办法就是指明Date类的全路径,也就是使用单类型导入:import java.util.Date

    除了命名冲突,还有一些不太明显的缺点:

    1. 编译速度:因为按需导入机制的特性,需要在 CLASSPATH 下找到所有符合包名的类,在编译时会消耗性能。在小项目中,这个速度可以忽略。如果在大项目中,就会有明细差异。
    2. 可读性:在使用 IDE 开发过程中,我们很少会在import中查看类的路径。但是如果需要我们在其他环境编辑文件,比如 vim,从import查看类的路径就很便捷了。

    导入不需要的类会发生什么呢

    从理性讲,java 编译器一定会在这里做优化,不会把不需要的导入声明加入到 class 文件中,但是之前没有看到哪里有说明,所以动手做一下实验:

    先定义 java 类:

    package cn.howardliu;
    
    // 需要用到的单类型导入
    import java.util.Date;
    // 需要用到的按需类型导入
    import java.math.*;
    // 不需要用到的单类型导入
    import java.sql.PreparedStatement;
    // 不需要用到的按需类型导入
    import java.awt.*;
    
    public class Main {
        private Date date1;
        private BigDecimal num1;
    
        public void test(){
            Date date2 = new Date();
            BigDecimal num2 = new BigDecimal(0);
        }
    }
    

    通过命令javac Main.java编译,然后通过javap -verbose Main.class查看编译结果:

    Classfile /path/to/Main.class
      Last modified 2021-1-31; size 439 bytes
      MD5 checksum 81e13559f738197b4875c2c2afd6fc41
      Compiled from "Main.java"
    public class cn.howardliu.Main
      minor version: 0
      major version: 52
      flags: ACC_PUBLIC, ACC_SUPER
    Constant pool:
       #1 = Methodref          #7.#19         // java/lang/Object."<init>":()V
       #2 = Class              #20            // java/util/Date
       #3 = Methodref          #2.#19         // java/util/Date."<init>":()V
       #4 = Class              #21            // java/math/BigDecimal
       #5 = Methodref          #4.#22         // java/math/BigDecimal."<init>":(I)V
       #6 = Class              #23            // cn/howardliu/Main
       #7 = Class              #24            // java/lang/Object
       #8 = Utf8               date1
       #9 = Utf8               Ljava/util/Date;
      #10 = Utf8               num1
      #11 = Utf8               Ljava/math/BigDecimal;
      #12 = Utf8               <init>
      #13 = Utf8               ()V
      #14 = Utf8               Code
      #15 = Utf8               LineNumberTable
      #16 = Utf8               test
      #17 = Utf8               SourceFile
      #18 = Utf8               Main.java
      #19 = NameAndType        #12:#13        // "<init>":()V
      #20 = Utf8               java/util/Date
      #21 = Utf8               java/math/BigDecimal
      #22 = NameAndType        #12:#25        // "<init>":(I)V
      #23 = Utf8               cn/howardliu/Main
      #24 = Utf8               java/lang/Object
      #25 = Utf8               (I)V
    {
      public cn.howardliu.Main();
        descriptor: ()V
        flags: ACC_PUBLIC
        Code:
          stack=1, locals=1, args_size=1
             0: aload_0
             1: invokespecial #1                  // Method java/lang/Object."<init>":()V
             4: return
          LineNumberTable:
            line 12: 0
    
      public void test();
        descriptor: ()V
        flags: ACC_PUBLIC
        Code:
          stack=3, locals=3, args_size=1
             0: new           #2                  // class java/util/Date
             3: dup
             4: invokespecial #3                  // Method java/util/Date."<init>":()V
             7: astore_1
             8: new           #4                  // class java/math/BigDecimal
            11: dup
            12: iconst_0
            13: invokespecial #5                  // Method java/math/BigDecimal."<init>":(I)V
            16: astore_2
            17: return
          LineNumberTable:
            line 17: 0
            line 18: 8
            line 19: 17
    }
    SourceFile: "Main.java"
    

    从 class 文件内容可以看出:

    1. 按需类型导入方式在 class 文件中的表现形式,与按类型导入一样,也会找到需要的类导入,不会导入包中的所有类。
    2. 不需要的类导入声明,最终都会被优化掉,不会出现在 class 文件中。
    3. java 中的import与 C 语言中的include不同,不会将导入声明的类写入到 class 文件中,各自还是独立的 class 文件。

    JDK 推荐哪种方式

    JDK 绝对是 java 编程的标杆,我们很多都可以从 JDK 中学习:

    import java.io.IOException;
    import java.io.PrintStream;
    import java.io.PrintWriter;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.io.Reader;
    import java.io.Writer;
    import java.io.OutputStreamWriter;
    import java.io.BufferedWriter;
    import java.security.AccessController;
    import java.security.PrivilegedAction;
    
    import sun.util.spi.XmlPropertiesProvider;
    

    这是java.util.Properties中的 import 声明,可以看出,使用了单类型导入声明,所以,在没有其他要求的情况下,我们尽量还是使用单类型导入。

    文末思考

    1. java 的import是类导入声明,不会将文件写入到编译后的 class 文件中
    2. java 的import有两种导入方式:单类型导入、按需类型导入
    3. 按需类型导入只会在编译过程中有性能损失,在运行期与单类型导入无差别
    4. JDK 源码中,大部分使用了单类型导入。

    你好,我是看山,公众号:看山的小屋,10 年老后端,Apache Storm、WxJava、Cynomys开源贡献者。主业:程序猿,兼职:架构师。游于码界,戏享人生。

    个人主页: https://www.howardliu.cn
    个人博文: java import 导入包
    CSDN主页: http://blog.csdn.net/liuxinghao
    CSDN博文: java import 导入包

    公众号:看山的小屋

    展开全文
  • javaimport的用法

    千次阅读 2021-03-16 19:34:41
    java中的import是什么,有什么用,怎么用小弟刚接触java,今天遇到一个import java.util.scanner 不知道这import说到import(导入) 就必须得说 package(封装) 当然 JDK中的系统包 不用package JDK装好后,运行环境系统...

    java中的import是什么,有什么用,怎么用

    小弟刚接触java,今天遇到一个import java.util.scanner 不知道这import说到import(导入) 就必须得说 package(封装) 当然 JDK中的系统包 不用package JDK装好后,运行环境系统自带 但是呢,如果自定义一个包的话 就必须先package 再import package 和 import 写在语句最上层

    java中import的功能是什么?

    b2b2d767715e1920603ef9e5ff75e86a.png

    急着知道Java中import的功能是什么?????

    导入包, 具体地说,应是导入要用到的包中的类接口。 例如:import java.sql.DriverManager;//导入DriverManager类 import java.sql.Connection;//导入Connection接口 import java.sql.Statement;//导入Statement接口

    在Java中如何用import引入自己建的类

    如果两个Java文件在同一个包中,则不用引入就能使用,不在同一包中,则必须引入。 下面是不同包中(test1,test2): ===========Exam1.java=========== package edu.syict.test1 ; public class Exam1(){ public void printExam1(){ System.out.pr

    JAVA的package与import的用法?

    小弟初学JAVA,学到这里的时候有点不明白。 我已经设置CLASSPATH路径使如果他们都在java这个文件夹下就可以这么写 第一个文件开头写package AAA.BBB 第二个文件 比如在AAA这个文件夹里 开头写 package AAA import AAA.BBB.*; 导入包的前提是 你要导包的文件 也就是你说的第二个文件 必须跟你第一个文件的包结构的根

    Java中怎样import自己写的class

    在创建的一个project里,我建了不同的class,比如第一个是创建红绿灯,可以把你要导入的两个类放在同一个包里,比如:org.test。在使用第三个类时在其第一行加入import org.test.*;后面加*表示把org.test这个包中的所有类都加载进来,一般情况下不这样做,因为如果在一个包内有很多类的话。

    java中的import和package的用法?

    java中import*导入包报错;在同一目录下有两个java文件,文件名分别为Test.java和T.java,内容如下你的图片呢?没有看到啊,如果导入包报错的话看一下是否是自己需要导入的包,包名有没有错误,如果包名没有错的话,那么对应的jar包是否已经导入到工程了呢? 还有一种情况,当Eclipse 的JDK与java文件编码的jdk不匹配时也会报错。 望喜欢。

    JAVA中 import关键字有什么用途

    import 出来能导入包 和 导入 静态成员之外 还有什么用是什么情况下用?你要是不用import,那么其他包中的类,你就不能直接使用,所以要import把包导入进来。

    Java 中import的用法,以及类的种类

    这个问题,首先要了解包的概念。 1. 什么是包? 在实际的编程过程中,因为需要用到大量的类,所以难免会导致类名的重复。在Java中,相同目录下,类是不允许重名的。所以用打包的方式将类分拣到不同的集合。 2. 如何导入一个包? 导入时机:当一

    Java程序中,import的作用是什么?

    import就是在java文件开头的地方,先说明会用到那些类别。 接着我们就能在代码中只用类名指定某个类,也就是只称呼名字,不称呼他的姓。 首先,在程序开头写: import java.lang.System;import java.io.InputStream;import java.io.InputStreamR

    展开全文
  • javaimport导入包报错

    2021-02-12 13:39:48
    然后输入cd c:\Study\Lesson3进入根目录下 3、输入javac PackageTest.java 4、输入javac ImportTest.java 5、输入java ImportTest 选择二:输入mkdir com cd com mkdir yeahgenius cd yeahgenius mkdir test cd ...

    展开全部

    你的环境32313133353236313431303231363533e58685e5aeb931333365643533变量中classpath要重新设定,在cmd命令框中输入以下命令后再做javac编译操作。

    set classpath=c:\Study\Lesson3;%classpath%

    而且你需要先要搞清楚package的概念,看你贴的代码中package是的根目录下是com,而你输入javac PackageTest.java这个命令时是在c:\Study\Lesson3这个路径下,说明你的PackageTest.java中声明语句:package com.yeahgenius.test与实际不吻合。

    你有两种选择:

    选择一:

    1.删除PackageTest.java和ImportTest.java中 package com.yeahgenius.test这句申明,2.

    输入set classpath=c:\Study\Lesson3;%classpath%;然后输入cd c:\Study\Lesson3进入根目录下

    3、输入javac PackageTest.java

    4、输入javac ImportTest.java

    5、输入java ImportTest

    选择二:输入mkdir com

    cd com

    mkdir yeahgenius

    cd yeahgenius

    mkdir test

    cd test

    copy c:\Study\Lesson3\PackageTest.java .

    copy c:\Study\Lesson3\ImportTest.java .

    set classpath=c:\Study\Lesson3;%classpath%

    javac PackageTest.java

    javac ImportTest.java

    java ImportTest

    展开全文
  • 然后输入cd c:\Study\Lesson3进入根目录下 3、输入javac PackageTest.java 4、输入javac ImportTest.java 5、输入java ImportTest 选择二:输入mkdir com cd com mkdir yeahgenius cd yeahgenius mkdir test cd ...
  • javaimport关键字的使用

    千次阅读 2021-02-12 22:12:06
    java中如何使用Java包中自带的类呢?方法一:在使用时可以用Java.(包名).(方法名).(包中的类名);例如:Java.util.Arrays.toString(某个要排序数组);具体代码如下:public static void main(String[] args) {int[]...
  • javaimport关键字是什么意思

    千次阅读 2021-02-12 22:09:34
    import关键字是用来导入包的,因为实际开发中,你不可能把所有的类都放在同一个default包里面。...import关键字使用1、显示导入指定包下的类或者接口import java.util.Scanner;2、写在包的声明和源文件之间packa...
  • Java导包——import语句

    2021-02-27 14:08:55
    使用语句import org.common.demo01.Demo;或者import org.common.demo01.*;如果一个类声明为public class,则文件名称必须与类名称一致,而且在一个类文件中只能有一个public class。而如果使用class声明一个类,则...
  • Java导入(import语句的用法)

    千次阅读 2021-03-22 11:26:37
    全屏导入(import)声明用于将任何类型导入编译单元。导入(import)声明出现在包声明之后,第一个类型声明之前。有两种类型的导入声明:单类型导入声明按需导入声明单类型导入声明单类型导入声明用于从包导入单个类型。...
  • 我在第3个class里,有两个选择让用户选,选1就是运行第一个红绿灯,选2就是使用那个计算器, 那么怎么import第一个和第二个class呢? 我用直接创建object的办法,没成功. 比如,第一个class叫light, 用户选1我就light ...
  • 假如有一个类,直接不加package,也就是属于默认包:publicclassClassInDefaultPackage{publicvoiddoSomething(){System.out.println("Iamindefaultpackage.");}}另外一个类,处于com...packagecom;import??;public...
  • javaimport导入包的详解

    千次阅读 2021-03-31 19:51:41
    javaimport导入包的详解: java中在类中实现某些功能的时候,有可能需要调用其他的类,或者其他类中的对象,或者其他类中的方法,或者其他某些特定的方法,这里需要调用的对象(或者是类)有可能跟该类文件不在一...
  • java awt教程import java.awt.*

    千次阅读 2021-03-19 09:10:13
    java awt教程import java.awt.*java.awt.* 这里的java是包名,包对应的就是你磁盘当中的目录,你可以看成文件夹,awt是这个包当中的子包, 连起来也就是这个java包当中的awt子包.中间用"."来连接. "import"是导入包中...
  • java里面import java.util.*;是什么用处?

    千次阅读 2021-02-12 12:49:00
    展开全部import java.util.*;导入32313133353236313431303231363533e78988e69d8331333366303064java.util包中的类接口。Javaimport的作用是导入要用到的包中的类接口。import就是在java文件开头的地方,先说明会...
  • Java codepackage com.example.android.apis;import android.app.Activity;import android.os.Bundle;import android.os.Environment;import android.view.Menu;import java.io.File;...The import java.io.Fil...
  • java中怎么利用import导入自定义包

    千次阅读 2021-02-13 01:33:27
    Java中利用import导入自定义包的前提是:必须在java的同一个项目下,这样才可以跨包导入需要的包类。java中利用import导入自定义包的方法是:【import 包名.类名】。例如现在有一个工程目录,如下所示:(视频教程...
  • java-使用import java.awt.*

    千次阅读 2021-04-20 21:38:35
    在一些JDK中,我们使用import java.awt.*往往会出现is not accessible. 愿因是因为下面的module-info.java的存在不能访问awt。如下: 这时我们只需要把下面的module-info.java按Delete删除即可,awt类就能使用了。 ...
  • 今天发现Javaimport包时,带*(星号)的一个问题。下面附上代码和截图:在我的电脑"E:\csdn\"目标下有两个java文件: Print.java和Demo.java Print.java代码如下:package util;public class Print{public static ...
  • JAVA静态导入(import static)详解

    千次阅读 2021-02-12 10:15:55
    Java 5中,import语句得到了增强,以便提供甚至更加强大的减少击键次数功能,虽然一些人争议说这是以可读性为代价的。这种新的特性成为静态导入。当你想使用static成员时,可以使 用静态导入(在API中的类和你自己...
  • java中的import java.util是什么意思

    千次阅读 2021-03-05 12:50:05
    java中的import java.util是什么意思发布时间:2020-06-17 10:00:01来源:亿速云阅读:177作者:Leahjava中的import java.util是什么意思?针对这个问题,这篇文章给出了相对应的分析和解答,希望能帮助更多想解决这...
  • java 中 Math类

    千次阅读 2021-03-06 16:23:35
    importjava.math.BigDecimal;importjava.math.BigInteger;/** 一、Math类?** 1.是数学工具类,可以做一些数学计算。---->开方 对数 三角函数等!* 2.所有的方法都是 静态方法, 不需要new ,直接调用类名即可!*...
  • 首先要导入包importjava.util.Scanner; Scanner类的创建对象:ScannerS=new Scanner(System.in); 方法基本格式 hasNextXxx()判断是否还有下一个输入项,其中Xxx可以是Int,Double等。如果需要判断是否包含下一个...
  • Java:导入StringUtils

    千次阅读 2021-03-08 10:22:30
    我正在尝试导入StringUtils。 我的第一步是下载" commons-lang... 我打算在其中使用StringUtils的PersonTester.java中包括:import org.apache.commons.lang3.StringUtils;当我尝试编译时,出现以下错误:PersonTest...
  • Java IO 详解

    千次阅读 2021-03-03 11:28:10
    Java IO 详解初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂。而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见。...
  • 个人在maven中引用zookeeper的时候无法使用其中的方法的问题:1:有jar包,但是无法import解决过程:在这种我尝试过很多种方法想解决这个问题:例如:maven updatemaevn clean --》 maven insertproject -->...
  • import java.text.SimpleDateFormat;import java.util.Date;public class DateDemo {public static void main(String[] args)throws Exception{//创建时间 类Date date = new Date();//格式日期SimpleD...
  • 今天开个很久没搞的工程,刚开的时候一片红,很自然的想到,要去配置一下项目的JDK,但是配置好之后,又出了个诡异问题:项目可以运行,但是import项目内部自己写的类的时候,都出现了红色错误。虽然import显示错误...
  • package 常用组件之JButtonimport java.awt.event.ActionEventimport java.awt.event.ActionListenerimport java.awt.event.WindowAdapterimport java.awt.event.WindowEventimport javax.swing.JButtonimport javax...
  • javaimport关键字的使用方法

    千次阅读 2021-03-08 10:42:35
    javaimport关键字的使用方法发布时间:2020-06-26 15:05:44来源:亿速云阅读:96作者:Leah这篇文章将为大家详细讲解有关javaimport关键字的使用方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,239,419
精华内容 1,295,767
关键字:

JAVAimport