基本语法

  • 标识符的命名规则
    • 26个英文字母,数字,下划线,$
    • 数字不能开头
    • 关键字保留字不能用,但是可以拼接
    • 不能有空格
  • 标识符的命名规范
    • 包名:小写
    • 类名、接口名:大驼峰
    • 方法名、变量名:小驼峰
    • 常量:大写
  • Java 变量数据类型划分
    • 八大基本数据类型
      • 整型
        • byte --> 1个字节 --> 8bit
        • short:2个字节
        • int:4个字节
        • long:8个字节
      • 浮点型
        • 单精度 float:4个字节
        • 双精度 double:8个字节
      • char:2个字节
      • boolean:true or false
    • 引用类型
      • 接口
      • 数组
  • 基本数据类型变量之间自动类型提升运算
    • 低精度自动转换成高精度的
    • java中 整数是默认 int 浮点默认 double
    • byte、short、char之间任意基本运算后会自动转换成int型
    • byte 、short 、char --> int --> long --> float --> double
  • 基本数据类型强制数据转换规则和可能出现的问题
    • 高精度转低精度
    • 可能出现精度损失
    • 使用强转符 ()

定义变量

这两个后面要带个字母

long l1 = 322455666L;

float f1 = 12.3F;

转义字符的运用

boolean isMarried = true;
if(isMarried){
    System.out.println("你已经结婚了,不能参加单身party,很遗憾!");
        //System.out.println("你已经结婚了,不能参加单身party,\n很遗憾!"); 这里\n是转义字符的意思,表示换行。
        //System.out.println("你已经结婚了,不能参加单身party,\\n很遗憾!"); 这里\\n是转义字符的意思,表示在程序中输出\n。
        //System.out.println("你已经结婚了,不能参加\"单身\"party,\\n很遗憾!"); 这里\"单身\"是转义字符的意思,表示在程序中输出"单身"。
}else{
    System.out.println("你可以多谈谈女朋友!");
}
  • 自动类型提升:
    结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
    byte、char 、short --> int --> long -->float-->double
    特别的:当byte、char、short三种类型的变量做运算时,结果为int型

  • 字符串

    字符串定义时候一定要有"";
    char c = '';//编译出错,''里面一定要有字符,空格也是
    String s1 = "";//这是可以的,因为里面没有字符串也可以
    +:在Sting中,这个是 连接 符号

    char c = 'a';//97  A:65
    int num = 10;
    String str = "hello";
    System.out.println(c + num + str);//107hello
    
    // * *
    System.out.println("*	*");
    System.out.println('*' + '\t' + '*');//不行,字符相加
    

二进制

image-20230408231935917

image-20230408234026653

public static void main (String[] args){
    int num1 = 12;
    int num2 = 5;
    int result2 = num1 / num2 * num2;
    System.out.println(result2);//10
    
    double result3 = num1 / num2;
    System.out.println(result3);//2.0
    
    double result3 = num1 / (num2 + 0.0);
    System.out.println(result3);//2.4
    
    double result4 = (double)num1 / num2 ;
    System.out.println(result4);//2.4
    
    // %:取膜(取余数)
    //结果的符号与被模数的符号相同 
    int m1 = 12;
    int n1 = 5;
    System.out.println("m1 % n1 = " + m1 % n1);//12
    int m2 = -12;
    int n2 = 5;
    System.out.println("m2 % n2 = " + m2 % n2);//-12
    int m3 = 12;
    int n3 = -5;
    System.out.println("m3 % n3 = " + m3 % n3);//12
    int m4 = -12;
    int n4 = -5;
    System.out.println("m4 % n4 = " + m4 % n4);//-12
    
    short s1 = 10;
    s1 += 2;
    System.out.pringln();//12  不会改变变量本身的数据类型
   
}
public static void main (String[] args){
    //练习1
    int i = 1;
    1 * = 0.1;
    System.out.println(i);//0
    i++;
    System.out.println(i);//1
    //练习2
    int m = 2;
    int n =3 ;
    n *= m++;//n=n*m++;
    System.out.println("m=" + m);//3
    System.out.println("n=" + n);//6
    int n1 = 10;
    n1 += (n1++) + (++n1);// n1=n1+(n1++)+(+n1);
    System.out.println(n1);//32
}

boolean

public static void main (String[] args){
    boolean b1 = true;
    boolean b2 = false;
    System.out.println(b2 == b1);//false
    System.out.println(b2 = b1);//true
}

