【JAVA入门】基础语法

1.注释、标识符、关键字

1.1 注释Comments

Java中的注释有三种:
1、单行注释:// Line Comment
2、多行注释:/* Block Commnet /
3、文档注释:/
* 开头,*/ 结尾

1.2 标识符

Java所有的组成部分都需要名字。类名、变量名、方法名都被称为标识符。
标识符注意点:
1、标识符首字母必须为大小写英文字母、美元符 $、下划线_
2、标识符第二个字母必须为大小写英文字母、美元符 $、下划线_、数字
3、标识符大小写敏感
4、不可用关键字作为标识符
5、标识符可以使用中文,也可使用汉语拼音,但不建议这么做,以“见文知意”的原则进行标识符的书写。

1.3 关键字

![在这里插入图片描述](https://img-blog.csdnimg.cn/749931dfe16e499e8f7366594bb2a895.png在这里插入图片描述

2.数据类型

JAVA是强类型语言,所有变量必须先定义才能使用,声明了但未定义也不允许使用。
JAVA的数据类型分为两大类:基本类型 和 引用类型。

2.1 基本类型

每个基本的数据类型,都对应一个包装类。

类型占用字节/位
byte占1个字节
int占4个字节
char占2个字节
boolean占1位
float占4个字节
double占8个字节
long占8个字节

2.2 引用类型

// TODO

3.类型转换

JAVA是强类型语言,类型转换时注意以下几点:
1、布尔类型的数据不可以进行类型转换;
2、字节大的转换为字节小的,注意截断问题;
3、字节小的转换为字节大的,注意内存溢出问题。
基本数据类型的优先级从低到高,排列如下:
byte,short,char -> int -> long -> float -> double

4.变量、常量

4.1 变量作用域

变量有如下3种作用域:

public class HelloWorld {
    // 类变量。前面加static,从属于类
    static double salary = 100;
    // 实例变量。前面无static,从属于类对象。
    // 实例变量若不初始化,则系统会自行初始化,基本类型默认值为0,布尔类型默认值为false,非基本类型默认值为null。
    String name;
    int age;

    // main方法
    public static void main(String[] args) {
        // 局部变量:必须声明和初始化
        int i = 10;
        System.out.println(i);

        // 实例变量的使用
        HelloWorld helloWorld = new HelloWorld();
        System.out.println(helloWorld.name);
        System.out.println(helloWorld.age);

        // 类变量的使用
        System.out.println(salary);
    }
}

4.2 常量

使用关键字final定义常量。如:final int age = 18;
常量标识符一般使用全字母大写。

5.运算符

6.包机制、JavaDoc

6.1 包机制

为了更好地组织类,JAVA提供了包机制,类似于WINDOWS中的文件夹,用于区别类名的命名空间。
一般利用公司域名倒置作为包名。如百度使用com.baidu.www作为包名。
包语句语法格式:package pkg1.pkg2.pkg3;
为了能够使用某一个包中的成员,需要使用import关键字将该包明确地导入:import pkg1.pkg2;
注意:

  1. import导包语句必须放在package pkg1.pkg2.pkg3;包语法之后。
  2. 不同包中的类名或函数名可以相同,但一般不会将另一个包中的同名函数包含到某个包中。

6.2 JavaDoc

javadoc命令是用来生成自己的API文档的。
参数信息如下:
@author 作者名
@version 版本号
@since 指明需要最早使用的jdk版本
@param 参数名
@return 返回值情况
@throws 异常抛出情况

6.2.1 使用DOS命令生成JavaDoc文件

在这里插入图片描述
生成的Doc文件在index.xml中。
选项 -encoding UTF-8 -charset UTF-8 是为了避免注释中有中文出现乱码。

6.2.2 使用IDE自动生成JavaDoc文档

// TODO

7. 用户交互Scanner对象

7.1 next()方法

1.next()函数一定要读取到有效字符后才可以结束输入。
2.对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
3.只有输入有效字符后,next()函数才会将其后面输入的空白作为分隔符或结束符。即下述中的输入hello world,但输出hello。
4.next()函数不能得到带有空格的字符串。

package scanner;

import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args) {

        // 创建一个扫描器对象,用于接收键盘数据
        Scanner scanner = new Scanner(System.in);

        System.out.println("使用next方式接收:");

        // 判断用户有没有输入字符串
        if (scanner.hasNext()) {
            // 使用next方式接收
            String str = scanner.next(); // next()函数读取分隔符
            // 输入hello world,输出hello
            System.out.println("输出的内容为:" + str);
        }

        // 凡是属于IO流的类若不关闭会一直占用资源。创建时就要想着关闭
        scanner.close();
    }
}

