###Java入门
####1、Java语言特性
1. 简单易用
2. 面向对象
3. 安全性高
4. 多线程
5. 跨平台

####2、跨平台
通过Java虚拟机(JVM)
####3、JVM、JRE、JDK
1. JVM——Java虚拟机
2. JRE——Java运行环境
3. JDK——Java开发工具包
4. 关系:JDK包含JRE,JRE包含JVM和核心类库

####4、Java编译过程
1. Hello.java编写代码
2. 编译:javac——Hello.java 编译成JVM能识别的代码
3. JVM运行Hello.class
4. 执行结果

##Java基础语法
####1、关键字和保留字
1. 关键字:有特定含义和特殊用途
    - 全部小写
    - 不能作为标识符
2. 保留字:const、goto

####2、标识符
1. 含义:用来给类、对象、方法、变量、接口、和自定义数据类型命名的。
2. 命名规则
    - 由字母、数字、下划线、美元符号组成,且首字母不能是数字

####3、常量和变量
1. 常量(用final定义):整数常量、小数常量、布尔型常量、字符常量、字符串常量、null常量
2. 变量:值可以变,指代某一事物
3. 变量声明:数据类型 变量名 = 初始化值;
    - 1.先声明后赋值:int age;age = 10;
    - 2.声明同时赋值:int age = 0;
4. 局部变量:方法内部定义,必须初始化。
5. 全局变量(成员变量):方法外部,类内部。不初始化,有默认值。
6. 注意:变量使用时有作用域:
```
    int x = 20;
    {
    int y = 20;
    }
    System.out.println(x);//成功
    System.out.println(y);//失败,超作用范围`
```

####4、数据类型
1. 基本数据类型(简单数据类型):
    - byte 一个字节[-127,128]
    - short 两个字节[-32768,32767]
    - int 四个字节[-2^31,2^31-1]
    - long八个字节[-2^63,2^63-1]
    - float四个字节[-3.403E38,3.403E38]
    - double八个字节[-1.298E308,1.798E308]
    - char[0,65535]
    - boolean
    - String不属于数据类型
2. 复合数据类型(引用类型)
    - 数组
    - 类
    - 接口
3. 简单数据类型转换
    - 强制转换:高——>低
    - 自动转换:低——>高

####5、运算符
1. 赋值运算符:=
2. 算数运算符:+,-,*,/,%,++,--

    - a++:先使用后加1,累加的结果不参与本次运算(使用原始变量运算);++a:先加1再使用,a=a+1,累加的结果需要参与本次运算;
```
int a = 10;
int b = 10;
int c = (a++) + b;
System.out.println(c);//c=20
System.out.println(a);//a=11
```

3. 关系运算符:>,<,>=,<=,==,!=
4. 逻辑运算符:!,&,|,&&,||,^(异或)
    - &:有false就false;|:有true就true;^:相同为false,不同为true
    - ||和&&的区别:||(短路或)当左边表达式为true时,右边不参与运算;&&(短路与)当左边表达式为false时,右边不参与运算
5. 位运算符:补码
6. 移位运算符
7. 三目运算符:变量=判断条件?表达式1:表达式2

####6、方法
1. 方法的创建
```
访问修饰符[修饰符]返回值数据类型 方法名([参数类型 参数名]){
方法体;
[return 返回值;]//如果没有返回值,用void关键字代替
}
```
 - 访问修饰符:public、protect、default、private

2. 方法的调用
    1. 有明确返回值类型的方法调用:
        - 单独调用
        - 输出调用
        - 赋值调用
    2. 没有明确返回值类型的方法调用:
        - 单独调用
3. return关键字
如果有返回值定义,就必须有return语句,返回值和返回值类型兼容的数据。
作用:1.返回数据给方法的调用者;2.结束一个方法

4. 方法重载
    - 方法名必须相同,参数(个数、类型、顺序)必须不同
    - 与返回值无关:如void method(int x)与int method(int y)不是方法重载
    - 与参数名无关:如method(int x)与method(int y)不是方法重载

####7、数组
1. 数组:一组数据的集合
    - 可以存放任意类型元素,但同一数组里存放的元素类型必须一致
    - 数组也是一种复合数据类型,以对象的形式存在
    - 数组的元素可以是简单数据类型,也可以是复合数据类型
2. 数组的特征:
    - Java语言是强类型语言:一个数组里只能存储一种数据类新的数据
    - Java语言是静态的:Java中的数组一旦被初始化后,它的长度是固定的。即使把某个数组的元素数据清空,它所占空间仍被保留,依然属于该数组,数组长度不变
    - 数组是引用数据类型。引用的本质是指针,指针也是变量,只不过存储的是内存的地址
3. 数组的声明:定义数组时,不能对数组指定长度,在数组创建时指定
    - type[] arr_name;
    - type arr_name[];
4. 数组的定义及初始化
    1. 静态初始化:
        - 类型[] 数组名 = new 类型[]{元素,元素...};int[] a = new int {1,2,3,4};
        - 类型[] 数组名 = {元素,元素...};int[] a = {1,2,3,4};
    2. 动态初始化:类型[] 数组名 = new 数据类型[数组长度];int[] scoreArr = new int[100];int[] array;array = new int[5];
5. 数组的遍历
    - 普通for循环
```
int[ ] a = {23,100,32,43};
for (int i= 0; i< a.length; i++) {
      System.out.println(“a[”+ i+”] = ” + a[i]);
}
```
    - 增强for循环
```
for (int x : a) {
      System.out.println(x);
}
```

6. 数组异常
    - 数组越界异常ArrayIndexOutOfBoundsException
    - 空指针异常NullPointerException

7. 二维数组:每一个元素都是一维数组
    - 数据类型[][] 数组名 = new 数据类型[一维数组个数][一维数组中元素个数];
    - 数据类新[][] 数组名 = new 数据类型[一维数组个数][];
    - 数据类型[][] 数组名 = {{元素值1,元素值2,...},{元素值1,元素值2,...}...};
8. 二维数组遍历:
```
for(int i=0;i<array.length;i++){
     for(int j=0;j<array[i].length;j++){
            System.out.println(array[i][j]);
     }
}
```

9. 多维数组
当使用new来创建多维数组时,不必指定每一维的大小,而只需要指定最左边的维的大小。
int a[][] = new int[4][5];
int b[][] = new int[3][];

10. 数组类型
    - 简单数据类型
    - 引用数据类型(复合数据类型)


内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/wangyh-1997/p/14734903.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!