美文网首页
Java基础语法

Java基础语法

作者: Sugarfree_ | 来源:发表于2022-09-23 14:58 被阅读0次

一、标识符规范

1.标识符

书面语言来讲就是有效的字符序列。
通俗来讲就是给各种事物起名字的符号。

字符:
zhouyutong
周雨彤
,。、?
空格
换行
0123456789

常见的标识符:文件名、项目名、类名、方法名、变量名、参数名等。
标识符是程序员定义的,但是有语法规范。

2.语法规范

1.只能使用英文字母、数字、下划线、美元符$ 构成,且不能以数字开头。

2.不能使用关键字和保留字。

3.严格区别大小写,长度没有限制。

3.行业要求:

(1)望文生义

英语

拼音

(2)驼峰命名法

如果有多个单词构成一个标识符,从第二个单词起首字母大写。

studentCount

类名,类名所有单词首字母大写。

StudentManger

常量,所有字母都大写。

PI

MAXAGE

4.关键字和保留字

Java是区别大小写的,关键字和保留字全都是“清一色”小写。

只要有一个字母大写,就不是关键字或者保留字。

image.png

关键字48个:在语法中有特殊的用途。

保留字2个:还没有具体的用途,留作以后成为关键字:const,goto。

二、数据类型和变量

1.数据类型

(1)数据

数据就是数值,也就是我们通过观察、实验或计算得出的结果。数据有很多种,最简单的就是数字。数据也可以是文字、图像、声音等。

(2)数据类型

数据所属的分类名称,我们叫数据类型。

(3)两大类

基本数据类型
引用数据类型

(4)基本数据类型

细分为8种。

1.整数类型4个:

byte 字节整型

1B=8bit(二进制位)

B=byte

1KB=1024B

1MB=1024KB

1GB=1024MB

1TB=1024GB

...

包含整数,存储空间是1个字节,8个二进制位。
8个二进制位能够存储或者包含的最大整数是+127;最小-128 。

byte的存储整数范围(取值范围):-128 到 +127.

计算公式:-2的7次方 到 (2的7次方)-1


short 短整型

包含整数,存储空间是2B。

取值范围:-2的15次方 到 (2的15次方)-1


int 整型

包含整数,存储空间是4B。

取值范围:-2的31次方 到 (2的31次方)-1


long 长整型

包含整数,存储空间8B。

取值范围:-2的63次方 到 (2的63次方)-1

特点:在Java代码中,数据后加l或L。


为什么要搞4个整数类型?

提高内存空间的利用率,建议选择最小的空间来存储指定的数据。

但是,我们真正写代码的时候,很少去关注空间问题,一般都使用int,偶尔long。

2.浮点类型2个:

float 单精度浮点数

包含小数,存储空间4B,小数位最多保留7到8位。

取值范围:自查

特点:在Java代码中,float类型的数据后面需要加f或F。


double 双精度浮点数

包含小数,存储空间8B,小数位最多保留15到16位。

取值范围:自查

特点:在Java代码中,后面不加f或F,表示double类型的浮点数。

3.字符类型1个:

char 字符类型 存储空间2B

包含单个字符,有且仅有一个字符。

特点:在Java语言中,字符类型的数据必须使用单引号引起来。

比如:'男' '女' '人' 'a' '1' ' ' '\n'


字符类型是否可以存储一个汉字?
首先一个汉字是单个字符。
其次,汉字所占空间是2B,而char类型正好2B,可以存下。

补充:一个英文字符占1B.

4.布尔类型1个:

boolean 布尔类型 存储空间1B或1bit。

表示逻辑结果,两种对立的情况。比如真假,男女,是否,对错==

特点:只有两个值,truefalse

(5)引用类型

数组

类:String 字符串类型

接口

枚举

注解

5.String 类型:

可以存储一连串的字符(0到多个)。

特点:在Java语言中,数据使用双引号引起来。

比如: "" "12345" "abcdef" "我爱祖国" "北京东欧会"

注意:String不是基本类型,是引用类型。String不是关键字。

