Java学习二、Java基本语法

2.1关键字

定义数据类型的关键字:class interface enum byte short int long float double char boolean void

定义数据类型值得关键字:class interface enum byte short int long float double char boolean void

定义流程控制的关键字:f else switch case default while do for break continue return


2.2标识符

合法的标识符:

  • 由26个英文字符大小写,0-9,_或者$组成;

  • 数字不可以开头;

  • 不可以使用关键字和保留字,但是可以包含关键 字和保留字;

  • java严格区分大小写,不限制长度;

  • 标识符不能含有空格


2.3变量

  • 变量是内存中的一个存储区域;

  • 该区域有自己的名称和类型;

  • 变量必须先声明再使用;

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

变量的作用域:一对{}内。

变量的声明定义:数据类型 变量名 = 变量的值 数据类型:基本数据类型和引用数据类型 基本数据类型: ·整型:byte(1字节)、short(2字节)、int(4字节)、long(8字节,long数后边要加L) ·浮点型:float(4字节,float数后边要加f)、double(8字节) ·字符型:char(2字节) \b退格\n换行\f回车\t制表\"双引号\‘单引号\\反斜杠 ·布尔型:boolean(只允许是true或false不能用0或非0数代替) 引用数据类型: ·类class ·接口interface ·数组[ ] ·String类型,可以用NULL赋值

基本数据类型

public class Test{
    public static void main(String[] args) {
        System.out.print("SSS\n");
        System.out.println("SSS");
        byte b=1;
        short s=2;
        int i=3;
        long l=4L;
        float f=5.1F;
        double d=5.2;
        char c='a';
        boolean b1=false;
        System.out.println(b+","+s+","+i+","+l+","+f+","+d+","+c+","+b1);
    }
}

String类型

public class Test{
    public static void main(String[] args) {
        String string="Hello World\n";
        String string1="Hello World";
        System.out.println(string1);
        System.out.print(string);
    }
}

基本数据类型和引用类型的比较

nt a=1;int b=1;内存内会有两个空间值为1 String a="hello";String b="hello";内存中只会有一个空间值为hello Sting c=“he”+“llo”;内存中仍然只有一个空间值为hello,a、b、c都引用了hello的位置,假设hello位置为xxx,声明变量 a赋值hello实际上是让a变量引用hello的内存地址xxx,再声明变量b赋值为hello时也是把已经存在的hello的内存地址给b引用。


2.4基本数据类型转换(隐式转换)

  1. 自动数据类型转换:容量小的数据类型可以自动转换为容量大的数据类型。

  1. 有多种类型的数据混合运算时,系统自动的转换为容量大的数据类型再进行计算。

  1. byte、short、char之间不会相互转换,他们三者之间计算时,先转换为int类型再进行计算。

  1. 当把任何基本类型的值和字符串进行连接运算时,基本类型的值将自动转换为字符串类型。

public class Test{
    public static void main(String[] args) {
        int b=9;
        String string="Hello World";
        System.out.println(b);
        System.out.println(string);
        System.out.println(b+string);
    }
}
  1. char转换为相应的ASCII码

  1. boolean类型不能转换为其他类型


2.5运算符

  • 算数运算符

+

加法 - 相加运算符两侧的值

A + B 等于 30

-

减法 - 左操作数减去右操作数

A – B 等于 -10

*

乘法 - 相乘操作符两侧的值

A * B等于200

/

除法 - 左操作数除以右操作数

B / A等于2

取余 - 左操作数除以右操作数的余数

B%A等于0

++

自增: 操作数的值增加1

B++ 或 ++B 等于 21

B++是先进行表达式运算再自增

++B是先自增在进行表达式运算

--

自减: 操作数的值减少1

B-- 或 --B 等于 19与自增运算规则相同

  • 关系运算符

运算符

描述

例子

==

检查如果两个操作数的值是否相等,如果相等则条件为真。

(A == B)为假。

!=

检查如果两个操作数的值是否相等,如果值不相等则条件为真。

(A != B) 为真。

>