逻辑运算符

  1. 逻辑运算符操作的都是boolean类型的变量
  • & 逻辑与 and

  • && 短路与

  • | 逻辑或 or

  • || 短路或

  • ! 逻辑非

  • ^ 逻辑异或 (小技巧:两者相同 false,两者不同为ture)

a b a&b a&&b a|b a||b !a a^b
true true true true true true false false
true false false false true true false true
false true false false true true true true
false false false false false false true false
public static void main(String[] args) {
    // & 和 && 区别
    // 相同点1: 不管是 & && 两者结果没变
    // 相同点2: 当符号左边是true时候,符号右边会继续执行
    // 不同点:  当符号左边是false时候,符号右边& 执行, &&不执行
    // 开发中推荐使用 &&

    boolean b1 = true;
    b1 = false;
    int num1 = 10;
    if (b1 & (num1++ > 0)){
        System.out.println("我现在在北京");
    }else {
        System.out.println("我现在在南京");
    }
    System.out.println(num1);

    boolean b2 = true;
    b2 = false;
    int num2 = 10;
    if (b2 && (num2++ > 0)){
        System.out.println("我现在在北京");
    }else {
        System.out.println("我现在在南京");
    }
    System.out.println(num2);

    // | 和 || 区别
    // 相同点1: 不管是 | || 两者结果没变
    // 相同点2: 当符号左边是false时候,符号右边会继续执行
    // 不同点:  当符号左边是true时候,符号右边| 执行, ||不执行
    // 开发中推荐使用 ||

    boolean b3 = false;
    b3 = true;
    int num3 = 10;
    if (b3 | (num3++ > 0)){
        System.out.println("我现在在北京");
    }else {
        System.out.println("我现在在南京");
    }
    System.out.println(num3);

    boolean b4 = false;
    b4 = true;
    int num4 = 10;
    if (b4 || (num4++ > 0)){
        System.out.println("我现在在北京");
    }else {
        System.out.println("我现在在南京");
    }
    System.out.println(num4);
}

位运算符

运算符 运算 范例
<< 左移
>> 右移
>>> 无符号右移
& 与运算
| 或运算
^ 异或运算
~ 取反运算
  • 位运算符操作的都是整型的数据

  • 左移 : 在一定范围内,每向左移1位,相当于 * 2

    右移: 在一定范围内,每向右移1位,相当于 / 2

  • 三元运算符:

    (条件表达式)?表达式1:表达式2

    1真大师

    凡是可以使用三元运算符的地方,都可以改写为 if else

    反之,不成立。

    如果程序既可以使用三元运算符,又可以使用 if lese 结构,那么选择三元运算符,原因: 简洁、效率高

    //表达式1 表达式2 类型为统一的类型
    int m = 12;
    int n = 5;
    double num = (m > n)? 2 : 1.0;
    //三元运算符可以嵌套的
    int m = 12;
    int n = 12;
    String maxStr = (m > n)? ("m大" : ((m == n)? "m和n相等" : "n大");
    System.out.println(maxStr);
    
//Scanner 注意点
/*
1.java.util.Scanner
2. 实例化Scanner
3. 调用相关方法 next()、nextInt()、nextDouble等

注意点:要输入指定类型的值,不然会抛异常 InputMisMatchException
*/

public class Application {
    public static void main(String[] args) {
        Scanner myScanner = new Scanner(System.in);
        System.out.println("请输入你的性别(男/女)");
        //因为Scanner类没有 Char 类型,可以先转String  然后在通过String类的方法 charAT()
        String sex = myScanner.next();
        char firstSex = sex.charAt(0);
        System.out.println(firstSex);

    }
}
  • if else 说明:
  1. else 结构是可选的。
  2. 针对于条件表达式:

如果多个条件表达式之间是“互斥”关系(或没有交集的关系),哪个判断和执行语句声明在上面还是下面,无所谓。
如果多个条件表达式之间有交集的关系,需要根据实际情况,考虑清楚应该将哪个结构声明在上面。
如果多个条件表达式之间有包含的关系,通常情况下,需要将范围小的声明在范围大的上面。否则,范围小的就没机会执行

public class Application {
    public static void main(String[] args) {
        //结果是 4
        int x =4;
        int y =1;
        if(x>2)
            if(y>2)//没有大括号 可以照顾一行
                System.out. println(x + y);
                //System. out. println("atguigu");
        else //就近原则
            System.out.println("x is"+ x);
        }
}

posted on 2023-04-09 00:03  盗版太极  阅读(39)  评论(0)    收藏  举报

导航