基础语法

Java语言出现于1991年,JDK1.0版本正式发布于1995年

Java之父:James Gosling(詹姆斯•高斯林)

Java是一种面向对象的编程语言

Java语言是一种编译解释型语言

Java语言是基于Java虚拟机运行,因此Java语言可以实现跨平台

Java的GC垃圾回收器

注释

注释就是说明解释程序的文字,提高代码的阅读性。

注释格式:

  • 单行注释://注释文字
  • 多行注释: /* 注释文字 */
  • 文档注释: /** 注释文字 */

标识符

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

java标识符注意事项:

  • 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线()开始
  • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线()或数字的任何字符组合
  • 关键字不能用作标识符
  • 标识符是大小写敏感的
  • 合法标识符举例:age、$salary、_value、__1_value
  • 非法标识符举例:123abc、-salary

关键字

关键字:被Java语言赋予了特殊含义的单词

关键字中所有字母都小写

java se development kit有什么用_System

数据类型

Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

数据类型分类

java se development kit有什么用_Test_02

数值类型大小

java se development kit有什么用_System_03

注意:

long num = 12345254245L
float f = 23242.56F

常量与变量

常量

常量就是一个固定值,不能改变的量。在java中用 final 标记,声明方式和变量类似

final double PI = 3.1415927;

通常常量名都是使用大写字母表示。

常量分类

1、整数常量。所有整数

2、小数常量。所有小数

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

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

5、字符串常量。将一个或者多个字符用双引号(“ ”)标识。

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

对于整数:有四种表现形式
二进制:0,1 ,满2进1.
八进制:0-7 ,满8进1. 用0开头表示。
十进制:0-9 ,满10进1.
十六进制:0-9,A-F,满16进1. 用0x开头表示。如下

int decimal = 100;
int octal = 0144;
int hexa = 0x64;

变量

变量类型:

  • 局部变量:类的方法中的变量
  • 实例变量:独立于方法之外的变量,没有使用static修饰
  • 类变量:独立于方法之外的变量,用static修饰
public class VariableTest{
    static int num=0;  //类变量
    String str = "Hello";  // 实例变量
    
    public void method(){
        int a=0;  // 局部变量
    }
}

命名规范

类名
a)类的作用英文单词组成(见名知意)
b)类名首字母要大写,如果有多个单词构成则每个单词的首字母都大写(大小写混排)
c)类名可以由“字母”、“数字”、“_”和“$”组成,但是不能够以数字开头
d)类名允许使用中文,但是不提倡使用

包名:多单词组成时所有字母都小写。

xxxyyyzzz

类名接口名:多单词组成时,所有单词的首字母大写。

XxxYyyZzz

变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。

xxxYyyZzz

常量名:所有字母都大写。多单词时每个单词用下划线连接。

XXX_YYY_ZZZ

运算符

java se development kit有什么用_Test_04

特殊符号说明

&&:
和&运算结果是一样的,但是运算过程有点小区别。
&:无论左边的运算结果是什么,右边都参与运算
&&:当左边为false时,右边不参与运算
||:
和|运算结果是一样的,但是运算过程有点小区别。
|:无论左边的运算结果是什么,右边都参与运算
||:当左边为true时,右边不参与运算

位运算符

java se development kit有什么用_Java_05

>>>:无符号右移位运算符

3<<1=6  //相当于 3*2^1=6
24>>3=3 //相当于 24/(2^3)=3
k >>>3  //右移n位(二进制右面去掉n位,左边补上个0)
a=a^b^b //异或两次同一个值等于原来的数

// -9 : 11111111 11111111 11111111 11110111.
// 9 : 00000000 00000000 00000000 00001001.
// 有符号右移
// -9>>3: [111]11111111 11111111 11111111 11110.
// 9>>3: [000]00000000 00000000 00000000 00001
// 无符号右移
// -9>>>3:[000]11111111 11111111 11111111 11110.
// 9>>>3: [000]00000000 00000000 00000000 00001

