Java基础语法

注释

当我们的代码量过大时,项目结构复杂,我们就需要用到注释;注释不会被执行,是给我们写代码的人看的

Java中的注释类型有三种

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

单行注释

//后面书写,仅注释一行文字,代码示例:

public class demo1 {
   public static void main(String[] args) {
       System.out.println("hello,world!");
       //单行注释
       //输出一个hello,world!
   }
}

多行注释

/* */中间书写内容,可以注释一段文字,代码示例:

public class demo1 {
    public static void main(String[] args) {
        System.out.println("hello,world!");
        /*多行注释
        输出一个hello,world!*/
    }
}

文档注释

/**,*/中间书写内容,文档注释中可以包含一些参数(JavaDoc中详细解释)代码示例:

public class demo1 {
    public static void main(String[] args) {
        System.out.println("hello,world!");
        /**
         * 文档注释
         * @Description HelloWorld
         * @Author loafer
         */
    }
}

标识符与关键字

标识符

Java 中标识符是为方法、变量或其他用户定义项所定义的名称。标识符可以有一个或多个字符。

标识符构成规则

标识符由数字(0-9)和字母(A-Z 和 a-z)、美元符号($)、下划线(_)以及 Unicode 字符集中符号大于 0xC0 的所有符号组合构成(各符号之间没有空格)。
标识符的第一个符号为字母、下划线和美元符号,后面可以是任何字母、数字、美元符号或下划线。

另外,Java 区分大小写,因此 myvar 和 MyVar 是两个不同的标识符。

提示:标识符命名时,切记不能以数字开头,也不能使用任何 Java 关键字作为标识符,而且不能赋予标识符任何标准的方法名。

标识符分为两类,分别为关键字和用户自定义标识符。
关键字是有特殊含义的标识符,如 true、false 表示逻辑的真假。
用户自定义标识符是由用户按标识符构成规则生成的非保留字的标识符,如 abc 就是一个标识符。

提示:使用标识符时一定要注意,或者使用关键字,或者使用自定义的非关键字标识符。此外,标识符可以包含关键字,但不能与关键字重名。

例如以下合法与不合法标识符。
合法标识符:date、$2011、_date、D_$date 等。
不合法的标识符:123.com、2com、for、if 等。

标识符用来命名常量、变量、类和类的对象等。因此,一个良好的编程习惯要求命名标识符时,应赋予它一个有意义或有用途的名字。

关键字

Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。

Java定义的关键字

  • abstract 表明类或者成员方法具有抽象属性
  • assert 断言,用来进行程序调试
  • boolean 基本数据类型之一,声明布尔类型的关键字
  • break 提前跳出一个块
  • byte 基本数据类型之一,字节类型
  • case 用在switch语句之中,表示其中的一个分支
  • catch 用在异常处理中,用来捕捉异常
  • char 基本数据类型之一,字符类型
  • class 声明一个类
  • const 保留关键字,没有具体含义
  • continue 回到一个块的开始处
  • default 默认,例如,用在switch语句中,表明一个默认的分支。Java8 中也作用于声明接口函数的默认实现
  • do 用在do-while循环结构中
  • double 基本数据类型之一,双精度浮点数类型
  • else 用在条件语句中,表明当条件不成立时的分支
  • enum 枚举
  • extends 表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口
  • final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
  • finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
  • float 基本数据类型之一,单精度浮点数类型
  • for 一种循环结构的引导词
  • goto 保留关键字,没有具体含义
  • if 条件语句的引导词
  • implements 表明一个类实现了给定的接口
  • import 表明要访问指定的类或包
  • instanceof 用来测试一个对象是否是指定类型的实例对象
  • int 基本数据类型之一,整数类型
  • interface 接口
  • long 基本数据类型之一,长整数类型
  • native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
  • new 用来创建新实例对象
  • package
  • private 一种访问控制方式:私用模式
  • protected 一种访问控制方式:保护模式
  • public 一种访问控制方式:共用模式
  • return 从成员方法中返回数据
  • short 基本数据类型之一,短整数类型
  • static 表明具有静态属性
  • strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
  • super 表明当前对象的父类型的引用或者父类型的构造方法
  • switch 分支语句结构的引导词
  • synchronized 表明一段代码需要同步执行
  • this 指向当前实例对象的引用
  • throw 抛出一个异常
  • throws 声明在当前定义的成员方法中所有需要抛出的异常
  • transient 声明不用序列化的成员域
  • try 尝试一个可能抛出异常的程序块
  • void 声明当前成员方法没有返回值
  • volatile 表明两个或者多个变量必须同步地发生变化
  • while 用在循环结构中

数据类型

Java是一种强类型语言

强类型语言也称为强类型定义语言。是一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。
也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。
例如你有一个整数,如果不显式地进行转换,你不能将其视为一个字符串。
与其相对应的是弱类型语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

Java的数据类型分为两大类

  • 基本类型(primitive type)
  • 引用类型(reference type)

基本数据类型

  1. 数值类型

    • 整数类型
      1. byte占1个字节;范围(-128-127)
      2. short占2个字节;范围(-32768-32767)
      3. int占4个字节;范围(-2147483648-2147483647)
      4. long占8个字节;范围(-9223372036854775808-9223372036854775807)
    • 浮点类型
      1.float占4个字节;精度为6~7位有效数字
      2.double占8个字节;精度为15~16位有效数字
    • 字符类型
      1.char占两个字节,只可以包含一个字符
  2. Boolean类型
    占1位,其值只有truefalse两个

    代码示例

