Java 基本语法数据类型和运算符

一、Java 基本语法

1、Java 基本语法

     1)Java语言严格区分大小写,好比main和Main是完全不同的概念。

     2)类名:类名的首字母应该大写

     3)方法名:所有的方法名都应该以小写字母开头,如果方法名含有若干单词,则后面的每个单词首字母大写。

     4)一个Java源文件里可定义多个Java类,但其中最多只能有一个类被public修饰。若源文件中包括了public类,源文件必须和该public类同名。

     5)一个源文件中包含N个Java类时,成功编译后会生成N份字节码文件,即每个类都会生成一份单独的class文件,且字节码文件名和其对应的类名相同。

     6)主方法入口:所有的 Java 程序由 public static void main(String []args) 方法开始执行,因为main方法是程序的入口.

建议一个Java源文件只定义一个类,用public修饰(源文件名必须和类名相同)不同的类使用不同的源文件定义。

 

2、Java 提供3种注释类型:

     Java 的注释信息是给程序员看的,编译器(javac)在编译的时候会忽略掉源文件中的注释信息。

     1)单行注释

           // ; //注释信息,从//开始到本行结束的所有字符会被编译器忽略;

     2)多行注释

           /* */;/* 注释信息 */之间的所有字符会被编译器忽略

     3)文档注释

           /** */;/** 注释信息 */和多行注释一样,除此之外还可以专门生成文档信息API。

注意多行注释和文档注释之间彼此都不能交叉嵌套.

 

3、Java 的关键字和保留字挺详细的

      关键字(keywards):Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等。

      保留字(reserved words):是语言已经定义过的字,一些保留字可能没有相对应的语法,考虑到扩展性,为了向后兼容不能再将其作为变量名,goto 和 const 就是Java的保留字。

       注意关键字和保留字都是由小写字母组成

       

4、Java 语言分隔符

     分号(;):语句的分割,表示一句话结束,好比咱们使用的句号。

     花括号({}):表示一个代码块,是一个整体,花括号要成对使用。

     方括号([]):定义数组和访问数组元素时使用。

     圆括号(()):使用很广泛。

     圆点(.):类和对象访问它的成员时使用。

     空格( ):把一整条语句分割成几段,空格的次数不限制,好比一句英文里单词都要分开写一样。

     注意必须都是半角下的英文符号

5、Java 标识符

     为了增强程序阅读性而自定义的名称(比如:类名,方法名,变量名等),称为标识符。

标识符命名规则:

     1)由字母、数字、下划线、$组成,但不能以数字开头,不能包含@、#等其他特殊符号。

     2)严格区分大小写。

     3)不能使用 Java 中的关键字和保留字。

     4)不能包含空格。

     5)不用Java API里的类名作为自己的类名。

     简单说,就是使用一个非关键字或保留字而命名的英文单词就OK,不准起非主流名字。 注意:类名首字符规范是大写的。

二、常量

1、常量(Constant

    常量代表程序运行过程中不能改变的值,

2、常量的语法格式:

     只需在变量的语法格式前面添加关键字 final 即可。在Java编码规范中,要求常量名必须大写。

格式如下

    修饰符 final 数据类型 常量名称 = 值;  例如: public static final double PI = 3.14;  

在Java语法中,常量也可首先声明,然后再进行赋值,但是只能赋值一次(不推荐),

例如:

public static final double PI;

PI = 3.14;

 

二、变量

    变量代表程序的状态。程序通过改变变量的值来改变整个程序的状态,或者说得更大一些,也就是实现程序的功能逻辑。

    变量表示存储空间,可用来存放某一类型的常量值,没有固定值,并可以重复使用,也可以用来存储某种类型的未知数据。

1、特点:

1)占据着内存中的某一块存储区域;

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

3)可以被重复使用;

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

2、由于Java语言是一种强类型的语言,所以变量在使用以前必须首先声明,在程序中声明变量的语法格式如下

       先定义变量,再赋值:

              数据类型  变量名;

              变量名 = 值;

       或在声明时同时赋值:

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

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

不推荐:同时定义多个变量.

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

3、变量的分类:

     根据变量定义在类中的位置不同,把变量可分成两大类:

1)成员变量:直接定义在类里的变量,又称为全局变量或字段。

2)局部变量:变量除了成员变量之外,其他就是局部变量。根据定义的位置不同有3种表现形式:方法形参,方法内变量,代码块变量。

4、变量作用域:

     是指变量的作用范围,只有在这个范围内,程序代码才能访问它。当一个变量被定义时,它的作用域就已经确定了:

     作用域指花括号开始到结束。

5、变量使用规则:

     1)变量必须先声明,并且初始化后才能使用;

     2)声明变量必须有数据类型

     3)同一作用域内变量不能重复定义

 

三、表达式(expression)

       是由数字、运算符、数字分组符号(括号)、变量等以求得结果的有意义排列的组合。用运算符号连接的变量/常量可称为表达式。如:(x + y) * z + 100

       表达式中操作数进行运算得到的最终结果就是表达式的结果。表达式的运算顺序(大多和数学一样,根据运算符操作优先级进行):

四、Java 数据类型

      总得来说,Java 数据类型分成两种:

1)基本数据类型,又称为原生数据类型;

2)引用数据类型,又称为对象数据类型;

         

       