类型转换

  • 自动类型转换(也叫隐式类型转换,低转高)
  • 强制类型转换(也叫显式类型转换,高转低)

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

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

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

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

System.out.println(‘a’)   //结果 a
System.out.println(’a’+1) //结果 98      

short s=3;
s+=4;  		//赋值运算,底层自动做了强转动作,自动完成
// s=s+4;   //算术运算,会丢失精度,需强转,否则编译出错

转义序列

前面有反斜杠(\)的字符代表转义字符,它对编译器来说是有特殊含义的。

转义序列

描述

\t

在文中该处插入一个tab键

\b

在文中该处插入一个后退键

\n

在文中该处换行

\r

在文中该处插入回车

\f

在文中该处插入换页符

'

在文中该处插入单引号

"

在文中该处插入双引号

\

在文中该处插入反斜杠

流程控制

流程控制语句用来控制程序的执行流程。

基本结构分类

  • 顺序结构
  • 选择结构
  • 循环结构

顺序结构

程序默认的结构,自上而下的执行代码

选择结构

if 单选择结构

一个if语句包含一个布尔表达式和一条或多条语句

if(x<20){
    System.out.print("这是 if 语句");
}

if - else 双选择结构

if 语句后面可以跟 else 语句,当if语句的布尔表达式值为 false 时,else 语句块会被执行。

int x=20;
if(x<20){
    System.out.print("这是 if 语句");
}else{
    System.out.print("这是 else 语句");
}

if...else if...else 多选择结构

if 语句后面可以跟 else if…else 语句,这种语句可以检测到多种可能的情况。public class Test{

public class Test{
    
    public static void main(String []args){
        int x=20;
        
        if(x==10){
            System.out.print("value of X is 10");
        }else if(x==20){
            System.out.print("value of X is 20");
        }else if(x==30){
            System.out.print("value of X is 30");
        }else{
            System.out.print("这是 else 语句");
        }
    }
}

switch结构

switch 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

switch(expression){
    case value :
       //语句
       break; //可选
    case value :
       //语句
       break; //可选
    //你可以有任意数量的case语句
    default : //可选
       //语句
}

switch 语句有如下规则:

  • switch 语句中的变量类型只能为 byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
  • switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
  • case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
  • 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到break语句出现才会跳出 switch 语句。
  • 当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
  • switch 语句可以包含一个 default 分支,该分支必须是 switch 语句的最后一个分支。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。

循环结构

Java中有三种主要的循环结构:

  • while循环
  • do…while循环
  • for循环

while循环

public class Test{
    public static void main(String []args){
        int i=0;
        while(i<10){
            System.out.println("Value of i:" + i);
            i++;
        }
    }
}

do…while循环

public class Test{
    
    public static void main(String []args){
        int i=0;
        do{
            System.out.println("value of i:" + i);
            i++;
        }while(i<10);
    }
}

注:do…while循环至少会执行一次

for循环

for循环执行的次数是在执行前就确定的。

public class Test{
    
    public static void main(String[] args){
        for(int i=0; i<10; i++){
            System.out.println("value of i:" + i);
        }
    }
}

增强for循环

主要用于数组的增强型for循环。

public class Test{
    
    public static void main(String []args){
        int [] numbers = {1,2,3,4,5};
        
        for(int i:numbers){
            System.out.print(i + "\t");
        }
    }
}

break关键字

break主要用在循环语句或者switch语句中,用来跳出整个语句块

public class Test{
    
    public static void main(String[] args){
        int[] numbers = {1,2,3,4,5};
        for(int i: numbers){
            if(i == 3){
                break;
            }
            System.out.println(x);
        }
    }
}
//结果
1
2

continue关键字

continue适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。

public class Test{
    
    public static void main(String[] args){
        int[] numbers = {1,2,3,4,5};
        for(int i: numbers){
            if(i == 3){
                continue;
            }
            System.out.println(i);
        }
    }
}
//结果
1
2
4
5