2.变量

(1)概念

变量是存储数据的容器。

特点:存储的数据是可以改变的。


(2)声明变量

创建一个变量容器。

语法:数据类型 变量名;

举例:

int age;

int a;

long b;

double height;

char sex;

boolean isDeath;

String name;


(3)变量的赋值

往变量容器中存放数据。

语法:变量名=数据;

举例:

age=20;

height=183;

isDeath=false;

sex='男';

name="周雨彤";

注意:赋值时,数据的类型必须和声明的类型一致!


(4)变量的变化

每个变量中可以存储一条数据。

存储的数据是可以修改的。

重新赋值时,会先将老数据清除,再放入新数据。

public class VarDemo {
    public static void main(String[] args) {

//      声明变量
        int  age;
        double  height;
        char  sex;
        boolean   isDeath;
        String  name;


//        变量赋值
        age=27;
        height=163;
        sex='女';
        isDeath=false;
        name="zhouyutong";


//         变量容器中存储的数据可以变化
        name="周雨彤";

    }
}

(5)获取变量中的数据

通过变量名找到变量容器,从容器中取数据即可。

public class VarDemo {
    public static void main(String[] args) {

//      声明变量
        int  age;
        double  height;
        char  sex;
        boolean   isDeath;
        String  name;


//        变量赋值
        age=36;
        height=183.5;
        sex='男';
        isDeath=false;
        name="xiaojun";
        System.out.println(name);

//         变量容器中存储的数据可以变化
        name="张三";
        System.out.println(name);

    }
}

3.简写

(1)分解操作

声明:int a;

赋值:a=23;

取值:System.out.println(a);


(2)简写1

声明和初始化(第一次赋值)合并成一句话。

int a=23; //第一次赋值

a=24; //第二次赋值


(3)简写2

多个变量的类型相同,可以共享类型。

int a=1;

int b;

int c=2;

简化:

int a=1,b,c=2;


4.数据类型和变量的关系

(1)变量的声明语法

数据类型 变量名;

(2)数据类型对变量的作用

int a;

在内存中开辟空间,空间大小4B。只能存储整数,取值范围:-2的31次方 到 2的31次方 -1 .

double b;

char c;

boolean d;

String s;

同理:创建变量,在内存中开辟的空间大小由数据类型决定,变量中能够存储哪些数据以及数据的范围也是由数据类型决定。


5.变量内存分配

每声明一个变量,都是在内存中开辟一块空间


image.png

6.变量的作用域

变量的作用域就是一个变量可以在什么地方访问。

作用域:从声明变量开始,一直到所在的语句组结束。

语句组:{
包含若干条语句(语句组可以互相嵌套)
}

栈内存:先进后出
包括压栈和弹栈


image.png

两个变量一般不能重名。如果两个变量的作用域没有交集,可以重名。

{
int  a=1;
{
    int  b=2;
    //int  a=4;    //有交集
}

int  b=3;      //没有交集
}

7.数据类型转换

(1)赋值语法要求

数据的类型必须和变量的类型一致。(a=c 赋值时只会改变等号左边的变量)


(2)问题

如果数据的类型和变量的类型不一样怎么办?

无法赋值。

如果想要完成赋值,需要将数据的类型进行转换,转成和变量的类型一致,然后就可以赋值了。


(3)数据类型转换

有两种方式:

自动类型转换,由系统自动完成,无需代码。

强制类型转换,需要程序员手写代码转换。


(4)自动类型转换

小类型转大类型,系统自动完成。

int   a=1;

double  b=a;
//b是double   ,  a是int   ,类型不一致。
//系统将int类型的1转为double类型1.0,然后赋给b

byte --> short 、 int、 long 、 float 、 double

short --> int 、 long 、 float 、 double

int --> long、 float 、 double

long --> float double

float --> double

并不是所有类型都可以相互转换,必须有转换的依据。

特殊情况:

char --> int


(5)强制类型转换

