1.Java基础

1.1.第一个Java程序

public class Hello 
{
    public static void main(String args[]) 
    {
        System.out.println("Hello, world!");
    }
}

1.其语和C语言类似,这里注意main函数的参数与C不同,打印语句使用System.out.println,使用+分隔需要打印的内容;
2.在文件命名上,文件名要和文件内的类名保持一致;
3.编译:javac Hello.java, 会编译生成一个Hello.class
4.运行java Hello,这句命令实际上是启动java虚拟机,然后加载Hello.class类并运行。

1.2.数据类型

1.2.1.基本数据类型

Java支持如下的基本数据类型:
java(01)__Java基础
这里注意几点:
1.所有的基本数据类型,定义的时候在栈上分配空间;
2.Char类型占用两个字节

1.2.2.引用数据类型

Java的引用数据类型包含:数组、类、接口、null,所有的引用数据类型在定义定义时需要使用new来分配空间(堆空间)。
以数组为例,使用方法如下;

int a[]=null;
a = new int[10];

int b[]=new int[10];

int c[]={1,2,3,4,5};

1.2.3.数据类型转换

数据类型的转换分为:
自动转换:
数据不丢失的前提下进行自动转换,java中×××数据默认为int,浮点型数据默认为double;

int a=30;
long b = a;  // 自动转换,因为long的表示范围比int大

float c = 3.1
int d = (int)c; // 必须使用强制转换

强制转换:
注意一点:在进行数据运算时,会先将数据当做默认类型进行计算;

byte  b= 1;
short s= 3;
// 编译器会判断该值有无超过该变量的表示范围,如果超过就报错。

short s = 1;
s = s + 1; // 出错,因为对于byte,short的运算,为了保证精度,会自动转换为int类型

s = (short)(s + 1);

1.3.预算符|表达式|语句

和C语言完全一样:

if, if...else, if...else if...else, switch
while, do...while, for; break, continue

1.4.方法

在java中将函数称为方法。

public static 返回值类型   方法名称 (类型 参数1, 类型 参数2, ...) 
{
    程序语句;
   [return 表达式];

}

public static int add(int x, int y) 
{
     int sum;
     sum = x + y;
     return sum;
}

1.4.1.重载

在java语言中引入了重载的概念:方法名(函数名)相同,参数的类型或个数、或顺序不同的两个或多个函数为重载关系;
注意:返回值不能作为重载的依据;

public class Function {
    public static void main(String args[]) {
        System.out.println(add(1,2));
        System.out.println(add(1,2, 3));
        System.out.println(add(1.0f, 2.0f));
    }

    public static int add (int x, int y) {
        return x + y;   
    }

    public static int add (int x, int y, int z) {
        return x + y + z;   
    }

    public static float add (float x, float y) {
        return x + y;   
    }

}

1.4.2.参数传递

基本数据类型作为参数,方法内部对参数的修改不会影响调用者(传值调用)
引用数据类型作为参数,方法内部会修改堆空间,结果会被保留下来;

public class Param {
    public static void main(String args[]) {
        int x = 1;
        fun (x);

        int p[] = new int[1];
        p[0] = 123;

        System.out.println("Before fun2: "+p[0]);
        fun2(p);
        System.out.println("After fun2: "+p[0]);

        System.out.println(x);
    }

    public static void fun(int x) {
        x = 100;
    }       

    public static void fun2(int[] p) {
        p[0] = 200;
    }       

}