java基础篇

狂神说Java

java预科篇

java三大版本:

  1. javaSE:标准版
  2. javaME
  3. javaEE:服务器开发

JDK&JVM&JRE

  1. JDK:java开发者工具
  2. JVM:java虚拟机
  3. JRE:java运行时环境

解释型和编译型语言:

  1. 解释型:我们可以理解为翻译(可以进行及时的翻译)
  2. 编译型:可以理解为出版社(只在第一次翻译,后续更新,需要重新买书)

java属于先编译再解释语言,先编译产生了.class文件,后续再进行解释

java注释

  1. 单行注释//

  2. 多行注释/**/

  3. javaDOC (一般用不到)

    /**
    * @author..
    */
    

java基础篇

标识符

  1. 关键字
  2. 标识符(字母,数字,下划线,$),数字不打头

数据类型(8个)

  1. 基本数据类型

    • 整数

      • byte
      • int(常用)
      • longlong a = 10000L,后面添加L
    • 浮点数

      • floatfloat b = 1.22f,后面添加f
      • double(常用)
    • 字符char,用单引号

    • 布尔值

      • true
      • false
  2. 引用数据类型

    • 对象
    • 接口

补充

  1. 进制

    • 二进制0b开头

    • 八进制0开头

    • 十六进制0x开头

      //十进制
      int a = 10;
      //二进制
      int b = 0b10;
      //八进制
      int c = 010;
      //十六进制
      int d = 0x10;
      
  2. 字符

    • 字符其实也是数字,她们遵循unicode码

      char c = 'a';
      System.out.printin((int)c)//得出的结果是一个数字
      
    • 转义字符

      \t
      \n
      
  3. String

    • String是一个类

      String a = new String("hello world");
      String b = new String("hello world");
      //这边a和b是不一样的,主要是因为他这个是应用类型,所以内存地址发生了改变
      String sa = "hello world";
      String sb = "hello world";
      //这边sa和sb是一样的
      
  4. boolean

    • 不可以对布尔值进行强制类型转换
  5. 类型转换

    • 高对低需要强制类型转换
    • 低对高不用转换

变量常量

  1. 变量

    • 局部变量:就是在花括号里,必须声明赋值

    • 实例变量:在类里面,不在方法里面

      • 实例变量从属于对象,如果不进行初始化,类型为默认值
      • 数值默认值:0/0.000
      • 布尔值默认值:false
      • 除了基本数据类型:其他默认值都为null
    • 类变量变量类型 变量名字 = new 变量类型

      • Scanner scanner = new Scanner(System.in)
  2. 常量final

补充

  1. 所有变量,方法类名等都需要见名知意
  2. 类:大驼峰
  3. 局部变量,方法名:小驼峰
  4. 常量:大写字母+_ MAX_VALUE

操作符

  1. + - * / %

  2. ++ --

            int num1 = 1;
    //        ++在后面,那么就是先赋值在++
    //        int num2 = num1++;
    //        上面的这行代码类似于
            int num2  = num1;
            num1 = num1+1;
    //        ++在前面,那么我们就是先加一,再赋值给别人
    //        int num3 = ++num1;
    //        上面的代码就等同于
            num1 = num1+1;
            int num3 = num1;
            System.out.println("num1:"+num1);
            System.out.println("num2:"+num2);
            System.out.println("num3:"+num3);
    
  3. Math.pow(n,m)

  4. >,<.!=

  5. &&,||,!

  6. <<,>>

    //        >> <<
    //        << 左移,就相当于*2
    //        << 右移,就相当于/2
    //        这个就相当于2*8(2的3次方)
            System.out.println(2<<3);//16
    //        2*(2的四次方)
            System.out.println(2<<4);//32
    

补充

  1. 字符串的连接+,和算术运算符+
//        字符串连接符
//        注意位置
        int numa = 10;
        int numb  = 20;
        System.out.println(numa+numb);
//       下面两个不要同的原因时,因为字符串拼接
//        第一个,一开始就是字符串,所以里面所有的加号(+),就都是用于字符串的拼接
        System.out.println(""+numa+numb);//1020
//        第二个,开始时,加号,从左往右,所以我们默认是进行数值累加,后面知道时字符串,所以直接字符串拼接
//        所以,第一个时加法,第二个时字符串拼接
        System.out.println(numa+numb+"");//30
  1. 包机制

    我们可以简单地将包理解为文件夹

