Java教程

Java基础语法

本文主要是介绍Java基础语法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

注释

注释并不会被执行,是给我们写代码的人看的

书写注释是一个非常良好的习惯

平时写代码一定要注意规范

public class HelloWorld {
    public static void main(String[] args) {
        //单行注释
        //输出一个HelloWorld
        System.out.println("HelloWorld!");
        /*
        多行注释
        可以注释一段文字
        */

        /**
         * JavaDoc:文档注释
         * @Description HelloWorld
         * @Author WangZP
        */
    }
}


标识符

关键字

标识符的注意点

  • 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
  • 首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或数字的任何字符组成
  • 不能使用关键字作为变量名或方法名
  • 标识符是大小写敏感的
  • 合法标识符举例:age、$salary、_value、__1_value
  • 非法标识符举例:123abc、-salary、#abc
  • 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很low

数据类型

  • 强类型语言

    • 要求变量的使用要求严格符合规则,所有变量都必须先定义后才能使用
  • 弱类型语言

  • Java的数据类型分为两大类

    • 基本类型(primitive type)
    • 引用类型(reference type)

public class Demo01 {
    public static void main(String[] args) {
        //八大基本数据类型

        //整数
        byte num1 = 10;
        short num2 = 20;
        int num3 = 30;      //最常用
        long num4 = 40L;    //Long类型要在数字后面加L

        //小数:浮点数
        float num5 = 50.1F; //Float类型要在数字后面加F
        double num6 = 3.1415926;

        //字符
        char name = 'A';
        //字符串
        //String 不是关键字,是类
        //String namea = "June";

        //布尔值:是非
        boolean flag1 = true;
        boolean flag2 = false;
    }
}

数据类型拓展

public class Demo02 {
    public static void main(String[] args) {
        // 整数拓展     进制      二进制0b     十进制     八进制0     十六进制0x
        int i = 10;
        int i2 = 010;       //八进制
        int i3 = 0x10;      //十六进制  0-9 A-F
        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println("=======================================================");
        
        //=======================================================
        //浮点数拓展
        //=======================================================
        //银行业务怎么表示?钱
        // BigDecimal   数学工具类   银行业务使用这个类处理
        //=======================================================
        //float:有限  离散  舍入误差    大约  接近但不等于
        //double
        //最好完全使用浮点数进行比较
        float f = 0.1f;     //0.1
        double d = 1.0/10;  //0.1
        System.out.println(f==d);   //返回false
        System.out.println(f);
        System.out.println(d);

        float d1 = 2350123123121f;
        float d2 = d1 + 1;
        System.out.println(d1 == d2);      //返回true

        //=======================================================
        //字符拓展
        //=======================================================
        char c1 = 'A';
        char c2 = '中';
        System.out.println(c1);
        System.out.println((int)c1);    //强制转换
        System.out.println(c2);
        System.out.println((int)c2);

        //所有的字符本质还是数字
        //编码 unicode编码  2字节    0 - 65536
        char c3 = '\u0061';
        System.out.println(c3);


        //=======================================================
        //转义字符
        // \t   制表符
        // \n   换行
        //=======================================================
        System.out.println("Hello\tWorld");

        System.out.println("=======================================================");
        String pa = new String("Hello World");
        String pb = new String("Hello World");
        System.out.println(pa == pb);
        String pc = "Hello World";
        String pd = "Hello World";
        System.out.println(pc == pd);

        //对象 从内存分析
        //布尔值扩展
        Boolean flag = true;
        if (flag == true){}     //新手
        if (flag){}             //老手    两种写法都是一样的
        //Less is More      代码要精简易读
    }
}

类型转换

  • 由于Java是强类型语言,所以要进行有些运算的时候,需要用到数据类型转换。

    • 低----------------------------------->高
       byte,short,char->int->long->float->double
          //小数的优先级一定大于整数
      
  • 运算中,不同类型的数据先转换为同一类型,然后进行运算。

