java基础(一)

  1. 八大数据类型
    byte short  int  long float double char  boolean 
     8       16    32   64     32    64       16     8
  2. 给Long类型复制后面必须加L
  3. 整数类型默认为int类型
  4. double直接复制小数类型即可,但是对于float 声明时后面必须加f
  5. 小数常量默认为double类型
  6. Boolean类型默认值为false
  7. 类的实例化初始顺序
          父类静态变量
          父类静态代码块
          子类静态变量
          之类静态代码块
          父类实例变量
          父类匿名代码块
          父类构造器
          子类实例变量
          子类匿名代码块
          子类构造器
  8. 接口与抽象类的知识
        接口默认为public abstract修饰
        接口中的方法默认为public abstract
        接口中的成员变量默认为public static final 修饰
        java8 之后接口中可以有 default 与 static 修饰的方法
        java9 之后接口中可以有 private 修饰的方法
        接口允许多继承   一个实现类可以实现多个接口
        抽象类中可以有抽象方法,也可以没有抽象方法
        抽象类中可以有构造器(供子类调用)
        抽象类只能单被继承
  9. SwitchCase
        如果case中不存在break  则会继续往下执行
        Switch中可以有int short  byte  char  枚举  和 String(java7之后)
  10. 异常
        1,多个catch匹配  顺序必须由小到大
        2,如果try catch 中有return语句会执行 则return语句会在finally语句执行结束后执行
        3,如果finally语句中有return语句,不仅会掩盖try catch中的返回值还会掩盖try catch中的异常
        4,如果finally中抛出异常,则原有异常也会被覆盖
  11. String类相关
      public static void main(String[] args) {
            
            String s1= "hello";
            String s2="hello";
            System.out.println(s1==s2);
            System.out.println(s1.equals(s2));
    
            /*
                   输出结果
                   true
                   true
             */
    
            /**
             * equals 比较的是字符串的内容
             * s1==s2 返回true是因为s1="hello"d的时候  常量池中没有"abc" 所以就new一个"abc"
             * 当s2="abc"时,常量池中存在"abc",系统就会把"abc"的引用直接赋值给s2
             * 所以 s1==s2 的结果为 true,因为它们的引用是一样的~
             */
    
            String s1="hello";
            String s2=new String("hello");
            System.out.println(s1==s2);
            System.out.println(s1.equals(s2));
    
            /*
                   输出结果
                   false
                   true
             */
    
            /**
             *  s1 是 new string() ,在 Java 中,new 一个对象就会在内存的堆中开辟一块空间,然后把引用赋值给 s1 ,
             *  一个是堆中的引用,一个是常量池中的引用所以,s1==s2 的结果为 false~~
             */
            String s1="a"+"b"+"c";
            String s2="abc";
            System.out.println(s1==s2);
            System.out.println(s1.equals(s2));
            /*
                   输出结果
                   true
                   true
             */
            /**
             * Java中有一种叫做常量优化的机制,
             * 我们在赋值的时候 “a”,“b”,“c”都是常量,
             * 系统及直接把 abc 赋值给 s1 了,
             * 这时候常量池中也就存在 “abc” 了,所以s1==s2
             */
    
          //  String s1=new String("hello");
            /**
             * 创建了几个对象?
             * 答案:2个
             * 为什么是两个
             * 请参考博客  https://www.cnblogs.com/ydpvictor/archive/2012/09/09/2677260.html
             */
    
            /**
             * String,StringBuilder,StringBuffer三者的区别
             *
             * 1,三者都是被final修饰的
             * 2,StringBuffer 是jdk 早版本出现的 ,StrigBuilder是在JDk的5.0版本里出现的,性能较快
             * 3,StringBuffer 是线程安全的  StrigBuilder  不是线程安全的
             * 4,StringBuffer 它的toString方法会在缓存中取该字符串 而 StringBuilder 它的toString方法会新new出一个字符串
             */
    
    
    
        }
    

     

  12. 重载和重写的区别:

     1) 重写 override 

  • 方法名、参数、返回值相同
  • 子类方法不能缩小父类方法的访问权限
  • 子类不能抛出比父类大的异常
  • 存在与子父类之间
  • 方法被定义为final不能被重写

   2)重载

  • 参数类型、个数、顺序(参数类型)至少有一个不同
  • 方法名相同
  • 不能重载只有返回值不同的方法名
  • 存在与父类和子类同类中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值