java流程控制

scanner用于用户的交互

Scanner scanner = new Scanner(System.in);
        if(scanner.hasNextLine()){
//            使用next方式进行接受
//            String str = scanner.next();
            String str2 = scanner.nextLine();
//            System.out.println("获取到输入:"+str);
            System.out.println("获取到输入:"+str2);
        }
  1. 我们一般用scanner.hasNextLine(),判断用户有没有进行输入

  2. 我们一般用scanner.nextLine(),获取用户的输入

    • 我们一般不使用scanner.next()
    • 因为当中间有空格出现时,我们会自动舍弃掉空格后面的东西,获取空格之前的东西
  3. 我们也可以对类型进行限制

    • 识别int整数scanner.nextInt()

    • 识别double小数scanner.nextDouble()

      //        请输入整数
              System.out.println("请输入整数");
      //        如果下面的是整数
              if(scanner.hasNextInt()){
      //            获取搭配用户的输入
                  a = scanner.nextInt();
                  System.out.println("你输入的是整数"+a);
              }else{
                  System.out.println(("你输入的不是整数"));
              }
      
      //        请输入小数
              System.out.println("请输入小数");
              if(scanner.hasNextDouble()){
      //            获取用户输入
                  b = scanner.nextDouble();
                  System.out.println("你输入的是小数"+b);
              }else{
                  System.out.println("你输入的不是小数");
              }
      
  4. 每次用完scanner都需要关闭scanner.close(),为了节省空间。
    ---------------------------------2022-5-20---------------------------------------------

结构--顺序结构

java本身就是顺序结构

结构--选择结构

  1. if
  2. if-else
  3. if-else-if
  4. switch

java内置比较,少用‘==’,尽量使用s.equal("value")

//        switch语句的变量类型:
//        1.byte/short/int/char
//        2.7开始支持String类型
//        为什么支持了呢?原因是什么?
//        其实字符本省就是数字,他将字符串变为了数字,利用了hashCode()
//        3.case的标签必须为字符串常量或字面量
//        如果不写break,那么会造成case穿透,他会一直往下执行,直到遇到 break ,或者到最后结束了
//        case穿透
//		注意case穿透现象,所以尽量多些break
        char grade = 'A';
        switch (grade){
            case 'A':
                System.out.println("优秀");
                break;
            case  'B':
                System.out.println("良好");
                break;
            case  'C':
                System.out.println("及格");
                break;
            case  'D':
                System.out.println("不及格");
                break;
            default:
                System.out.println("不合法");
        }

结构--循环结构

  1. while

  2. do-while

  3. for

    例题

  • 运算出1-1000能被5整除的数字,并且三个一行

    //        输出1-1000能被5整除的,每行输入三个
            int n= 0;
            for (int k = 0; k <= 1000; k++) {
                if(k%5==0){
                    System.out.print(k+"\t");
                }
    //            每三个换行,差不多就是每15个输入一次
                if( k %(5*3) == 0){
                    System.out.print("\n");
                }
            }
    
  • 打印九九乘方表(记住是一列一列去打印的)

    //        打印九九乘法表
    //        先打印第一列,再去去除重复项
    //        i1,是内部,i2是外部的
            for (int i1 = 1; i1 < 10; i1++) {
                for (int i2 = 1; i2<=i1; i2++) {
                    System.out.print(i1+"*"+i2+"="+(i1*i2)+"\t");
                }
                System.out.print("\n");
            }
    
  • jdk7+新特性,用于遍历数组和集合

    //        定义一个数组
            int[] numbers = {10,20,30,40};
    //        对数组进行遍历
    //        类似于语法糖
            for (int x:numbers){
                System.out.println(x);
            }
    
  • 打印三角形

    //        打印三角形,打印5行
    //        先空格再星星,再星星
            for (int p = 0; p <= 5; p++) {
                for (int q = 5;p<=q ; q--) {
                    System.out.print(' ');
                }
                for (int q = 0;q<=p ; q++) {
                    System.out.print('*');
                }
                for (int q = 0;q<p ; q++) {
                    System.out.print('*');
                }
                System.out.println();
            }
    

    补充

  • break:跳出一整个循环

  • continue:只跳出这一次循环

posted @ 2022-05-19 20:44  summer在writing  阅读(13)  评论(0编辑  收藏  举报