public class Demo03 {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte)i;       //强制转换    超过范围会内存溢出
        // 强制转换     (类型)变量名     高-->低
        // 自动转换     低-->高
        System.out.println(i);
        System.out.println(b);
        int j = 128;
        double d = j;
        System.out.println(j);
        System.out.println(d);
        /*
        注意点:
        1.不能对布尔值进行转换
        2.不能把对象类型转换为不相干的类型
        3.在把高容量转换到低容量的时候,强制转换
        4.转换的时候可能存在内存溢出,或精度问题
         */
       System.out.println("===============================");
        System.out.println((int)23.7);
        System.out.println((int)-32.89f);
        System.out.println("===============================");
        char c = 'a';
        int f = c + 1;
        System.out.println(f);
        System.out.println((char)f);
    }
}

变量

  • 变量是什么:可以变化的量

  • Java是一种强类型语言,每个变量都必须声明其类型

  • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域

	type varName [=value] [{,varName[=value]}]
//数据类型	变量名		=值		;可以使用逗号隔开来声明多个同类型变量
  • 注意事项:
    • 每个变量都有类型,类型可以是基本类型,也可以是引用类型
    • 变量名必须是合法的标识符
    • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
public class Demo04 {
    public static void main(String[] args) {
        //操作比较大的数的时候,注意溢出问题
        //JDK7新特性,数字之间可以用下划线分割
        int money = 10_0000_0000;
        int years = 20;
        int total1 = money * years;      //-1474836480,  计算的时候溢出了
        System.out.println(total1);
        long total2 = money * years;    //-1474836480   默认是int,转换之前已经存在问题了
        System.out.println(total2);

        long total3 = money*((long)years);
        System.out.println(total3);

        //L l 都表示long类型,书写的时候一般使用L
    }
}
  • 变量作用域
    • 类变量
    • 实例变量
    • 局部变量
public class Demo06 {
    // 类变量  static
    static double salary = 18000;
    //属性:变量

    //实例变量:从属于对象;如果不自行初始化,这个类型的默认值;
    // 数值的默认值 0 0.0;
    // 布尔值:默认是false
    // 除了基本类型,其余的默认值都是null
    String name;
    int age;
    //main方法
    public static void main(String[] args) {
        //局部变量:必须声明和初始化
        int i = 10;
        System.out.println(i);
        //变量类型  变量名字 = new Demo06();
        Demo06 demo06 = new Demo06();
        System.out.println(demo06.name);
        System.out.println(demo06.age);
        System.out.println(salary);
    }
    //其他方法
}
  • 变量的命名规范
    • 所有变量、方法、类名:见名知意
    • 类成员变量:首字母小写和驼峰命名原则:monthSalary
    • 局部变量:首字母小写和驼峰原则
    • 常量:大写字母和下划线:MAX_VALUE
    • 类名:首字母大写和驼峰原则:Man ,GoodMan
    • 方法名:首字母小写和驼峰原则:run(),runPocedure()
 public class Demo07 {
    // 修饰符,不存在先后顺序
    static final double PI = 3.14;
    public static void main(String[] args) {
        System.out.println(PI);
    }
}

常量

  • 常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。

  • 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。

  • final 常量名 = 值;
    final double PI = 3.14;
    
  • 常量名一般使用大写字符。

