0 前程有光

尚未进行身份认证

我要认证

欢迎关注我的公众号【前程有光】 专注于系统架构实战,面试干货,分享百本各类电子书资料

等级
TA的排名 3w+

关于类的加载机制和反射机制只看这一篇就够了,分析的非常详细

类加载机制的原理1.启动JVM2.将需要运行的class文件加载到虚拟机内存中3.找到主类,开始执行主函数加载步骤:1.先委托父类加载类,如果父类已经加载,就不需要再次加载,如果父类没有加载,再由本加载器加载2.解析类路径,将类路径转换成文件路径3.通过文件输入流来读取class文件,得到字节数组4.将字节数组转换成类对象,对象的类型是Class类型有哪些类加载器类加载器:ClassLoaderAppClassLoader: 应用类加载器,负责加载核心类,加载自己写的类ExtClas

2020-08-13 16:03:29

工作一年半被裁掉,机缘巧合拿到阿里P7offer,得亏我看过这份“突击”面试宝典

前言不论是校招还是社招都避免不了各种⾯试、笔试,如何去准备这些东⻄就显得格外重要。不论是笔试还是⾯试都是有章可循的,我这个“有章可循”说的意思只是说应对技术⾯试是可以提前准备,所谓不打无准备的仗就是这个道理,以下为大家,描述了从面试准备到最后的拿到offer提供了⾮常详细的⽬录,建议可以从头看是看⼀遍,如果基础不错的话也可以挑⾃⼰需要的章节查看⼀, 备战⾯试下⾯我就说⼀下我⾃⼰知道的⼀些⽅法,不过应该也涵盖了⼤部分获取⾯试机会的⽅法。关注⼤⼚官⽹,随时投递简历(⾛流程的⽹申)线下参加

2020-08-12 13:31:35

面试官:小伙子你连多线程输出数列都不会,还敢说自己会多线程?

一、前言计算机的操作系统大多采用任务和分时设计,多任务是指在一个操作系统中可以同时运行多个程序,例如,可以在使用qq聊天的同时听音乐,即有多个独立运行的任务,每个任务对应一个进程,每个进程又可以产生多个线程。1.进程进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。操作系统同时管理一个计算机系统中的多个进程,让计算机系统中的多个进程轮流使用CPU资源。进程的特点:进程是系统运行程序的基本单位每一个进程都有自己独立的一块

2020-08-11 13:30:05

看阿里P7怎么讲MyBatis:从MyBatis的理解以及配置和实现全帮你搞懂

