• 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文档

  • 相关阅读:
    Convert between Unix and Windows text files
    learning Perl:91行有啥用? 88 print " ----------------------------------_matching_multiple-line_text-------------------------- "; 91 my $lines = join '', <FILE>;
    Perl:只是把“^”作为匹配的单字:只是匹配每一行的开头 $lines =~ s/^/file_4_ex_ch7.txt: /gm;
    Perl: print @globbing." "; 和 print @globbing; 不一样,一个已经转换为数组元素个数了
    为什么wget只下载某些网站的index.html? wget --random-wait -r -p -e robots=off -U mozilla http://www.example.com wget 下载整个网站,或者特定目录
    正则表达式中 /s 可以帮助“.”匹配所有的字符,包括换行,从而实现【dD】的功能
     是单词边界锚点 word-boundary anchor,一个“”匹配一个单词的一端,两个“”匹配一个单词的头尾两端
    LeetCode103 Binary Tree Zigzag Level Order Traversal
    LeetCode100 Same Tree
    LeetCode87 Scramble String
  • 原文地址:https://www.cnblogs.com/abcd123456/p/15679509.html
Copyright © 2020-2023  润新知