
面试
文章平均质量分 96
有头发的代码匠
请相信:你的付出,即使不在今天,也会在未来的某一天璀璨绽放。愿所有的努力都会开花,所有的远方都能到达!
展开
-
99%程序员都不知道的Java对象布局
你整天new对象,但是你知道对象在内存中是怎样布局的吗?你知道对象中包含了哪些信息吗?原创 2020-08-11 13:19:06 · 2023 阅读 · 0 评论 -
这决对是我见过最坑的一道笔试题
这绝对是我见过的最坑的一道笔试题!原创 2020-07-27 13:49:04 · 1842 阅读 · 9 评论 -
带你一步步从源码角度深入理解Java线程池(简单易懂)
如果经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大。线程池通过提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。可以避免频繁创建销毁、实现重复利用。1、使用线程池的好处:①提高响应速度(减少了创建新线程的时间)②降低资源消耗(重复利用线程池中线程,不需要每次都创建)③便于线程进行管理,线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一分配、调优和监控。2、线程池的体系结构java.util.concurre原创 2020-07-19 15:04:13 · 4797 阅读 · 2 评论 -
阿里面试:我差点倒在了数组上
数组也是Java中一个非常重要的知识点,无论是在日常开发还是面试和笔试中都经常用到。本篇文章对数组进行了深入的总结,希望能够对你有所帮助。原创 2020-06-17 12:38:57 · 4385 阅读 · 7 评论 -
面试官:Class类中各个方法有什么区别?
Class类中有很多方法,今天我们就来介绍几个在面试中经常被问到并且非常容易混淆的方法。1.getFields()和getDeclaredFields()的区别Class类中getFields()和getDeclaredFields()都是用来获取成员变量的方法,那么它们之间有什么区别呢?我们首先使用代码来进行演示,然后我们再根据运行结果进行分析。1.1定义一个实体类Personpublic class Person { public String name; public int原创 2020-05-08 19:12:04 · 3043 阅读 · 5 评论 -
面试官:反射都不会,还敢说自己会Java?
一、反射机制1.1 框架 在学习Java的路上,相信你一定使用过各种各样的框架。所谓的框架就是一个半成品软件,已经对基础的代码进行了封装并提供相应的API。在框架的基础上进行软件开发,可以简化编码。学习使用框架并不需要了解反射,但是如果想要自己写一个框架,那么就要对反射机制有很深入的了解。1.2 什么是反射机制? 在运行状态中,对于任意一个类或对象,都能够获取到这个类的所有属性和方法(...原创 2020-04-29 15:50:03 · 39374 阅读 · 61 评论 -
程序员必会的Java多线程与并发编程
1、线程三大特性多线程有三大特性:原子性、可见性、有序性原子性:即一个操作或者多个操作,要么全部执行成功,要么全都不执行。一个很经典的例子就是银行账户转账问题:比如从账户A向账户B转1000元,那么必然包括2个操作:从账户A减去1000元,往账户B加上1000元。这2个操作都必须要具备原子性才能保证转账成功,而不会出现一些意外的情况。可见性:当多个线程访问同一个变量时,如果一个线程修...原创 2020-04-26 10:25:47 · 2720 阅读 · 0 评论 -
你真的懂得守护进程和优先级吗?
1、守护线程在Java中有两种线程:一种是用户线程,另一种是守护线程。可以通过isDaemon()方法来进行区分,如果返回false,说明该线程是用户线程;如果返回true,则说明该线程是守护线程。守护线程是指为其他线程服务的线程,也就是“后台线程”,一般用来执行后台任务。守护线程最经典的应用就是GC(垃圾回收器)。下面举个例子来演示一下:public class DaemonThread...原创 2020-04-25 11:35:43 · 3631 阅读 · 2 评论 -
面试官:如何终止线程?有几种方式?
在 Java 中有以下 3 种方法可以终止正在运行的线程:使用退出标志,使线程正常退出,也就是当 run() 方法完成后线程终止;使用 stop() 方法强行终止线程,但是不推荐使用这个方法,因为使用此方法不安全,目前该方法已被弃用;使用 interrupt()方法中断线程。第一种:使用标志位终止线程使用标志位终止线程就是定义一个boolean型的标志位 ,在线程的run方法中根据这...原创 2020-04-23 18:41:22 · 8505 阅读 · 6 评论 -
深入理解Servlet
1、Servlet : 用java语言编写的动态资源开发技术。2、Servlet 特点:1)普通的java类,继承HttpServlet类,覆盖doGet、doPost等方法。2)Servlet类只能交给tomcat服务器运行。3、怎样使用Eclipse开发Servlet?1)编写一个servlet类,继承HttpServletpublic class Servlet e...原创 2019-10-25 09:36:39 · 11481 阅读 · 15 评论 -
单例模式之懒汉式和饿汉式
什么是单例模式?单例模式就是在JVM中一个对象只能有一个实例。单例模式有七种写法,常见的单例模式有两种:懒汉式、饿汉式什么是懒汉式?就是需要的才会去实例化,线程不安全。什么是饿汉式?就是当class文件被加载的时候就已经初始化,天生线程安全。懒汉式写法/** * 保证这个类在JVM中只有一个实例化对象 */class Singleton{ private ...原创 2019-10-24 09:04:46 · 3223 阅读 · 2 评论 -
转发和重定向的过程和区别
转发 req.getRequestDispatcher("/要跳转的地址").forward(req, resp);转发的过程:(以servlet和jsp为例)浏览器首先发送一个请求到服务器端,服务器端发现匹配的 servlet,并指定它去执行,当这个 servlet 执行完之后,它要调用getRequestDispacther()方法,把请求转发给指定的jsp页面,整个流程都是在服务器...原创 2019-10-22 09:13:15 · 12736 阅读 · 10 评论 -
Cookie和Session的底层实现原理
一、CookieCookie的特性:会话数据保存在浏览器客户端Cookie的底层实现原理:1)服务器创建cookie对象,把会话数据存储到cookie对象中。 new Cookie("name","value");2)服务器发送cookie信息到浏览器 response.addCookie(cookie);3)浏览器从响应头中得到服务器发送的C...原创 2019-10-19 14:31:36 · 9194 阅读 · 9 评论 -
Java面试之String、StringBuffer和StringBuilder的区别和原理
首先我们先来谈谈String:String对象一旦创建,其值是不能修改的,如果要修改,会重新开辟内存空间来存储修改之后的对象,即修改了String的引用。因为String的底层是用数组来存值的,数组长度不可改变这一特性导致了上述问题。如果我们在实际开发过程中需要对某个字符串进行频繁的修改,使用String就会造成内存空间的浪费,应该怎样解决这个问题呢?答案就是可...原创 2019-10-17 13:33:59 · 11199 阅读 · 2 评论 -
Java面试题(基础篇)
1、JDK和JRE有什么区别?JDK:Java 的开发工具包,提供了 Java 的开发环境和运行环境JRE:Java 的运行环境,为 Java 的运行提供了所需环境具体来说:JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 ,还包含了很多 Java 程序调试和分析的工具。简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Jav...原创 2019-10-15 13:17:54 · 5693 阅读 · 1 评论