Java基础语法

Java基础语法

1.注释

一般分为三类:

  • 单行注释
  • 多行注释
  • 文档注释

其中,单行注释与多行注释同C/C++(单行用// 多行用/* */)
唯一不同的是文档注释

文档注释是是针对整个方法或者整个类做一个简要的概述,一般加在类或者方法前面。代码为:

/**
*@author	作者名
*@version	版本号
*@since		指明需要使用的最早的jdk版本
*@param		参数名
*@return	返回值情况
*@throw		异常抛出情况
……
*/

使用文档注释后,利用javadoc命令就可以自己生成API文档(网页)。
由于javadoc功能较多,且平常练习不会经常使用,在这里暂时不做过多解释,等有机会学完这部分再重新系统的整理一下。目前还是比较懵(雾。

2.关键字与标识符

与C语言相通,Java中也有一部分保留字,如下图:
在这里插入图片描述

另外,Java的所有组成部分都要有名字,变量名类名方法名都被称为标识符。

要注意:

  • 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始。
  • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合。
  • 关键字不能用作标识符。
  • 标识符区分大小写。

以上同C语言相比,多了美元符($)。它可以用在开头的位置,也可以插在中间。

3.数据类型

同C、C++,Java也属于强类型语言。所有变量必须先定义后使用。并且一旦定义之后,除非强制类型转换,否则数据类型不会再改变。强类型语言的优点是安全性高,但速度较慢

与其相对的是弱类型语言,如:JavaScript、Python等,弱类型语言变量可以不用遵守严格的规定,其定义速度较快,但安全性比不上强类型语言。

Java数据类型分为基本类型引用类型

基本类型
  • 数值类型
    • 整数类型
      • byte(一个字节):(-27~27-1)
      • short(两个字节):(-215~215-1)
      • int(四个字节):(-231~231-1)
      • long(八个字节):(-263~263-1)
    • 浮点类型
      • float(四个字节)
      • double(八个字节)
    • 字符类型
      • char(两个字节)
  • 布尔类型(一位):真(true)或假(false)

注意:

  1. 和C语言相比多了个更小的数据类型byte要注意。
  2. long类型在定义时,数字末尾通常加字母L来区分。
  3. float类型在定义时,数字末尾通常加字母F来区分。
  4. 二进制(0b),八进制(0),十进制,十六进制(0x)。
  5. 最好完全避免使用浮点数进行比较。
    如这样一段代码:
public class Hello {
    public static void main(String[] args) {
        double a = 0.8;
        double b = (8 / 10);
        System.out.println(a == b);
        float c = 123123123F;
        float d = c + 1;
        System.out.println(c == d);
    }
}

其输出结果为:

在这里插入图片描述
这是因为浮点数类型字长有限,比较时会有误差。
比较小数时,可以使用BigDecimal类。

  1. 所有的字符类型本质上是整数类型,每个字符在Unicode编码表里对应着一个数字。当我们强制类型转换后输出的字符就是这个字符所对应的编码。
引用类型

除了基本类型之外的数据类型都是引用类型。

分为:

  • 接口
  • 数组

4.数据类型转换

数据类型优先级:

byte, short, char -> int -> long -> float -> double
低 --------------------------------------------------------> 高

1.强制类型转换

方法同C语言,(类型)变量名。用于->

注意:

  1. 强制类型转换时,注意防止数据太大导致内存溢出,或者精度问题。
  2. 不能对布尔值进行转换。
  3. 不能把对象类型转换为不相干的类型。
  4. JDK7新特性,数字之间可以用下划线分割,输出的时候不会输出出来。例:int money = 1_0000_0000;
  5. 赋值的时候是先类型转换再赋值,可以在后面先把一个数据转换的较大类型。例如下面这段代码还是会数据溢出:
int a = 1_0000_0000;
int b = 1000000;
long c = a * b;
//long c = (long)a * b;
2.自动类型转换

例如:

int i = 8;
double d = i;

在这里插入图片描述

5.变量、常量、作用域

数据类型 变量名 = 值;

局部变量

在方法里定义和初始化(且必须初始化),可以直接使用。但是只能在当前方法内部使用。

实例变量

定义在方法之外,从属于对象,如果不自行初始化,这个类型的默认值为0,布尔值默认为false,其余的默认值都为null。使用方法如下:

public class Hello {
    int age;
    String name;
    public static void main(String[] args) {
        Hello hello = new Hello();// 变量类型 变量名 = 值
        System.out.println(hello.age);
        System.out.println(hello.name);
    }
}

在这里插入图片描述

类变量(静态变量)

定义方式和实例变量基本相同,定义时,在前面直接加static,在方法里面就可以和局部变量一样使用了。

常量

在定义变量时在前面加修饰符final,例:

public class Hello {
    final static double PI = 3.14;
    public static void main(String[] args) {
        System.out.println(PI);
    }
}
变量的命名规范
  1. 所有的变量,方法,类名:见名知意。
  2. 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单次以外,后面的单次首字母大写。
  3. 局部变量:首字母小写和驼峰原则。
  4. 常量:大写字母和下划线:MAX_VALUE。
  5. 类名首字母大写和驼峰原则。
  6. 方法名:首字母小写和驼峰原则。
作用域
  1. 局部变量的作用域为它所在的花括号之内。
  2. 实例变量的作用域与类的实例化对象的作用范围相同,private只能在本类使用,protected子类可用,public任何地方都能用。
  3. 类变量和它所在的类共生死。

6.基本运算符

  • 算术运算符:+, -, *, /, %, ++, –
  • 赋值运算符:=
  • 关系运算符:>, <, >=, <=, ==, !=, instanceof
  • 逻辑运算符:&&, ||, !
  • 位运算符:&(与), |(或), ^(异或), ~(取反), >>(右移), <<(左移), >>>(无符号右移)
  • 条件运算符:? :
  • 扩展赋值运算符:+=, -=, *=, /=

注意:

  1. 计算幂运算的时候用Math类:xy = Math.pow(x, y),返回double类型。
  2. 字符串连接符: + 。 在输出时字符串+数字运算,后面的数字会拼接;而数字运算+字符串,前面的数字会运算。如:
public class Hello {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(" " + a + b);
        System.out.println(a + b + " ");
    }
}

在这里插入图片描述

7.包机制

  • 为了更好的组织类,Java提供了包机制(package),用于区别类名的命名空间。
  • 包的本质 --> 文件夹
  • 一般利用公司域名倒置作为包名。
  • 创建包后,包语句会在程序的最上方,不能删除!!!
  • 使用import语句可以导入其他包。

附:
阿里巴巴开发手册(请在浏览器中查看)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值