首页 > 技术文章 > 第二章 Java 基本语法1

taozita 2017-02-27 12:44 原文

2.1关键字

1.定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)。

2.特点:关键字中所有字母都是小写字母。

3.分类:

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

用于定义数据类型值的关键字:true、false、null

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

用于定义访问权限修饰符的关键字: private  protected   public

用于定义类,函数,变量修饰符的关键字:abstract  final  static  synchronized

用于定义类与类之间的关键字:extends  implements

用于定义建立实例及引用实例,判断实例的关键字:new  this  super  instanceof

用于异常处理的关键字:try  catch  finally  throw  throws

用于包的关键字:package  import

其他修饰符关键字:native  strictfp  transient  volatile  assert

 

2.2标识符

1.定义:Java对各种变量,方法和类等要素命名时使用的字符序列成为标识符;凡是自己可以起名字的地方都叫标识符。

2.定义合法标识符规则:

     由26个英文字母大小写,数字,0-9,_或$组成。

     数字不可以开头。

     不可以使用关键字和保留字,但能包含关键字和保留字。

     Java中严格区分大小写,长度无限制。

     标识符不能包含空格。

3.注意:在起名字时,要尽量“见名知意”

4.Java中的名称命名规范

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

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

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

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

 

2.3变量

1.概念:

内存中的一个存储区域

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

Java中每个变量必须先声明,后使用

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

2.定义变量的格式:数据类型  变量名=初始化值

3.使用变量注意:变量的作用域:一对{}之间有效

4.变量的分类

按被声明的位置划分:

    成员变量:方法外部、类的内部定义的变量

    局部变量:方法或语句块内部定义的变量

    注意:类外面(类对应的大括号外面)不能有变量的声明

按所属的数据类型划分:

 基本数据类型变量、引用数据类型变量

 

//变量:
//1.java中的变量定义的格式:数据类型 变量名=初始化值
class TestVeriable 
{
    public static void main(String[] args) 
    {
        //2.变量得先定义后使用
        int myInt1=10;
        double d1=12.3
        System.out.println("myInt1");
        System.out.println("myInt1+d1");
        //i1超出了其作用的范围,不可使用
        //System.out.println(i1);

    }

    public void method1(){
        int i1=10;
        System.out.println(i1);
    }
}

 注:基本数据类型的值直接放到内存中,引用类的值在堆内存中,栈内存中放的是堆内存的首地址

 

      字符串不是基本数据类型,而是引用类型

 

数值数据类型及转义字符

 

 

//变量:基本数据类型(8个) vs  引用数据类型(类、接口、数组)
//1.java中的变量定义的格式:数据类型 变量名=初始化值
class TestVeriable 
{
    public static void main(String[] args) 
    {
        //2.变量得先定义后使用
        int myInt1=10;
        double d1=12.3
        System.out.println("myInt1");
        System.out.println("myInt1+d1");
        //i1超出了其作用的范围,不可使用
        //System.out.println(i1);

        //3.整型:byte(-128~+127) short int(默认类型) long
        byte b1=12;
        //byte b2=128;
        short s1=128;
        int i1=12;
        //定义long型变量,值的末尾加“L”或“l”
        long l1=2134123351345325L;
        System.out.println(l1);

        //4.浮点型(带小数点的数值):float   double(默认类型)
        double d1=12.3;
        //声明float类型的浮点型数据,末尾要加“F”或“f”
        float f1=12.3F;
        System.out.println(f1);

        //5.字符型(=两个字节):char只能表示一个字符(英文、中文、标点符号、日文....)
        char c1='a';
        //char c2='ab';
        String str="ab";
        char c3='中';
        String str1="中国";
        //可以表示转义字符
        char c4='\t';
        char c5='\n';
        System.out.println("abc"+c5+"def");
        //了解
        char c6='\u1234';
        System.out.println(c6);

        //6.布尔类型:boolean 只能够取值为ture或false,不能取值null
        boolean bool1=true;
        if(bool1){
            System.out.println(“我是个\”美\“女”);
        }else{
            System.out.println(“你在说谎!”);

    }

    public void method1(){
        int i1=10;
        System.out.println(i1);
    }
}

 

