Java八股文基础知识
引言
java语言是Sun公司在1990年由James Gosling创建的(Sun公司现已被Oracle甲骨文公司收购),在1995年才公布,java创始人James Gosling通过C++创造了java,所以java拥有了C++语言的优点,并去掉了C++中难以操作的指针、多继承等概念;相对于C++来说,java是一门纯粹的面向对象语言,大大简化了编程开发的难度,所以java在当下应用十分的广泛;Java现在使用广泛 薪资可观 没有经验想要学习的小伙伴要抓紧了!给你们推荐一下:B站 Java300集
里面全是java基础教学 名师讲解 还有实战经验想要学习的同学抓紧时间看看吧!而且都是免费的冲冲冲!!!
Java程序员八股文是指程序员在面试过程中经常被问到的问题,大多都有固定化、格式化的答案,俗称为面经。下面是整理的基础如图(1-1)上的问题下面会详细解答:
图1-1
1.Object类相关方法
getClass
获取当前运行时对象的Class对象。
hashCode
返回对象的hash码。
clone
拷贝当前对象,必须实现Cloneable接口。浅拷贝对基本类型进行值拷贝,对引用类型拷贝引用;深拷贝对基本类型进行值拷贝,对引用类型对象不但拷贝对象的引用还拷贝对象的相关属性和方法。两者不同在于深拷贝创建了一个新的对象。
equals
通过内存地址比较两个对象是否相等,String 类重写了这个方法使用值来比较是否相等。
toString
返回类名@哈希码的16进制。
notify
唤醒当前对象监视器的任一个线程。
notifyAll
唤醒当前对象监视器上的所有线程。
wait
1、暂停线程的执行; 2、三个不同参数方法(等待多少亳秒;额外等待多少毫秒;一直等待) 3、与Thread.sleep(long time)相比sleep使当前线程休眠一段时间, 并没有释放该对象的锁,wait 释放了锁。
finalize
对象被垃圾回收器回收时执行的方法。
2.基本数据类型
整型: byte(8)、short(16)、 int(32)、 long(64)
浮点型: float(32)、 double(64)
布尔型: boolean(8)
字符型: char(16)
3.序列化
Java对象实现序列化要实现Serializable接口。
反序列化并不会调用构造方法。反序列的对象是由JVM自己生成的对象,不通过构造方法生成。
序列化对象的引用类型成员变量,也必须是可序列化的,否则,会报错。
如果想让某个变量不被序列化,使用transient修饰。
单例类序列化,需要重写readResolve()方法。
4、String、StringBuffer、 StringBuilder
String由char[]数组构成,使用了final 修饰,是不可变对象,可以理解为常量,线程安全;对String进行改变时每次都会新生成一个String对象,然后把指针指向新的引用对象。
StringBuffer 线程安全; StringBuiler 线程不安全。
操作少量字符数据用String;单线程操作大量数据用StringBuilder;多线程操作大量数据用StringBuffer。
5、重载与重写
重载
发生在同一-个类中,方法名相同,参数的类型、个数、顺序不同,方法的返回值和修饰符可以不同。
重写
发生在父子类中,方法名和参数相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类;如果父类方法访问修饰符为private或者final则子类就不能重写该方法。
6、final
修饰基本类型变量,一经出 初始化后就不能够对其进行修改。
修饰引用类型变量,不能够指向另-一个引用。
修饰类或方法,不能被继承或重写。
7、反射
在运行时动态的获取类的完整信息
增加程序的灵活性
JDK动态代理使用了反射
8、JDK动态代理
使用步骤创建接口及实现类
实现代理处理器:实现InvokationHandler ,实现invoke ( Proxy proxy, Method method, Object[] args)方法
通过Proxy.newProxyInstance(ClassLoaderloader, Class] interfaces, InvocationHandler h)获得代理类
通过代理类调用方法。
9、Java 10
普通IO,面向流,同步阻塞线程。
NIO,面向缓冲区,同步非阻塞。
总结
以上知识就是Java八股文一部分的基本知识了有喜欢的小伙伴可以去b站搜索Java300集里面有更详细的教程看的就是赚到,只有努力才能比别人更高一层,你我山巅自相逢。加油啊!
Java八股文基础知识相关推荐
- JAVA八股文基础知识(三)
JAVA基础知识 目录 JAVA基础知识 1.异常 Java程序在执行过程中所发生的异常事件可分为两类: 运行时异常与编译时异常: 异常处理及语法: 2.Java API 一.String类及其常用方 ...
- java培训基础知识都学哪些
很多人都开始学习java技术,觉得java语言在未来的发展前景空间非常大,事实却是如此,那么针对于零基础的同学, 学习java技术需要学哪些呢?下面我们就来看看java培训基础知识都学哪些? java ...
- 你觉得什么才是 Java 的基础知识?
近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考. ...
- 计算机java语言教程,计算机JAVA教程二讲Java语言基础知识.doc
计算机JAVA教程二讲Java语言基础知识 2.1简单数据类型 2.1.1 标识符和保留字 1.标识符 程序员对程序中的各个元素加以命名时使用的命名记号称为标识符(identifier).Java语言 ...
- java ee基础知识_Java EE:基础知识
java ee基础知识 想要了解一些基本原则,即与Java EE相关的技术术语. 对于许多人来说,Java EE / J2EE仍然最多意味着Servlet,JSP或Struts. 没有冒犯或双关语! ...
- hashcode是什么意思_什么才是 Java 的基础知识?
作者:晓风轻 链接:zhuanlan.zhihu.com/p/28615617 近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java ...
- JAVA NIO基础知识
本文来说下JAVA NIO基础知识. 文章目录 NIO概述 NIO简介 NIO的特性/NIO与IO区别 读数据和写数据方式: NIO核心组件简单介绍 Java NIO 之 Buffer(缓冲区) Bu ...
- java 反射基础知识
java 反射 基础知识 反射:reflection 反射关键类 java 反射部分应用 反射:reflection 在运行中分析类. 在运行中查看和操作对象. 基于反射自己创建对象. 调用不可以访问 ...
- Java 进阶基础知识
我断断续续花费一周的时间整理了这份 Java 进阶基础知识的思维导图.以前觉得这是一个简单的事情,感觉不就是跟着书上的知识点抄一遍嘛,但真的自己动手写过后,才发现并不是那么一回事. 说说自己整理心得吧 ...
最新文章
- 计算机在轻化工程中的应用,计算机在基础化学实验当中的应用
- ThreadLocal的学习
- 从源码到可执行程序的步骤
- cocos2dx 父元素影响子元素
- Java基础17:Java IO流总结
- redisTemplate.opsForValue()中方法讲解
- FAIL : SSHException: Incompatible ssh peer (no acceptable kex algorithm)
- 配置远程服务器的别名
- tcp协议栈优化1-增加TCP初始拥塞窗口
- 谷歌Adblock Plus 广告拦截插件-屏蔽百度热搜和推荐(附网盘下载地址)
- u盘写保护+计算机管理,取消u盘写保护的操作方法-电脑自学网
- android双卡切换,OPPOReno双卡双待怎么切换使用?
- You have to remove (or rename) that container to be able to reuse that name.
- DBCO-PALA-g-PEG DBCO-聚硫辛酸-聚乙二醇
- 2021年终总结及2022年展望
- 算法设计与分析基础 第六章谜题
- 【无人机】无刷电调学习之路
- unrar命令解压rar
- AD19 基础应用技巧(差分线的添加走线与蛇形等长)
- 从傅里叶变换到加窗傅里叶变换