JavaSE基础语法

JavaSE基础语法


一 注释

注释是写给人看的,一定要多写注释,注释包含了你对自己写的代码的介绍和理解。

1. 单行注释

// 这是一行注释

2. 多行注释

/*
	多行注释
	多行注释
*/

3. 文档注释

/**
 * @Description 文档注释
 * Author Coder
 */

二 标识符

必须使用 $ 或 _ 或字母开头,不能使用关键字!
百度百科:Java关键字

String _a = "Hello";	// 合法
String $A = "Hi";	// 合法
String a = "nihao";	// 合法
String _1a = "good";	// 合法
// String 1a = "error"; 报错,标识符以数字开头不合法!
// String public = "error"; 报错,不能使用关键字!

三 数据类型-强类型语言

要求变量的使用必须严格符合规定,所有的变量都必须先定义并声明类型后才能使用!

1. 基本类型

Primitive type,包括数值类型和boolean类型。

数值类型
  • 整数类型
    • byte,占一个字节,-27~27-1
    • short,占两个字节,-215~215-1
    • int,占四个字节,-231~231-1
    • long,占八个字节,-263~263-1
  • 浮点类型
    • float,占四个字节
    • double,占八个字节
  • 字符类型
    • char,占两个字节
布尔类型

boolean,占一位,值只有 true 和 false

2. 引用类型

Reference type,包括类、数组、接口。

public class Demo02 {
  public static void main(String[] args) {
    // 八大数据类型
    // 整数
    byte a = 10;
    short b = 100;
    int c = 10000;
    long d = 100000L; // long类型要在数字后面加 L

    // 小数
    float e = 50.1F; // float类型要在后面加F
    double f = 3.14159265358979;

    // 字符类型
    char name = '朱';
    // 字符串 String不是关键字,是一个类
    String name2 = "CoderZb";

    // 布尔值
    boolean flag = true;
    boolean flag1 = false;
  }
}

四 数据类型拓展

public class Demo {
  public static void main(String[] args) {
    // 整数拓展  二进制0b  八进制0  十六进制0x
    int i = 10;
    int i2 = 010;
    int i3 = 0x10;
    int i4 = 0b10;
    System.out.println(i);  // 10
    System.out.println(i2); // 8
    System.out.println(i3); // 16
    System.out.println(i4); // 2
    System.out.println("==============================");
    
    // 浮点数拓展,银行业务如何表示,钱 BigDecimal
    // float  double
    // float 存在舍入误差,接近但不等于
    // 最好完全避免使用浮点数进行比较
    // 最好完全避免使用浮点数进行比较
    // 最好完全避免使用浮点数进行比较
    float f = 0.1f;
    double d = 1.0/10;
    System.out.println(f==d); // false
    System.out.println(f);  // 0.1
    System.out.println(d);  // 0.1
    float m1 = 2342635453235f;
    float m2 = m1 + 1;
    System.out.println(m1 == m2); // true
    System.out.println("==============================");

    // 字符拓展
    char c1 = 'a';
    char c2 = '朱';
    System.out.println((int)c1);  //97
    System.out.println((int)c2);  // 26417
    // 所有的字符本质还是数字,编码问题
    char c3 = '\u0061';
    System.out.println(c3);  // a
    // 转义字符
    // \t制表符   \n换行   \'单引号   \"双引号   \\反斜线
    System.out.println("Hello\tWorld");
    System.out.println("==============================");

    // String 对象和变量
    String str1 = new String("Hello World");
    String str2 = new String("Hello World");
    System.out.println(str1 == str2);  // false
    String str3 = "Hello World";
    String str4 = "Hello World";
    System.out.println(str3 == str4);  // true

    // Boolean 拓展  Less is More! 代码要精简!
    boolean flag = true;
    if (flag){} // 老手
    if (flag == true){} // 新手
  }
}


五 类型转换

容量从低到高:
byte、char、short、int、long、float、double
注意:byte、char、short 三种类型互相或自身运算,结果是 int。

1. 自动转换

将低容量的数据转换成高容量的。

int i = 128;
double j = i;
System.out.println(j);  // 128.0

2. 强制转换

将高容量的数据转换成低容量的。

int i = 128;
byte j = (byte)i;  // 容量不够,内存溢出
System.out.println(j);	// -128,出现问题

3. 字符转换

char c = 'a';
int d = c + 1;
System.out.println(d);  // 98
System.out.println((char)d);  // b

4. 注意点

  • 不能对布尔值进行转换
  • 不能把对象类型转换为不相干的类型
  • 高容量转换到低容量,使用强制转换
  • 转换的时候可能会存在内存溢出,或者精度问题!
System.out.println((int)23.7);  // 23
System.out.println((int)-45.89f); // -45

六 变量和常量

变量大致分为三种:类变量、实例变量、局部变量

1. 类变量

类变量,修饰符 static,可以在类的方法内直接调用

2. 实例变量

在类的内部、类的方法外部定义的变量。
通过 new 创建对象的实例,再进行访问。

3. 局部变量

在类的方法内部定义的变量,必须进行初始化!!!方法外部无法访问。

public class Demo08 {

  // 类变量 static
  static double salary = 2500;

  // 属性: 变量

  // 实例变量:从属于对象,在方法外部,不初始化,数值默认值为 0
  // 布尔值默认是 false
  // 除了基本类型,其余的默认值都是 null
  String name;
  int age;

  // main方法
  public static void main(String[] args) {
    // 局部变量; 必须声明和初始化值
    int i = 100;
    System.out.println(i);

    Demo08 demo08 = new Demo08();
    System.out.println(demo08.age);		// 0
    System.out.println(demo08.name);	// null
    System.out.println(salary);		// 2500.0
  }

  // 其他方法
  public void add() {
    //System.out.println(i); // 无法访问局部变量
  }
}

4. 常量

通过修饰符 final 定义,一经定义,不再更改。
注意:final、static、public 之类的都属于修饰符,无先后顺序;
但是,int、double 之类的属于数据类型,必须写在变量前面。


七 运算符

  • 数值运算符
    加+、减-、乘*、除/、取余%
    注意:
    public class Demo02 {
      public static void main(String[] args) {
        long a = 12372130793212L;
        int b = 123;
        short c = 10;
        byte d = 8;
    
        // 有一个变量是 double,得到的结果就是 double类型
        // 有一个变量是 long,得到的结果就是 long
        // 变量都是 short、byte,得到的结果是 int
        System.out.println(a+b+c+d);  // long
        System.out.println(b+c+d);  // int
        System.out.println(c+d);  // int
        System.out.println(10&3);  // 1
      }
    }
    
    
  • 偷懒运算符
    a += b;  // a = a + b;
    a *= b;  // a = a * b;
    
  • 自增++、自减–
    public class Demo04 {
      public static void main(String[] args) {
        // ++  -- 自增,自减
        int a = 10;
        int b = a++;  // 本质:1.b=a;    2.a=a+1;  结束后 a=11, b=11
        int c = ++a;  // 本质:1.a=a+1;  2.c=a;    结束后 a=12, c=12
    
        System.out.println(a);  // 12
        System.out.println(b);  // 10
        System.out.println(c);  // 12
      }
    }
    
  • 关系运算符
    <、>、是否相等==、是否不等!=、instanceof
    public class Demo03 {
      public static void main(String[] args) {
        // 关系运算符的结果:正确、错误
        int a = 10;
        int b = 20;
        int c = 3;
    
        System.out.println(a>b);  // false
        System.out.println(a<b);  // true
        System.out.println(a==b); // false
        System.out.println(a!=b); // true
    
        System.out.println(b%c);
      }
    }
    
  • 逻辑运算符
    与and&&、或or||、非not !
    // 逻辑运算符
    public class Demo05 {
      public static void main(String[] args) {
        // &&与and   ||或or   !非not
        boolean a = true;
        boolean b = false;
    
        System.out.println(a&&b); // false
        System.out.println(a||b); // true
        System.out.println(!a);   // false
    
        // 短路运算
        int c = 5;
        // c<4不成立,&&之后的代码直接忽略
        boolean d = (c<4) && (c++<5);
        System.out.println(d);  // false
        System.out.println(c);  // 5
      }
    }
    
  • 位运算符
    按位与&、按位或|、按位异或^、取反~、左移<<、右移>>
    public class Demo06 {
      public static void main(String[] args) {
        /*
          	A = 0100 1001
          	B = 1010 0101
          	
          A&B = 0000 0001		按位与,只有都为1,结果才为1,否则为0
          A|B = 1110 1101		按位或,只要有一个为1,结果就是1,没有1就是0
          A^B = 1110 1100		按位异或,两个相等,结果为0;不等,结果为1
           ~A = 1011 0110		取反,1变为0,0变为1
    
          位运算  左移<<相当于*2    右移>>相当于/2
    
          2<<3 = 16
          0000 0010 << 3  => 0001 0000
         */
        System.out.println(2<<3);  // 16
      }
    }
    
  • 三元运算符
    public class Demo08 {
      public static void main(String[] args) {
        // 三元运算
        // x?y:z
        // 如果x为true,结果为y,否则结果为z
    
        int score = 20;
        String level = score < 60 ? "不及格" : "及格";
        System.out.println(level);  // 不及格
      }
    }
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值