
Java面试
文章平均质量分 90
*吴聪聪*
少说、多做
展开
-
JAVA面试题 —————— JVM篇01
JAVA面试题 —————— JVM篇011、请你简述一下JAVA内存结构(运行时数据区)如图所示:1.1、程序计数器程序计数器:线程私有。一块较小的内存空间,程序计数器用于保存JVM中下一条所要执行的字节码指令的地址!如果正在执行的是Native方法,则这个计数器值为空,程序计数器在硬件层面是通过寄存器实现的。JAVA指令执行流程:.java代码源文件经过编译为.class二进制文件.class文件中的每一条二进制字节码指令(JVM指令)通过解释器转换成机器码,然后就可以被CPU原创 2021-10-07 16:09:38 · 192 阅读 · 0 评论 -
JAVA实习生面试总结 ———— JAVAWEB篇
JAVA实习生面试总结 ———— JAVAWEB篇1、JSP和Servlet有什么区别?JSP经过编译后就变成了Servlet(JSP的本质就是Servlet,JVM只能识别JAVA的类,不能识别JSP的代码,WEB容器将JSP的代码编译成JVM能够识别的JAVA类)。JSP更擅长表现于页面显示,Servlet更擅长于逻辑控制。Servlet中没有内置对象,JSP中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet原创 2021-10-05 16:43:52 · 233 阅读 · 0 评论 -
JAVA面试题 ——— JAVA基础知识篇(三)
JAVA面试题 ——— JAVA基础知识篇(三)1、请你说一下什么是面向对象?JAVA是面向对象的编程语言,不同于C语言是面向过程的。对于面向对象和面向过程的区别,举一个简单的例子说明一下(我们以洗衣机洗衣服为例):面向过程:面向过程的编程方式,程序会将要完成的某一个任务拆解成一系列的小步骤(函数),如:打开洗衣机:method01()放入要洗的衣服:method02()放入洗衣粉:method03()清洗:method04()烘干:method05()面向对象:面向对象的编程原创 2021-10-04 21:46:23 · 196 阅读 · 0 评论 -
String StringBuilder StringBuffer区别以及源码分析
String StringBuilder StringBuffer区别以及源码分析1、String、StringBuilder、StringBuffer区别1.1、StringString对象一旦创建之后就是不可变的,不可变的!问题:既然String对象是不可变的,那么其包含的常用修改值的方法是如何实现的呢?Demosubstring(int,int) 字符串截取split(String,int) 字符串分割toLowerCase() 字符串所有字母小写其实,这些方法底层都是通过重新原创 2021-10-03 21:21:50 · 327 阅读 · 2 评论 -
JAVA中代码的执行顺序
JAVA类中代码的执行顺序静态内部类和内部类之间的关系只有内部类才能被声明为静态类,即静态内部类只能在内部类中定义静态类静态内部类与外层类绑定,即使没有创建外层类的对象,它一样存在静态内部类的方法可以是静态的方法也可以是非静态的方法,静态的方法可以在外层通过静态类调用,而非静态的方法必须要创建类的对象之后才能调用。静态内部类只能引用外部类的static成员变量(也就是类变量)如果一个内部类不是被定义成静态内部类,那么在定义成员变量或者成员方法的时候,是不能够被定义成静态的。总结原创 2021-10-02 19:13:21 · 313 阅读 · 0 评论 -
JAVA基础知识(二)总结
JAVA基础知识(二)总结请你讲讲数组(Array)和列表(ArrayList)的区别?什么时候应该使用Array而不是ArrayList?Array和ArrayList的不同点:Array可以包含基本类型和对象类型,ArrayList只能包含对象类型ArrayList存储基本类型的时候,会自动装箱成对应的包装类,只存其引用,而不能存基本数据类型。Array大小是固定的,ArrayList的大小是动态变化的(动态扩容数组)。ArrayList提供了更多的方法和特性,比如:addAll()原创 2021-09-22 16:25:11 · 140 阅读 · 0 评论 -
JAVA面试基础知识(一)总结
JAVA面试基础知识(一)总结JAVA基础请你比较一下JAVA和JavaScript?参考回答:JAVA是一种半编译半解释的完全面向对象的程序设计语言,JavaScript是解释性的基于对象的脚本语言。JAVA诞生于Sun公司,后被Oracle收购;JavaScripty是由NetSpace网景公司开发JAVA源代码在执行前必须经过编译后才能执行;JavaScript是一种解释性编程语言,其源代码不需要经过编译,由浏览器解释执行。JAVA采用强类型变量检查,即所有变量在编译之前必须作声明原创 2021-09-22 16:22:57 · 134 阅读 · 0 评论 -
java中的浅拷贝和深拷贝解析
java中的浅拷贝和深拷贝解析任何编程语言中,其实都有浅拷贝和深拷贝的概念,java中也不例外。在对一个现有的对象进行拷贝操作的时候,是有浅拷贝和深拷贝之分的,他们在实际使用中,区别很大,如果对其进行混淆,可能会引发一些难以排查的问题。本文就在java中的浅拷贝和深拷贝做一个详细的解说。什么是浅拷贝和深拷贝?首先需要明白,浅拷贝和深拷贝都是针对一个已有对象的操作。那先来看看浅拷贝和深拷贝的概念。在java中,除了基本数据类型(元类型)之外,还存在类的实例对象这个引用数据类型。而一般使用【=】号做赋原创 2021-09-21 14:52:02 · 235 阅读 · 0 评论 -
设计模式 -- 工厂模式
设计模式 – 工厂模式OOP(面向对象的七大原则)**开闭原则:**对扩展开放,对修改关闭**里氏替换原则:**继承必须确保超类所拥有的性质再子类中仍然成立**依赖倒置原则:**要面向接口编程,不要面向实现编程**单一职责原则:**要控制类的粒度大小,将对象解耦,提高其内聚性**接口隔离原则:**要为各个类建立它们需要的专用接口**迪米特法则:**只与你的直接朋友交谈,不跟陌生人说话**合成复用原则:**尽量先使用或者聚合等关联关系来实现,其次才考虑使用继承关系来实现工厂模式介..转载 2021-09-21 09:54:39 · 172 阅读 · 0 评论 -
java对象序列化为什么要使用SerialversionUID
java对象序列化为什么要使用SerialversionUID首先谈谈问什么要序列化对象?把对象转换为字节序列的过程称为对象的序列化把字节序列恢复为对象的反序列化对象序列化主要有两种用途:把对象的字节序列永久的保存到硬盘上,通常存放在一个文件中在网络上传送对象的字节序列在很多应用中,需要对某些对象进行序列化,让他们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的就说web服务器中的session对象,当有10w用户并发访问,就有可能出现10w个session对象,内存可能吃不消,原创 2021-09-21 09:43:21 · 291 阅读 · 0 评论 -
设计模式 - 单例模式
设计模式 – 单例模式前言:在面试的时候面试官会怎么在单例模式中提问呢?我们又该如何回答呢?可能在面试的时候会碰到这些问题:为什么说饿汉式单例天生就是线程安全的呢?传统的懒汉式单例为什么是非线程安全的?怎么修改传统的懒汉式单例,使其线程变得安全?双重检查模式、volatile关键字在单例模式中的应用ThreadLocal在单例模式中的应用枚举式单例那我们该怎么回答呢?那么答案来了,看完接下来的内容就可以跟面试官唠唠单例模式了单例模式简介单例模式是一种常用的软件设计模式,其属于创建型原创 2021-09-20 21:49:35 · 239 阅读 · 1 评论