`

总结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是由Sun Microsystems开发的一种跨平台的编程语言,它具有“一次编写,到处运行”的特性,通过Java虚拟机(JVM)实现平台无关性。Java有丰富的类库支持,适用于...

    Java 相关的知识点总结

    Java是一种广泛使用的面向对象的编程语言,以其跨平台、高性能和丰富的类库而备受青睐。以下是对Java相关知识点的详细总结: ...不断深入实践,理解和掌握这些知识点,将使你成为一名优秀的Java开发者。

    java知识点总结

    以上内容仅是Java知识点的冰山一角,实际学习中还需要深入理解JVM原理、设计模式、反射、注解、模块化系统(如Java 9+的模块系统)以及现代开发工具如Maven、Gradle的使用。不断实践和项目经验积累,才能真正掌握...

    java重要基础知识点总结.pdf

    本文将总结Java的重要基础知识点,帮助读者深入理解和掌握这一强大的编程工具。 1. **Java基础语法**: - 类(Class)和对象(Object)是Java的核心概念,类定义了对象的属性和行为。 - 引用数据类型包括类、接口...

    java各知识点详细总结

    了解并掌握Java的异常处理、集合框架、多线程、IO流、网络编程、反射机制等进阶主题,将进一步巩固你的Java知识体系。同时,随着技术的发展,不断学习新的Java库和框架,如Spring、MyBatis等,将使你具备更全面的...

    java知识体系总结

    Java知识体系总结 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被Oracle公司收购)于1995年推出。它以其“一次编写,到处运行”的特性闻名,适用于开发跨平台的应用程序,包括桌面应用、企业...

    java知识点总结java知识点总结.doc

    Java知识点总结 1. JDK常用的包 JDK包含了许多核心包,如`java.lang`,它是所有Java程序的基础,包含了基本类型和运行时系统的基本类;`java.io`提供了输入/输出流处理;`java.util`包含集合框架、日期时间处理、...

    java基础知识点笔记

    本文将深入探讨Java的基础知识点,包括标识符、内存管理、变量分类、数据类型、运算符、类和对象的关系,以及访问修饰符等。 首先,让我们来了解Java中的标识符。标识符是用来命名变量、类、接口、方法等的符号,它...

    java 一些细节知识

    以上只是可能涵盖的部分Java知识点,实际的"java test.doc"文档可能会包含更具体、深入的内容,例如特定API的使用、最佳实践或特定问题的解决方案。对于任何Java开发者来说,不断学习和掌握这些细节知识,都能提升...

    Java基础最全知识点总结

    ### Java基础最全知识点总结 #### 一、Java概述与历史 - **简史与起源** - **项目背景**:“Green Project”是Java的初始项目名称,旨在为消费类电子产品提供支持。该项目由Sun Microsystems公司在1991年启动,...

    Java基础知识总结.pdf

    ### Java基础知识精炼 #### 一、Java概述与发展历程 Java是一种高级编程语言,由Sun Microsystems公司的James Gosling等人于1991年开始研发,原名为Oak,旨在控制嵌入式设备如有线电视交换盒和PDA。1994年正式更名...

    java基础知识点框架图

    下面,我们将深入探讨这个框架图中可能包含的一些关键知识点。 1. **Java语法基础**: - **变量与数据类型**:包括基本数据类型(如int、char、boolean)和引用数据类型(如类、接口和数组)。 - **运算符**:...

    2019年总结JAVA架构师核心知识点整理.zip

    2019年总结的Java架构师核心知识点是针对这一专业角色的关键技能和知识的全面整理,旨在帮助专业人士提升其在面试和实际工作中的表现。以下是这份资料中可能涵盖的一些关键知识点: 1. **Java基础**:包括Java语言...

    java知识点的总结

    Java知识点的总结涵盖了从基础语法到企业级框架的广泛领域,是学习和进阶Java编程的重要参考资料。以下是对这些知识点的详细阐述: 1. **Java基础**:包括基本语法、面向对象特性(封装、继承、多态)、常用API(如...

    java知识点总结大全

    Java知识点总结大全旨在帮助初学者和进阶者深入理解Java编程语言的核心概念和高级特性。以下是对标题和描述中提及的各个知识点的详细说明: 1. **编程**:编程是用特定的语言(如Java)编写指令,让计算机执行任务...

    java基础知识点总结

    以下是关于Java基础的一些关键知识点: 1. **Java的特点**: - **简单易用**:Java的设计目标之一就是让代码简洁易懂,避免了C++等语言中的指针操作。 - **面向对象**:Java完全基于面向对象编程思想,支持封装、...

    Java知识图谱-自己总结

    以下是对Java知识图谱的一些主要知识点的详细说明: 1. **Java基础**:包括变量、数据类型(基本类型和引用类型)、运算符、流程控制(if-else,switch,循环等)、方法定义与调用、类和对象的概念。 2. **面向...

    corejava核心技术知识点总结

    Java核心知识点概述 Java是一种广泛使用的面向对象编程语言,其主要特点是纯面向对象、平台无关性和安全性。在Core Java中,我们关注的核心知识点包括面向对象编程、字节码与虚拟机、环境变量设置、基本的Java编程...

    63-Java多线程知识点总结1

    Java多线程知识点总结 Java多线程知识点总结主要讲解了Java中多线程编程的基础知识,包括线程的启动、volatile变量、多线程共享数据、wait、notify、notifyAll等。 线程的启动 在Java中,线程的启动可以通过start...

Global site tag (gtag.js) - Google Analytics