Java基础语法

变量名(标识符 )的命名规范

1.变量由数字,字母,下划线,¥来组成

2.不能以数字开头

3.变量名满足驼峰式写法

大驼峰:每个单词的首字母都大写

小驼峰:每一i个单词首字母小写,剩余的其 他单词首字母都大写

  • 变量的类型测试

  • 重点:

  • 八大数据类型对应的字节数及中英文

  • char类型的运算

  • float类型可以由哪些类型表示

  • 隐式转换(自动),手动去强制转换

  • 不兼容的类型:从int转换到byte可能会有损失(内存泄漏)

  • public class Demo6{
        public static void main(String[] args )
        {
            byte a=127; //127默认是int
             byte b=(byte)128; //byte[-128,127] ,手动强制转换 
                
                Short c=32767; //不兼容的类型:从int转换到short可以会有损失
            short d=(short)-32769; //short[-32768,32767]
            //数据类型的双边溢出
            int x=100;
            long y=2147483650L; //过大的整数
            //*当值超过int最大值时,赋值给long时必须加L;
            //当值在int范围时,赋值给long时可以不用加L;
            //自动/隐式转换;小范围【自动】向大范围转换
            byte aa=10;
            short bb=aa;
            int cc=aa;
            short dd=aa;
            /*java中当 存在两个变量之间赋值时需要看数据类型
            大类型 变量=小类型的值;//自动转换
            小类型 变量=大类型的值;//出现损失值
          */
            short f=10;
            short h=f+1;
            //short h=(short)f+1; 出错:1是int,f是short,求和后的数据类型也应该是int
            int h=f+1;
            
        }
    }

    字符类型的相关操作

    public class Demo7{
        public static void main (String[] args){
            //float用法
            //浮点型默认double类型
            //double八大基本类型中范围最大的
            System.out.println(2);
                //布尔类型boolean true  false
                System.out.println(true+1);//错误,二元运算符Boolean不能参与转换
                //精度损失
                int test=(int)18.9; //取整(不会四舍五入)
                //内存溢出
       short test2=(short)32768;
            // 
        }  
    }

    运算符

     /**算数运算符**/
    public class Demo8{
        public static void main(String[] args){
            //加法+
            //2.减法-
            //3.乘法*
            System.out.println(10*10*10);
            //4.除法/(Java默认是整除)
                System.out.println(9/2);//4
                System.out.println(9.0/2);//4.5
                //5.重点:求余数(取模%)
                System.out.println(8%3);//余数为2
            int score=678;
            //获取个位,十位,百位
            int bai=score/100;
            int shi=score/10%10;
            int ge= score%10;
            //获取1234
            int s=1234;
            int qian=s/1000;
            int bai=s/100%10;
            int shi=s/10%10;
            int ge=s%10
        }
    }

    自增运算符

    public class Demo{
        publiic static void man(String[] args){
            int a=1;
            a=a+1;
            a++;
            ++a;
            //整点:当++a,a++单独使用时,效果都是一样的
            System.out.println(a);
            int b=1;
            Systeem.out.println(b);
            //++放在前:先加后参与运算
            //出题:计算出xyz的值
    ​
            int x=10;
            int y=5;
            //int z=x++ *10 /--y; //25
           
            //int q=x++% 3- --y; //-3
            int w=x++% 3- --y+ ++x; //9
            //考点:自增运算结束后元素就会会自增/自减
            
        }
    }

    关系运算符

    public class Demo{
    public static voi main(String[] args){
        //1.关系运算符(结果永远是Boolean)
        System.out println(3>5); //false
        System.out.println(3<5); //true
        重点:如何判断两个值是否相等
            //Java中=表示赋值
            /*1.基本数据类型(八种)通过==比较数值
            2.引用数据类型字符串==比较的是地址
            */
          String str="abc"; //字符串常量
        String str2="abc";
        String str3= new String("abc");
            System.out.println(str==str2);//地址相同
        System.out.println(str==str3); //地址不相同
        //若只想比较字符串中的内容,不管地址
        System.out.println(str.equals(str3));//true
    }
    }

    逻辑运算符

    public class Demo{
        public static void main(String[] args){
            //逻辑运算符 与或非
            //事件1  事件2  独立的结果都是Boolean
            /*
            与& 事件1和事件2同时满足时从才成立
            & 判断两次
            && (短路与):当事件1为false时,事件2将不会执行
            */
            //1.与事件 (考点:多项选择)
            System.out.println(3>5 &5<6);
            System.out.println(3>5 &10/0 >8);
            System.out.println(3>5 &&10/0 >8); //false
            
            
            /*
            或
                事件1和事件2只要有一个处理则结果就是true
                | :判断两次
                ||:当事件1为true时,则事件2就不会执行
            */
            
            /*
            非
            非真即假,非假即真
            ! 
            */
            System.out,println(!true);
            
            //判断闰年的表达式
            
                yaer%4==0 && year %100!=0|| yaer% 400==0;
                
        }
    }

    赋值运算符

    public class Demo{
        public static voia main(String[] args){
            //面试题:
            short num=10;
            num=num+1;
            num+=1;
            //请问以上代码中那句会出错,为什么?
        }
    }
    计算机中常见编码方式的计算
    
    public class Demo{
        public static void main(String[] args){
            byte a=+3;
            //1.源码 0000 0011
            //-3源码  |-3|=3  0000 0011---1000 0011
            //规定最高位(最左边的)默认为符号为0:整数1:负数
            //源码对程序员是友好的,对于计算机不能参与运算
            //计算机中的数值一律采用:补码存储并计算
            2.反码(将二进制码按位取反)
                //正数:源码=反码=补码
           /*
           -3反码
           1000 0011
           反码
           0111 1100 
           */
        }
    }

    位运算符

    public class Demo{
        public static void main(String[] args){
            *//位运算符
                //byte 2 & 3  &按位与
                2二进制 0000 0010
                3二进制 0000 0011
                -----------&-----两个同时为1时才会是1,其余都为0
                        0000 0010
                //2.byte 2| 3 |按位或
                2二进制 0000 0010
                3二进制 0000 0011
                -----------&-----只要有1就为1,两个都为0才会为0
                        0000 0010
                
                //byte 2 ^ 5   ^异或
                2二进制    0000 0010
                5二进制    0000 0101
                -----------^--------只要两个不一样就为1,一样为0
                          0000 0111
                System.out.println(2^5);
            //异或特殊规则 z=x^y   z^y 就可以获取到x
            /*
            正文内容:1314
            私钥:666
            密文:正文内容 ^ 私钥
            解密:密文^私钥
            */
            5.左移 <<
                4<<2
                4补码:  0000 0100
                -------------<<----
                         0001 0000
                规律:num << n  num *2的n 次方
                
                面试:如何高效计算3*8   17*16
                3<< 3
                    0000 0011
                    0001 1000
                
                重点掌握  右移>>
                10>>1
                10补码: 0000 1010
                -------------->>---
                        0000 0101
                规律:num>>n num/2的N次方
                面试:容器容量capacity=10,现在想要扩容到以前的2倍
                capacity<<1 扩容2倍
                capacity=capacity>>1
                int capacity=10;
            System.out,println()
        }
    }

    一元运算符

    public class Demo{
        public static void main(String[] args){
            //一元运算符 ++ -- !
           // 二元运算符  + - * / % ~ & | &&  ||
            /*三元运算符
            语法:条件表达式?事件:事件
        }
        含义:当条件为真时,执行事件1;
            当条件为假时,执行事件2;
            */
            //找最大值
            int a=10;
            int b=32;
            int max=a>b?a:b;
            int min=a<b?a:b;
            System.out.println("最大值:"+max);
            //用于打印输出
            
    }
    //键盘输入的获取Scanner扫描器
    import java.util.Scanner;//扫描工具类
    import java.lang.Math; //语言包 数学工具包
     public class Demo{
         public static void main(String[] args){
             //System.in 键盘输入流(字节流)
            Scanner sc= new Scanner(System.in); //扫描控制台的键盘输入
             String str=sc.next(;); //会产生系统的阻塞(等待用户键盘输入,回车键释放阻塞) (next()只要遇到空格就结束了)
                 System.out.println("键盘输入:"+str);
            
             String str2=sc,nextLine();
             //一次读一行\n
            System.out.pritnln("请输入整数");
             int num=sc.nextInt();
             short num2=sc.nextShort();
             
             System,out,println("整数:" +num);
             
             //java.util.InputMismatchException 输入不匹配异常
             //重点:Scanner中没有提供sc.nextChar()
             //字符串:有多个单个字符组合成的一段有序文本
             //通过键盘获取字符
             String str=sc.nextLine();
             char ch=str.charAt(0);
             System,out.println("获取的字符:"+ ch)
            /* String str="shanghai2019上海"
                 sc.nextLine.charAt(index);//字符串的索引*/
             
         }
     }

    Scanner使用

    1.每次键盘输入都会产生阻塞,回车键释放阻塞

    2.八大基本数据类型除char都有自己的方法

    scanner.nextXxx();

    3.键盘如何获取单个键盘

    Java程序:流程控制、

    //选择控制:单分支选择
    
    /*单分支选择语法
    
    if(条件){
    
    //条件成立时执行的代码
    
    }
    
    else{
    
    //条件不成立时执行的代码
    
    }
    
    //1.判断一个数是偶数还是奇数
    int num=13;
    if(num%2==0){
        System.out.prinln("这个数是偶数" +num);
    }
    else{
        System.out.println("这个数是奇数");
    }
    //2.键盘输入一个数,判断是奇数还是偶数
    import java,util.Scanner;
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入一个数:");
    int number= sc.nextInt(); //会产生阻塞
    //如何判断是否闰年,四年一闰且百年不闰,或者四百年再闰
    if(number%4==0 and number100!=0 or number%400==0){
        System.out.println("是闰年"+number);
    }
    else{
        System.out.println("不是闰年"+number);
       
    }
    //单分支的特殊情况
    
    //1.if..elase 可以与三元运算符相互转换
    
    int a;
    int b=20;
    if(b%4==0){
    a=1;
    ​
    }
    else{
    a=0;
    //等效与
        int x= a%4==0?1:0;
        
    }
    ​
    //特殊的语法中有if
        

  • 多分支选择

    if(条件1){

    //条件1成立后执行

    }else if(条件2){

    //条件2成立后执行

    }else if(条件3){

    //条件3成立后执行

    }else {

    //以上条件都不满足执行

    }

    if(条件1){
    ​
        //条件1成立后执行
    ​
    }else if(条件2){
    ​
        //条件2成立后执行
    ​
    }else if(条件3){
    ​
        //条件3成立后执行
    ​
    }else {
    ​
        //以上条件都不满足执行
    ​
    }

    switch开关选择语句

  • 语法

    开关选择语句
         *      switch(条件表达式){
         *          case 常囊1:
         *              执行条件1成立后的代码;
         *              break;
         *          case 常囊2:
         *              执行条件2成立后的代码;
         *              break;
         *          .....
         *      default:
         *          所有case都不满足时才会执行;
         *          break;
         * }
         * 考点:
         * 1.switch(表达式):表达式的可用类型
         *  基本类型:byte  short int char (不可用:long  boolean float  double)
         *  引用类型:String enum枚举
         *  
         *  bug:
         *  1.java.lang.IllegalStateException:Scanner closed Scanner在使用前被关闭了
         *  2.Java.lang.StringIndexOutOfBoundsException:String index
    案例

    eg1:

    public class switch01 {
        public static void main(String[ ]args) {
            System.out.println("欢迎进入图书管理系统");
            Scanner scanner=new Scanner(System.in);
            int num=scanner.nextInt();
            switch(num) {
            case 1:
                System.out.println("登录");
                break;
            case 2:
                System.out.println("注册");
                break;
            case 3:
                System.out.println("退出(退出系统或程序)");
                System.exit(0);
                break;
                
            }
            scanner.close();
        }
    ​
    }

    Scanner

    ​
    Scanner疑问解答
        1.sc.nextLine();使用时尽量都在一起使用,中间不要执行其他nextXxx() 
        若使用了就会自动释放阻塞,导致字符串内容为0】:若要不报错则需要重新创建Scanner

    default注意点:

    /*default*/
    public class Demo1{
        public static void main(String[] args){
            int i=10;
            in y=4;
            switch(y){
                case 1:
                    System.out.println(111);
                    i++;
                    break;
                default:
                    System.out.println(000);
                    i++;
                case 2:
                    System.out.println(222); 
                    i*=3;
                case 3:
                    System.out.println(333);
                    i%=4;
                    break;
            }
           System.out.println(i);
        }
    }

    循环:

    1.作用:将重复的操作反复在一个地方执行

    减少代码的冗余,提高可读性

    3.分类:

    while 当型循环

    do....while 直到型循环

    for循环(使用最多的循环)

    4.while语法

    while(循环条件){
    需要每次都执行的重复操作
    }
    //如何控制循环次数
    int i=1;
    while(i<=10){
        System.out.println("000")
            i+=1;//i++;
    }

    案例1 求1+2+3....+100?

    public class Demo2{
        public static void main(String[] args){
            int i=1;
            int mun=0;
            while(i<=101){
                num=num+i;
                i++;
                System.out.println(num);
            }
        }
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

╰つ小③╮扼当吥起

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值