Java教程

Java的基础语法

本文主要是介绍Java的基础语法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

2.1 常量

概念:不能变化的数据

分类:

  1. 整数常量:所有整数

  2. 小数常量:所有小数

  3. 字符串常量:所有字符串,

    字符串:一串字符,若干个字符组成的有序序列,字符串必须使用一对双引号括起来

  4. 字符常量:任何一个字符

    例如:'1'、'+'、'a'、'Z'、'是',由一对单引号括起来的单个字符,不能有空字符

2.2 数据类型

在Java中有严格的数据类型的划分(强类型的语言)

在Java任何一个值,都有所对应的类型

分类:

  1. 基本数据类型

  2. 引用数据类型

2.2.1 基本数据类型

  1. 整数类型

    1. byte:字节型,1个字节,范围:-2^7 ~ 2^7-1 也就是 -128 ~ 127

    2. short:短整型,2个字节,范围:-2^15 ~ 2^15-1 也就是-32768 ~ 32767

    3. int:整型,默认整型,4个字节,范围:-2^31 ~ 2^31-1

    4. long:长整型,8个字节,范围:-2^63 ~ 2^63-1

  2. 小数类型(浮点类型)

    1. float:单精度浮点类型,4个字节,

      负数范围:-3.4E38 ~ -1.4E-45 正数范围:1.4E-45 ~ 3.4E38

    2. double:双精度浮点类型,8个字节,默认小数

      负数范围:-1.7E308 ~ -4.9E-324 正数范围:4.9E-324 ~ 1.7E308

  3. 字符类型

    1. char:2个字节,范围:0 ~ 65535,它遵循Unicode万国码,字符值必须使用一对单引号括起来,有且只能有一个字符

  4. 布尔类型

    1. boolean:1个字节,取值范围:true/false,描述成"满足条件"/"不满足条件"

2.2.2 引用数据类型

  1. 字符串:Java 程序中的所有字符串字面值(如 "abc" )都是字符串值。字符串中允许没有字符,称为空字符串,简称空串,String 是只读字符串,对它进行任何操作,其实都是创建一个新的对象,再把引用指向该对象。

  2. 定义格式:同基本数据类型的定义

    String 变量名1 = 值;
    String 变量名2;
    变量名2 = 值;
  3. 数组、链表

  4. 对象

2.2.3 转义字符

Java中可以通过对特定字符进行转义,来表示其他含义

例如:

