Java语言语法

Posted 洛阳泰山

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java语言语法相关的知识,希望对你有一定的参考价值。

目录

Java 标识符

Java 关键字

常量与变量

数据类型

类型转换

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

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

运算符

运算符的定义

运算符的分类

算数运算符

 赋值运算符

 比较运算符

逻辑运算符

 位运算符

三目运算符

表达式


Java 标识符

Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。

关于 Java 标识符,有以下几点需要注意:

  • 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
  • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
  • 关键字不能用作标识符
  • 标识符是大小写敏感的(区分大小写)

合法标识符举例:age、$salary、_value、__1_value

非法标识符举例:123abc、-salary

Java 关键字

有一些专门的词汇,Java语言已经赋予了特定的含义,只能用于特定的地方。所以程序员在编写程序时,不能再使用这些词汇来命名标识符,不能改变这些词汇的含义。 

下面列出了 Java 关键字。这些保留字不能用于常量、变量、和任何标识符的名称。

类别关键字说明
访问控制private私有的
protected受保护的
public公共的
default默认
类、方法和变量修饰符abstract声明抽象
class
extends扩充,继承
final最终值,不可改变的
implements实现(接口)
interface接口
native本地,原生方法(非 Java 实现)
new新,创建
static静态
strictfp严格,精准
synchronized线程,同步
transient短暂
volatile易失
程序控制语句break跳出循环
case定义一个值以供 switch 选择
continue继续
default默认
do运行
else否则
for循环
if如果
instanceof实例
return返回
switch根据值选择执行
while循环
错误处理assert断言表达式是否为真
catch捕捉异常
finally有没有异常都执行
throw抛出一个异常对象
throws声明一个异常可能被抛出
try捕获异常
包相关import引入
package
基本类型boolean布尔型
byte字节型
char字符型
double双精度浮点
float单精度浮点
int整型
long长整型
short短整型
变量引用super父类,超类
this本类
void无返回值
保留关键字goto是关键字,但不能使用
const是关键字,但不能使用

注意:Java 的 null 不是关键字,类似于 true 和 false,它是一个字面常量,不允许作为标识符使用。保留关键字是现在没有特殊含义,将来有可能被赋予特殊含义的词汇:goto  const

常量与变量

什么是常量?

常量指在程序执行期间其值不能发生变化的数据。 如:整数123,小数1.23,字符’A’,布尔常量 true、false、PI=3.1415926等。

什么是变量?

变量是指值在程序运行期间可以被改变的量。在程序中使用变量,必须先创建它并为它取一个名字,并且指明它能够存储信息的类型,这称为“变量声明”。要在程序中声明一个变量,其语法形式如下:
     变量类型  变量标识符;
  如:String name;

数据类型

在声明变量时,要指明变量的类型。不同的类型在内存中分配的空间大小也不同。

下图是Java数据类型的分类表:
 

基本数据类型(8种)

  • 整数类型(byte 、short、int、long) 
  • 浮点数类型(float、double)
  • 布尔类型(boolean)
  • 字符类型(char)

代码示例

示例一 整数类型


public class TestType1 

    public static void main(String[] args) 
        byte b=123;
        short s=30000;
        int i=12; //十进制
        int i8=012;//八进制
        int i16=0x12;//十六进制
        long l1=1000L;
        long l2=1000l;
        long l3=1000;
        System.out.println(b); //123
        System.out.println(s); //30000
        System.out.println(i); //12
        System.out.println(i8); //10
        System.out.println(i16); //16
        System.out.println(l1); //1000
        System.out.println(l2); //1000
        System.out.println(l3); //1000

    

 示例二  浮点数类型


public class TestType2 

    public static void main(String[] args) 
        float f=100;
        float f1=100f;
        float f2=100F;
        double d=2000f;
        double d0=2000F;
        double d1=2000;
        double d2 =2000d;
        double d3 =2000D;
        System.out.println(f); //100.0
        System.out.println(f1); //100.0
        System.out.println(f2); //100.0
        System.out.println(d); //2000.0
        System.out.println(d0); //2000.0
        System.out.println(d1); //2000.0
        System.out.println(d2); //2000.0
        System.out.println(d3); //2000.0


    

示例三  布尔类型 和 字符类型