检查左操作数的值是否大于右操作数的值,如果是那么条件为真。

(A> B)为假。

<

检查左操作数的值是否小于右操作数的值,如果是那么条件为真。

(A <B)为真。

>=

检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。

(A> = B)为假。

<=

检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。

(A <= B)为真。

  • 位运算符

操作符

描述

例子

如果相对应位都是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

  • 逻辑运算符

操作符

描述

例子

&&

称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。

(A && B)为假。

| |

称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。

(A | | B)为真。

称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。

!(A && B)为真。

  • 赋值运算符

操作符

描述

例子

=

简单的赋值运算符,将右操作数的值赋给左侧操作数

C = A + B将把A + B得到的值赋给C

+ =

加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数

C + = A等价于C = C + A

- =

减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数

C - = A等价于C = C - A

* =

乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数

C * = A等价于C = C * A

/ =

除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数

C / = A,C 与 A 同类型时等价于 C = C / A

(%)=

取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数

C%= A等价于C = C%A

<< =

左移位赋值运算符

C << = 2等价于C = C << 2

>> =

右移位赋值运算符

C >> = 2等价于C = C >> 2

&=

按位与赋值运算符

C&= 2等价于C = C&2

^ =

按位异或赋值操作符

C ^ = 2等价于C = C ^ 2

| =

按位或赋值操作符

C | = 2等价于C = C | 2

  • 三目运算符

  • variable x = (expression) ? value if true : value if false


2.6程序流程控制

  1. if-else

判断小明的期末成绩:当成绩为100分时,奖励一辆BMW;当成绩为(80,99]时,奖励一台iPhone手机;当成绩为(60,80] 时,奖励一本书,其他没有奖励。

public class Test{
    public static void main(String[] args) {
        int score = 89;

        if (score == 100){
            System.out.println("BMW");
        }else if (score > 80 && score <= 99){
            System.out.println("iPhone");
        }else if (score > 60 && score <= 80){
            System.out.println("一本书");
        } else{
            System.out.println("没有奖励");}
    }
}

  1. switch-case-break

数字1-7对应星期一到星期七

public class Test{
    public static void main(String[] args) {
       int i=6;
       switch (i){
           case 1:System.out.println("星期一");break;
           case 2:System.out.println("星期二");break;
           case 3:System.out.println("星期三");break;
           case 4:System.out.println("星期四");break;
           case 5:System.out.println("星期五");break;
           case 6:System.out.println("星期六");break;
           case 7:System.out.println("星期七");break;
           default:System.out.println("ERROR!!!");break;
       }
    }
}
  1. for循环

循环五次输出Hello World


public class Test{
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            System.out.println("Hello World");
        }
    }
}
  1. while循环

循环五次输出Hello World

public class Test{
    public static void main(String[] args) {
        int i=0;
        while(i<5){
            System.out.println("Hello World");
            i++;
        }
    }
}
  1. do-while循环

循环五次输出Hello World


public class Test{
    public static void main(String[] args) {
        int i=0;
        do{
            System.out.println("Hello World");
            i++;
        }while(i<5);
    }
}
  1. 特殊流程控制语句

  • break语句:终止当前所在的循环

  • continue语句:跳出当前这层的循环继续往下执行

  • return语句:结束整个方法


2.7数组

  1. 一维数组

声明方式:type var[]或type[]var

//动态初始化
int arr[]=new int[3];
arr[0]=1;
arr[1]=2;
arr[2]=3;
//数组下标是从0开始的
//动态初始化
int arr[]=new int[]{1,2,3};
//或者
int arr[]={1,2,3};

定义并用运算符new为之分配空间之后,才可以引用数组中的每个元素。 每个数组都有一个属性length指明他的长度,数组一旦初始化长度是不可以变的。 数组是引用类型,他的元素相当于类的成员变量,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式 初始化。

  1. 多维数组

//动态初始化
int arr[][]=new int [2][3];
//静态初始化
int arr[][]=new int[][]{1,1}{2,3};
  1. 数组常见问题

  1. 数组下标越界异常

  1. 空指针异常


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值