拆箱装箱

Java中的自动拆装箱_骐骥一跃,不能十步;驽马十驾,功在不舍。-CSDN博客

自动装箱的缓存

自动装箱与缓存_骐骥一跃,不能十步;驽马十驾,功在不舍。-CSDN博客

String、StringBuffer、StringBuilder区别

String、StringBuffer和StringBuilder的区别_骐骥一跃,不能十步;驽马十驾,功在不舍。-CSDN博客

字符串常量池和String类的 intern()方法

字符串常量池和String类的intern()方法_骐骥一跃,不能十步;驽马十驾,功在不舍。-CSDN博客

String str=new String("a"+"b")创建了几个对象

4个 "a"在字符串常量池创建,这是第一个对象 "b"在字符串常量池创建,这是第二个对象 “a”+"b"组合"ab"在字符串常量池创建,这是第三个对象 new String(),在堆中分配内存,里面存着这字符串"ab"在字符串常量池中的地址,这是第四个对象 str 存储在栈中,里面存储着指向堆中new String()的地址 如果以 String str1=“ab"这种方式创建字符串,则只产生一个对象,即字符串常量池中的"ab”,栈中的str中存储着直接指向字符串常量池中的"ab"的地址值。

如果以String str2=“a”+“b”;这种方式创建字符串,同样是只产生一个对象,java在编译时会将a,b自动转换成ab,而不会经过加法的过程,也就是说str1=str2.

ps:

Strin str = new String(“a”) + new String(“b”) 在堆中创建了三个字符串对象(a字符串对象,b字符串对象,ab字符串对象),在堆中的常量池中创建了2个字符串对象(a字符串对象,b字符串对象),一共创建了5个字符串对象。

泛化、实现、依赖、关联、组合、聚合

泛化,实现,依赖,关联(聚合,组合)_骐骥一跃,不能十步;驽马十驾,功在不舍。-CSDN博客

反射

Java 反射 -超详细讲解(附源码)_lililuni的博客-CSDN博客_反射java

== 和 equals 的区别

== 和 equals 的区别是什么_骐骥一跃,不能十步;驽马十驾,功在不舍。-CSDN博客

hashCode与equals

hashCode与equals_骐骥一跃,不能十步;驽马十驾,功在不舍。-CSDN博客

动态代理

Java动态代理_骐骥一跃,不能十步;驽马十驾,功在不舍。-CSDN博客

什么是 java 序列化?什么情况下需要序列化?

简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。
什么情况下需要序列化:

a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;
b)当你想用套接字在网络上传送对象的时候;
c)当你想通过RMI传输对象的时候;

throw 和 throws 的区别?

throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理。而throw则是指抛出的一个具体的异常类型。

final、finally、finalize 有什么区别?

  • final可以修饰类、变量、方法,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、修饰变量表示该变量是一个常量不能被重新赋值。
  • finally一般作用在try-catch代码块中,在处理异常的时候,通常我们将一定要执行的代码方法finally代码块中,表示不管是否出现异常,该代码块都会执行,一般用来存放一些关闭资源的代码。
  • finalize是一个方法,属于Object类的一个方法,而Object类是所有类的父类,该方法一般由垃圾回收器来调用,当我们调用System的gc()方法的时候,由垃圾回收器调用finalize(),回收垃圾。

JDK 和 JRE 有什么区别?

  • JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。
  • JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。

具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很多 java 程序调试和分析的工具。简单来说:如果你需要运行 java 程序,只需安装 JRE 就可以了,如果你需要编写 java 程序,需要安装 JDK。

final 在 java 中有什么作用?

  • final 修饰的类叫最终类,该类不能被继承。
  • final 修饰的方法不能被重写。
  • final 修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改。

java 中的 Math.round(-1.5) 等于多少?

加0.5向下取整,等于 -1。

如何将字符串反转?

使用 StringBuilder 或者 stringBuffer 的 reverse() 方法。

// StringBuffer reverse
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("abcdefg");
System.out.println(stringBuffer.reverse()); // gfedcba
// StringBuilder reverse
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("abcdefg");
System.out.println(stringBuilder.reverse()); // gfedcba

String 类的常用方法都有那些?

  • indexOf():返回指定字符的索引。
  • charAt():返回指定索引处的字符。
  • replace():字符串替换。
  • trim():去除字符串两端空白。
  • split():分割字符串,返回一个分割后的字符串数组。
  • getBytes():返回字符串的 byte 类型数组。
  • length():返回字符串长度。
  • toLowerCase():将字符串转成小写字母。
  • toUpperCase():将字符串转成大写字符。
  • substring():截取字符串。
  • equals():字符串比较。

抽象类必须要有抽象方法吗?

不需要,抽象类不一定非要有抽象方法。

abstract class Cat {public static void sayHi() {System.out.println("hi~");}
}

上面代码,抽象类并没有抽象方法但完全可以正常运行。

普通类和抽象类有哪些区别?

  • 普通类不能包含抽象方法,抽象类可以包含抽象方法。
  • 抽象类不能直接实例化,普通类可以直接实例化。

抽象类能使用 final 修饰吗?

不能,定义抽象类就是让其他类继承的,如果定义为 final 该类就不能被继承,这样彼此就会产生矛盾,所以 final 不能修饰抽象类

接口和抽象类有什么区别?

  • 实现:抽象类的子类使用 extends 来继承;接口必须使用 implements 来实现接口。
  • 构造函数:抽象类可以有构造函数;接口不能有。
  • main 方法:抽象类可以有 main 方法,并且我们能运行它;接口不能有 main 方法。
  • 实现数量:类可以实现很多个接口;但是只能继承一个抽象类。
  • 访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符。

java 中 IO 流分为几种?