public static void main(String[] args){
        System.out.println(''');// 这句话编译失败,我们需要对中间的单引号进行转义
}

转义符号:\

常见的转义:

  1. \n:换行符

  2. \t:制表符(缩进)

  3. \':单引号

  4. \":双引号

  5. \\:反斜杠

2.3 变量

2.3.1 变量的概念

计算机内存中的一块存储空间,是存储数据的基本单元

2.3.2 变量的定义

  1. 先定义,后赋值

格式:

数据类型 变量名;
变量名 = 值;
  1. 定义的同时赋值

格式:

数据类型 变量名 = 值;
  1. 同时为多个同类型的变量定义和赋值

格式:

数据类型 变量名1,变量名2 = 值,变量名3 = 值,变量名4,...;

注:

  1. 在同一个代码块中变量名不能重复

  2. 变量必须先赋值才能使用

  3. 赋值的类型必须与变量的类型一致

  4. 赋的值必须在指定类型范围中

  5. 将小数赋值给float类型的变量时,需要加上f或者F

  6. 一个超过int范围的整数必须加上l或者L

2.4 运算符

2.4.1 算术运算符

+:求和运算,如果参与运算的数据中有字符串,那么“+”就是拼接,拼接后的结果仍然是字符串
-:求差
*:求乘积
/:求商,整数之间的除法可能存在精度损失
%:取模,求余数
 注:
 1.a % b,如果a < b,结果就是a
 2.a % b,如果a > b,结果是[0,b-1]
 3.a % b结果是正负与a一致
++(自增1)、--(自减1):
 自增和自减的前置和后置:将++、--运算符写在变量前称为前置;反之,称为后置
 1.在单独运算时,前置和后置没有区别
 2.在复合运算时,
    (1)前置:先执行自增(减),再执行其他操作
    (2)后置:先执行其他操作,再执行自增(减)

2.4.2 赋值运算符

=:赋值,将=右边表达式的结果运算完毕后,赋值给=左边的变量
+=:a += b 等价于 a = a + b
-=:a -= b 等价于 a = a - b
*=:a *= b 等价于 a = a * b
/=:a /= b 等价于 a = a / b
%=:a %= b 等价于 a = a % b

2.4.3 逻辑运算符

&:与,并且,表达式两边只要出现了false,整个表达式的结果就是false
|:或,或者,表达式两边只要出现了true,整个表达式的结果就是true
!:非,取反,true的取反结果是false,false的取反结果是true
^:异或,表达式两边相同结果是false,两边不同结果是true
&&:表达式左边为false,表达式右边不再运算,整个表达式的结果是false
||:表达式左边为true,表达式右边不再运算,整个表达式的结果是true

注:

  1. 逻辑运算符参与运算的数据和运算的结果一定是布尔值

  2. 多个布尔值的逻辑运算仍然遵循上述特点

2.4.4 关系运算符

>
<
>=
<=
==:比较两个值是否相等
!=:比较两个值是否不相等

注:

  1. 关系运算符的结果是布尔值

  2. 表达式两边的数据类型必须是相同的,或者可以互相转换的

2.4.5 三元运算符

格式:

表达式1 ? 表达式2 : 表达式3

逻辑:运算表达式1,结果为true执行表达式2;反之,执行表达式3

注:

  1. 表达式1运算的结果必须是一个布尔值

  2. 表达式2、表达式3必须执行一个,并且只会执行一个

  3. 表达式2、表达式3可以是值,也可以是表达式,不能是语句

2.4.6 位运算

&:按位与
|:按位或
^:按位异或

将十进制数转换成二进制,按位进行与、或、异或的运算,再将最后的结果转换成十进制数

转换成的二进制数中的0视作false,1视作true,进行逻辑运算,运算完毕后,再转换成0或1

System.out.println(3 & 4);
System.out.println(6 | 5);
System.out.println(4 & 5 | 6 ^ 7);//5

左移:将十进制数转换成二进制数,向左移动指定的位数,移动后用0补全,最后转换成十进制数

公式:a << b 等价于 a乘以2的b次方

2.5 数据类型转换

问:两种不同类型的数据是否可以一起运算?

答:可以

2.5.1 自动类型转换

概念:范围小的数据与范围大的数据运算时,结果会自动转换成范围大的数据类型

自动类型转换的规则:

double > float > long > int > short > byte

注:

  1.  

byte b = 120;// 编译通过,原因是120是常量,程序在执行过程中,不会发生变化
​
int i = 120;
byte c = i;// 编译失败,原因是i是int类型的变量,程序在执行过程中,i可能发生变化从而超出byte的范围
  1. 数据类型所占的空间大小(字节)与所能表示的数据范围无关

2.5.2 强制类型转换

概念:范围大的数据赋值给范围小的数据类型的变量

格式:

范围小的数据类型 变量名 = (范围小的数据类型)范围大的数据类型的数据;

注:

  1. 强制类型转换可能出现精度损失、数据错误等问题,所以慎用

    float f = 20.886f;
    long l = (long)f;
    System.out.println(l);// 20
    ​
    byte bb = (byte)128;
    System.out.println(bb);// -128
  2. byte和short之间运算的结果是int

  3. 如果表达式的运算结果超过了范围,需要对整个表达式的结果进行强制类型转换

    byte b1 = 3;
    byte b2 = 4;
    // int b3 = b1 + b2;
    short b3 = (short) (b1 + b2);
  4. ++、--、+=、-=、... 自带强制类型转换

2.5.3 char的类型转换

char类型的数据可以与十进制数遵循ASCII码表进行转换

‘0’~‘9’:48~57
'A'~'Z':65~90
'a'~'z':97~122    
这篇关于Java的基础语法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!