黑马程序员技术交流社区

标题: 技术帖 [打印本页]

作者: 仰望星空lp    时间: 2019-5-28 22:24
标题: 技术帖
数据类型转换:

  自动类型转换:
     等号右边的数据值的数据类型的范围小于左边的数据类型
  
        long num = 110; //右边是int 类型 左边是 long类型
               
  强制类型转换:

       int num = 100L;
           出现的问题:数据溢出  byte -128~127    200 -3
              溢出的数据没有任何的规律 不拿他进行相关的运算的          
                   精度损失:

        byte  short  char 进行运算的时候 先把提升int 类型再进行运算                                  
                
          
  四则运算:
      不同的数据类型进行计算 结果取数据范围最大的
          
          字符串类型 使用加号 是进行拼接
          字符串类型可以通过使用加号和任意的数据类型进行拼接 得到的结果还是字符串类型
          
自增自减:

    只能用在变量上    num++  num--  ++num --num
       
         使用:
            1.单独使用   ++前 和 后++ 功能一样的
                2.混合使用:
                     ++前  先加1后使用
                         后++  先使用该数据 使用完了 再加1
                         
        赋值运算符:
            +=  num +=10;//num = num+10;
                -=  num -=10;//num = num-10;
                *=  num *=10;//num = num*10;
                /=  num /=10;//num = num/10;
                %=  num -=10;//num = num%10;
       
    比较运算符:
            > <  >= <=  !=  ==
               
                比较运算符结果都是布尔类型
               
    逻辑运算符
           与 短路与: &&  短路效果
           或 短路或:
           非
          
        /*   
           public static void test2() {
        int i1 = 5;
        boolean result = (i1++ > 5) || (++i1 > 4);
        System.out.println(result);
        System.out.println(i1);

      }

           public static void test1() {

        int i1 = 5;
        boolean result = (i1++ > 5) && (++i1 > 4);

        System.out.println(result);
        System.out.println(i1);

    }
  
  */
  三元运算符
    格式:
              数据类型  变量名 = 布尔表达式 ? 表达式A : 表达式B;
IDEA的安装和使用:
    区分IDEA的项目和模块
             只要里面有.idea文件夹 是不是project
                 里面有对应的src和iml 属于模块
               
数组:
     一个容器 能够存储多个相同类型的数据  
          定义的格式:
               int[] arr;  double[] arr;
                  // int arr[];
                   数据类型[] 变量;
                  
                  动态初始化(创建) 只需要知道一个是 数据类型 长度
                    格式:
                           数据类型[] 变量 = new 数据类型[长度];  
                          
                            boolean[] b = new boolean[2];
                                               
                          
                           只要是看到中括号[] 优先考虑是不是数组
                           长度 指的是我们创建的数组里面存储几个具体的元素
                            new 代表创建一个新的对象 (在内存里面 申请一个新的空间 保存数据)
                               
                         如何访问数组里面的元素:
                  根据 索引(下标)                         
                  
        内存:
           硬盘   内存         缓存(寄存器 CPU)
                  
                         **  栈 区 Stack:
                                1.存储的都是局部变量
                                        2.方法执行的时候会进栈执行
                               
                         **  堆区  Heap:
                                  new 出来的东西都在堆区里面

                   *  方法区 :
                               加载字节码文件
                                                  
                           本地方法栈
                           寄存器
                  
         
         静态初始化:
         
                格式:
                       
                         数据类型[] 变量 = new 数据类型[]{元素1,元素2,...};
                                 
                                 int [] arr = new  int[]{2,3,5,8};
                                 
                     静态的省略格式不能拆分成两部分
                                  //例如:int [] arr = new  int[]{2,3,5,8};==> int [] arr; arr = new  int[]{2,3,5,8};
                                  //错误的案例: int [] arr ={2,3,5,8};  ==> arr ={2,3,5,8};
                                  
                                 变量也可以作为静态的元素存储
                                  // 例如: int a =10;  int b = 11;  int[] arr = {a,b};
                                     
         
         两个异常:
                  ArrayIndexOutOfBoundsException  //数组的索引越界异常   
                            int[] arr = new int[5]; //最大索引是4  arr[6]
                               
                          NullPointerException //空指针异常  有没有给数组进行赋值
                          
                                //随机生成10个0-9之间的随机数存入数组中
                                        int[] arr = new int[10];

                                        Random rd = new Random();

                                        for (int i = 0; i < arr.length; i++) {
                                                int num = rd.nextInt(10);
                                                arr[i] = num;
                                        }

                                        for (int i = 0; i < arr.length; i++) {
                                                System.out.println(arr[i]);
                                        }
