三、Java基础语法

一、java的三个方向  java SE java EE java ME特点:一次编译,处处执行二、 java语言基础

* 1.标识符:标识符可以标识类名,变量名,接口名,方法名(凡是可以在java语言中可以起名的)
*        标识符必须以数字,字母,下划线,$组成,不能以数字开头
*                  严格区分大小写
*                  关键字不能做标识符
*                  标识符最好见名知意
* 类名:首字母大写,后面每个单词首字母大写HelloWorld
* 2.关键字:定义的一些具有特殊含义的序列
*             关键字都是小写
3.关于java语言中的字面值?
*    1.字面值:一眼看上去就知道是多少的数据,就是字面值(10,3.14,true,'a')
*    2.字面值得本质:字面值就是内存中的一块空间,这块空间有类型,有值
*    3.java语言中所有的字符都采用单引号括起来,java语言中所有的字符串都用双引号括起来

*/

public class day03 {
    public static void mian(String[] artgs){
        System.out.println(10);//整数型的字面值
        System.out.println(3.14);//浮点型
        System.out.println(true);//布尔型
        System.out.println(false);//
        System.out.println('a');//字符
        System.out.println("sss");//字符串
    }

}

三、变量

/*
* 关于java语言的变量
*
* 1.java中如何定义变量,语法:
* 数据类型,变量名
* 2.如何给变量赋值,语法:
* 变量名=值
* 3.变量的本质是什么?
* 变量是内存中的一块空间,这块空间有“类型”,有“名字”,有“值”
* 4.深入变量
* //变量可以重复赋值,但不能重复声明
//在同一个域中,变量名不能重复
*/

public class day04 {
    public static void main(String[] args){
        //int是一种数据类型,是整型
        int a;//在内存中开辟一块空间,这块空间的类型是整型,给这块空间起名叫a
        
        //赋值
        a=100;
        System.out.println(a);
        
        
        //申请一块int类型的空间,并起名b,并赋值10
        int b=10;
        System.out.println(b);
        
        //重新赋值
        b=100;
        //变量可以重复赋值,但不能重复声明
        //在同一个域中,变量名不能重复
        //int b=1000;//error
        
        //java语言中变量必须先声明,再赋值,才可使用
        int c;
        c=20;
        System.out.println(c);
        
        //声明三个变量,类型都是int类型,i1,i2两个变量没有赋值,只有i3赋值
        int i1,i2,i3 =333;
        //System.out.println(i1);//i1没有初始化,没有赋值
        System.out.println(i3);
        
    }
    public static void m1(){
        int b=2000;
    }
}

/*

*5.关于变量作用域,有效范围,作用范围
* 出了大括号就不认识
*/

public class day05 {
    //类体
    //声明变量
    int m=100;
    public void m1(){
        int m=200;
        System.out.println(m);
    }
    public void m(){
        int k=100;
    }
    
    public static void main(String[] args){
        int m2=100;
        System.out.println(m2);
        //System.out.println(k);
        
        System.out.println("---------------------------------");

        for(int j=0;j<10;j++){
            System.out.println(j);
        }
        //System.out.println(j);
        System.out.println("---------------------------------");
        int p;
        for(p=0;p<10;p++){
            System.out.println(p);
        }
        System.out.println("p的值为"+p);
    }

}

/*
* 6.变量根据出现的位置可以分为两种:
*    1.局部变量:在方法体中声明的变量为局部变量,包括形式参数列表
*    2.成员变量:在方法之外声明的变量统称为成员变量
*/