 数据类型按容量大小排序为:

 

/*
变量之间的运算:(不考虑boolean.剩下:char byte short int long float double)
1.自动类型转换
2.强制类型转换
*/
class TestVeriable1
{
    public static void main(String[] args){ 
        //1.自动类型转换:当容量小的数据类型与容量大的数据类型做运算时,容量小的会自动转换为
        //容量大的数据类型:char,byte,short===>long===>float===double
        int i1=12;
        short s1=2;
        int i2=i1+s1;
        float f1=12.3F;
        float f2=f1+i2;
        //float d1=f2+12.3;

        long l=12L;
        float f3=l;
        System.out.println(i2);
        System.out.println(f2);

        char c1='a';//97
        c1='A';//65
        int i3=c1+l;
        System.out.println(i3);

        //需要注意的:当char\byte\short之间做运算时,默认的结果为int类型
        short ss1=12;
        byte bb1=1; 
        char cc1='a';
        //short ss2=ss1+bb1;
        int ii1=ss1+bb1;
        //char cc2=cc1+bb1;
        int ii2=cc1+bb1;
        short ss2=l1;
        //short ss3=ss1+ss2;
        int ii3=ss1+ss2;

        //2.强制类型转换:容量大转换为容量小的.要使用强制类型转换符:()
        //强制类型转换的问题:导致精度的损失
        long l1=12345l;
        int m1=(int)l1;
        System.out.println(m1);

        byte by1=(byte)m1;
        System.out.println(by1);

        //平时常用的字符串,也是一种数据类型:String
        String nation="我是一个中国人";
        System.out.println(nation);
        //字符串与基本数据类型之间的运算:只能是连接运算:+。得到的结果仍为一个字符串
        String str="abc";
        String str1=str+m1;//abc12345
        System.out.println(str1);

        //题目:
        String str1="hello";
        int myInt1=12;
        char ch1='a';
        System.out.println(str1+myInt1+ch1);//hello2a
        System.out.println(myInt1+ch1+str1);//109hello
        System.out.println(ch1+str1+myInt1);//ahello12
        
    }
}

 2.4进制

1.对于整数,有四种表示方式:

二进制:0,1,满2进1.以0b或0B开头。

十进制:0-9.满10进1

八进制:0-7,满8进1,以数字0开头表示。

十六进制:0-9及A-F,满16进1,以0x或0X开头表示。此处的A-F不区分大小写。

 

2.5 运算符

2.5.1 赋值运算符

赋值运算符即“=”,是一个二元运算符(即对两个操作数进行处理),其功能是将右方操作数所含的值赋值给左方的操作数。

语法格式: 变量类型  变量名=所赋的值

tips:左方必须是一个变量,右边所赋的值可以是任何数值或表达式,包括变量,常量或有效的表达式。

运算规则:先计算右方的值,将结果赋值给左边。

note:在Java中可把赋值运算符连在一起使用,eg: x=y=z;

2.5.2 算术运算符

tips:1."+"、"-"运算符可以作为数据的政府符号,eg:+5,-7

      2.除法运算时,0不可以作除数。eg:int a=5/0,系统会报出ArithmeticException的异常。

//测试算术运算符:+ - + - * / % 
class TestAri 
{
    public static void main(String[] args){

        //除:/
        int i=12;
        int j=i/5;
        double d=i/5;
        double d1=i/5.0;
        System.out.println(j);//2
        System.out.println(d);//2.0
        System.out.println(d);//2.4

        //取模:%:取余数。结果的符号取决于被模数
        int i1=12%5;
        int i2=-12%5;
        int i3=12%(-5);
        int i4=-12%(-5);
        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println(i4);
    }
}

 2.5.3自增自减运算符

自增、自减运算符是单目运算符,可放在操作元之前,也可放在操作元之后。操作元必须是一个整型或是浮点型变量。放在操作元前面的自增、自减运算符,会先将变量的值加1(减1),然后再使该变量参与表达式的运算;放在操作元后面的自增、自减运算符,会先使变量参与表达式的运算,然后再将该变量加1(减1)。代码如下:

//测试自增自减运算符: ++ --
class TestAri 
{
public static void main(String[] args){
//前++:先自增1,后做运算
        //后++:先做运算,后自增1
        int myInt1=10;
        int myInt2=myInt1++;//后++
        System.out.println(myInt1);//11
        System.out.println(myInt2);//10

        int myInt3=10;
        int myInt4=++myInt3;//前++
        System.out.println(myInt3);//11
        System.out.println(myInt4);//11

        //前--:先自减1,后做运算
        //后--:先做运算,后自减1
        int myInt5=10;
        int myInt6=myInt5--;//后--
        System.out.println(myInt5);//9
        System.out.println(myInt6);//10

        int myInt7=10;
        int myInt8=--myInt7;//前--
        System.out.println(myInt7);//9
        System.out.println(myInt8);//9
    }
}

3.5.4 比较运算符

比较运算符属于二元运算符,用于程序中的变量和变量之间、变量和常量之间以及其他类型的信息之间的比较。比较运算符的运算结果是boolean型,当运算符对应的关系成立时,运算结果是ture,否则结果时false。比较运算符通常用在条件语句中来作为判断的依据。比较运算符的种类和用法如表所示:

推荐阅读