public class TestType3 

    public static void main(String[] args) 
        boolean b=true;
        boolean b1=false;
        char  c='a'; //任意单个字符,加单引号
        char c1='1'; //任意单个字符,加单引号
        char c2='你'; //任意单个中文字,加单引号
        char c3=65; //整数。0~65535。十进制、八进制、十六进制均可。输出字符编码表中对应的字符。
        System.out.println(b); //true
        System.out.println(b1);  //false
        System.out.println(c); //a
        System.out.println(c1); //1
        System.out.println(c2); //你
        System.out.println(c3); //A
    

部分 ASCII 字符编码表展示

类型转换

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

把小数据存储到大容器中,小数据会自动提升为大类型的数据,byte short char转int   float转double。 所有的整数都可以自动转换为浮点类型,所有的byte型、short型和char的值将被提升到int型。

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

大数据存储到小类型容器中,必须强制转换,比如 int 转short ,double 转float。

   代码示例 

  double d=123.456;
  int i=(int)d;         

思考

char  c = 'A';
char  b = c+1;//错误
char  b = (char)(c+1);//正确

运算符

运算符的定义

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

运算符的分类

  • 算术运算符
  • 赋值运算符
  • 比较运算符  
  • 逻辑运算符   
  • 位运算符
  • 三目(条件)运算符

算数运算符

 赋值运算符

代码示例

int x=20;
int y=x+1;
int x=x+20;
x+=20;
x-=20;
x=x-20;

 比较运算符

总共有大于、小于、小于等于、大于等于、等于、不等于6种。 

>  、 < 、 <=、>=、==、!=

 比较运算符的结果都是boolean型,也就是true或false。
 比较运算符 == 不能误写成 = ,切记!切记!

逻辑运算符

逻辑运算符的结果都是boolean型,也就是要么是true,要么是false

 位运算符

Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。

位运算符作用在所有的位上,并且按位运算。假设a = 60,b = 13;它们的二进制格式表示将如下:

A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011

下表列出了位运算符的基本运算,假设整数变量 A 的值为 60 和变量 B 的值为 13:

操作符描述例子
如果相对应位都是1,则结果为1,否则为0(A&B),得到12,即0000 1100
|如果相对应位都是 0,则结果为 0,否则为 1(A | B)得到61,即 0011 1101
^如果相对应位值相同,则结果为0,否则为1(A ^ B)得到49,即 0011 0001
按位取反运算符翻转操作数的每一位,即0变成1,1变成0。(〜A)得到-61,即1100 0011
<< 按位左移运算符。左操作数按位左移右操作数指定的位数。A << 2得到240,即 1111 0000
>> 按位右移运算符。左操作数按位右移右操作数指定的位数。A >> 2得到15即 1111
>>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。A>>>2得到15即0000 1111

实例

下面的简单示例程序演示了位运算符。复制并粘贴下面的Java程序并保存为Test.java文件,然后编译并运行这个程序:

Test.java 文件代码:

public class Test 
  public static void main(String[] args) 
     int a = 60; /* 60 = 0011 1100 */ 
     int b = 13; /* 13 = 0000 1101 */
     int c = 0;
     c = a & b;       /* 12 = 0000 1100 */
     System.out.println("a & b = " + c );
 
     c = a | b;       /* 61 = 0011 1101 */
     System.out.println("a | b = " + c );
 
     c = a ^ b;       /* 49 = 0011 0001 */
     System.out.println("a ^ b = " + c );
 
     c = ~a;          /*-61 = 1100 0011 */
     System.out.println("~a = " + c );
 
     c = a << 2;     /* 240 = 1111 0000 */
     System.out.println("a << 2 = " + c );
 
     c = a >> 2;     /* 15 = 1111 */
     System.out.println("a >> 2  = " + c );
  
     c = a >>> 2;     /* 15 = 0000 1111 */
     System.out.println("a >>> 2 = " + c );
  
 

以上实例编译运行结果如下:

a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 2  = 15
a >>> 2 = 15

三目运算符

三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,有时又称为三元运算符。

语法格式

  boolean x = (条件判断) ? value1 : value2;

例子

        boolean x=1>2?true:false;
        int x1=5>2?1:0;
        char x2=2==1?'t':'f';

表达式

使用运算符将运算数据连接起来的符合Java语法规则的式子。
如 x = y + z; c=a*b;  等


新手有不明白的地方,请在评论区留言,大佬有发现部队的地方,请在评论区留言!!!

以上是关于Java语言语法的主要内容,如果未能解决你的问题,请参考以下文章

Java语言语法

Java语言基本语法

Java入门 - 语言基础 - 03.基础语法

01-Java基础语法

Java Script语法

第二堂:Java基础语法