public class demo1 {
    public static void main(String[] args) {
       //八大数据类型
        //整数
        byte num1 = 10;
        short num2 = 10000;
        int num3 = 1000000000;
        long num4 = 10000000000000L;

        //小数,浮点数
        float num5 = 3.14F;
        double num6 = 3.1415926535384626;

        //字符
        char name = '哈';
        /*字符串,String不是关键字,是类
        String name1 = "哈哈哈";
         */

        //布尔值:是非
        boolean flag = true;
        //boolean flag2 = false;
       
    }
}
引申

什么是字节

字节是二进制数据的单位。一个字节通常8位长。但是,一些老型号计算机结构使用不同的长度。为了避免混乱,在大多数国际文献中,使用词代替byte。在多数的计算机系统中,一个字节是一个8位长的数据单位,大多数的计算机用一个字节表示一个字符、数字或其他字符。一个字节也可以表示一系列二进制位。在一些计算机系统中,4 个字节代表一个字,这是计算机在执行指令时能够有效处理数据的单位。一些语言描述需要2个字节表示一个字符,这叫做双字节字符集。一些处理器能够处理双字节或单字节指令。字节通常简写为“B”,而位通常简写为小写“b”,计算机存储器的大小通常用字节来表示 。

不同数量级
信息存储量是度量存储器存放程序和数据的数量。其主要度量单位是字节,1个字节(Byte)等于8位(b)二进制。位(bit,Binary Digits):存放一位二进制数,即0或1,为最小的存储单位,8个二进制位为一个字节单位。一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。英文标点占一个字节,中文标点占两个字节 。

  • 1字节(Byte)=8位(bit)
  • 1KB( Kilobyte,千字节)=1024B
  • 1MB( Megabyte,兆字节)=1024KB
  • 1GB( Gigabyte,吉字节,千兆)=1024MB
  • 1TB( Trillionbyte,万亿字节,太字节)=1024GB
  • 1PB( Petabyte,千万亿字节,拍字节)=1024TB
  • 1EB( Exabyte,百亿亿字节,艾字节)=1024PB
  • 1ZB(Zettabyte,十万亿亿字节,泽字节)=1024EB
  • 1YB( Yottabyte,一亿亿亿字节,尧字节)=1024ZB
  • 1BB( Brontobyte,千亿亿亿字节)=1024YB

引用数据类型

除了基本数据类型以外的数据类型就是引用数据类型

引用数据类型为java两大数据类型之一,引用数据型在被床架时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。

引用数据类型包括:类、接口类型、数组类型、枚举类型、注解类型,字符串型。java另一大数据类型为基本数据类型,其包括包括数值型,字符型和布尔型。

引用类型 由类型的实际值引用(类似于指针)表示的数据类型。如果为某个变量分配一个引用类型,则该变量将引用(或“指向”)原始值。不创建任何副本。引用类型包括类、接口、委托和装箱值类型。

拓展

整数

进制

  • 二进制:以0b开头的数值
  • 十进制:正常的数值
  • 八进制:以0开头的数值
  • 十六进制:以0x开头的数值
    代码示例
 public class demo2 {
   public static void main(String[] args) {
       int num1 = 0b10;//二进制表示的数值,其值为十进制的2
       int num2 = 010;//八进制表示的数值,其值为十进制的8
       int num3 = 0x10;//十六进制表示的数值;其值为十进制的16
       int num4 = 10;//十进制表示的数值;其值为十进制的10
       System.out.println("0b10输出:"+num1);
       System.out.println("010输出:"+num2);
       System.out.println("0x10输出:"+num3);
       System.out.println("10输出:"+num4);
   }
}

enter description here

浮点数

浮点数存在使用精度,最好不要完全使用浮点数进行比较
大数据量的比较使用BigDecimal类进行比较
代码示例

public class demo2 {
    public static void main(String[] args) {
        float a = 0.1F;//值为0.1
        double b = 1.0/10;//值为0.1
        System.out.println(a==b);//判断a是否等于b
        System.out.println(a);//输出a
        System.out.println(b);//输出b
        float a1 = 12345678987654321F;
        float a2 = a1+1;
        System.out.println(a1==a2);
    }
}

enter description here

字符串与转义字符

代码示例

public class demo2 {
    public static void main(String[] args) {
       char c1 = 'a';
       char c2 = '中';
        System.out.println(c1);
        System.out.println((int) c1);//强制转换
        System.out.println(c2);
        System.out.println((int) c2);//强制转换
        System.out.println("--------------------------------------------");
        //所有的字符本质还是数字
        //char使用Unicode编码,占用2个字节,长度:0-65536
        //其中97=a,20013=中
        char c3 = '\u0061';//Unicode编码转义表示,范围:u0000-uFFFF
        System.out.println(c3);//代表a
        System.out.println("--------------------------------------------");
        //转义字符
        System.out.println("hello\tworld");//\t表示制表符
        System.out.println("hello\nworld");//\n表示换行
    }
}

enter description here

类型转换

学习中,持续更新

posted @ 2021-03-01 01:34  loaferWP  阅读(155)  评论(0编辑  收藏  举报