java基础
文章平均质量分 80
紫罗兰盛开
左手编程,右手理财
展开
-
JVM类加载流程及双亲委派机制
一、类加载流程二、类加载器三、源码分析查看java.lang.ClassLoader的loadClass(java.lang.String, boolean)方法的源码:protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { synchronized (getClassLoadingLock(name)) {原创 2021-10-12 17:09:16 · 19969 阅读 · 0 评论 -
一文贯通→过滤器与拦截器详解
一、过滤器Filter过滤器英文叫 Filter,是 JavaEE 的标准,依赖于 Servlet 容器,可以按照指定顺序配置多个。常用来配置请求编码以及过滤一些非法参数,垃圾信息或者是网站登录验证码。目前主要有三种实现方式1、基于SpringMVC的实现方式主要分为两步自定义过滤器,实现javax.servlet.Filter接口public class JavaEncodeFilter implements Filter { private String encoding = "原创 2021-04-23 14:24:58 · 12996 阅读 · 1 评论 -
基于ApplicationListener的事件监听机制
一 基本原理ApplicationListener事件监听机制是经典的观察者设计模式的实现,基本原理就是:通过ApplicationEvent类和ApplicationListener接口,实现ApplicationContext事件处理,每当ApplicationContext发布ApplicationEvent时,ApplicationListener Bean将自动被触发。这种事件机制都必须需要程序显示的触发。二 spring内置事件ContextRefreshedEventApplic原创 2021-04-14 11:07:53 · 448 阅读 · 0 评论 -
java中Enum详解
一.枚举的实现原理定义一个简单的Enum,如下所示:public enum Sex { MALE("男"),FEMALE("女"); private String desc; Sex(String desc) { this.desc = desc; }}反编译后,如下:public final class Sex extends Enum{ public static Sex[] values() { ret原创 2021-04-07 12:04:26 · 14521 阅读 · 3 评论 -
java基础面试
一.java线程池的核心参数及工作原理核心参数:corePoolSize:核心线程数,当线程数小于该值时,线程池会优先创建新线程来执行任务,如果调用了线程池的prestartAllCoreThreads方法,线程池会提前创建并启动所有基本线程,除非设置了allowCoreThreadTimeOut,否则核心线程将持续保留在线程池中即时没有新的任务提交过来。maximumPoolSize:最大线程数,即线程池所能允许创建的最大线程数量。keepAliveTime:空闲线程存活时间,当线程数量大于核心线原创 2021-03-08 14:05:48 · 117 阅读 · 0 评论 -
玩转Spring,你不得不知的实用功能
一、实现初bean的始化spring中支持3种初始化bean的方法:xml中指定init-method方法使用@PostConstruct注解实现InitializingBean接口第一种方法太古老了,现在用的人不多,具体用法就不介绍了。1.使用@PostConstruct注解在需要初始化的方法上增加@PostConstruct注解,这样就有初始化的能力。@Servicepublic class TestService1 { @PostConstruct publi原创 2021-01-15 16:42:40 · 14192 阅读 · 0 评论 -
idea开启远程调试
一、启动脚本配置1.启动脚本添加-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=5005例如我在自己项目添加的案例:java -Xmx1536m -Xms1536m -Xmn512m -Xss256k -Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=5005 -jar ./payment-0.0.1-SNAPSHOT.jar &原创 2020-12-22 16:44:53 · 3820 阅读 · 1 评论 -
炫酷实用的IDEA插件
今天准备和大家一起分享一下实际工作中常用的几款能提升幸福感和工作效率的IDEA插件吧,也欢迎小伙伴们在评论区安利出你们用过的觉得非常不错的插件,大家一起交流进步。1、Background Image Plus默认IDEA的背景一般都比较单调,要么白乎乎,要么黑乎乎,而Background Image Plus这个插件可以为IDEA设置自定义图片作为背景,而且还可以设置透明度,从此写代码乐趣十足!背景图设置步骤和效果如下:2、Maven Helper一旦安装了Maven Helper插件,只要打原创 2020-12-22 16:28:46 · 14759 阅读 · 1 评论 -
RabbitMQ使用指南
1 MQ 简 介消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见角色大致也就有 Producer(生产者)、Consumer(消费者)。常见的消息中间件产品:(1). ActiveMQActiveMQ 是 Apache 出品,最流行的,能力强劲的开源消...原创 2020-03-14 15:12:33 · 218 阅读 · 0 评论 -
浅谈负载均衡之Nginx
Nginx工作原理Nginx由内核和模块组成,Nginx本身做的工作实际很少,当它接到一个HTTP请求时,它仅仅是通过查找配置文件将此次请求映射到一个location block。此location中所配置的各个指令则会启动不同的模块去完成工作,因此模块可以看做Nginx真正的劳动工作者。通常一个location中的指令会涉及一个handler模块和多个filter模块(当然,多个locat...原创 2020-01-20 11:50:52 · 223 阅读 · 0 评论 -
Java中注解详解
一、什么是注解官方定义:注解是一系列元数据,它提供数据用来解释程序代码,但是注解并非是所解释的代码本身的一部分。注解对于代码的运行效果没有直接影响。注解有许多用处,主要如下:提供信息给编译器:编译器可以利用注解来探测错误和警告信息。编译阶段时的处理:软件工具可以用来利用注解信息来生成代码、Html文档或者做其它相应处理。运行时的处理:某些注解可以在程序运行的时候接受代码的提取值得注意...原创 2020-01-19 17:40:12 · 299 阅读 · 0 评论 -
jdk1.8新特性梳理
前言jdk1.8的新特性梳理,方便自己记忆和小伙伴们快速掌握零、回顾一个抽象类在jdk1.8之前,因为接口里只能做方法定义不能有方法的实现,因此我们通常会在抽象类里面实现默认的方法{一般这个默认的方法是抽象后公用的方法,不需要每一个继承者都去实现,只需调用即可}。就像下面这样;在定义的时候;public abstract class AFormula { abstract doubl...原创 2020-01-19 17:20:21 · 14032 阅读 · 0 评论