java八股文第一章:Java 基础知识_java 中的八股文-程序员宅基地

技术标签: java  

Java 基础知识

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 IO
  • 普通 IO ,面向流,同步阻塞线程。
  • NIO,面向缓冲区,同步非阻塞。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010046908/article/details/112774699

智能推荐

android 图片压缩避免内存溢出的解决办法-程序员宅基地

文章浏览阅读462次。在android中的很多应用中都需要拍照上传图片,随着手机的像素越来越高,拍摄的图片也越来越大。在拍摄后显示的时候,使用universalimageloader.这个开源项目可以避免内存溢出。但是在上传的时候,一般需要压缩,但是压缩的时候很容易导致内存溢出。解决的办法就是,压缩后的二进制流,不用导出Bitmap,而是直接存储为本地文件,上传的时候直接通过本地文件上传。代码如下:1.图片压缩获..._android压缩图片会造成内存溢出

Subnet简介-程序员宅基地

文章浏览阅读2.9w次,点赞2次,收藏13次。Subnet(子网)在一般的概念中,有两个基本含义:1 这个子网的网段(CIDR)和IP版本;2 这个子网的路由(含默认路由)。事实上,Subnet模型也确实有这两个字段cidr和ip_version,分别表示一个子网的网段和IP版本。另外Subnet模型还有两字段gateway_ip和host_routes,表示一个子网的路由信息。gateway_ip是这个子网的默认网关IP。host_rout..._subnet

HBase的列族必须提前定义-程序员宅基地

文章浏览阅读282次,点赞4次,收藏7次。在HBase中,列族(Column Family)必须在创建表时提前定义,而列(Column)是动态添加的,无需提前定义。一旦表创建完成并列族定义好之后,可以动态地向表中的列族中添加新的列,而无需修改表的结构。2. **列是动态添加的:** 列是在列族内动态添加的,无需提前定义。而列是动态添加的,可以根据需要随时向列族中添加新的列。1. **列族必须提前定义:** 在创建HBase表时,需要指定表的列族,每个列族都需要提前定义。列族的定义是静态的,一旦表创建完成并列族定义好之后,列族的结构就不能再改变了。

人工智能伦理框架:如何建立AI技术的道德规范-程序员宅基地

文章浏览阅读365次,点赞6次,收藏9次。1.背景介绍人工智能(AI)技术的发展已经进入了关键时期,它正在改变我们的生活、经济和社会结构。然而,随着AI技术的不断发展,也引发了一系列道德、伦理和法律问题。为了确保AI技术的可持续发展和社会接受,我们需要建立一个人工智能伦理框架,以指导AI技术的研发和应用。在过去的几年里,许多学者、企业家、政府机构和非政府组织都开始关注AI伦理问题,并提出了许多关于AI伦理的建议和规范。然而,这些建..._人工智能道德框架

我个人总结的Halcon内存管理心得笔记,关于C#/C++内存释放_halcon dispose-程序员宅基地

文章浏览阅读1.4w次,点赞15次,收藏105次。Halcon容易造成内存增长或泄露。怎么办?C#1、变量用完之后,Dispose()和置Null。在Halcon18以上版本,Halcon已经提供了Dispose()方法进行释放,那么在低版本中HTuple类型占用的内存怎么释放呢?其实,Halcon中提供一个叫UnPinTuple()的方法,该方法就是官方用来进行释放HTuple的!所以,使用后的变量如不再继续使用的可以用该方法进行清除释放。2、图像尽量不要复制,固定在一个变量进行处理。3、在软件内存占用率高,并且软件闲置的时候,._halcon dispose

SQL 语言及查询优化技巧-程序员宅基地

文章浏览阅读719次。SQL (Structured Query Language,结构化查询语言),一种专门用来管理关系数据库(RDBMS)的语言。它用于存取、操纵和维护关系数据库中的数据,尤其是保存着各种相关信息的表格。由于其标准化,可移植性强,而且易于学习和应用,所以在各个行业都得到广泛应用。与其他编程语言相比,SQL 的学习难度较低,语法简单,执行效率高。同时,SQL 有完善的函数库支持,能够实现丰富的数据处理功能,如数据检索、过滤、排序、汇总等。

随便推点

The server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents more than one time zone.-程序员宅基地

文章浏览阅读33次。java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone.

利用base64对图片进行编码及解码_平台接收base64图片编码-程序员宅基地

文章浏览阅读5.9k次。试图将图片通过json进行传输,这个时候就想到利用base64编码的方法来图片。主要步骤有1、对图片文件进行编码,转换为base64编码的格式,及一长串字符;2、可将字符通过json进行传送;3、目的方接收json数组,取出编码字符串,并进行解码,显示图片该方法难点主要还是在于对图片的编解码处理,以下是用PHP实现的编解码处理代码<?php $image_f_平台接收base64图片编码</div>

机器学习之朴素贝叶斯分类_看动画,成为机器学习工程师,朴素贝叶斯分类,-程序员宅基地

文章浏览阅读2.7k次。朴素贝叶斯分类所有贝叶斯分类都是基于贝叶斯定理,朴素贝叶斯分类是贝叶斯分类中运用广泛简单的一种,另外,它还基于特征条件独立假设。贝叶斯定理贝叶斯定理是计算条件概率的公式,条件概率即是事件B发生的前提下事件A发生的概率,记作$P(A|B)$,叫做事件B发生的情况下A的条件概率。公式为:$P(B|A) = \frac{P(A|B)P(B)}{P(A)}$公式大致推导: 如图,有$P(A|B) = \f_看动画,成为机器学习工程师,朴素贝叶斯分类,

在RHEL7的vnc中调出Oracle的OUI_rhel7使用vnc安装oracle,窗口显示-程序员宅基地

文章浏览阅读598次。在RHEL7的vnc中调出Oracle的OUI_rhel7使用vnc安装oracle,窗口显示

【快捷键】idea中的快捷键(更新中)_idea缩进快捷键-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏7次。本文简介:介绍以下Idea中常用的快捷键_idea缩进快捷键

linux操作系统有哪些_linux系统有什么-程序员宅基地

文章浏览阅读7.4k次。微信设置水滴昵称,个性中带点萌区别:(1)Linux速度比较快,安全性比windows好 (2)有很多软件只能在windows里运行 ,与Linux兼容的软件正在开发中. (3)Linux适用在网络方面. (4)Linux的操作比较复杂,windows的比较简单. Linux和Windows的区别 和Linux 一样,Windows系列是完全的多任务操作系统。它们支持同样的用户接口 、网络和安全性。但是,Linux和Windows的真正区别在于,Linux 事实上是Unix 的一种版本,而且来_linux系统有什么