public class Day06 {
    //成员变量
    int i=100;
    //成员变量
    int m;
    public void m1(){
        int k=100;//局部变量
    }
    public void m2(){
        System.out.println(m);
        
    }
    public static void main(String[] args){
        Day06 nd=new Day06();
        nd.m2();
    }

四、数据类型:

* 数据类型:8种                     1 byte=8个bit                                     1kB=1024byte
* 1.基本数据类型:
*   整型(byte(1字节):取值范围:-128~127 1111 1111~0111 1111 (起始位为符号位,1表示负值,0表示正值)
*   short(2个字节)
*   int(4个字节),long(8个字节))
*   浮点型(float(4个字节),double(8个字节))
*   字符型(char(2个字节)):0~2的(16次方减1)0~65536
*   布尔型(boolean(1个字节),只取true,flase)

* 2.引用数据类型:数组,类,接口
*/
/*
* 3.进制换算
* 十进制转二进制:除2取余,逆序
* '    a'---97 'A'----65 '0'----48
*/

/*
* 4.字符编码:
*   ASCII字符编码:采用一个字节编码,主要针对英文编码
*   GB2312/GBK/GB18030主要针对汉子编码,三种编码从容量上是包含关系
*   unicode:统一了世界上所有的文字编码,unicode有几种实现:UTF-8,UTF-16,UTF-32
*/

/*
* 5.关于char类型
*   1.char是字符类型,java中采用unicode编码。
*   2.底层占用两个字节
*   3.char类型涉及到字符编码方式:

* 字符如果采用编码和解码不一致的话,会出现乱码
*
*/

public class Day07 {
    public static void main(String[] args){
        char c1='a';
        //error
        //char c2='AB';
        //汉字占用2个字节,所以java中的char可以存储一个汉字
        char c3='中';
        System.out.println(c3);
    }
}

/*
* 6.关于java语言中的整型数据
*   byte 1byte(8bit) -128~127
*   short 2byte
*   int 4byte
*   long 8byte
*
* 7.整数类型有三种表示方式:
*    十进制
*    八进制 以0开始
*    十六进制 0x开始
*/
/*
* 结论:如果这个整数没有超出byte,short,char的范围,可以直接将这个整数赋值给byte,short,char
*/

public class Day09 {
    public static void main(String[] args){
        //十进制
        int i1=10;//常用
        //八进制
        int i2=010;
        //十六进制
        int i3=0x10;
        
        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i3);
        
        //将一个int类型的100字面值赋值给i4
        int i4=100;
        //将一个int类型的123字面值赋值給long的l1
        //int类型的容量小于long类型
        //一下程序存在类型转换,只不过叫做“自动类型转换”
        long l1=123;
        
        //由于123后面加了一个L,所以就会把123看做long类型
        //所以以下程序不存在类型转换,只是一个复制运算
        long l2=123L;
        
        //int最大的值为2147483647,如果超过long l3=2147483648,则编译不成功
        long l3=2147483647;
        long l4=2147483648L;//long类型
        
        //将long转化成int类型,不能自动类型转化
        //需要加强制类型转换符
        //以下的程序虽然编译通过,但是程序运行阶段可能会损失精度,所以一定要谨慎
        //
        long m1=100;
        //int m2=m1;
        int m3=(int)m1;
        
        //记忆一个规则,如果这个整数没有超出byte的范围,可以直接将这个整数赋值给byte类型
        byte b1=10;
        byte b2=127;
        //byte b3=128;//128超出范围byte的取值范围
        
        //如果这个整数没有超出short的范围,可以直接将这个整数赋值给short
        short s1=32767;
        //short s2=32768;
        
        //如果这个整数没有超出char的范围,可以直接将这个整数赋值给char
        char c1=97;
        char c2=65535;
        //char c3=65536;

        
        
        
    }

}

/*
* 8.关于浮点型
*   float 4个字节
*    double 8个字节
*
*/

/*
* 9.布尔类型:
*   1.boolean类型的数据只有true和false,没有1和0
*   2.boolean类型的数据主要在逻辑运算和条件控制语句中
*   3.在java中基本类型可以互相转化,boolean类型比较特殊不可以转换其他类型
*   4.默认转化:容量小的类型自动会转化为容量大的类型
*      1.byte--->short--->int--->float--->double
*          char---->
*      2.byte,short,char之间不会相互转换,只能先转化成int
*    5.强制转换:
*      1.将容量大的类型转换成容量小的类型,需要进行强制转换成int
*      2.只要不超出范围,可以将整型值直接赋值给byte,short,char
*      3.在多种类型混合运算中,首先将所有的数据类型转化成容量大的那种,在运算
*/