大类型转小类型,需要手动完成。

 double   b2=1;
        int   a2=(int)b2;
        //b2  是  double   ,a2  是  int
        //大类型转小类型会丢失精度,需要手动完成。
//        手动代码:在数据前加小括号,小括号里写上你想要的类型

注意:大类型转小类型会丢失精度,需要手动完成。


二、运算符

运算符是有优先级的,先算优先级高的,再算优先级低的,同级别从左往右算。

1.算术运算符

+   -  *   /   %
+   -
前++和后++     前--和后--
字符串拼接+

算数运算的结果:

(1)如果参与运算全是整数,有long结果为long,否则为int。

(2)如果参与运算的有小数,有double结果为double,否则float。

(3)在算数运算中,常量整数默认为int,常量小数默认为double。

  int  a=10,b=20;
        //先a+b ,然后打印结果
        System.out.println(a+b);  //10+20=30
        System.out.println(a-b);  //10-20=-10
        System.out.println(a*b);  //10*20=200
//        java是整除
        System.out.println(a/b);  //10/20=0
        System.out.println(a%b);  //10%20=10

        double   c=12,d=5;
        System.out.println(c+d);  //12.0+5.0=17.0
        System.out.println(c-d);  //12.0-5.0=7.0
        System.out.println(c*d);  //12.0*5.0=60.0
//        此处没有整除
        System.out.println(c/d);  //12.0/5.0=2.4
        System.out.println(c%d);  //12.0%5.0=2.0

特殊情况:

byte+byte=int

short+short=int

byte+short=int

。。。

正负号:

//        正负号
        int   f=10;
        System.out.println(+f);
        System.out.println(-f);

前++和后++,以及前--和后--:

总结:
前++和后++都实现了变量的递增1,但是优先级不同。前++优先级比较高,后++优先级低。
--同理。
//        前++和后++,以及前--和后--
        int  m=10;
//        m++;    //m=m+1
//        System.out.println(m);

//        ++m;      //m=m+1
//        System.out.println(m);

//        int   n=m++;      //  n=m=10    m++  m=11
//        System.out.println(m);
//        System.out.println(n);

        int   n=++m;      //m++  m=11   n=m=11
        System.out.println(m);
        System.out.println(n);

注意优先级 -- > = > ++

字符串拼接:+

其中一个数据肯定是String类型。运算结果是String类型。

//        字符串拼接:
        String  s11="abcd";
        String  s22="1234";

        System.out.println(s11+s22);
        int  a11=12;
        System.out.println(s11+a11);
        double  b11=12.5;
        System.out.println(s11+b11);
        char   c11='g';
        System.out.println(s11+c11);
        boolean  d11=true;
        System.out.println(s11+d11);

//        特殊1
        int  m1=1,m2=2;
        System.out.println(m1+m2+s11);   //3+"abcd"="3abcd"
        System.out.println(s11+m1+m2);   //"abcd1"+2="abcd12"

2.赋值运算符

用来给变量赋值

=   +=  -=  *=   /=   %=
        int  a=1;
        int  b=2;

        b+=a;   //b=b+a;   b=3
        b-=a;   //b=b-a;   b=2
        b*=a;   //b=b*a;   b=2
        b/=a;   //b=b/a;   b=2
        b%=a;   //b=b%a;   b=0

        System.out.println(a);
        System.out.println(b);


//        特殊1
        short   s1=2;
        short   s2=3;


//        算数运算,运算结果是int
        s2=(short)(s2+s1);
//        赋值运算,都是short
        s2+=s1;


//        算数运算,运算结果是int
        s2=(short)(s1+1);
//        赋值运算,都是short
        s2+=1;

总结:赋值运算时可忽视右边的类型 因为只是赋值运算


3.比较运算符

(1)作用

比较大小。byte short int long float double char

比较是否相等。所有类型都可以,但是两个数据的类型必须相同。

(2)符号

>   >=    <   <=

==   !=

运算结果:boolean。