7.2 hasNextLine()方法

1.nextLine()函数以Enter为结束符,即nextLine()方法返回的是输入回车之前的所有字符。
2.nextLine()函数可以获取到空白。

package scanner;

import java.util.Scanner; // Scanner

public class Demo02 {
    public static void main(String[] args) {
        // 创建一个扫描器对象,用于接收键盘输入
        Scanner scanner = new Scanner(System.in);

        System.out.println("使用nextLine方式接收:");

        if (scanner.hasNextLine()) {
            String str = scanner.nextLine();
            // 输入hello world,输出hello world
            System.out.println("输出的内容为:" + str);
        }

        // IO流的类,用完即关闭
        scanner.close();
    }
}

8.三种代码流程结构

8.2.2 Switch Case

switch case语法同C,不同之处在于,switch中的变量类型可以如下:

  1. byte、short、int、char
  2. 从JavaSE 7开始,switch支持字符串String类型
  3. case标签必须为字符串常量字面量

8.3 循环结构

8.3.3 For

Java5中引入了一种主要用于遍历数组和集合的增强型for循环。

// 声明语句:声明作用域仅为函数体的局部变量,该变量类型同数组元素类型。其值与数组元素值相同。
// 表达式:表达式是要访问的数组名,或返回值为数组的方法。
for (声明语句 : 表达式) {
	// 代码语句
}

9.命令行传参

在这里插入图片描述

10.可变参数

public class Demo04 {
    public static void main(String[] args) {
        Demo04 demo04 = new Demo04();
        demo04.printMax(1.0, 3.0, 2.0);
    }

    /* 可变参数(不定向参数)
    * 1.JDK 1.5开始,Java支持传递同类型的可变参数给一个方法。
    * 2.在方法声明中,在指定参数类型后加一个省略号...
    * 3.一个方法中只能指定一个可变参数,且该参数必须是方法的最后一个参数。
    *   任何普通的参数必须在可变参数之前声明。
    * */
    public static void printMax( double...numbers ) {
        if (numbers.length == 0) {
            System.out.println("No argument passed");
            return;
        }

        double maxValue = numbers[0];
        for(int i = 1; i < numbers.length; ++i) {
            if (numbers[i] > maxValue) {
                maxValue = numbers[i];
            }
        }

        System.out.println("The max value is " + maxValue);
    }
}

11.数组

11.1数组定义

Java中对数组的定义有如下两种:

  1. datatype[] data; // JAVA首选的数组定义方法。
  2. datatype data[]; // 效果同1,但不是JAVA推荐的数组定义方法,该方法纯粹为了适应早期的C、C++开发者。

11.2 数组变量的生成

Java中使用new关键字来创建数组

datatype[] data = new datatype[len];

数组大小一旦确定就不可改变,且数组是引用对象,存放在堆区。

11.3 三种初始化数组的方法

  1. 静态初始化

int[] a = { 1, 2, 3 };
Man[] mans = { new Man(1, 1), new Man(2, 3) };

  1. 动态初始化

int[] a = new int[2];
a[0] = 1;
a[1] = 2;

  1. 数组的默认初始化
    数组是引用类型,其元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。
    即基本类型隐式初始化为0,非基本类型隐式初始化为null。

11.4 数组长度

数组元素的访问是通过数组下标索引实现的,数组下标索引从0开始。
使用length获取数组元素的个数。

12. JAVA内存

在这里插入图片描述

13. Arrays数组工具类

包java.util.Arrays中的类Arrays包含用于操作数组的各种方法(如排序和搜索)。该类还包含一个静态工厂,可将数组视为列表。
若指定的数组引用为空,则该类中的方法都抛出一个NullPointerException
Arrays类中的方法都是static修饰的静态方法,在使用时可直接使用类名进行调用。
Arrays工具类具体函数的使用规则,可参照Jdk8.0开发文档。jdk开发文档下载

13.1 常用函数

函数名作用
fill给数组赋值
sort给数组元素排序(默认升序)
equals比较两个数组,数组中的元素值是否相等
binarySearch已排好序的数组进行二分查找

14. 稀疏数组

在这里插入图片描述
如上所示,稀疏数组解析如下:
原数组有6行7列共8个不同值(不包括0),其中原数组第1行第4列的值为22…

1、当一个数组中大部分元素为0,或者为同一值时,可使用稀疏数组来保存该数组。
2、稀疏数组的处理方式是:
a)记录数组一共有几行几列,有多少个不同值;
b)针对不同值的元素,将其行列及值记录在一个小规模的数组中,从而缩小原数组存储规模。
如上所示,左边是原始数组,右边是稀疏数组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值