运算符

  • Java语言支持如下运算符:

    • 算术运算符:+ , - , * , / , % , ++ , --

    • package operator;
      public class Demo01 {
          public static void main(String[] args) {
              // 二元 运算符
              // Ctrl+D 复制当前行到下一行
              int a = 10;
              int b = 20;
              int c = 25;
              int d = 25;
              System.out.println(a + b);
              System.out.println(a - b);
              System.out.println(a * b);
              System.out.println((double) a / b);
          }
      }
      
    • package operator;
      public class Demo02 {
          public static void main(String[] args) {
              long a = 167879321329L;
              int b = 123;
              short c = 10;
              byte d = 8;
              //有高级别的与低级别的做运算,输出类型为高级别的数据类型
              System.out.println(a+b+c+d);    //Long
              System.out.println(b+c+d);      //Int
              System.out.println(c+d);        //Int
      
              double e = 8989566266665654.0;
              float f = 130F;
              int g = 10;
              byte h = 5;
              System.out.println(e+f+g+h);     //Double
              System.out.println(f+g+h);   //Float
              System.out.println(g+h);        //Int
      
              int i = 10;
              int j = 3;
              // 取余;  模运算
              System.out.println(i%j);
          }
      }
      
    • package operator;
      
      public class Demo04 {
          public static void main(String[] args) {
              // ++  自增,--   自减       一元运算符
              int a = 3;
              int b = a++;   //执行完这行代码后,先给b赋值,再自增
              // a++  a=a+1;
              System.out.println(a);
      
              // ++a  a=a+1;
              int c = ++a;   //执行这行代码前,先自增,然后给c赋值
              System.out.println(a);
              System.out.println(b);
              System.out.println(c);
      
              System.out.println("======================");
              int f = 6;
              // a--  a=a-1
              int d = f--;
              System.out.println(f);
              int e = --f;
              System.out.println(d);
              System.out.println(e);
              
              System.out.println("======================");
              //幂运算       很多运算,会使用一些工具类来操作
              // Math 数学类,里面有许多数学计算方法
              double pow = Math.pow(2,3);
              System.out.println(pow);
          }
      }
      
    • 赋值运算符:=

    • 关系运算符:> , < , >= ,<= , == , != , instanceof

    • package operator;
      public class Demo03 {
          public static void main(String[] args) {
              // 关系运算符返回结果:   正确  错误   布尔值
              int a = 10;
              int b = 20;
              System.out.println(a>b);
              System.out.println(a<b);
              System.out.println(a==b);
              System.out.println(a!=b);
          }
      }
      
    • 逻辑运算符:&& , || ,!

    • package operator;
      // 逻辑运算符
      public class Demo05 {
          public static void main(String[] args) {
              // 与(and)   或(or)   非(取反)
              boolean a = true;
              boolean b = false;
              System.out.println("a && b:" +(a && b));    //逻辑与运算,两个变量都为真,结果才为true
              System.out.println("a || b:" +(a || b));    //逻辑或运算,只要其中一个为真,结果就为true
              System.out.println("!(a && b):" +!(a && b));    //如果为真则为假,如果是假则变成真
      
              //短路运算
              System.out.println("a && b:" +(b && a));    //逻辑与运算,两个变量都为真,结果才为true
              int c = 5;
              boolean d = ((c<4)&&(c++<4));
              System.out.println(d);
              System.out.println(c);
      
              int e = 6;
              boolean f = (e>4)||(e++<5);
              System.out.println(e);
              System.out.println(f);
          }
      }
      
    • 位运算符:& , | , ^ , ~ , >> , << , >>>

    • /*
              位运算
              A = 0011 1100
              B = 0000 1101
              -----------------------
              A&B = 0000 1100
              A/B = 0011 1101
              A^B = 0011 0001
              ~B = 1111 0010
      
              2*8 = 16 2*2*2*2
              效率极高!!!
              <<     *2
              >>     /2
               */
      
    • 条件运算符:? :(三目运算符)

    • package operator;
      // 三元运算符
      public class Demo08 {
          public static void main(String[] args) {
              // x ? y : z
              //如果x==true,则结果为y,否则为z
              int score = 90;
              String type = score<60 ? "不及格":"及格";    //必须掌握
              System.out.println(type);
          }
      }
      
    • 扩展赋值运算符:+= ,-= ,*= ,/=

    • package operator;
      public class Demo07 {
          public static void main(String[] args) {
              int a = 10;
              int b = 20;
              a+=b;   //a=a+b
              System.out.println(a);
      
              int c = 10;
              int d = 20;
              c-=d;   //c=c-d;
              System.out.println(c);
      
              int e = 10;
              int f = 20;
              e*=f;
              System.out.println(e);
      
              int g = 20;
              int h = 10;
              g/=h;
              System.out.println(g);
      
              //字符串连接符    +
              //只要数字前面有字符串,字符串后加号后面的都按字符串拼接起来
              int i = 10;
              int j = 20;
              System.out.println(""+i+j);
              System.out.println(i + j + "");
          }
      }
      
这篇关于Java基础语法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!