按功能来分:输入流(input)、输出流(output)。

按类型来分:字节流和字符流。

字节流和字符流的区别是:字节流按 8 位传输以字节为单位输入输出数据,字符流按 16 位传输以字符为单位输入输出数据。

https://blog.csdn.net/sinat_37064286/article/details/86537354

各种读写文件的方式

【Java基础-3】吃透Java IO:字节流、字符流、缓冲流_云深不知处-CSDN博客_字节流字符流缓冲流

BIO、NIO、AIO 有什么区别?

  • BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。
  • NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。
  • AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。

完全理解同步/异步与阻塞/非阻塞

完全理解同步/异步与阻塞/非阻塞 - 知乎随便翻开一本Node.js入门书籍的绪论部分,一般都可以看到「异步」、「单线程」、「非阻塞」这样的字眼。因其采用异步非阻塞的模型而构建,Node.js得以能充分利用CPU资源,具有极强的处理高并发请求的能力。 可是到…https://zhuanlan.zhihu.com/p/22707398I/O多路复用—— select、poll和epoll

零拷贝(Zero-copy)及其应用详解

Files的常用方法都有哪些?

  • Files.exists():检测文件路径是否存在。
  • Files.createFile():创建文件。
  • Files.createDirectory():创建文件夹。
  • Files.delete():删除一个文件或目录。
  • Files.copy():复制文件。
  • Files.move():移动文件。
  • Files.size():查看文件个数。
  • Files.read():读取文件。
  • Files.write():写入文件。

面试笔记@Java基础相关推荐

  1. 橘子笔记~Java基础~Day01

    橘子笔记~Java基础~Day01 01.Java语言概述 02.常用的DOS命令 03.Java语言开发环境 04.JDK的下载和安装 05.JDK和JRE跨平台 06.编写HelloWorld案例 ...

  2. 大华java面试经验_大华面试(Java 基础)

    7-17 大华一面(java 基础) 1. 讲一下 java 和其他语言的区别,说下 java 的平台无关性,如何做到一次编译,到处运行 关于java 的特性,可以从 java 的优点来说. java ...

  3. 面试资料-JAVA基础知识

    java基础: JDK,JRE: JDK是面向开发人员使用的SDK.java开发工具. JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者.基础类 ...

  4. 面试突击--Java基础面试题(至尊典藏版)

    目录 前言 equals()和==区别.为什么重写equal要重写hashcode? hashmap在1.8中做了哪些优化? hashmap线程安全的方式? 为什么hashmap扩容的时候是两倍? 解 ...

  5. 学习笔记-java基础-网络编程

    刚在培训机构学习完JAVA基础和WEB,感觉边学边忘.就把这作为记忆的笔记,我也不知道要不要记笔记,写在本子上太耗费时间了. 一.要想实现网络通信,首先要解决两个问题: ①:如何从网络中定位到一台或多 ...

  6. Vllos笔记-Java基础

    #Java基础 目录: 1:基本知识4:常量与变量5:数据类型7:方法8:流程控制9:数组(array)10:Java内存划分11:面向对象12:API 13.抽象:也属于面向对象14.接口(Inte ...

  7. 【狂神说笔记——Java基础03-方法】

    Java基础03-方法 方法 1.何谓方法? 在前面几个章节中我们经常使用到 System.out.println(),那么它是什么呢? println() 是一个方法. System 是系统类. o ...

  8. 【狂神说笔记—— Java基础07-常用类】

    Java基础07-常用类 Object类 大家都知道Object是所有类的父类,任何类都默认继承Object. 理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类 ...

  9. 【黑马程序员】 学习笔记 - Java基础

    ----------------------android培训.java培训.期待与您交流!---------------------- Java基础 一  程序的流程控制 1.条件判断if语句 if ...

最新文章

  1. 开始启动OPNsense的汉化工作
  2. LeetCode——Contains Duplicate III
  3. 哈工大威海算法设计与分析_计算机算法设计与分析第一章 算法概述
  4. 双拼输入法键位图_谈谈小鹤双拼入门(1)
  5. show in Breadcrumb
  6. 8个适合用来练手的SpringBoot开源项目
  7. Android之常见面试题
  8. Win7安装oracle 10 g
  9. 工作45:注意公用方法 别混入
  10. 表字段顺序有何影响_「品味保定」炸烹虾段乾隆赞 百年保定柔雅香
  11. mysql 外键_为什么大多数互联网公司不用外键约束
  12. spark学习-68-源代码:driver端接收executor的心跳
  13. linux 路由访问不了php文件,linux系统nginx服务器不能访问php文件问题
  14. Python 语言程序设计(5-1)函数的定义与使用
  15. ansys17.2安装教程
  16. Spring中Resource接口详解
  17. wds和extap作为cpe区别
  18. 学UG编程一定要把握的曲面驱动的办法、切削区域、切削类型
  19. Gradle sync failed: No variants found for ‘:app‘. Check build files to ensure at least one varian
  20. 一道简简单单的字节跳动算法面试题

热门文章

  1. 【吴恩达机器学习笔记】第十一章 机器学习系统的设计
  2. 2022-2027年中国竹制家具行业市场调研及未来发展趋势预测报告
  3. 交通治安卡口监控系统解决方案
  4. 【开源】这可能是封装微信 API 最全的 .NET SDK 了
  5. 萝卜魂军曹机器人_《萝卜魂》参战作品详介第一弹:《交响诗篇》
  6. js 中的单目运算符,双目运算符与三目运算符区别
  7. appstore关键词优化:AppStore关键词优化的主要流程
  8. docker快速部署
  9. UCOSIII任务管理
  10. 使用python读取xls文件报错:xlrd.compdoc.CompDocError: Workbook corruption: seen[2] == 4