自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(154)
  • 收藏
  • 关注

原创 学了那么久Java我居然不知道!Java高并发必会的线程池

一、抛砖引玉既然Java中支持以多线程的方式来执行相应的任务,但为什么在JDK1.5中又提供了线程池技术呢?这个问题大家自行脑补,多动脑,肯定没坏处,哈哈哈。。。说起Java中的线程池技术,在很多框架和异步处理中间件中都有涉及,而且性能经受起了长久的考验。可以这样说,Java的线程池技术是Java最核心的技术之一,在Java的高并发领域中,Java的线程池技术是一个永远绕不开的话题。既然Java的线程池技术这么重要(怎么能说是这么重要呢?那是相当的重要,那家伙老重要了,哈哈哈),那么,本文我们就来简单的

2021-05-26 22:37:35 202

原创 这10道大数据面试题把 98% 的求职者拒之门外(附解题方法

写在前面最近不少读者找我要大数据面试题,我整理了很久,筛选出这10道容易出错的大数据面试题,希望对大家有所帮助。题目与解答整理自互联网,感谢分享这些面经的技术大牛们!题目分析下面依次对以下题目进行解题思路分析:1、如何从大量的 URL 中找出相同的 URL?题目描述给定 a、b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,内存限制是 4G。请找出 a、b 两个文件共同的 URL。解答思路每个 URL 占 64B,那么 50 亿个 URL占用的空间大小约为 320GB。

2021-05-26 21:30:24 438

原创 【Java】字符串转二叉树,一个方便的java类

简介力扣的核心代码模式在面对本题这类二叉树问题时,本地调试就十分折磨。写了一个TreeMaker类,可实现将力扣的层序遍历的二叉树字符串转化成二叉树数据结构。分享给大家。二叉树节点,比里扣的多了个空构造方法 public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }

2021-05-26 13:07:02 720

原创 Rust 二叉树前中后序遍历通用代码!!你知道是什么吗???

