`

总结Java的一些隐蔽的知识点(不断更新)

阅读更多

开篇:学Java两年多了,知识长进了很多,最近忙着找工作,把基础又重新看了一下,发现了很多自己觉得比较隐蔽的知识点,有的是曾经看过但没记住的,有些是从来都不知道的,索性写一篇这样的博客备忘吧。

  1. 变量名:在Java中,变量名以下划线、字母、$符号开头,并且后跟下划线、字母、$符号以及数字。总之,Java中的变量名不能以数字开头,不能使关键字。
  2. Java原生数据类型在32位机中所占内存大小:byte字节、boolean(1个字节)、char(2个字节)、short(2个字节)、int(4个字节)、float(4个字节)、long(8个字节)、double(8个字节)
  3. Java中的所有浮点类型默认情况下都是double。不能将double类型的值赋给float类型的变量,即便该double类型的值处于float类型的范围内也是不可以的。比如有如下表达式:float i = 1.2;由于1.2默认在Java中是double类型所以如此赋值相当于向下转值,JVM会认为有精度损失。所以需要这么声明:float i = 1.2f;
  4. 这是一道面试题:Java中switch语句的default是不是必须的,答案:不是必须的。不写不会有语法错误,相当于if。。。else中的else
  5. 构造方法重载时:有参的构造方法可以通过this()调用无参的构造方法,但是this()必须是此构造方法的第一跳语句 “Constructor call must be the first statement in a constructor”
  6. 在继承关系中:要想生成子类的对象,首先要生成父类的对象,这是因为在子类的构造方法中隐式的调用了super()方法,也就是父类的构造方法。与this一样,super也必须要作为构造方法的第一条执行语句,前面不能有其他可执行语句。
  7. 在子类对父类的方法重写时:可以通过super.XX()的方式来调用父类的方法。同时并不必须是第一条语句。
  8. 在定义一个类的时候,如果没有显式指定该类的父类,那么该类就会继承于java.lang.Object类
  9. 在声明接口的时候abstract关键字可加可不加,因为接口interface本身是抽象的。
  10. 接口中可以有成员变量,但接口中的属性会被默认的声明为public static final类型的。
  11. Java中可以同时实现多个接口,但如果在被实现的多个接口中有相同变量名的变量的话,则会在编译是出错,因为这相当于在同一个类中声明了两个同名的变量。
  12. 当父类中某一变量为静态时,其所有子类中的该属性都指向同一位置,当一个子类修改这个属性的时候,其他子类看到的置也会改变;但如果这个父类的变量不是静态的那么,他们会享有各自的空间,相互没有影响。
  13. static方法和final方法只能继承,不能重写(Override)
  14. final类型的成员变量可在构造方法中为其赋初始值,前提是该变量没有没赋值过。
  15. 如果某个类中有静态代码块,那么当该类被实例化时,先执行该静态代码块,再执行构造方法。如果在继承关系中出现静态代码块,那么先执行顶层的静态代码块,再依次执行底层的静态代码块,再执行顶层的构造方法,再依次执行底层的构造方法。
  16. protected 所修饰的属性和方法可以在类内部、相同包以及该类的子类所访问。除接口以外的默认的(不加任何访问修饰符)的属性和方法可以在类内部以及相同包下面的所使用。接口的属性和方法默认是public的。所以如果不加修饰符那么其限定会比protected修饰更严格。
  17. java.lang包在使用的时候无需显式导入,编译由器自动帮我们导入。
  18. 字符串缓冲池的问题:这是一个经典面试题,这里只说一个结论 String a = "aaa",String b="aaa",String c = new String("aaa"),Stirng d = new String("aaa"); a==b(true) 、a.equals(b)(true)、c==d(false)、c.equals(d) true
  19. 已知I为接口 (interface I),有如下声明 I[] i = new I[10],这样是可通过编译的,以为建立的数组是一个由类似于指向I类型的指针组成的集合,并没有实例化I
  20. 每个枚举的成员其实就是您定义的枚举类型的一個实例
  21. Java中的每个对象都有一个锁(lock)或者叫做监视器(monitor),当访问某个对象的synchronized方法时,表示将该对象上锁,此时其他任何线程都无法再去访问该synchronized方法了,直到之前的那个线程执行方法完毕后(或者是抛出了异常),那么将该对象的锁释放掉,其他线程才有可能再去访问该synchronized方法。
    如果一个对象有多个synchronized方法,某一时刻某个线程已经进入到了某个synchronized方法,那么在该方法没有执行完毕前,其他线程是无法访问该对象的任何synchronized方法的。
分享到:
评论

相关推荐

    Java基础知识点总结.docx

    Java学习更是如此,知识点总结目录如下: 目录 一、 Java概述 3 二、 Java语法基础 5 数据类型 5 运算符号 14 语句 15 函数 15 方法重载(Overloadjing)与重写(Overriding) 16 数组 17 总结 18 三、 常见关键字 ...

    Java开发岗面试知识点解析

    应聘岗位均为 Java 开发方向。在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点。

    Java面试知识总结.zip

    Java基础知识点:包括数据类型、面向对象特性、异常处理、集合框架等。 Java核心技术:如多线程、网络编程、序列化等都有详细的解释和示例。 常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 ...

    一份面向Java初学者和初级工程师的知识点总结和面试题解析,着重关注面试中最常见的知识点。.zip

    Java基础知识点:包括数据类型、面向对象特性、异常处理、集合框架等。 Java核心技术:如多线程、网络编程、序列化等都有详细的解释和示例。 常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 ...

    Java课堂笔记、代码、java核心知识点梳理、java笔试面试资料.zip

    Java基础知识点:包括数据类型、面向对象特性、异常处理、集合框架等。 Java核心技术:如多线程、网络编程、序列化等都有详细的解释和示例。 常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 ...

    Java开发者或者大数据开发者面试知识点整理.zip

    Java基础知识点:包括数据类型、面向对象特性、异常处理、集合框架等。 Java核心技术:如多线程、网络编程、序列化等都有详细的解释和示例。 常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 ...

    Java面试总结.zip

    Java基础知识点:包括数据类型、面向对象特性、异常处理、集合框架等。 Java核心技术:如多线程、网络编程、序列化等都有详细的解释和示例。 常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 ...

    Java后台工程师面试总结.zip

    Java基础知识点:包括数据类型、面向对象特性、异常处理、集合框架等。 Java核心技术:如多线程、网络编程、序列化等都有详细的解释和示例。 常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 ...

    Java 笔试、面试 知识整理.zip

    Java基础知识点:包括数据类型、面向对象特性、异常处理、集合框架等。 Java核心技术:如多线程、网络编程、序列化等都有详细的解释和示例。 常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 ...

    一份超级详细的Java面试题【大厂面试真题+Java学习指南+工作总结】.zip

    Java基础知识点:包括数据类型、面向对象特性、异常处理、集合框架等。 Java核心技术:如多线程、网络编程、序列化等都有详细的解释和示例。 常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 ...

    【Java面试+Java学习指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。.zip

    Java基础知识点:包括数据类型、面向对象特性、异常处理、集合框架等。 Java核心技术:如多线程、网络编程、序列化等都有详细的解释和示例。 常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 ...

    Java面试通关宝典:深度解读核心知识点与实战技巧,全面提升面试表现力与技术实力

    本文将对Java常见面试题进行总结和解析,旨在为准备面试的Java开发者提供全面而深入的学习参考。...建议读者结合实际代码示例和项目经验,深入理解和掌握这些知识点,并不断练习和总结,以提高自己的面试成

    Java开发及面试(个人面试、工作总结、资料收集站).zip

    Java基础知识点:包括数据类型、面向对象特性、异常处理、集合框架等。 Java核心技术:如多线程、网络编程、序列化等都有详细的解释和示例。 常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 ...

    Java面试宝典5.0And6.0.zip

    该宝典系统地整理了Java初级,中级,高级的基础知识,代码质量,解题思路,优化效率等面试要点,面试的基础知识从编程语言,数据结构及算法三方面总结程序员面试知识点,世间事,很多都可投机取巧,但技术却必须靠日积月累的...

    全网最齐全的Java面试题库-附答案-持续更新.zip

    Java基础知识点:包括数据类型、面向对象特性、异常处理、集合框架等。 Java核心技术:如多线程、网络编程、序列化等都有详细的解释和示例。 常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 ...

    经历BAT面试后总结的【高级Java后台开发面试指南】,纯净干货无废话,针对高频面试点.zip

    Java基础知识点:包括数据类型、面向对象特性、异常处理、集合框架等。 Java核心技术:如多线程、网络编程、序列化等都有详细的解释和示例。 常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 ...

    Java interview-高级Java面试题2023.zip

    Java基础知识点:包括数据类型、面向对象特性、异常处理、集合框架等。 Java核心技术:如多线程、网络编程、序列化等都有详细的解释和示例。 常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 ...

    『Java八股文』Java面试套路,Java进阶学习,打破内卷拿大厂Offer,升职加薪!.zip

    Java基础知识点:包括数据类型、面向对象特性、异常处理、集合框架等。 Java核心技术:如多线程、网络编程、序列化等都有详细的解释和示例。 常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 ...

    Java面试宝典.zip

    Java基础知识点:包括数据类型、面向对象特性、异常处理、集合框架等。 Java核心技术:如多线程、网络编程、序列化等都有详细的解释和示例。 常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 ...

    Java面试笔记.zip

    Java基础知识点:包括数据类型、面向对象特性、异常处理、集合框架等。 Java核心技术:如多线程、网络编程、序列化等都有详细的解释和示例。 常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 ...

Global site tag (gtag.js) - Google Analytics