jre与jdk的区别:

jre是java的运行环境,java虚拟机就在其中

              JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。

jdk是java开发的工具java development kit,针对开发人员发布的工具包!其中包括的组建如:

               javac:   java编译器(将java源程序转换成java字节码)

               jar – 打包工具,将相关的类文件打包成一个文件

               javadoc – 文档生成器,从源码注释中提取文档

               jdb – debugger,查错工具

               java –运行工具, 运行编译后的java程序(.class后缀的),这不就是JVM吗?不是在jre中?

               appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器

 

总结:如果你只需要运行Java程序或Applet,下载并安装它即可。如果你要自行开发 Java软件,请下载JDK(JRE和JDK的区别)。在JDK中附带有JRE。注意由于Microsoft对Java的支持不完全,请不要使用IE自带的虚拟机来运行 Applet,务必安装一个JRE或JDK。

 

在网页中运行Java程序称为applet。

 

JRE自带的基础类库主要是JRE\lib\rt.jar这个文件 . 

搭建java开发环境:即安装Java开发工具JDK

 ___________________________________

熟悉Java程序格式:1,大小写敏感 ,如:static void main(String args[]), System.out.println();

疑问:main必须加public?\

1 public class Test {
  2     static void main(String args[]) {
  3         System.out.println("hello, java!");
  4     }
  5 }

Error:    Main method not found in class Test, please define the main method as:
   public static void main(String[] args)

main函数解析:

格式:public static void main(String[] args)

1.public 用来告诉其它类这个方法是公用的,能被其它类访问!

2. static 说明这个方法是静态的,即在定义类的时候就存在了!不需要实例化就能访问!

3.void 返回值为空(与构造函数的无返回值不同)

4.String[] args 程序初始化参数

 

问:如果不加public,可以吗?

main函数是程序的入口,应该是有JVM来调用,所以main函数必须是能被外部所访问的!

问: 为什么声明成static类型的?

 非static类型的方法是“对象名.方法名”来调用的,但是此时程序还没跑起来,没有实例化对象,所以要声明成static类型,通过"类名.方法名"直接调用!

 

补充:可以用int代替void吗?

不可以,否则报错 Main method must return a value of type void in class Hello, please
define the main method as:
   public static void main(String[] args)

 为什么?

返回值的作用之:判断程序是否正确运行或返回结果。。

 

JVM调用指定的类(与文件名相同)的main方法!传递给main一个字符串数组参数,使指定的类被装载,同时链接该类所使用的其它的类型,并且初始化它们。

范例参见:java中main函数解析(链接

public class HelloApp {
    public static void main(String[] args) {
        System.out.println("Hello World!");
        for (int i = 0; i < args.length; i++) {
            System.out.println(args);
        }
    }
}

 

问:length在java中是属性还是方法?

a.length属性是针对Java中的数组来说的,要求数组的长度可以用其length属性;

b.length()方法是针对字符串来说的,要求一个字符串的长度就要用到它的length()方法;

c.java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看!

这个例子来演示这两个方法和一个属性的用法

 

//import java.util.*;

public class One {
    public static void main(String[] args) {
        String[] list = {"xxx", "yyyiii", "zzzzhh"};
        String a = "xxxyyyiiizzzzhh";

        System.out.println(list.length);
        System.out.println(a.length());

        List<String> arr = new ArrayList<String>();
        arr.add(a);
        System.out.println(arr.size());
    }   
}

 

一开始是这样写的,List arr = new ArrayList(); 也没有import;

结果报错:

One.java:9: error: cannot find symbol
        List arr = new ArrayList();
        ^
  symbol:   class List
  location: class One
One.java:9: error: cannot find symbol
        List arr = new ArrayList();
                       ^
  symbol:   class ArrayList
  location: class One
2 errors

难道是找不到List的声明,于是加上Import,重新编译,报警告:uses unchecked or unsafe operations(使用未选中或不安全的操作)!

 

但能运行出结果!

又查List的用法,加上元素类型String后就没有警告了!

 

 补充:《Java核心编程》

Java的类与C++的类很相似,但还是有些差异会使人感到困惑。例如,Java中的所有函数都属于某个类的方法(标准术语将其称为方法,而不是成员函数)。

因此,Java中的main方法必须有一个外壳类。读者有可能对C++中的静态成员函数(static member functions)十分熟悉。

这些成员函数定义在类的内部,并且不对对象进行操作。Java中的main方法必须是静态的。

最后,与C/C++一样,关键字void表示这个方法没有返回值,所不同的是main方法没有给操作系统返回“退出代码”。

如果main方法正常退出,那么Java应用程序的退出代码为0,表示成功地运行了程序。

如果希望在终止程序时返回其他的代码,那就需要调用System.exit方法。

 

java的三种注释方法:a. //  b. /*   */   c. /**   */这种注释可以自动生成文档!

 

在Java中,char类型用UTF-16编码描述一个代码单元。
我们强烈建议不要在程序中使用char类型,除非确实需要对UTF-16代码单元进行操作。最
好将需要处理的字符串用抽象数据类型表示(有关这方面的内容将在稍后讨论)。

 

C和C++区分变量的声明与定义。例如:是定义一个变量,而是声明一个变量。在Java中,不区分变量的声明与定义。

 

在Java中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为类常量。可以使用关键字static final设置一个类常量。