前言MyBatis 是一款优秀的持久层框架,一个半 ORM(对象关系映射)框架,它支持定制化 SQL、存储过程以及高级映`射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。MyBatis的作用MyBatis作用是在持久层也就是访问数据库的操作,以前我们访问数据库是用JDBC来访问数据

2020-08-10 21:26:00

公司新来的小姐姐不懂java中的static关键字,这样给她描述不香吗?

前言static关键字是摆在刚入行编程语言的小白们面前的一道难题,为什么要用static?使用它有什么好处?修饰方法和修饰变量有什么区别?本文将就java中static关键字的使用方法及注意事项进行深入探讨,一是为了方便自己以后查阅,二也为了与大家交流分享学习的经验。一、什么是static关键字static表示静态,常用来修饰成员变量、成员方法、代码块和内部类,存放在方法区,作用在于创建独立于对象存在的域变量或方法,当类被加载时,被static修饰的变量或方法就可以通过类名进行访问,当创建多个对象时,

2020-08-10 13:45:45

2020阿里,字节跳动,JAVA岗(一线企业校招、社招)面试题合集

前言以下面试题全属于一线大厂社招以及校招的面试真题,各位在做这些题目对照自己的时候请平凡心对待,不要信心受挫。其实 做为致力于一线企业校招或者社招的你来说,能把每个知识模块的一小部分问题去深入学习和总结,已经很棒了!然后文末有我自己总结的一些答案和更多面试题的文档总结,需要可以自取!首先展示一下以下文档包含的路线图基础排序实现原理和Collection实现原理和而的区别(编译之后)线程池的种类,区别和使用场景分析线程池的实现原理和线程的调度过程线程池如何调优线程池的最大线程数目根据什么

2020-08-09 14:54:24

面试官:小伙子,你给我说一下Java中什么情况会导致内存泄漏呢?

概念内存泄露:指程序中动态分配内存给一些临时对象,但对象不会被GC回收,它始终占用内存,被分配的对象可达但已无用。即无用对象持续占有内存或无用对象的内存得不到及时释放,从而造成的内存空间浪费。可达性分析算法JVM使用可达性分析算法判断对象是否存活。GC Root通过一系列名为“GC Roots”的对象作为起点,从这些结点开始向下搜索,搜索所走过的路径称为“引用链(Reference Chain)”,当一个对象到GC Roots没有任何饮用链相连时,则证明此对象是不可用的。object4、obj

2020-08-06 13:54:56

面试半年,上个月成功拿到阿里P7offer,全靠我啃烂了这份2020最新面试题!

前言最近收到很多粉丝的私信,有工作几年的,也有即将面临毕业的学生党。都是来跟我说金九银十马上到了,自己想去冲击面试一波大厂,问我有没有相关的面试题分享。听到后我也是赶紧为大家整理了一份,话不多说满满的干货都在下面了,友情提示,文章篇幅齐全,全是干货慢慢观看!!!Redis什么是Redis?Redis的数据类型?使用Redis有哪些好处?Redis相比Memcached有哪些优势?Memcache与Redis的区别都有哪些?Redis是单进程单线程的?一个字符串类型的值能存储最大容量是多少

2020-07-20 14:15:24

2020最新金九银十BAT面试核心知识点整理,靠它我拿到了阿里,字节跳动的offer

前言我自己是本科毕业后在老东家干了两年多,老东家算是一家”小公司”(毕竟这年头没有 BAT 或 TMD 的 title 都不好意思报出身),毕业这两年多我也没有在大厂待过,因此找坑的时候是非常非常虚的。迫于心慌,我好好思考了一阵来给自己打气,当时真正找坑和准备面试的过程大概分为这几个阶段:面试准备反思:自己是不是真的要离职,假如不离职,在老东家接下来应该做什么才能继续提升?定位:我在硬性技能(编码、架构)上的长处在哪?我在软技能(沟通,团队)上的长处在哪?这步顺带写了简历寻找平台:哪些平台能同时

2020-08-05 19:28:18

java面试必问:多线程的实现和同步机制,一文帮你搞定多线程编程

前言进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。线程:表示程序的执行流程,是CPU调度执行的基本单位;线程有自己的程序计数器、寄存器、堆栈和帧。同一进程中的线程共用相同的地址空间,同时共享进进程锁拥有的内存和其他资源。多线程的实现继承Thread类创建一个类,这个类需要继承Thread类重写Thread类的run方法(run方法中是业务代码)实例化

2020-08-05 14:17:09

厉害啊!第一次见到把Shiro运行流程写的这么清楚的,建议收藏起来慢慢看

前言shiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证、用户授权。spring中有spring security (原名Acegi),是一个权限框架,它和spring依赖过于紧密,没有shiro使用简单。shiro不依赖于spring,shiro不仅可以实现 web应用的权限管理,还可以实现c/s系统,分布式系统权限管理,shiro属于轻量框架,越来越多企业项目开始使用shiro。Shiro运行流程学习笔记项目中使用到了shiro,所以对shiro做一些比较深的了解。也

2020-08-04 20:36:22

给力啊!这篇Spring Bean的依赖注入方式笔记总结真的到位,没见过写的这么细的

1. Bean的依赖注入概念依赖注入(Dependency Injection):它是 Spring 框架核心 IOC 的具体实现。在编写程序时,通过控制反转,把对象的创建交给了 Spring,但是代码中不可能出现没有依赖的情况。IOC 解耦只是降低他们的依赖关系,但不会消除。例如:业务层仍会调用持久层的方法。那这种业务层和持久层的依赖关系,在使用 Spring 之后,就让 Spring 来维护了。简单的说,就是坐等框架把持久层对象传入业务层,而不用我们自己去获取。2. Bean的依赖注入方式(1)s

2020-08-04 14:30:10

阿里四面P7稳了,得亏我会这些Spring面试题,果然大厂都爱问它们

前言先说一下本人情况吧,末流985毕业,毕业之后一直在一家不大不小的公司里安稳上班。上半年因为疫情的原因公司调整了工资,我也是随波逐流跟随大家辞了职。辞职之后向阿里。字节这些都投了简历(但是只收到了阿里的回复)。一路居然惊险但也是成功斩下offer,问的都是最近两年新出的面试频度较高的面试题!,现在我把我所学的分享给大家!作为一名Java方向的程序员,在面试大厂的时候,其实关于spring这一块是问的非常多的,尤其是源码这一块,几乎是逢面试必问,虽然说现在技术更新比较快,但是掌握好spring以及它的

2020-08-03 20:59:40

面试阿里,美团,京东都会被问到的Spring ,从基础到源码帮你全搞定

1 前言Spring是一个轻量级开源框架,它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring是众多优秀设计模式的组合(工厂、单例、代理、适配器、包装器、观察者、模板、策略)。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring并未替代现有框架产品,而是将众多框架进行有机整合,简化企业级开发,俗称

2020-08-03 13:59:26

兄弟萌,这份SpringMVC框架学习笔记真的建议反复看,写的太细了

概述是Spring为展现层提供的基于MVC设计理念的Web框架,通过一套MVC注解,让POJO成为处理请求的控制器,而无需实现任何接口支持REST风格的URL请求采用松散耦合的可插拔组件结构,比其他MVC框架更具扩展性和灵活性SpringMVC的IOC容器是Spring的IOC容器的子容器,故而可引用Spring的IOC中的bean,反之则不行运行流程当前端发出请求时,首先进入到DispatcherServlet(中央控制器),把请求的地址传给HandlerMapping处理器映射器中进行

2020-08-02 19:50:35

这几种实现线程的方法你一定要知道,月薪20k以上的面试都会问到

实现线程的三种方式总结最近有看到Java线程的实现相关问题,在此对线程实现方式做一个小小的总结,当做笔记,便于日后查看。平时常用的线程方式有三种:(1)、继承Thread类,并重写其run()方法。(2)、实现Runnable接口,并实现其run()方法。(3)、实现Callable接口,并实现其call()方法。一、继承Thread类Thread 类中创建线程最重要的两个方法为: public void start(); public void run();采用 Thread 类创建

2020-08-02 14:39:26

真的可惜,四面阿里,结果我被JVM垃圾回收机制与 OOM异常卡住了

前言为什么需要垃圾回收首先我们来聊聊为什么会需要垃圾回收,假设我们不进行垃圾回收会造成什么后果,我们举一个简单的例子我们住在一个房子里面,我们每天都在里面生活,然后垃圾都丢在房子里面,又不打扫,最后房子都是垃圾 我们是不是就没法住下去了。所以JVM垃圾回收机制也是一样的,当我们创建的对象占据堆空间要满了的的时候我们就对他进行垃圾回收,注意java的垃圾回收是不定时的,c语言的是需要去调用垃圾回收方法刚刚也说到 上面举的例子也说到 假设一个房子都被垃圾堆满了 那么我们没法住人了 那么我们是不是会告

2020-07-31 20:15:36

面试官:你说你精通源码,那你知道ArrayList 源码的设计思路吗?

Arraylist源码分析ArrayList 我们几乎每天都会使用到,但是通常情况下我们只是知道如何去使用,至于其内部是怎么实现的我们不关心,但是有些时候面试官就喜欢问与ArrayList 的源码相关的问题,今天我们就来看看和ArrayList 源码相关的问题。一:整体架构1.1、ArrayList 结构ArrayList 整体架构比较简单,就是一个数组结构,比较简单,如下图:图中展示是长度为 n 的数组,index 表示数组的下标,从 0 开始计数,elementData 表示数组本身,源码中

2020-07-31 14:22:41

这份java多线程笔记,你真得好好看看,我还没见过总结的这么全面的

1.线程,进程和多线程1.程序:指指令和数据的有序集合,其本身没有任何意义,是一个静态的概念2.进程:指执行程序的一次执行过程,是一个动态的概念。是系统资源分配的单位(注意:很多多线程是模拟出来的,真正的多线程是指有多个cpu,即多核,如服务器。即在一个cpu的情况下,在同一时间点,cpu只能执行一个代码,因为切换的很快,所以就有同时执行的错觉)3.线程:通常一个进程中可以包含若干个线程,一个进程中至少有一个线程。线程是cpu调度和执行的单位4.并行:指在同一时刻,有多条指令在多个处理器上同时执行。

2020-07-30 20:12:09

看看吧!月薪20K以上的程序员才能全部掌握RabbitMq知识,你掌握了多少

一、RabbitMq基础知识0、概述消息队列的作用就是接收消息生产者的消息,然后将消息发送到消费者1、信道channel我的理解是生产者/消费者和rabbitmq交互的一个通道,负责交换机、队列管理;消息发布和消费管理;事务管理等2、交换机四种交换机:direct:可以用一个或者多个key绑定到一个或者多个队列上topic:支持路由的适配符 # *Fanout广播:将消息发送给所有的队列Header头交换机:自定义通过头消息属性来定义路由的匹配3、队列:保存消息的队列4、消费者:消息

2020-07-30 13:45:42

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 原力探索 · S
    原力探索 · S
    在《原力计划【第二季】》打卡挑战活动中,发布 12 篇原创文章参与活动的博主,即可获得此勋章。(本次活动结束后统一统计发放)