Java基础语法

Java基础
1639296999081

标识符

Java遵循就近原则

  • 什么是标识符 ?

    在 java 源程序当中,凡是程序员有权利自已命名的单词都是标识符。

  • 标识符可以标识什么元素呢 ?

​ * 类名 * 接口名 * 变量名 * 方法名 * 常量名

  • 标识符的命名规则

​ * 只能由"数字、字母、下划线_、美元符号$"组成,不能含有其它符号

​ * 不能数字开头

​ * 严格区分大小写

​ * 关键字不能做标识符

​ * 理论上无长度限制,但是最好不要太长

​ * 变量先声明数据类型,再进行初始化,才能被访问

  • 命名规范(最好敲代码按照规范来)

​ * 最好见名知意

​ * 遵守驼峰命名方式

​ * 类名、接口名: 每个单词的首字母大写。

​ * 变量名、方法名: 首字母小写,后面每个单词首字母大写。

​ * 常量名: 全部大写,比如PRICE

关键字

字面值

  • 字面值:

​ 10、100 、3.14 、"abc" 、 'a‘ 、 true、 false

  • 字面值就是数据,可以清楚的知道它是什么,多大。
  • 字面值是java源程序的组成部分之一,包括标识符和关键字它们都是java源程序的组成部分
  • 数据在现实世界当中是分门别类的,所以数据在计算机编程语言当中也是有类型的
  • 数据类型

​ -10、100 属于整数型字面值

​ - 3.14 属于浮点型字面值

​ - true ,false 属于布尔型字面值

​ - " abc" 、"中国人" 属于字符串型字面值

​ - 'A'、'人 ’ 属于字符型字面值

  • 注意:

​ java语言当中所有的字符串型字面值必须使用双引号括起来,双引号是半角双引号,java语言当中所有的字符型字面值必须使用单引号括起来(单个字符)。

变量

  • 什么是变量?

​ * 变量本质上来说是内存中的一块空间,这块空间"有数据类型"、"有名字"、有字面值"。

​ * 变量包含三部分:数据类型、名称、字面值【数据】

​ * 变量是内存中存储数据的最基本的单元。

  • 数据类型的作用?

​ * 不同的数据有不同的类型,不同的数据类型会分配不同大小的空间。

​ * 数据类型是指导程序在运行阶段应该分配多大的内存空间。

  • 变量要求:

  • 变量中存储的具体的"数据"必须和变量的"数据类型"一致,当不一致的时候编译报错。

  • 变量在一行中可以声明多个,变量可以重复使用,要求变量先声明再赋值,注意:要求一行定义一个变量

  • 变量的作用域(有效范围):出来main方法的{ }就不认识了

  • 在同一个作用域中不能定义相同名字的变量,而不同作用域可以

  • 变量的分类:局部变量和成员变量

    • 在方法体当中声明的变量叫做局部变量
    • 在方法体外【类体之内】声明的变量叫做成员变量
    • 注意:成员变量不用赋初值,系统会自动给他赋值,而局部变量必须赋初值

且,成员变量定义之前要加 static 关键字,比如static int i;

  • 注意:不管是局部变量还是成员变量,我们都要给他们赋初值,另外成员变量在定义的时候要加static(int i);

类体里面不能直接编写JAVA语句,除声明变量之外

数据类型

  • 强类型语言:Java、c、c++ 要求变量的使用严格符合规定,所有变量要先定义才能使用

  • 弱类型语言:Javascript

1、数据类型的作用是什么?

​ 程序当中有很多数据,每一个数据都是有相关类型的,不同数据类型的数据占用空间大小不同。数据类型的作用是指导Java在运行程序的时候给该数据分配多大的内存空间。

2、java中的数据类型包括两种:

  • 引用数据类型:数组、类、接口
  • 基本数据类型(基本数据类型包括四大类八种)

第一类:整数型(byte类型的取值范围:-128-127)

byte ,short ,int ,long 1 2 4 8

第二类:浮点型

float ,double 4 8

第三类:布尔型

boolean 1

第四类:字符型(字符串属于引用数据类型)

char 2

注意:

  1. short和char所表示的种类总数是一样的,只不过char可以表示更大的正整数。因为char没有负数。
  2. 一个中文正好是两个字节,所以一个汉字可以用一个字符char表示,

1639124915220

1639124926279

1639124936617

1639124945895

1639124954801

数据类型转换

  • 关于基本数据类型之间的互相转换:转换规则

​ 1、八种基本数据类型当中除布尔类型之外剩下的7种类型之间都可以互相转换

​ 2、小容量向大容量转换,称为自动类型转换,容量从小到大排序:

byte< short< int< long < float< double

char <

​ **注: **任何浮点类型不管占用多少个字节,都比整数型容量大。

​ char和short可表示的种类数量相同,但是char可以取更大的正整数

