文章目录

  • 一、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. git clean和git reset结合用法
  2. IDEA使用过程中相应的配置和设置(如编码设置、窗口调整以及config.xml文件模板创建、工程打开方式、约束文件)
  3. 网络计算机 用户名和密码,局域网需要用户名和密码怎么办
  4. Series和DataFrame、相关性及NaN处理
  5. 模式窗口showModalDialog的用法总结
  6. c语言 strupr,C语言 strupr()用法及代码示例
  7. python自定义抛出异常信息_浅谈python抛出异常、自定义异常, 传递异常
  8. 弹窗样式 idialog,purebox,artdialog4.1.2,jquery.alert.v1.2
  9. matlab 取点画图,matlab如何画图
  10. linux appium 安装教程,Ubuntu 系统安装 Appium 及样例运行教程
  11. 失败产品手册:一款影音娱乐平台的败局
  12. 领克01、领克02、领克03,百度地图新系统安装第三方软件教程
  13. ArduinoUNO实战-第四章-按键控制led
  14. 使用ajax请求下载excel文件
  15. ssh中关于antion取jsp传递的值接收不到
  16. CFML----一门在国外很多大公司得到应用的语言
  17. html打开ppt自动播放,如何让ppt文档打开自动播放_让ppt文档打开自动播放的方法-系统城...
  18. [车联网安全自学篇] Android安全之移动安全测试指南「安全测试和SDLC」
  19. 英文版Windows XP的中文支持设置
  20. 基于51单片机的篮球计时计分器仿真原理图PCB方案设计

热门文章

  1. 计算机应用基础及ms office应用,计算机应用MS Office基础练习题
  2. 【算法合集】八大排序算法
  3. 数据库系列-什么是 JDBC?它的作用是什么?
  4. MapGis二次开发——基础地图目录树控件的加载
  5. 智能优化算法:变色龙算法 -附代码
  6. 数据挖掘综合应用:房屋售价预测案例
  7. 国产linux操作系统——麒麟操作系统的来龙去脉(有下载地址,亲测可用)
  8. 搞搞网站任务_001
  9. 数据结构与算法-三对角矩阵的压缩公式推导
  10. 【测试新人必备】测试报告如何编写?模板来了