(3)案例

        int  a=4,b=5;

        System.out.println(a>b);
        System.out.println(a>=b);
        System.out.println(a<b);
        System.out.println(a<=b);

        System.out.println(a==b);
        System.out.println(a!=b);


//        特殊1  char
        System.out.println('a'<'b');   //'a'=97   'b'=98   97<98   true

4.逻辑运算符

(1)作用

计算多个条件的逻辑结果。

(2)符号

&&   ||   !

&    |

运算规则:

&&和&:条件1&&条件2

如果两个条件都成立,返回true;否则false。

||和| :条件1||条件2

如果两个条件有一个成立,返回true;否则false。

! : !条件1

真变假,假变真。(取反)

注意:

条件必须是boolean,运算结果也是boolean!!!

(3)案例

System.out.println(   3>2&&4<5     );
//3>2=true   4<5=true   true&&true=true   打印true
System.out.println(   3>2&4<5     );

System.out.println(   3>2||4<5   );
System.out.println(   3>2|4<5   );

System.out.println(  !(3>2) );
System.out.println(  !(3<2) );

(4)&&和&的区别

&&:短路与,只要第一个条件为false,直接结果为false,不再看第二个条件。

&:普通与,两个条件都看,然后再计算结果。

||和|区别同理。

||:短路或,只要第一个条件为true,直接结果为true,不再看第二个条件。

|:普通或,两个条件都看,然后再计算结果。

我们建议使用&&和||。

(5)按位运算符

&和|还可以作为二进制的与运算和或运算。

与运算:全一为一,有零为零

或运算:全零为零,有一为一

参与运算的必须是数字。

//        按位运算符:二进制与运算和或运算
        //5=101   4=100
        System.out.println(5&4);
        //101&100=100=4
        System.out.println(5|4);
        //101|100=101=5

(6)错误案例

//        错误案例

//        1>2=false   false>3
//        System.out.println(  1>2>3  );
//        1>2=false  2>3=false  false&&false=false
        System.out.println(1>2 &&  2>3);

5.三目运算符

(1)语法

(boolean条件)?语句1:语句2

组合:?和:共同构成

(2)执行流程

首先执行boolean条件。

条件为true,执行语句1;

条件为false,执行语句2。

运算结果:可以是各种类型。

(3)案例

System.out.println(   3>2?3:2   );
System.out.println(   3<2?3:2   );


System.out.println(3>2?1+1:2+2);

System.out.println(3>2?"我是周雨彤":"我是小周");

相关文章

  • 【Android】知识点汇总,坚持原创ing

    Android基础 Java基础 Java基础——Java内存模型和垃圾回收机制 语法基础 语法基础——C语法基础...

  • 快速上⼿ Kotlin

    快速上⼿ Kotlin 基础语法 函数基础语法 与 Java 代码互调 Java 与 Kotlin 交互的语法变化...

  • 2018-06-25

    《Java从小白到大牛》之第4章 Java语法基础 Java语法基础 本章主要为大家介绍Java的一些基本语法,其...

  • java

    语法基础1.1 java初体验(语法基础)1.2 变量和常量(语法基础)1.2 变量和常量(语法基础)1.4 流程...

  • Java基础语法需要学习哪些知识?

    Java基础语法需要学习哪些知识?Java基础语法内容包含java运行环境、HelloWorld案例、关键字&[h...

  • 软帝学院:80道java基础部分面试题(一)

    11道java基础部分面试题 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相...

  • 黑马day02

    day02.01_java基础语法_案列需求介绍 day02.02_java基础语法_小票界面结构分析  ...

  • Java 语法学习笔记(一)

    Java 基础语法 [toc] 参考教程 菜鸟教程 --- Java 教程 介绍 Java 许多语法跟 C/C++...

  • 软帝学院:80道java基础部分面试题(四)

    Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集...

  • 2021-01-18 文章收藏

    1. Java基础 1.1 Java基础语法 Java 8 数据流问题[https://mp.weixin.qq....

网友评论

      本文标题:Java基础语法

      本文链接:https://www.haomeiwen.com/subject/rcioortx.html