面向过程:C语言  烤鸭  买鸭子-->杀了-->处理--> 买烤箱 --> 看食谱 --> 操作  ---> 吃
             洗衣服  把衣服泡一会--->找个搓板 ---> 手洗 ---> 拧干 -->过水  --->晾起来
            注重的是处理的过程 以及自己的亲力亲为
  
  面向对象:去全聚德 做一个烤鸭
            洗衣机
            关注的对象   全聚德
                       
                       
        对象(万物皆对象)
       
          类(学生类)     学生类: 姓名 年龄 性别   吃喝玩乐 学习 敲代码  玩游戏
          
          现实世界中  先有对象   先有类   类 是抽象的   
          
          java里面 先有类 再有对象  手机(设计图  --->  生产手机)  
                    类更像是一个模板
                               
        什么是类:
                一类对象的共有属性的一个抽取  
             
        什么是对象
                 实在存在的事物
                         
         类和对象是什么关系
                   手机类   和  小米手机
                           学生类   和   张三
                          
        类的创建:
         格式:

       public class 类名{
                  
                  //  1.成员变量
                 //  int a = 10;
                   int  age;
                   数据类型  变量名;
                  
                 
                 //  2.成员方法
                 
                /*  public static  void show(){
                          
                  }
                 */
                   public  void show(){
                          
                  }
                  
                  
           }                 
                         
      创建一个类:
             车(Car)
                  //  1.成员变量  本身的属性   price  brand
                  //  2.成员方法  本身的行为   跑   兜风   
               
                 Student
                    属性:姓名 年龄 性别
                        行为: eat  drink  play  happy   敲代码 clickCode   playLOL
                          
                          
          对象的创建:
              创建对象的格式:
                        类名  对象名 = new  类名();
                        //        Phone  p  =  new  Phone();
                        //  Car  car =  new Car();
               
                 使用类里面的属性和行为:
                      属性 (成员变量)
                          行为  (成员方法)
                             
                        成员变量和成员方法在调用的时候 需要使用对象名进行调用
                               
                                调用格式:
                                        对象名.成员变量 = 数据值;//给成员变量赋值
                                                对象名.成员方法();   //调用成员方法
                          
                           成员变量的初始值 引用数据类型默认值是 null
                                             int  0
                                                                 double 0.0
                                                                 boolean false
                            
                          
                成员变量和局部变量的不同:
                局部变量都是在方法里面(方法的参数 也是属于局部变量) 必须得给初值
                                成员变量 (成员位置:在类中 其他方法的外面) 如果不给其赋值 系统给直接给其初始化的值
                               
               
        private 修饰什么? 成员变量 成员方法          只能是当前的类才能进行访问        
                          
                          
                        this 使用的位置 实在那:在成员方法里面  
            this 的功能是 区分成员变量 和局部变量                       
                        this 指代的是什么?
                               因为成员方法的调用必须得使用对象进行调用
                                   成员方法中的 this 指的是调用该方法的对象  
                          
                        封装最主要的好处 是提高代码的安全性
                       
                         支付功能  支付宝 提供一个  jar包:存储都是.class 文件     API 功能的说明
                         
                               
                        构造方法的
                       
                                功能: 创建对象使用
                                       
                                格式:
                                                public 类名(参数列表){
                                                        方法体;
                                                }
                                               
                                调用:  new 类名(参数列表);
                         注意点:
                             1.如果你不写构造方法  编译器免费赠送给你一个不带参数的构造方法
                                 2.如果你写了 哪怕是只有一个 编译器就不再赠送给你无参的构造方法
                                 3.一般创建 我们只创建2个 一个是无参的 另外一个是全参的
                                 
                       
                       
                        一个标准的类(JavaBean)包括哪些内容:
                            1.成员变量 用 private 修饰
                                2.构造方法 无参数的  全参的
                                3.提供 Getter/Setter方法
                               
                                //show方法只是为了展示 结果展示  toString()




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2