把文章下方的代码直接放到题解中,然后就可以方便地把 root: Option<Rc<RefCell>> 转换成 Iterator { Item = Rc<RefCell>; },然后通过 Iterator 的 map 和 collect 功能转换成 Vec。Iterator 是惰性求值的。Iterator 采用 DFS,迭代过程中会生成额外的迭代器,有 O(h) 的堆内存消耗。使用方法1. 二叉树的前序遍历impl Solution { pub fn p

2021-05-25 22:55:47 271

原创 Kubernetes 实战 —— 05. 服务:让客户端发现 pod 并与之通信(下)

将服务暴露给外部客户端有以下三种方式可以在外部访问服务:将服务的类型设置成 NodePort将服务的类型设置为 LoadBalance创建一个 Ingress 资源使用 NodePort 类型的服务通过创建一个 NodePort 服务,可以让 Kubernetes 在其所有节点上保留一个端口(所有节点上都使用相同端口号),并将传入的连接转发给作为服务部分的 pod 。创建 NodePort 类型的服务可以使用如下描述文件 kubia-svc-nodeport.yaml 创建一个 NodePo

2021-05-25 16:48:19 138

原创 Kubernetes 实战 —— 05. 服务:让客户端发现 pod 并与之通信(上)

简介pod 通常需要对来自集群内部其他 pod ,以及来自集群外部的客户端的 HTTP 请求作出响应,所以需要一种寻找其他 pod 的方法来使用其他 pod 提供的服务。在 Kubernetes 中通过服务 (service) 解决以下问题:pod 是短暂的: pod 随时启动和关闭Kubernetes 在 pod 启动前会给已经调度到节点上的 pod 分配 IP 地址:客户端不能提前知道 pod 的 IP 地址水平伸缩意味着多个 pod 可能提供相同的服务:每个 pod 都有自己的 IP 地址

2021-05-24 15:36:30 158

原创 SpringBoot自动装配原理分析,看完你也能手写一个starter组件!

前言如果我们想要使用传统意义上的 Spring 应用,那么需要配置大量的 xml 文件才可以启动,而且随着项目的越来越庞大,配置文件也会越来越繁琐,这在一定程度上也给开发者带来了困扰,于是 SpringBoot 就应运而生了。什么是 SpringBoot?2012 年 10 月,一个叫 Mike Youngstrom 的人在 Spring Jira 中创建了一个功能请求,要求在 Spring Framework 中支持无容器 Web 应用程序体系结构,提出了在主容器引导 Spring 容器内配置 We

2021-05-22 21:51:17 140

原创 Kubernetes 实战 —— 04. 副本机制和其他控制器:部署托管的 pod

保持 pod 健康只要 pod 调度到某个节点,该节点上的 Kubelet 就会运行 pod 的容器,从此只要该 pod 存在,就会保持运行。如果容器的主进程奔溃, Kubelet 就会自动重启容器;如果应用程序奔溃, Kubelet 就会自动重启应用程序。应用程序也可能因为无限循环或死锁等情况而停止响应。为确保应用在这种情况下可以重新启动,必须从外部检查应用程序的运行状况,而不是依赖于应用的内部检测。介绍存活探测器Kubernetes 可以通过存活探测器 (liveness probe) 检查容器

2021-05-21 21:06:47 137

原创 Kubernetes 实战 —— 03. pod: 运行于 Kubernetes 中的容器

Kubernetes 实战 —— 01. Kubernetes 介绍Kubernetes 实战 —— 02. 开始使用 Kubernetes 和 DockerKubernetes 实战 —— 03. pod: 运行于 Kubernetes 中的容器Kubernetes 实战 —— 04. 副本机制和其他控制器:部署托管的 podKubernetes 实战 —— 05. 服务:让客户端发现 pod 并与之通信(上Kubernetes 实战 —— 05. 服务:让客户端发现 pod 并与之通信(下介

2021-05-20 22:17:42 172

原创 Kubernetes 实战 —— 02. 开始使用 Kubernetes 和 Docker

Kubernetes 实战 —— 01. Kubernetes 介绍Kubernetes 实战 —— 02. 开始使用 Kubernetes 和 DockerKubernetes 实战 —— 03. pod: 运行于 Kubernetes 中的容器Kubernetes 实战 —— 04. 副本机制和其他控制器:部署托管的 podKubernetes 实战 —— 05. 服务:让客户端发现 pod 并与之通信(上Kubernetes 实战 —— 05. 服务:让客户端发现 pod 并与之通信(下创

2021-05-20 22:17:26 111

原创 Kubernetes 实战 —— 01. Kubernetes 介绍

简介Kubernetes 能自动调度、配置、监管和故障处理,使开发者可以自主部署应用,并且控制部署的频率,完全脱离运维团队的帮助。Kubernetes 同时能让运维团队监控整个系统,并且在硬件故障时重新调度应用。 P2Kubernetes 抽象了数据中心的硬件基础设施,使得对外暴露的只是一个巨大的资源池。 在部署多组件应用时, -Kubernetes 会为每个组件都选择一个合适的服务器,部署之后它能够保证每个组件可以轻易地发现其他组件,并彼此之间实现通信。Kubernetes

2021-05-19 21:53:54 170

原创 阿里Java程序员为什么说最后一步才是写代码!!!

先锻炼业务逻辑,最后一步才是写代码!业务逻辑层作用用于做一些有效性验证的工作,以更好的保证程序运行的健壮性。如完成数据添加、修改和查询业务等;不允许指定的文本框中输入空字符串,数据格式是否正确以及数据类型验证;用户权限的合法性判断等;通过以上的诸多判断以决定是否将操作继续向后传递,尽量保证程序的正常运行。业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(

2021-05-18 21:09:53 159

原创 今天在华为面试 -项目经理问我整型之间的转换???我呆了

目录整型之间的转换总结:整型的值范围整型的隐式转换整型之间的转换char类型转换为byte、short时,必须使用显式类型转换当byte,char或者short类型(或为三者的混合)参与运算时,结果为int类型,而并非与较高的类型相同byte转char比较特殊,先将byte扩展到int,然后再收缩到char,即扩展收缩转换整型之间的转换总结:如果变量的类型是byte、short或char类型,当对其赋予编译时期的常量,而该常量又没有超过变量的取值范围时,编译器就可以进行隐式的收缩转换。这种

2021-05-17 21:07:18 138

原创 2021春招面试高频问题总结丨三本学生如何找到工作(持续更新中~~~)

三本毕业生,毕业加入百度,工作了6年,靠自己能力已经在北京买房。互联网校招除了部分公司对学校有要求211、985,其他很多公司已经只需要本科就行,主要看重技术能力和潜力;而到了社招,更多的是看工作单位和工作方向,对毕业学校参考的比重更小了。个人经历在毕业时多参加有价值的比赛,给自己的简历镀金,现在各大公司都有相关的比赛,在leetcode上就有,也有不同公司专区,如果能拿到名次可以说就进入了绿色通道直接进入面试。另外作为面试官的角度,会同时看技术能力(代码考核)以及项目经历。对于项目经历,建议可以自行

2021-05-05 14:47:15 190

原创 从一个 10 年程序员的角度告诉你:搞懂 Java 面向对象有多容易?

前言:1)java面向对象语言,面向过程围绕过程(解决问题步骤),面向对象围绕实体(名词,特性(属性),行为(动作、方法))。它们设计思想区别在于关心核心不同的。主流都是面向对象的。实际开发,先按面向对象思想进行设计,具体实现时面向过程(人习惯)2)java 怎么支持面向对象呢?a. 万物皆对象,所有的类都是 Object 子类b. java 中支持单继承,多重继承,Tiger 是 Animal 子类,Animal 是 Object 的子类。满足单继承(每次都一个父类,超类)c. 面

2021-04-29 22:11:59 11262 34

原创 我学了一年Java,拿到了 BAT 三家 offer

起步实话说,刚决定转行的时候完全零基础一开始真的啥也不会,甚至不知道怎么去学习。的确,计算机资源很多,自学足够的但是完全不知道怎么去用去学习啊!啥是 LeetCode?啥是 GitHub?啥是IDEA?各种疑问,怎么操作啊?点哪个啊?身边没有人教啊。有时候真的只是懂的人点两下的事情,自己搞要一下午。妈个鸡,第一个月真是完全浪费时间,差点原地放弃。过程战略上坚定信心: 既然那么多人都可以做程序员,甚至高中生都可以,别人可以我肯定也可以。战术上制定计划: 培训班看视频我也看视频咯,对,就是各种

2021-04-28 21:22:18 381

原创 【超详细】一文学会链表解题

前言如果说数据结构是算法的基础,那么数组和链表就是数据结构的基础。因为像堆,栈,对,图等比较复杂的数组结基本上都可以由数组和链表来表示,所以掌握数组和链表的基本操作十分重要。今天就来看看链表的基本操作及其在面试中的常见解题思路,本文将从以下几个点来讲解链表的核心知识什么是链表,链表的优缺点链表的表示及基本操作面试中链表的常见解题思路—翻转面试中链表的常见解题思路—快慢指针什么是链表相信大家已经开始迫不及待地想用链表解题了,不过在开始之前我们还是要先来温习下链表的定义,以及它的优势与劣势,磨

2021-04-27 13:40:46 175

转载 最强Java修仙之路【附赠BAT修炼资源】,这些核心技能是你必须要掌握的!!

代码尽头谁为峰,一见秃头道成空。编程修真路破折,一步一劫渡飞升。众所周知,编程修真有八大境界:Javase-练气筑基数据库-结丹web前端-元婴Javaweb-化神Javaweb项目-炼虚流行框架-合体分布式•微服务-大乘架构师-飞升第一部分:JavaSE-练气筑基Java SE大致可分为以下几块内容:n 对象导论:如何用面向对象的思路来开发n 深入JVM:Java运行机制以及JVM原理n 面向对象的特征:封装、继承、抽象、多态n 数组和容器:容

2021-04-25 17:32:19 1397

原创 小米|JAVA|一面面经|2021|

简介[小米]面经,60min因为是我们大学的校友推荐的简历,也许没有笔试吧,只有两次技术面试。一面面试问题自我介绍计网:1.我看你还做过不少项目(简历),说一说你做的仿QQ聊天是怎么实现的吧?2.计网分为几层?说一下http怎么实现的?3.http和https有什么区别?4.说一下对称加密和非对称加密的区别?5.TCP的三次握手,为什么是三次?JAVA和操作系统6.知道JVM吗?(我说不熟悉,他就没再往下问了)7.知道操作系统吗,说一下进程和线程的区别?8.说一下线程之

2021-04-24 14:25:47 239 3

转载 当年,学姐把这份Java总结给我,让我在22k的校招王者局乱杀

可以说,学姐给我的这份文档真的把我的知识查漏补缺,面试问到了好多,值得收藏。并发编程一.Executor为什么使用线程池:手动创建线程耗费性能,不利于管理。首先创建线程池有两种方式:使用Executors工厂来创建ThreadPoolExecutor这类自定义线程池。使用Executors工厂来创建Executors是一个类,用来创建线程池,常用的有四种线程池1.newFixedThreadPool 创建一个可重复固定的线程数的线程池2.newCachedThreadPool 创建一个可

2021-04-23 15:41:25 256

转载 网易、华为、美团java工程师社招面经!

金三银四一路走来,面的磕磕绊绊,现在比较麻木,不满意但也知道自己几斤几两,无悲无喜状态,只能先毕业再徐徐图之吧。先谈谈过程,再写面经,只为记录,如果能有人看到题目复习一下也不错。背景:本科物理,硕士计算机偏理论。3月底突然看到春招的信息,慌了,既不会算法也不会开发怎么办?天天睡不着,考虑算法已经比较难了,对我这个菜鸡不甚友好)。因为腾讯的仓促,阿里没敢急着写笔试,结果再写笔试春季已经不招了。期间面过华为,还是华为比较友好,上来一题手撕代码,然后就聊聊天,拿到了唯一的实习的offer(虽然最后没去,有

2021-04-22 20:36:40 255

转载 准确的找到BAT实习机会~我入职了腾讯

1.面向人群面向2021.11 - 2022.10 时间毕业的同学。阿里云开放平台在北京、杭州都有office, base地随意选择, 无论实习还是转正、秋招, base地都可任意选择(不出差);部门在不断的发展和壮大中,真缺人, HC往年情况一般有10个左右。每一年,应届毕业生都要面对校招,对于程序员来说,进大厂是我们最大的理想。那么我们应该如何准备校园招聘,如何见招拆「招」?简历、网申、笔试、面试、offer,你会过招到哪关?正值春招结束,此时准备秋招再合适不过,我将为你答疑解惑,帮助.

2021-04-22 20:34:33 185

原创 猿辅导 服务器研发实习生 后端 java 一二三面面经

2021.4.15 猿辅导 一面面试官是斑马AI课的说一下b树和b+树红黑树介绍下。是怎么保证平衡的?HashMap中用到了哪些数据结构,HashMap扩容过程,头插和尾***r /> HashTable怎么保证线程安全,CHM怎么保证线程安全说一下CAS操作,在操作系统层面怎么实现进程和线程的区别进程切换的过程哪些进程调度算法HTTP是哪一层的协议,说一下HTTP是干什么的熟悉哪些HTTP状态码输入网址到获取页面内容的全过程mysql中有哪些锁?JAVA中有哪些互斥锁?手

2021-04-20 13:53:07 702

原创 贝壳后台开发面经(22 届春招)

本人情况● 自我认知:非天赋型,比较擅长归纳整理和交流讨论。● 学历:985 软工● 专利:3 篇专利● 实习:阿里巴巴 Java 开发面试准备自我介绍简历上的项目复盘和查新算法学习与归纳基础知识学习与归纳(计算机网络、操作系统、数据库、JAVA 基础:主要包含 JVM,Java 并发相关的)写在前面贝壳相信大家都是知道的,也是一大互联网巨头,属于链家旗下的,链家是国内房地产领域的top1,北京的二手房的交易手续费达到了2个多点,一套500万的房子,链接可以提成10多万,这也太挣钱了。

2021-04-17 21:18:26 1028 2

原创 怎么我就这么犯jian!马上就要找工作了我还在玩游戏!我的java开发怎么办啊

时间紧张的时候是多么希望有大量时间刷题啊!现在有空了,人却想偷懒了,自己不肯学习了,我真事恨自己如此不争气!真是贱!找工作已经到了火烧眉毛的地步了!还在玩游戏!jsliang 求职系列 - 回流和重绘什么是回流?什么情况下触发回流?什么是重绘?什么情况下触发重绘?如何避免回流和重绘?三 浏览器渲染过程如上图,浏览器的渲染过程为:解析 HTML,生成 DOM 树解析 CSS,生成 CSS 规则树(CSS Rule Tree)将 DOM Tree 和 CSS Rule Tree 相结合,

2021-04-15 22:36:36 84

原创 JVM-动态年龄判断你真的理解了吗

什么对象才能直接进入老年代?你可能很快就说出来,毕竟八股文不是白背的。大对象直接进入老年代。动态年龄判断年龄大于阈值,进入老年代Minor GC后,存活的对象空间大于survivor空间,直接进入老年代。好了嘛,应该没了吧。这次,我们把目光聚焦到:动态年龄判断。下面这图片,摘自JVM书的一段话:什么时候对象能进入老年代空间时?其中一个触发条件就是:动态年龄判断。简单点说:在survivor中,相同年龄的所有对象大小大于survivor的一般空间。年龄大于或等于该年龄的对象可以

2021-04-14 21:40:22 455

转载 Java8优雅的字符串拼接工具类StringJoiner实例代码

StringJoiner是Java8新出的用于处理字符串拼接的工具类,可以让你的代码看起来更优雅,不拉跨。假设现在遍历一个字符串集合,需求是每个元素按照 “.” 分开。 String a = "w", b = "d", c = "n", d = "m", e = "d";List<String> list = new ArrayList<>();list.add(a);list.add(b);list.add(c);list.add(d);list.add(

2021-04-12 21:22:17 165

转载 java中继承多态抽象类接口之间的关系和作用,我总结了下,帮我看看可以吗

在实施接口中,我们利用interface语法,将interface从类定义中独立出来,构成一个主体。interface为类提供了接口规范。在继承中,我们为了提高程序的可复用性,引入的继承机制。当时的继承是基于类的。interface接口同样可以继承,以拓展原interface。接口继承接口继承(inheritance)与类继承很类似,就是以被继承的interface为基础,增添新增的接口方法原型。比如,我们以Cup作为原interface:interface Cup { void ad.

2021-04-02 21:28:27 179

原创 Java利用Redis实现高并发计数器

业务需求中经常有需要用到计数器的场景:譬如一个手机号一天限制发送5条短信、一个接口一分钟限制多少请求、一个接口一天限制调用多少次等等。使用Redis的Incr自增命令可以轻松实现以上需求。以一个接口一天限制调用次数为例:/*** 是否拒绝服务* @return*/private boolean denialOfService(String userId){long count=JedisUtil.setIncr(DateUtil.getDate()+"&"+userId+"&.

2021-03-23 15:29:12 762

转载 前程似锦之Java调用Shell命令和脚本的实现

1.介绍有时候我们在Linux中运行Java程序时,需要调用一些Shell命令和脚本。而Runtime.getRuntime().exec()方法给我们提供了这个功能,而且Runtime.getRuntime()给我们提供了以下几种exec()方法:Process exec(String command) 在单独的进程中执行指定的字符串命令。Process exec(String[] cmdarray) 在单独的进程中执行指定命令和变量。Process exec(String[] c

2021-03-23 15:17:29 106

原创 Java控制台版五子棋的简单实现方法

这篇文章主要给大家介绍了关于Java控制台版五子棋的简单实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧设计一个10*10的棋盘:行号、列号单独输出package yu; import java.util.Scanner; public class WuZiQi { /*● 棋子1 ○ 棋子2 * */ public static void main(String[] args

2021-03-06 21:50:11 120

原创 Java中遍历Map集合的5种方式总结

这篇文章主要给大家介绍了关于Java中遍历Map集合的5种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧方式一 通过Map.keySet使用iterator遍历@Testpublic void testHashMap1() { Map<Integer, String> map = new HashMap<>(); map.put(001, "Java"); map.put(002, "数据库");

2021-03-06 21:36:11 142

原创 Java深入之前戏篇——Spring AOP

动态代理不会去修改字节码,而是在内存中临时为方法生成一个AOP对象,这个AOP对象包含了目标对象的全部方法,并且在特定的切点做了增强处理,并回调原对象的方法。AOP的核心是切面,它将多个类的通用行为封装成可重用的模块,该模块含有一组API提供横切的功能,在SpringAOP中,切面通过@Aspect注解,也可以使用XML配置AOP动态代理方式Spring AOP中动态代理主要有两种方式,JDK动态代理和CGLIB动态代理。JDK动态代理JDK动态代理通过反射来接收被代理的类,并且要求被代理的类必须

2021-03-05 22:43:50 52

原创 Java深入之前戏篇——Spring AOP

动态代理不会去修改字节码,而是在内存中临时为方法生成一个AOP对象,这个AOP对象包含了目标对象的全部方法,并且在特定的切点做了增强处理,并回调原对象的方法。AOP的核心是切面,它将多个类的通用行为封装成可重用的模块,该模块含有一组API提供横切的功能,在SpringAOP中,切面通过@Aspect注解,也可以使用XML配置AOP动态代理方式Spring AOP中动态代理主要有两种方式,JDK动态代理和CGLIB动态代理。JDK动态代理JDK动态代理通过反射来接收被代理的类,并且要求被代理的类必须

2021-03-04 22:16:24 81 1

原创 JVM快速入门之前戏篇

什么是JVMJVM是可以运行在Java代码的虚拟的计算机,既然是虚拟的计算机,当然也包含自己的CPU、字节码指令集、寄存器、栈、垃圾回收、堆和存储方法域,我们可以理解成JVM自己就是一套操作系统。Java从编译到执行Virtual Machine是物理机器的软件实现。Java是用在VM上运行的WORA(Write Once Run Anywhere)概念而开发的。编译器将Java文件编译为Java .class文件,然后将.class文件输入到JVM中,JVM会加载并执行类文件,如下图所示:1. 编

2021-03-03 21:52:14 165

原创 金三银四招聘季!阿里JVM面试题已泄露!【白嫖福利】

1.基本数据类型一定存储在栈中吗?基本数据类型是放在栈中还是放在堆中,这取决于基本类型在何处声明。1.在方法中声明的变量,即该变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个方法栈,其所在方法中声明的变量就放在方法栈中,当方法结束系统会释放方法栈在方法中声明的变量可以是基本类型的变量,也可以是引用类型的变量。1.1当声明是基本类型的变量的时,其变量名及值(变量名及值是两个概念)是放在方法栈中1.2当声明的是引用变量时,所声明的变量(该变量实际上是在方法中存储的是内存地址值)是放在方

2021-02-28 22:11:40 153

原创 JVM之Metaspace解密

一:Metaspace介绍我们都知道jdk8之前有perm这一整块内存来存klass等信息,我们的参数里也必不可少地会配置-XX:PermSize以及-XX:MaxPermSize来控制这块内存的大小,jvm在启动的时候会根据这些配置来分配一块连续的内存块,但是随着动态类加载的情况越来越多,这块内存我们变得不太可控,到底设置多大合适是每个开发者要考虑的问题,如果设置太小了,系统运行过程中就容易出现内存溢出,设置大了又总感觉浪费,尽管不会实质分配这么大的物理内存。基于这么一个可能的原因,于是metaspac

2021-02-27 21:43:55 280

原创 Java之Resource接口

接口简介JDK中提供了java.net.URL这个类来用于获取不同种类的资源(根据不同前缀的url可以获取不同种类的资源)。但是URL这个类没有获取classpath和ServletContext下的资源的能力。因此Spring提供了Resource接口,用于获取各种资源。Resource接口spring中的org.springframework.core.io.Resource接口代表着物理存在的任何资源,其继承于org.springframework.core.io.InputStreamSour

2021-02-27 21:40:06 200

原创 不可不知的 JVM 预热

一、JVM 架构基础JVM 进程启动时,ClassLoader 会将需要的所有类加载到内存,主要分为以下三步:Bootstrap Class: 核心类库,由 “Bootstrap Class Loader”负责加载, 例如基础的运行时类库 JRE\lib\rt.jar。Extension Class: java.ext.dirs 路径下的类,由 ExtClassLoader 负责加载。在实际开发中,如果需要添加额外的类库,通常放置于此位置。Application Class: 实际应用包含的类,由

2021-02-26 21:40:40 565

原创 Java反射

一、概念运行状态中知道类所有的属性和方法。在Java中的反射机制是指在运行状态中,对于任意一个类都能知道这个类的所有属性和方法,并且对于任意一个对象,都能调用它的任意一个方法。这种能够获取信息以及动态调用对象方法的功能称为JAVA语言的反射机制。二、class文件包含的内容三、使用场所Java程序运行时,许多对象会出现两种类型:编译时类型,运行时类型。编译时类型:由声明对象时实用的类型来决定。运行时类型:由实际赋值给对象的类型决定。例:Person p = new Student();

2021-02-25 21:39:46 152

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除