遗忘的java基础知识

java访问权限


方法重写规则:

    (1)返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类

    (2)访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为 public,那么在子类中重写该方法就不能声明为 protected。被覆盖的方法不能是 private 的,否则只是在子类中重新定义了一个新方法。

    (3)声明为 final 的方法不能被重写。声明为 static 的方法不能被重写,但是能够被再次声明。

    (4)子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为 private 和 final 的方法;子类和父类不在同一个包中,那么子类只能够重写父类的声明为 public 和 protected 的非 final 方法。

    (5)重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。


接口和抽象类的区别


抽象类与接口对比

        Java 8 中接口中会有 default 方法,即方法可以被实现。

抽象类中可以存在属性(非静态),而接口中若有属性必须是静态属性(static)。也就是说,接口中只能存在抽象方法、静态属性;而抽象类中可以存在抽象方法,具体实现,非静态属性,静态属性等。


JDK中常用的包


JDK中主要的包



String相关问题

     String源码


string维护的是final字符串数组,不可变

       常量池(专门存储常量的地方,都指的是方法区中)分为编译常量池(不研究,存储字节码的相关信息)和运行常量池(存储常量数据)

string对象创建过程


    StringBuilder与StringBuffer

                StringBuffer中所有的方法都是用了synchronized修饰符,因此线程安全,但是开销大。

    String创建对象问题


str1==str2/3 ,  与其他不相等

(1)单独使用""引号创建的字符串都是直接量,编译期就已经确定存储到常量池中;

(2)使用new String("")创建的对象会存储到堆内存中,是运行期才创建;

(3)使用只包含直接量的字符串连接符如"aa" + "bb"创建的也是直接量编译期就能确定,已经确定存储到常量池中(str2和str3);

(4)使用包含String直接量(无final修饰符)的字符串表达式(如"aa" + s1)创建的对象是运行期才创建的,存储在堆中;

(5)通过变量/调用方法去连接字符串,都只能在运行时期才能确定变量的值和方法的返回值,不存在编译优化操作.


++i与i++的区别

熟悉的表述是:前置++是先将变量的值加 1,然后使用加 1 后的值参与运算,而后置++则是先使用该值参与运算,然后再将该值加 1。

实际上:不管是前置 ++,还是后置 ++,都是先将变量的值加 1,然后才继续计算的。二者之间真正的区别是:前置 ++ 是将变量的值加 1 后,使用增值后的变量进行运算的,而后置 ++ 是首先将变量赋值给一个临时变量,接下来对变量的值加 1,然后使用那个临时变量进行运算


java对象初始化顺序

父类和子类的final static属性   >>   父类的static属性  >>  父类的static代码块  >> 子类的static属性

>>  子类的static代码块  >> 父类的非静态变量属性  >> 父类的非静态代码块 >> 父类构造函数

>>  子类的非静态变量    >>    子类的非静态代码块    >> 子类的构造函数

总结:final static在类的准备阶段已经加载好,最优先;

            static优先于非静态; 属性优先于代码块; 父类优先于子类;


throw和throws区别

throw用在方法体内,表示抛出异常

throws用在方法定义头部,表示可能的抛出异常类型。


Arrays.sort 重写匿名函数进行降序


常见排序的复杂度及稳定性比较

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,892评论 0赞 11
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 3,315评论 2赞 9
  • 面向对象笔记 一、 对象在内存中的存放方法以及被调用过程 class文件首先被加载到方法区中的class文件内容区...
    VictorBXv阅读 617评论 0赞 2
  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 1,813评论 4赞 12
  • 今天是什么日子 起床:九点四十五 就寝:十二点 天气:晴朗 心情:放松 纪念日:昨天去见了爸妈 任务清单 改进:学...
    萌斯基阅读 132评论 0赞 1

友情链接更多精彩内容