JAVA基础__语法1

来源:互联网 发布:知乎 正常感情浓度 编辑:程序博客网 时间:2024/04/20 00:35

引用一位师兄的思维导图,源地址,本篇内容1,2,3,4,5,6,8


关于JAVA

诞生于1995  SUN

JAVA是一门强类型严谨性的语言,严格区分大小写,完全面向对象,安全可靠,跨平台性,具有良好的可移植性

三种技术架构JAVA EE/SE/ME

dos命令行,课程中常见的命令

        dir :列出当前目录下的文件以及文件夹

        md :创建目录

        rd :删除目录

        cd :进入指定目录

        cd.. :退回到上一级目录

        cd/ :退回到根目录

        del :删除文件

        exit :推出dos命令行

关键字

 

标识符:Demo_1$Test             规范

在程序中自定义的一些名称。

26个英文字母大小写,数字:0-9符号:_ $组成

定义合法标识符规则:

1,数字不可以开头。

2,不可以使用关键字。

Java中严格区分大小写。

注意:在起名字的时,为了提高阅读性,要尽量有意义。


注释

  //           单行注释
        /*    */   多行注释

/**   */   可以通过javadoc生成文档,程序说明书

常量和变量

常量表示不能改变的数值。

Java中常量的分类:

1,整数常量。所有整数

2,小数常量。所有小数

3,布尔型常量。较为特有,只有两个数值。true false

4,字符常量。将一个数字字母或者符号用单引号( ' ' )标识。

5,字符串常量。将一个或者多个字符用双引号标识。

6null常量。只有一个数值就是:null.

l      对于整数:java有三种表现形式。

        十进制:0-9,满101.

        八进制:0-7,满81.0开头表示。

        十六进制:0-9A-F,满161.0x开头表示。

 

l      进制的基本转换

        十进制 二进制互转

        十进制转成二进制 除以2取余数

        二进制转成十进制 乘以2的幂数

        十进制八进制互转

        十进制十六进制互转

        负数的二进制表现形式

        对应的正数二进制取反加1      最高位是1

 

l       变量的概念:

        内存中的一个存储区域

        该区域有自己的名称(变量名)和类型(数据类型)

        该区域的数据可以在同一类型范围内不断变化

l       为什么要定义变量:

        用来不断的存放同一类型的常量,并可以重复使用

l       使用变量注意:

        变量的作用范围(一对{}之间有效)   

        初始化值

l       定义变量的格式:

        数据类型   变量名 = 初始化值;

        注:格式是固定的,记住格式,以不变应万变。

l       理解:变量就如同数学中的未知数。

 

 

数据类型     变量名=初始化值;         取值范围

                     Byte       b = 3;                   27-1

                     short      s=30000;               215-1

                     int          x=111;                  231-1

                     long        l=29572967;

                     float        f=2.3f;

                     double    d=3.4;

                     char        ch='1';

                     boolean  bl = true;

                                     bl = false;

类型提升&强制转换

自动类型转换(也叫隐式类型转换) 

强制类型转换(也叫显式类型转换)

类型转换的原理

什么时候要用强制类型转换?

表达式的数据类型自动提升

        所有的byte型、short型和char的值将被提升到int型。

        如果一个操作数是long型,计算结果就是long型;

        如果一个操作数是float型,计算结果就是float型;

        如果一个操作数是double型,计算结果就是double型。

l      分析

        System.out.println(a)System.out.println(a+1)的区别。

 

 自动类型提升

byte b =3;

int x =4;

x = x +b;//b会自动提升为int类型进行运算。

l      强制类型转换

byte b =3;

b = b +4;//报错

b =(byte)b+4;//强制类型转换,强制将b+4的结果转换为byte类型,再赋值给b

l      思考:

byteb1=3,b2=4,b;

b=b1+b2;

b=3+4;

哪句是编译失败的呢?为什么呢?

可能超出byte型的范围,损失精度

 

运算符(重点)

l      算术运算符

l      

l      算术运算符的注意问题

l      如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论。

对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。

如果声明的sshort类型,例如:
short s =2

         s=s+2编译的时候会报错,因为s+2的时候会提升为int类型,然后再赋给short类型的s时会报错:损失精度。
         s+=2
则可以通过编译,因为它内部会有一个自动转换过程,数据还是short

另:s+=2所占的内存比较小一点。效率更高

 

l      赋值运算符

       = , +=, -=, *=, /=, %=

示例:

         int a,b,c;  a=b=c =3;

         int a = 3;   a+=5;等同运算a=a+5;

如果声明的sshort类型,例如:
short s =2
 
s=s+2编译的时候会报错,因为s+2的时候会提升为int类型,然后再赋给short类型的s时会报错:损失精度。
s+=2
则可以通过编译,因为它内部会有一个自动转换过程,数据还是short

s+=2所占的内存比较小一点。效率更高

  比较运算符

l      

l      1:比较运算符的结果都是boolean型,也就是要么是true,要么是false

l      2:比较运算符“==”不能误写成“=”


l      逻辑运算符

逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6

“&”“&&”的区别:

&时,左边无论真假,右边都进行运算;

&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

“|”“||”的区别同理,双或时,左边为真,右边不参与运算。

异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false

 

l      位运算符

l     

 

l      三元运算符

l      格式

        (条件表达式)?表达式1:表达式2

        如果条件为true,运算后的结果是表达式1

        如果条件为false,运算后的结果是表达式2

l      示例:

        获取两个数中大数。

        int x=3,y=4,z;

        z = (x>y)?x:y;//z变量存储的就是两个数的大数。

本章小结:

对于初学者而言,语法基础应该重视起来,不能盲目的贪功冒进,试想你写了几十行的小程序,一下子弹出十几个错误,光调试排错就要花掉比你写程序更多的时间,显然是得不偿失的,因为本人就亲身有过这样的经历~⊙﹏⊙b汗。尤其是对于JAVA这种强类型语言而言,养成严谨规范的代码风格,能够在以后的学习中避免许多不必要的错误,提高学习效率和质量