Java问题汇总
来源:互联网 发布:父母没有文化 知乎 编辑:程序博客网 时间:2024/05/21 10:21
2012/2/23
今天在命令行编译程序的时候遇到这样的一个问题:
使用了未经检查或不安全的操作,要了解详细信息,请使用 -Xlint:unchecked 重新编译。
网上查找资料后发现是以下的原因:
在编译java源文件时,你使用的是jdk1.5或以上时,可能出现这个问题。(使用了未经检查或不安全的操作;请使用 -Xlint:unchecked 重新编译。)
原因是jdk1.5里的集合类的创建和jdk1.4里有些区别,主要是jdk1.5里增加了泛型,也就是说可以对集合里的数据进行检查。在jdk1.5以前,如果没有指定参数类型,则JDK1.5编译器由于无法检查给出的参数是否合乎要求,而报告unchecked警告,这并不影响运行。按照提示,编译时指定参数即可取消这样的警告,或者为其制定类型参数。比如:
List temp = new ArrayList ();
temp.add("1");
temp.add("2");
修改为
List <String> temp = new ArrayList <String> ();
temp.add("1");
temp.add("2");
还有一个问题是关于package的,编译以及运行的时候没有指定package的路径,导致一直提示说没有找到相应的类,这个问题当时也是让我纠结了很久啊,水啊!!!
比如代码中添加了package mypackage,那么编译的时候应该是在对应的目录下执行javac mypackage.MyClass.java。
package好比java用来组织文件的一种虚拟文件系统。package把源代码.java文件,.class文件和其他文件有条理的进行一个组织,以供java来使用。package是将文件组织在一颗类似unix,linux文件系统的树结构里面,它有一个根"/",然后从根开始有目录和文件,目录中也还有文件和目录。
2012/2/26
JAVA_HOME:该环境变量的值就是 Java 所在的目录,一些 Java 版的软件和一些 Java 的工具需要用到该变量,设置 PATH 和 CLASSPATH 的时候,也可以使用该变量以方便设置。
PATH:指定一个路径列表,用于搜索可执行文件的。执行一个可执行文件时,如果该文件不能在当前路径下找到,则依次寻找 PATH 中的每一个路径,直至找到。或者找完 PATH 中的路径也不能找到,则报错。Java 的编译命令 (javac),执行命令 (java) 和一些工具命令 (javadoc, jdb 等) 都在其安装路径下的 bin 目录中。因此我们应该将该路径添加到 PATH 变量中。
CLASSPATH:也指定一个路径列表,是用于搜索 Java 编译或者运行时需要用到的类。在 CLASSPATH 列表中除了可以包含路径外,还可以包含 .jar 文件。Java 查找类时会把这个 .jar 文件当作一个目录来进行查找。通常,我们需要把 JDK 安装路径下的 jre/lib/rt.jar (Linux: jre/lib/rt.jar) 包含在 CLASSPATH 中。
2012/2/28
static数据和static方法。
通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例对象。在成员的声明前面加上关键字static(静态的)就能创建这样的成员。如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。可以将方法和变量都声明为static,static成员的最常见的例子是main( ) 。因为在程序开始执行时必须调用main() ,所以它被声明为static。
声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用一个static变量。
声明为static的方法有以下几条限制:
它们仅能调用其他的static 方法;
它们只能访问static数据;
它们不能以任何方式引用this 或super。
以下是代码示例:
class HelloWorld { int a1 = 6; public static void main(String[] args) { System.out.print(a1); /* 成员变量不能直接调用(无法从静态上下文中引用非静态变量a1)*/ } } /*编译时报如下错: HelloWorld.java:7: 无法从静态上下文中引用非静态变量 a1 System.out.print(a1); */ /*1 错误 因为非静态的变量a1没有初始化,改为如下程序*/ class HelloWorld { int a1 = 6; public static void main(String[] args) { HelloWorld abc=new HelloWorld(); System.out.print(abc.a1); } } //编译通过。
socket 与 多线程
import java.net.*; import java.io.*; public class MultiUser extends Thread{ private Socket client; public MultiUser(Socket c){ this.client=c; } public void run(){ try{ BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream())); PrintWriter out=new PrintWriter(client.getOutputStream()); //Mutil User but can't parallel while(true){ String str=in.readLine(); System.out.println(str); out.println("has receive...."); out.flush(); if(str.equals("end")) break; } client.close(); }catch(IOException ex){/*...*/}finally{/*...*/} } public static void main(String[] args)throws IOException{ ServerSocket server=new ServerSocket(5678); while(true){ //transfer location change Single User or Multi User MultiUser mu=new MultiUser(server.accept()); mu.start(); } } }
- Java新手问题汇总
- JAVA乱码问题汇总
- Java编码问题汇总
- Java编码问题汇总
- Java编码问题汇总
- Java问题汇总
- Java编码问题汇总
- java 排列组合问题汇总
- Java编码问题汇总
- Java编码问题汇总
- Java编码问题汇总
- Java编码问题汇总
- Java编码问题汇总
- Java编码问题汇总
- Java编码问题汇总
- Java Applet 问题汇总
- java编码问题汇总
- Java小问题汇总
- 一个不错的计算机图形学开源社区
- Windows 进程间通信
- window下c语言通过WMI获得网卡MAC地址,硬盘序号,主板序号等硬件信息
- 从文件中读入数据,排序并输出到另外一个文件中
- ubuntu网速慢的原因
- Java问题汇总
- 第十五周实验报告一(实现冒泡排序算法,并将之定义为一个函数)
- chm文件打不开解决办法
- 为什么有些chm文件打开后,看不到内容
- Windows 线程同步
- NSMutableArray 排序 --- 三种方法
- iphone开发好文章链接
- 实现产品图片放大镜效果(jQuery)
- 字符串处理