​ 3、大容量转换成小容量,叫做强制类型转换,需要加强制类型转换符,程序才能编译通过,但是在运行阶段可能会损失精度,所以谨慎使用。

​ 4、当整数字面值没有超出byte , short , char的取值范围,可以直接赋值给byte , short,char类型的变量。

​ 5、byte , short,char混合运算的时候,各自先转换成int类型再做运算。-----整数浮点型

​ 6、多种数据类型混合运算,先转换成容量最大的那种类型再做运算。

注意:面试题

  • 1、java语言当中的“整数型字面值”被默认当做int类型来处理。
  • 2、要让这个“整数型字面值”被当做long类型来处理的话,需要在“整数型字面值”后面添加1/L,建议使用大写的L
  • 3、在java语言当中,所有的浮点型字面值【3.0】,默认被当做double类型来处理,要想该字面值当做float类型来处理,需要在字面值后面添加 F/f 。
  • double和float在计算机内部二进制存储的时候存储的都是近似值。

1639125031243

  • java语言当中的整数型字面值有三种表示方式 :

​ 第一种方式: 十进制【是一种缺省默认的方式】

​ 第二种方式: 八进制【在编写八进制整数型字面值的时候需要以0开始】

​ 第三种方式:十六进制【在编写十六进制整数型字面值的时候需要以0x开始】

  • 数据类型转换:自动类型装换、强制类型装换

​ 1、小类型自动装换成大类型——自动类型装换

​ 2、大类型装换成小类型——强制类型装换(会造成数据的丢失)

  • 当一个整数字面值没有超出byte ,short , char的取值范围,这个字面值可以直接赋值给byte , short , char类型的变量。但是一旦超过,就需要用强制类型转换

转义字符

转义字符(\)出现在特殊字符之前,会将特殊字符转换成普通字符。

1639126734158

布尔类型

关于布尔型数据类型: boolean

  • 在java语言当中boolean类型只有两个值:true、 false,没有其它值。不像c语言当中,0和1可以表示假和真。

  • 在底层存储的时候boolean类型占用1个字节,而实际存储的时候false底层是0 ,true底层是1。

  • 布尔类型在实际开发当中非常重要,经常使用在逻辑运算条件控制语句当中。

运算符

1639126986796

  • 算术运算符:+ - * / % ++ --

    public class Demo01 {
        public static void main(String[] args) {
            // ++   --
            int a = 3;
            int b = a++;
            System.out.println(a);//输出结果是4
            //原因:在上一行的a++里面,a是先赋值给b,然后自加1
            int c = ++a;
            System.out.println(a);//结果5=4+1
            //原因:在上一行的++a里面,a是先自加1,然后再赋值给c
            System.out.println(b);//结果3
            System.out.println(c);//结果5
        }
    }
    
  • 赋值运算符:=

  • 关系运算符:> < >= <= == != instanceof

  • 逻辑运算符:&& || !

  • 位运算符:& | ^ ~ >> << >>>

    public class Demoe6 {
        public static void main( String[] args) {
            /*
            A = 0011 1100
            B = 0000 1101
            ----------------
            A&B = 0000 1100   同1则1
            A|B = 0011 1101   有1则1
            A^B = 0011 0001   异或 同0异1
            ~B= 1111 0010     取反
            
            面试题:
            2*8 = 16     2*2*2*2效率极高! ! !
            <<   相当于*2
            >>   相当于/2
                 0000 0000       0
                 0000 0001       1
                 0000 0010       2
                 0000 0011       3
                 0000 0100       4
                 0000 1000       8
                 0001 0000       16
             */
         System.out.println(2<<3);  // 结果16
        }
    }
    
  • 条件运算符:? = (三元运算符)

  • 扩展赋值运算符:+= -= *= /=

public class Demo01 {
    public static void main(String[] args) {
        int a = 10;
        int b = 11;
        a+=b;
        System.out.println(a); //输出结果21
        
        int d = 20;
        int e = 30;
        System.out.println(""+d+e);  //结果2030
        System.out.println(d+e+"");  //结果50
    }
}

运算符优先级:

1639291911823

详细可参考:

Java运算符优先级 (biancheng.net)

(25条消息) C语言运算符优先级(超详细)_yuliying的专栏-CSDN博客_运算符优先级

包机制

1639292445647

JavaDoc(文档注释)

javadoc命令是用来生成自己的API文档

参数信息
@author作者名

@version版本号

@since指明需要最早使用的jdk版本

@param参数名

@return返回值情况

@throws异常抛出情况

问题:如何使用IDEA生成Javadoc文档

(25条消息) 如何使用Intellij Idea生成JavaDoc文档_霜之哀伤-CSDN博客_使用idea生成javadoc文档

原文地址:https://www.cnblogs.com/abcd123456/p/15679509.html