文章目录

  • 一、Java 基础知识
    • 1、Object 类相关方法
    • 2、基本数据类型
    • 3、序列化
    • 4、String、StringBuffer、StringBuilder
    • 5、重载与重写
    • 6、final
    • 7、反射
    • 8、JDK 动态代理
    • 9、Java IO
    • 9、Java IO

一、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 ,面向流,同步阻塞线程。

    • 通过代理类调用方法。

9、Java IO

  • 普通 IO ,面向流,同步阻塞线程。
  • NIO,面向缓冲区,同步非阻塞。

Java八股文一:java基础知识相关推荐

  1. 学习笔记:Java 并发编程①_基础知识入门

    若文章内容或图片失效,请留言反馈. 部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 视频链接:https://www.bilibili.com/video/av81461839 视频下载: ...

  2. Java编程语言学习:Java语言编程的基础知识之Java的变量与数据类型、符号、运算符、数组Array总结之详细攻略

    Java编程语言学习:Java语言编程的基础知识之Java的变量与数据类型.符号.运算符.数组Array总结之详细攻略 目录 Java语言编程的基础知识之Java的变量与数据类型.符号.运算符.数组总 ...

  3. java最基本的基础知识

    java最基本的基础知识.这种东西应该印在脑子里雨打不动,风吹不走.以后不能为少个分号或缺个逗号之类的小问题所出错. 1.分隔符:超到分隔的作用. 有半角的分号(" ; ").逗号 ...

  4. [Java面试三]JavaWeb基础知识总结.

    [Java面试三]JavaWeb基础知识总结. 1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Int ...

  5. 【Java面试高频问题】Java数据结构和算法基础知识汇总

    文章目录 Java数据结构和算法基础知识 一.Java数据结构 1. 线性结构:数组.队列.链表和栈 1.1 数组(Array) 1.2 稀疏数组 1.3 队列(Queue) 1.4 链表(Linke ...

  6. Java中的线程基础知识

    Java中的线程基础知识 1.线程概念 线程是程序运行的基本执行单元.当操作系统(不包括单线程的操作系统,如微软早期的DOS)在执行一个程序时,会在系统中建立一个进程,而在这个进程中,必须至少建立一个 ...

  7. Java中浮点数的基础知识

    偶然查看Math.round的JDK 1 public static int round(float a) { 2 if (a != 0x1.fffffep-2f) // greatest float ...

  8. java入门应该学什么_初学Java应该掌握哪些基础知识?

    Java出现以前,Internet上的信息内容都是一些乏味死板的HTML文档.这对于那些迷恋于WEB浏览的人们来说简直不可容忍.Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中 ...

  9. 开课吧:Java开发学习路线-基础知识

    一般来说想要成为Java开发工程师,需要先了解清楚Java开发学习路线,而基础知识部分是整个路线里面最最重要的部分,也是后续进行框架学习.能看懂开源项目的前置基础,这部分是最不能忽视的! 基础知识: ...

  10. 【Java】javaSE的基础知识概括(完)

    十.String类 1.认识Sring类 字符串由一连串的字符组成,在Java中使用双引号""包裹表示,它可以是一个字符,也可以是一个字符序列或者由多个字符序列组成.字符串的应用非 ...

最新文章

  1. 并查集详解(从引入到代码)
  2. matlab 显示多幅图像,运用matlab实现循环语句中的多幅图像显示
  3. 在Android设备部署PyTorch模型
  4. 按照行数分割excel
  5. 没有主清单属性_梦幻西游电脑版:神威组第一大唐?大佬两天更新200W硬件,这身属性难被超越!太狠了...
  6. Word 2010、Excel 2010中插入日期与时间(转)
  7. [渝粤教育] 西南科技大学 经济法概论 在线考试复习资料2021版(2)
  8. window下连接ubuntu mysql的问题
  9. (2)Matplotlib_bar, barh
  10. 天翼校园客户端拨号服务器无响应,天翼校园客户端问题总结及解决办法
  11. 作为项目经理如何做好项目进度管理
  12. PS2019工具介绍笔记(一)
  13. 解决用友固定资产出现的“不能月末结账,可能月末未结账”的处理办法
  14. 2022 年排名前 10 的聊天机器人[示例]
  15. windows word2010 PPT
  16. 十大编程语言黑客向,学会一个不怕没工作,全部学会随便秀操作
  17. 如何用织梦仿制php网站首页,DEDE织梦网站首页(排名)仿制实战操作
  18. 近红外光谱预测苹果糖度
  19. (附源码)springboot汽车配件销售管理系统 毕业设计131650
  20. 【历史上的今天】4 月 25 日:诺基亚与微软完成交易;Mobilinux 发布;长距离无线电传输之父出生

热门文章

  1. Ubuntu18.04中roboware安装问题
  2. 直流双闭环pwm调速系统matlab仿真,双闭环可逆直流脉宽调速系统的设计和仿真
  3. redhat7安装yum
  4. 【MATLAB】绘制三角函数曲线、图像的叠加
  5. 圆孔衍射夫琅禾费衍射matlab仿真
  6. python爬虫 携程 机票 sign transactionID
  7. 【python辅助excel】(3)
  8. NICE-SLAM学习
  9. 【大数据入门核心技术-HBase】(十)Hbase结合Phoenix的使用
  10. 泛微签约广东特地陶瓷有限公司