java基础二——基本语法

java基本语法


一. 关键字和保留字

1.1 关键字(keyword)

  • 定义:被java语言赋予特殊的含义,用作特定作用的字符串。
  • 特点:关键字中的所有字母为小写字母。
  • 参考官方java关键字和保留字
    自我总结:
    在这里插入图片描述在这里插入图片描述

1.2 保留字

  • 定义:对于现在版本的java尚且没有使用这些字符串,但是保留下来防止以后要用到。
  • 举栗:goto,const(有一次的笔试题就考到了嗷~~)

二. 标识符

  • 定义:对于给类,方法,变量等要素命名的字符序列。(简单说就是用来自己起名字的字符串就是标识符

2.1 标识符命名规则

  • 标识符由26个英文字母大小写(A ~ Z,a ~ z),0-9,下划线(_),美元符号($)组成
  • 开头不可以是数字
  • 不可以直接使用关键字和保留字作标识符,但是可以包含关键字和保留字
  • 大小写敏感,长度无限制
  • 标识符中不要包含空格

2.2 java命名规范

  • 包名: 全部采用小写。如:xxyyzz
  • 类名,接口名: 多单词组成时,每个单词首字母大写。如:XxYyZz
  • 方法名,变量名: 采用驼峰式命名规则,即:多单词组成时,首字母小写,之后的每个单词首字母大写。如:xxYyZz
  • 常量名: 多单词组成时,全部大写,单词之间采用下划线分开。如:XX_YY_ZZ

注意

  • 在起名字时,要注意尽量做到能直接看懂什么意思(即见名知意)。不要为了方便自己省事随便起名字。也不要写单词时缩写,只有自己能看懂。
  • 虽然java采用unicode字符集,因此标识符也可以使用汉字声明,但是不要这样做,因为会拉低你的逼格,还会遭鄙视嗷。我们要有国际范,万一你的代码是要供全世界模仿学习的呢?

三. 变量

3.1 变量概述

  • 定义:内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化,变量是程序中最基本的存储单元
  • 作用:用于在内存中保存数据

3.1.1 使用变量注意

  • java中的变量必须先声明,后使用。
  • 我们直接使用Java的变量名来访问内存中保存的数据。
  • 变量的作用范围在其定义的一对{}内,且只在作用域内有效。
  • 在同一个作用域内,变量名具有唯一性。

3.1.2 变量的声明与赋值

  • 变量的声明

    <数据类型><变量名称>;
    举栗:int a;

  • 变量的赋值

    <变量名称> = <变量数值>;
    举栗:a = 10;

  • 变量的声明并赋值

    <数据类型><变量名称> = <变量数值>;
    举栗:int b = 2;

3.1.3 成员变量和局部变量

  • 成员变量:
    • 定义:即直接定义在类中的变量
    • 作用域:变量的作用域是当前整个类内部。
  • 局部变量:
    • 定义:即定义在方法体内部,代码块内部,或者方法的参数中的变量
    • 作用域:作用范围为当前方法内部,代码块内部,方法内部.

注意:全局变量可以在定义时不进行初始化和赋值,因为全局变量会有默认值。局部变量(除了方法参数变量除外)在使用前一定要进行赋值(推荐在定义时直接显式初始化),不然编译会失败嗷。具体分析随后我会单独写一个博客。

3.2 变量数据类型

  • 数据类型定义;由于java是一种强类型语言(即对于每一个数据都应该明确声明它的数据类型)。java中的变量的类型,总的来说java分为 基本数据类型引用数据类型 。区分的原因是在进行内存分配时的一些不同。以后的博客中会详细跟大家介绍哒
    在这里插入图片描述

3.2.1 基本数据类型

八大基本类型分类
  • 按所占bit大小(从小到大):boolean(2bit)<byte(8bit)<char(16bit)<short(16bit)<int(32bit)<float(32bit)<long(64bit)<double(64bit)
  • 整数类型:byte,short,int,long
    • java的整型常量默认为 int 型,声明long型常量须后加‘l’或‘L’。
      在这里插入图片描述
  • 浮点类型:float,double
    • float:单精度,尾数可以精确到7位有效数字。
    • double:双精度,精度是float的两倍。通常采用此类型。
    • 注意:声明浮点型变量时,默认声明为double类型,声明float时需要显示声明,结尾加上“f”或“F”
      在这里插入图片描述
  • 字符类型:char
    • char占2字节(byte)即16bit,通常用来表示字符。
    • Java中的所有字符都使用Unicode编码,故一个char可以存储一个字母,一个汉字,或一个字符。
    • 注意:char可以直接参与运算,因为它都对应有Unicode码。
    • 表示形式
      1. 字符常量是用单引号(‘ ’)括起来的单个字符。例如:char c = ‘a’。
      2. Java中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。例如:char c = ‘\n’; ( '\n’表示换行符)。
      3. 直接使用 Unicode 值来表示字符型常量:‘\uXXXX’。XXXX代表一个十六进制整数。如:\u000a 表示 \n。
  • 布尔类型:boolean
    • boolean类型数据只允许取值true和false,无null,且不能使用0和1来代表false和true。
    • boolean一般用作判断逻辑条件。
基本数据类型转换*
  • 自动转换(隐式转换)
    1. 容量小的类型自动转换为容量大的数据类型。数据类型按容量大小排序为 (byte,short,char)–>int–>long–>float–>double
    2. 至于上述byte,short,char放在一块是因为它们在参与运算时直接提升到int类型再运算。他们三者不会转化。
    3. boolean类型不能与其它数据类型运算。
    4. 当把任何基本数据类型的值和字符串(String)进行连接运算时(+)本数据类型的值将自动转化为字符串(String)类型。
  • 强制转换(显示转换)
    1. 通常是将容量大的数据类型转换为容量小的数据类型,因此会存在精度溢出问题,也就是说在转换过程中可能会造成精度的缺失。使用时要加上强制转换符:()。例如:long a = 12l; int b = (int)a;
    2. 注意字符串是引用类型不能直接转换为基本类型,但通过基本类型对应的封装类进行转换。
    3. boolean类型不可以转换成其他基本数据类型。

3.2.2 引用数据类型

  • 主要是java中一些非基本数据类型,如类,接口,数组,字符串String(字符串是引用数据类型,记住嗷)
字符串

(待插入,String类比较重要之后会单独写一篇博客分析,各位看官敬请期待,等总结到的时候会及时插入博客链接的)


四. 运算符

4.1 概述

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等

4.2 算数运算符

如图:在这里插入图片描述
注意

  • ‘’/‘’,当整数相除时,结果会自动省去小数保留整数。当除数或被除数,或者两者都是小数时结果按类型保留小数。
  • “+”,除了有相加的功能外,还能把非字符串转换为字符串。
  • ‘’%‘’,取模,如果模数为负,对结果没有影响,如:5%-2=1。但是如果被模数为负数,则结果也为负数。如:-5%2 = -1.
  • 多注意++,–自增自减的前置和后置区别。

4.3 赋值运算符

  • 赋值运算符:=
    扩展赋值运算符:+=,-=,*=,/=,%=
    栗子: int a += 2;就是int a = (int) (a + 2)
    注意:有个强制转换的过程。如:
    在这里插入图片描述
    解释:a声明为short类型变量,第二行a+2在运算过程中会提升为int类型,最后再赋值回short类型是不可以的,需要显示转换。但是下面+=因为在底层帮你自动转换了,所以a还是short类型。说到这,java还有个常量优化机制挺有意思的,建议大家了解一下。
  • 注意:在声明变量时不要用扩展的赋值运算符赋值。如:int a += 2;是编译不通过的。

4.4 比较运算符

如图:
在这里插入图片描述
注意

  • 比较运算符的结果都为boolean类型的结果:true,false

4.5 逻辑运算符

  • 逻辑运算符:& 逻辑与,| 逻辑或,!逻辑非,^ 逻辑异或,&& 短路与,|| 短路或
    在这里插入图片描述
    注意
  • 逻辑运算符用来连接boolean类型表达式
  • &&与&,||与|的区别。为什么前者叫短路呢?因为存在短路现象,就是当条件足够判断出结果时,后面的逻辑判断语句就可以不执行了。
    栗子:3<2&&3<5在执行时,运行到3<2时就可以得出结果为false,那么后面的3<5就不会再执行了。同理||也一样。对于&和|会执行全部判断再得出结果。

4.6 位运算符

在这里插入图片描述
在这里插入图片描述

注意

  • 注意<<位数n代表乘以2的 n次方,>>位数n代表除以2的n次方。(传统意义上讲位运算比直接运算快,但是java好像对直接乘除以及%运算做过优化,底层实际也是采用的位运算的方式。但是好多人更乐意能用位运算就不用直接运算。所以见到这种写法要认识嗷~)

4.7 三目运算符

  • 格式:(条件表达式)?表达式1:表达式2;
  • 解释:若条件为true,运算后的结果是表达式1。false则运算后的结果是表达式2。
  • 注意
    • 表达式1和2是同种类型。
    • 三元运算符与if-else的联系与区别:
      1)三元运算符可简化if-else语句
      2)三元运算符要求必须返回一个结果。
      3)if后的代码块可有多个语句

4.8 优先级

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章