public class Day10 {
    public static void main(String[] args){
        double d1=1.2;
        //强制类型转化
        //float f1=3.2;
        float f2=(float)3.2;
        float f3=3.2F;
        
        boolean sex=true;
        if(sex){
            System.out.println("男");
        }else{
            System.out.println("女");
        }
        
        //byte,short,char做混合运算时候先各自转化成int做运算
        byte b1=10;
        short s1=20;
        int i1=b1+s1;
        System.out.println(i1);
        //byte b2=b1+s1;
    }
}

/*
* 10.关于基本数据类型转换规则:
*   1.8种基本数据类型除boolean类型之外可以相互转化
*   2.小容量向大容量转换叫做自动类型转化
*   3.byte--->short--->int--->long--->float--->double
*       char--->
*   4.byte,short,char做混合运算时候,各自都先转化成int再做运算
*   5.大容量向小容量转换时强制类型转化,需要强制类型转化(编译虽然通过,运行期可能损失精度,谨慎使用)
*   6.如果整数没有超出byte,short,char的取值范围,可以直接将这个整数赋值给byte,short,char
*   7.多种数据类型做混合运算,先转换成容量大的那种,再做运算
*   8.byte:-127~128 short:32767
*/

public class Day11 {
    
    public static void main(String[] args){
        //超出byte范围
        //byte b1=1000;
        byte b2=20;
        
        short s1=1000;
        //变量不能重名
        //short b2=1000;
        
        int i1=1000;
        //小容量向大容量转换,自动转换
        long l1=i1;
        //将long强制转换成int类型
        
        //int i2=l1;
        //因为大类型向小类型转换会出现问题,精度缺失
        int i3=(int)l1;//因为1000没有超出int范围,所以转换时正确的
        //因为java中的运算会转换成最大的类型
        //而10和3默认为int,所以运算后最大的类型为int
        int i4=10/3;
        
        //声明10为long类型
        long l2=10;
        //出现错误,多个类型混合运算过程中,会转换成容量最大的类型
        //以下示例最大的类型为long,而i5为int,所以就会出现大类型的long到小类型int
        //int i5=l2/3;
        //可以强制转换,运算结果没有超出int范围
        int i6=(int)l2/3;
        //可以使用long来接收运算结果
        long l3=l2/3;
        
        //出现精度缺失问题,以下问题主要是优先级的问题:
        //将l2转化成int后,再将int类型的l2转换成byte类型,然后和3运算,那么运算结果是int类型而非byte类型
        //byte b3=(byte)(int)l2/3;//错误
        int b4=(byte)(int)l2/3;
        byte b5=(byte)(int)(l2/3);
        //不能转换,需要先转换成int---》byte
        //byte b6=(byte)l2/3;
        byte b7 =(byte)(l2/3);
        
        short s2=100;
        byte b8=5;
        //错误,short和byte类型运算,先转化成int在运算,所以int赋值给short会精度缺失
        //short s3=s2+b8;
        short s4=(short)(s2+b8);
        
        char c1='a';
        System.out.println(c1);
        //将char转化成byte类型
        System.out.println((byte)c1);
        
        int i10=c1+100;
        System.out.println(i10);
        
        

    }
}

 

五、转义字符

* 1.关于转义字符
*   \t
*   \n
*   \'
*   \"
*
*/

/*
*2. 默认值:
*   byte,short,int,long:0
*   float,double:0.0
*   boolean: false
*   char \u0000
*/

public class Day08 {
    public static void main(String[] args){
        /*
        char c1='t';
        System.out.print(c1);
        System.out.println("abc");
        */
        // \斜线在java语言中有转义功能,可以将普通的字符t,转化成制表符
        char c1='\t';
        System.out.print(c1);
        System.out.println("abc");
        
        
        char c2='\'';
        System.out.println(c2);
        
        char c3='\\';
        System.out.println(c3);
        
        char c4='\"';
        System.out.println(c4);
        
        char c5='\n';
        System.out.print("abc");
        System.out.print(c5);
        System.out.println("def");
    }

}

 

posted @ 2018-11-11 19:20  旅行没有终点  阅读(227)  评论(0编辑  收藏  举报