1、8大基本数据类型:

  1)数值类型:

    (1)整数:

       byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节

       short:短整型,在内存中占16位,即2个字节

       int:整型,用于存储整数,在内在中占32位,即4个字节

       long:长整型,在内存中占64位,即8个字节

       byte,short,int,long 类型仅仅是容量大小不一样而已,Java语言的整数常量默认是 int类型,若表示 long类型时,在其后跟上 L 或 l即可。

     (2)小数:

       float:浮点型,在内存中占32位,即4个字节

       double:双精度浮点型,用于存储带有小数点的数字,在内存中占64位,即8个字节

       小数可以使用小数点或者科学计数法表示,小数的常量默认是 double类型,若表示 float类型,在其后跟上 F 或 f即可。

     注意float 和 double类型 都不能精确的表示小数,在开发中表示精确的小数时使用 BigDecimal ,比如金钱

   2)字符类型:表示16位无符号整数或者 Unicode字符

       char:字符型,用于存储单个字符,占16位,即2个字节

   3)布尔类型

       boolean:布尔类型,用于判断真或假(仅有两个值,即true、false),默认值false

2、3大引用数据类型:类/接口/数组

     除了8种基本数据类型,其他所有类型都是引用数据类型(类、接口、数组)。引用数据类型默认初始值都是null。

3、8大基本数据类型转换

     在8大基本数据类型中,boolean 类型不属于数值类型,即不参与转换.

     1)自动类型转换,也称为“隐式类型转换:

      当把小数据范围类型的数值或变量赋给另一个大数据范围类型变量,系统可以完成自动类型转型。这好比把装一斤水容器里的水倒进可以装两斤水的容器里一样。

     2)强制类型转换,也称为“显示类型转换":

      当把大范围类型的数值或变量赋给另一个小范围类型变量时,此时系统不能自动完成转换,需要加上强制转换符,但这样的操作可能造成数据精度的降低或溢出,所以使用时要格外注意。

       

       当要表示的数据超出数据类型的临界范围时,称为溢出。溢出情况发生时程序并没有做数据范围检查处理,此时会出现数据紊乱情况。

4、表达式类型的自动提升

       当一个算术表达式中包含多个基本数据类型(boolean除外)的值时,整个算术表达式的数据类型将在数据运算时出现类型自动提升,其规则是

1)所有的byte、short和char类型将被自动提升到 int类型;

   2)整个表达式的最终结果类型被提升到表达式中类型最高的类型;

 

五、Java 运算符

1、算术运算符

      

用来处理四则运算的符号:

加号:在操作数值、字符、字符串时其结果是不同的,当两个字符相加得到的是ASCII码表值,当两个字符串相加时表示将两个字符串连接在一起,从而组成新的字符串。

除号:整数在使用除号操作时,得到的结果仍为整数(小数部分忽略),当整数除以0的时候,会引发算术异常。

取模(%):模数的符号忽略不计,结果的正负取决于被模数。例如:int res = -5 % 4; // res=-1

正无穷大(Infinity):当一个正浮点类型数除以0时,或者正整数除以0.0时;

负无穷大(-Infinity):当一个负浮点类型数除以0时,或者负整数除以0.0时;

NaN(Not a Number):当0.0除以0.0时;

注意:无穷大和NaN都属于double浮点类型,但是所有正无穷大都是相等的,所有负无穷大也是相等的,NaN永远不相等,也不等于自己.

自增和自减

自增: ++, 递增操作符,使变量值增加1,有前置和后置之分, 只能操作变量。

自减: -- ,递减操作符,使变量值减去1,有前置和后置之分, 只能操作变量。

        自增和自减具体操作是一样的,仅仅是一个是加1,一个是减1而已。如果仅仅执行简单的递增操作(只写result++或++result),那么选用任意一个都可以。

自增和自减唯一的区别是

前置(++result):   放在操作数前面,则先自加或自减,自身再参与运算;

后置(result++):   放在操作数后面,则先参与运算,自身再自加或自减。

        int result = 1;
        result = result++;
        System.out.println("result=" + result); //1
        int result2 = 1;
        result2 = ++result2;
        System.out.println("result2=" + result2); //2

2、赋值运算符

     赋值运算符是指为变量或常量指定数值的符号。如可以使用 “=” 将右边的表达式结果赋给左边的操作数。

    

3、比较运算符

     

     用于判断两个数据的大小,比较的结果是一个布尔值( true 或 false )。

     其操作格式为:boolean  result = 表达式A   比较运算符   表达式B;

注意

1) > 、 < 、 >= 、 <= 只支持左右两边操作数是数值类型

2) == 、 != 两边的操作数既可以是数值类型,也可以是引用类型

3)instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例,返回一个布尔值

4、条件运算符(也称三元运算符

     语法形式:布尔表达式 ? 表达式1 :表达式2

     运算过程:如果布尔表达式的值为 true ,则返回 表达式1 的值,否则返回 表达式2 的值。

例如:

     int totalPage = totalCount % pageSize == 0 ? totalCount / pageSize : totalCount / pageSize + 1;  //总页数

5、逻辑运算符

     

     语法格式为:boolean  result = 表达式A   逻辑运算符   表达式B;

&:表示并且,当操作数A和B都为true结果才为true,否则结果result 是false。

&&:和&结果相同,具有短路效果,如果左边操作数A是false,result 一定为false,且不运行B的运算。

|:表示或者,A和B都为false结果result为false,只要有A或B是true,结果就是true。

||:和|结果相同,具有短路效果,如果左边操作数A是true,result一定为true,且不运行B的运算。

^:判断A和B是否不同,不同则为true,相同则为false。

!:取反,!true结果是false,!fasle结果是true。

6、位运算符

     位运算符主要针对二进制,从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。

    

&:参与运算的两个数,若相应位数的值都为1,则该位结果值是1,否则是0。

|:参与运算的两个数相应位中只要有一个1,结果就是1。

^:参与运算的两个数相应位相同则结果为0,否则为1。

~ :表示把每个二进制位的“1”换成“0”,把“0”换成“1”。

移位运算符

    移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数等。

    

7、运算符的操作优先级

     下图中具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部。

     

 

ends~

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值