| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Java基础知识总结 -> 正文阅读 |
|
[Java知识库]Java基础知识总结 |
文章目录
前言随着对Java学习的不断深入,愈发意识到无论是SSM框架、SpringBoot又或者是SpringCloud微服务架构,都是建立在Java基础上的,Java基础对于日后的发展与提升意义重大,因此回过头来结合面试题来对Java基础做一个总结,用于回顾复习与提升自己,同时也作为自己之后的面试复习资料。 1. 面向对象的特征有哪些方面?
2. 作用域public、private、protected写以及不写时的区别?
3. String 是最基本的数据类型吗?String不是最基本的数据类型,String是引用类型,底层维护的是char类型的数组 4. short s1=1; s1=s1+1;有什么错?short s1=1; s1+=1;有什么错?执行
对于
对于 5. Java 有没有goto?goto是Java中的保留字,现在没有在Java中使用 6. int 和Integer 有什么区别?
7. &和&&的区别?&即可以作为位运算符表示按位与运算,也可以作为逻辑运算符,&&只能作为逻辑运算符,表示逻辑与(and),有短路(当左侧判断条件为false时就不会去执行右侧的判断条件)的作用。 8. 简述逻辑操作(&,|,^)与条件操作(&&,||)的区别?
9. Stack 是什么?Stack称为栈,是一种线性集合,也可以说是一种操作受限的线性表,其添加和删除元素都按照先进后出(后进先出)的原则来处理。 10. switch是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?switch(express)中,express 是一个整数表达式,支持的参数参数有:byte、int、short、char、String与enum(枚举类型)。 11. 数组有没有length()方法? String有没有length()方法?数组没有length()方法,有length的属性。String有length()方法。 12. 构造器Constructor 是否可被Override?构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。 13. String 类是否可以被继承?String类是final类,因此不可以继承。 14. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里是值传递还是引用传递?这里是值传递。Java编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。 15. String和StringBuffer的区别?相同点:String和StringBuffer类都可以储存和操作字符串( 即包含多个字符的字符数据 )。 16. String、StringBuffer、StringBuilder的区别?可变与不可变:
StringBuilder与StringBuffer都继承自AbstractStringBuilder类,在AbstractStringBuilder类中也是使用字符数组保存字符串,但是并未使用final修饰,因此StringBuffer和StringBuilder为可变的。 是否多线程安全:
如果程序不是多线程的,那么使用StringBuilder效率高于StringBuffer 17. Overload 和Override的区别? Overloaded的方法是否可以改变返回值的类型?方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现。重写是父类与子类之间多态性的一种表现,重载是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,可以说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 18. 描述一下JVM加载Class文件的原理机制?JVM中类的装载是由ClassLoader和它的子类来实现的,ClassLoader是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。 19. Java中会存在内存泄漏吗?会;Java中可能会存在无用但可达的对象,这些对象不能被GC 回收,导致耗费内存资源。 20. 静态变量和实例变量的区别?静态变量也称为类变量,归全类共有,它不依赖于某个对象,可通过类名直接访问;而实例变量必须依存于某一实例,只能通过对象才能访问到它。 21. 是否可以从一个static方法内部发出对非static方法的调用?不可以。static方法是静态方法,是属于类的方法,非static方法是属于对象的方法。因为非static方法是要与对象关联在一起的,必须在创建出一个对象后,才可以通过这个对象调用非static方法;而static方法可以直接通过类名来调用,不需要创建对象。也就是说,在一个static方法被调用时,还可能没有创建任何实例对象,此时如果从static内部发出对非static方法的调用,非static方法是无法关联到对象的。 22. GC 是什么? 为什么要有GC?GC是垃圾收集(Gabage Collection) 23. String s = new String(“str”);创建了几个String Object?两个对象,一个是"str",一个是指向“str”的引用对象s。 24. 接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承实体类(concrete class)?接口可以继承接口,抽象类可以实现(implements)接口,抽象类可继承实体类,但前提是实体类必须有明确的构造函数。 25. 一个“.java”源文件中是否可以包含多个类(非内部类)?有什么限制?可以,但是必须只有一个类名与文件名相同。 26. 内部类可以引用他包含类的成员吗?有没有什么限制?一个内部类对象可以访问创建它的外部类对象的内容。 27. 在Java中一个类被声明为final 类型,表示了什么意思?表示该类不能被继承,是顶级类。 28. 字符串操作:如何实现字符串的反转及替换?可以使用字符串构造StringBuffer的对象,然后调用StringBuffer中的reverse方法即可实现字符串的反转。调用replace方法即可实现字符串的替换。 29. 怎样将GB2312 编码的字符串转换为ISO-8859-1 编码的字符串?示例代码:
30. Java中的异常处理机制的简单原理和应用?当Java程序违反了Java的语义规则时,Java虚拟机就会将发生的错误表示为一个异常。违反语义规则包括两种情况。
所有的异常都是java.lang.Thowable 的子类 总结以上是对Java基础知识的一点总结,学习了Java以后,我深知对于Java的基础的知识来说,以上的总结还远远不够,在本文中将基本语法以及基本概念进行一次简单的总结,接下来将会再用一篇文章对线程、异常、反射、集合类等Java的重要基础概念进行总结。 再长的路,一步步也能走完;再短的路,不迈开双脚也无法到达。还在咬牙坚持的你,请不要泄气。你的日积月累,早晚会成为别人的望尘莫及。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 9:34:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |