
Java实战实例
文章平均质量分 66
这篇从0基础到分布式实战项目实战和技术讲解,致力于把一个有一定技术的小白教会为中高级开发Java工程师
负差生
勿以浮沙筑高台
展开
-
JAVA面试八股文-基础篇(kafka)
谁无暴风劲雨时,守得云开见月明什么是kafkakafka是由java编写的高可用,高性能,高吞吐量的消息队列。由以下组成:zookeeper: 协调选举消费者组: 数据消费生成者: 数据生成broker: kafka节点分区: 负载均衡器offset: 偏移量leader: 消息分发节点follower: 数据跟随节点副本集: 从节点kafka的ack机制kafka的ack是针对生产者而言ack有三种设置:-1,0,1-1:等待从节点全部备份完成后返回ack。0:不需要等原创 2021-09-05 16:28:23 · 590 阅读 · 0 评论 -
Linux下安装Lua,基础入门
学不可以以已Linux下安装Lua环境# 安装lua需要的目录依赖yum install libtermcap-devel ncurses-devel libevent-devel readline-devel# 安装lua环境curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz ## 解压文件tar zxf lua-5.3.5.tar.gz# 移动到目标目录 cd lua-5.3.5# 创建测试文件make linux test#原创 2021-08-27 14:00:56 · 2166 阅读 · 2 评论 -
JAVA面试八股文-基础篇(spring)
冰冻三尺非一日之寒基础Spring是什么Spring是轻量级和面向切面的容器框架轻量级,开销低通过IOC的技术达到低耦合提供了面向切面的丰富支持,允许通过分离应用的业务逻辑系统内聚性业务开发。包含并管理应用管理对象Bean的生命周期简单的组件配置Spring有哪些常用的注入方式和注解注入方式:@Configruation+@Bean配置类加方法@Xml 节点使用 set 方式注入 节点使用 构造方法注入<bean id="person" class="类文件名类路原创 2021-08-18 11:08:41 · 1326 阅读 · 0 评论 -
JAVA面试八股文-基础篇(基础及多线程)
谁无暴风劲雨时,守得云开见月明什么是JUC?java.until.concurrentjava.until.concurrent.atomicjava.until.concurrent.lockvolatile关键字可见性线程内存之间数据禁止指令重排非原子性原创 2021-08-16 10:19:36 · 428 阅读 · 0 评论 -
JVM(JVM的类的加载阶段,双亲委派机制)
谁无暴风劲雨时,守得云开见月明JVM的运行机制JVM(java virtual machine) 是用于运行JAVA字节的虚拟机。由一套字节码指令集,一组程序寄存器,一个虚拟栈,一个虚拟堆,一个方法区和一个垃圾回收器组成。JVM源文件在通过编译后变为相应的.class文件(字节码文件),字节码文件再根据不同的解释器变为机器码文件调用操作系统上的本地方法区。这也就是为什么JAVA能够跨平台的原因。在一个java进程开始,虚拟机就开始实例化了,有多个进程启动就会实例化多个虚拟机实例。进程退出或关闭,则原创 2021-08-13 17:09:48 · 212 阅读 · 0 评论 -
高并发编程(死锁排查、阻塞、非阻塞、多路复用IO、信号驱动IO、异步I/O模型、同步、异步、JAVA NIO)
为学不间断当如行云流水不可以已耐得住寂寞,经得起诱惑自律是一个最大的雄心死锁排查什么是死锁?线程之间的相互等待对方锁的释放而卡住的情况称之为死锁。比如:有2把锁,lockA,lockB线程A:lockA{//业务逻辑lockB{//业务逻辑}}线程B:lockB{//业务逻辑lockA{//业务逻辑}}线程A等待锁B的释放,线程B等待锁A的释放,双方都执行不下去就出现了死锁的情况。如何排查死锁?在控制台执行 jps -l,找到我们的java进程,然后原创 2021-08-11 21:13:21 · 3877 阅读 · 11 评论 -
高并发编程(CAS、AtomicStampedReference时间戳原子操作类、自旋锁、synchronize锁升级)
谁无风暴劲雨时,守得云开见月明CASCAS是什么?CAS全程是CompareAndSet,比较转换。是原子操作类的一种方式。达到预期值才修改。否则不修改代码调用:public class Test { public static void main(String[] args) { AtomicInteger atomicInteger = new AtomicInteger(2020); // public final boolean compa原创 2021-08-11 15:20:28 · 254 阅读 · 0 评论 -
高并发编程(JMM(ABA),Volatile,指令重排,原子类)
谁无风暴劲雨时,守得云开见月明JMM(内存模型)JMM:是java的内内存模型,不存在的东西,是一种概念和约定。关于JMM的的同步约定:线程解锁前:必须把工作内存立刻刷回主存线程加锁前:必须把工作主存立刻刷进工作内存JMM内存模型图...原创 2021-08-10 11:18:25 · 234 阅读 · 0 评论 -
高并发编程(阻塞队列,put,take源码, 线程池)
谁无风暴劲雨时,守得云开见月明阻塞队列BlockingQueue队列:先进先出数组。既队列满了等待队列为空的时候进行写入,如果队列空了则等待队有数据后进行消费。接口结构:集合派生出List(可变数组),Set(不可重复队列),Queue(先进先出队列),先进先出队列后派生除了BlockingQueue(阻塞队列),Deque(链表双端队列),abstractQueue(非阻塞队列),阻塞队列又派生出ArrayBlockingQueue(数组队列),LinkedBlockingQueue(链表数原创 2021-08-08 15:18:29 · 446 阅读 · 0 评论 -
高并发编程(lock、synchronized、八锁现象,Callable从线程中拿取返回值)
谁无暴风劲雨时、守得云开见月明线程的6个状态创建、运行、阻塞、等待、超时等待、终止创建:new thread()运行:.start()阻塞:synchronized(),lock()等待:wait()join()超时等待自动唤醒:sleep(long),wait(long)终止。锁wait和sleep的区别:区别waitsleep所属类objectthread锁的释放释放锁不释放使用范围在代码块当中任何地方异常捕获不需要捕获必原创 2021-08-07 16:01:32 · 220 阅读 · 0 评论 -
纯手写实现Spring源码框架(三)
上一篇我们完成了Bean定义的加载对象,这次完成scope获取value值写入元数据和设置BeanNamescope体系定义作用域源数据类ScopeMetadata/** * 定义作用域源数据类 */public class ScopeMetadata { //定义作用域的默认值 private String scopeName = BeanDefinition.SCOPE_SINGLETON; public String getScopeName() {原创 2021-05-23 17:23:38 · 249 阅读 · 1 评论 -
纯手写实现Spring源码框架(二)
上一篇写了基础架构,4级接口,然后完成了扫描类的类加载过程这一片思考:在源码当中加载完资源对象后(我们这里用class代替),需要对资源进行判断,判断是否是可读对象,我们查看源码后,源码有一个InputStrem的接口和一个InputStramResource接口继承自它,内部提供了exetis,isreader等接口对象,...原创 2021-05-21 20:42:19 · 439 阅读 · 0 评论 -
纯手写实现Spring源码框架(一)
前端时间学习了一下Spring的源码,整体框架知道个大概,但是不是特别清晰,现在通过自己手写一下回忆一下。1.准备1.回忆一下Spring的创建步骤this()1.构建BeanFctory工厂,赋值给reader2.构建扫描对象,赋值给scannersan()1.递归扫描文件路径,奖类解码进BeanDefinition对象当中2.获得元数据,加载ScopeMetadata,解析Scope的作用域3.通过元数据,设置BeanName4.注入后置处理器refresh()原创 2021-05-20 13:30:45 · 603 阅读 · 2 评论 -
FactoryBean工厂
继承FactoryBean工厂@Controllerpublic class GetBeanFactory implements FactoryBean<A> { @Override public A getObject() throws Exception { return new A(); } @Override public Class<?> getObjectType() { return A.cl原创 2021-05-17 16:44:12 · 59 阅读 · 0 评论 -
J2EE-029 Spring容器源码解析(四)refresh()三级缓存解析-笔记
实列化所有单例对象beanFactory.preInstantiateSingletons(); public void preInstantiateSingletons() throws BeansException { if (this.logger.isTraceEnabled()) { this.logger.trace("Pre-instantiating singletons in " + this); } //拿到所原创 2021-05-17 15:40:18 · 154 阅读 · 0 评论 -
J2EE-028 Spring容器源码解析(三)this().Scanner构建过程和scan构建
Scanner构建过程前言源码解析this()总结this()图解Scan()构建findCandidateComponents>scanCandidateComponents图解总结:前言前面2章我们梳理了AnnotatedBeanDefinitionReader的构造过程今天我们来梳理ClassPathBeanDefinitionScanner的构造过程源码解析我们首先顺着ClassPathBeanDefinitionScanner这个类的构造函数看首先看有没有父类,有父类的话看父原创 2021-05-13 14:02:47 · 211 阅读 · 0 评论 -
J2EE-027 Spring容器源码解析(二)BeanFactory,ApplicationContext体系reader构建过程总结
Spring容器源码解析(二)前言准备工作BeanFactory体系ApplicationContext体系文章总结前言在上一篇内容中我们讲解了Spirng容器初始化如何加载工厂和如何判断需要加载的bean是否在容器的流程,这篇内容我们解析一下1.工厂是如何创建的,BeanFactory体系2.讲解一下我们接受的ApplicationContext接口接收的体系,ApplicationContext准备工作这里需要下载插件PlantUML integrationBeanFactory体系原创 2021-05-11 17:26:55 · 243 阅读 · 0 评论 -
J2EE-026 Spring容器源码解析(一)构建后置处理器
Spring容器源码解析DI和IOCIOC(控制反转)提出问题源码梳理`registerAnnotationConfigProcessors`类关键代码:构建工厂`registerAnnotationConfigProcessors`类关键代码:判断图解
Activit功能引擎初始依赖第一步:IDEA安装Activiti插件第二步:创建一个流程图★★★★★代码编写1、部署流程2、启动流程实例3、提交申请4、查询项目组长的所有任务列表5、项目组长完成审批6、查询项目经理的所有任务列表7、项目经理PM完成审批流初始化第二种方式(申请提交)流初始化第三种方式(申请提交)删除已经初始化的流程文章总结代码Activit目前不支持2019.14以上的IDEA版本,因此这里用IDEA2019的版本来演示初始依赖第一步:IDEA安装Activiti插件首先,创建一个原创 2021-05-08 21:18:04 · 165 阅读 · 0 评论 -
J2EE-024 Mybatis逆向工程
从开始搭建Mybatis逆向工程创建聚合工程创建Mybatis逆向工程通用mapper概述什么是通用Mapper添加Maven依赖配置tk逆向工程配置文件结合之前手动搭建SSM框架的知识做个整合快捷生成Mapper.xml,接口,实体的工具介绍。创建聚合工程1.在pom.xml中设置<packaging>pom</packaging>2.引入spring-tx,spring-jdbc,lombok,jackson-databind,servlet-api,mybatis,my原创 2021-05-07 20:04:10 · 109 阅读 · 0 评论 -
J2EE-023 SSM框架注解整合和为什么不用根目录加载Bean原因
在XML配置 SSM框架上进行修改,如果对XML配置流程不懂的请看JSEE-021 XML配置SSM框架J2EE-022 SSM框架注解整合事务事务在spring-tx中,注释事务的注解管理器,扫描service层路径,标注注解原创 2021-05-06 21:21:26 · 142 阅读 · 0 评论 -
J2EE-022 SSM XML配置SSM框架
SSM框架的整合Spring-MVC 多视图配置Spring IOC,DISpring-MVC 从前端到后端的流程控制Mybatis ORM框架Spring-MVC 多视图配置原创 2021-04-30 12:46:06 · 681 阅读 · 2 评论 -
J2EE-021 SSM Spring-MVC入门(下)(文件上传,异常处理,拦截器,FreeMark)
Spirng-MVC入门文件上传文件上传三步骤1.页面要素2.导入jar包2.配置文件后台代码前台代码测试Spring-MVC统一异常处理1.针对某个类@Exception2,全局针对全局的Excption处理类3.@AdviceGoalExcption+@ExceptionHandler(继承Exception的类对象)+@ResponseStatus(报错码)4.在web.xml中设置报错页拦截器继承HandlerInterceptor方法继承HandlerInterceptor重写3个方法Bean加载原创 2021-04-28 19:53:21 · 122 阅读 · 0 评论 -
J2EE-020 Spring(五) Spring-MVC(上)(创建MVC项目,静态资源放行,常用API,参数绑定)
J2EE-020 Spring(五) Spring-MVC搭建项目建立web项目引入Spring-mvc,Jar包<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.5.RELEASE</version> </dependency>1.在web.xm原创 2021-04-28 12:27:40 · 336 阅读 · 0 评论 -
J2EE-010 ORM脚手架(整体完成,细节未完成)
因为之前都是用的幕布进行文章发布现在移动到这里进行统一管理,文章我就不再编写了,后面会用优快云进行编写,望审核给与通过谢谢!!!! https://share.mubu.com/doc/7Nk5FA5XPZV原创 2021-04-27 10:58:15 · 85 阅读 · 0 评论 -
J2EE-009 注解+ORM
因为之前都是用的幕布进行文章发布现在移动到这里进行统一管理,文章我就不再编写了,后面会用优快云进行编写,望审核给与通过谢谢!!!! https://share.mubu.com/doc/4Hz0lNKNJUV原创 2021-04-27 10:57:28 · 76 阅读 · 0 评论 -
J2EE-008 BaseServlet+JDBC
因为之前都是用的幕布进行文章发布现在移动到这里进行统一管理,文章我就不再编写了,后面会用优快云进行编写,望审核给与通过谢谢!!!!https://share.mubu.com/doc/0grAsAzWq原创 2021-04-27 10:55:48 · 87 阅读 · 0 评论 -
J2EE-007 反射+BaseServlet实现
因为之前都是用的幕布进行文章发布现在移动到这里进行统一管理,文章我就不再编写了,后面会用优快云进行编写,望审核给与通过谢谢!!!!https://share.mubu.com/doc/3hGLbDxQhQV原创 2021-04-27 10:54:48 · 103 阅读 · 0 评论 -
J2EE-006 单元测试-使用JSP,EL,JSTL完成增删改查
因为之前都是用的幕布进行文章发布现在移动到这里进行统一管理,文章我就不再编写了,后面会用优快云进行编写,望审核给与通过谢谢!!!!https://share.mubu.com/doc/0grAsAzWq原创 2021-04-27 10:53:54 · 147 阅读 · 0 评论 -
J2EE-005 JSP,JSTL,EL表达式
因为之前都是用的幕布进行文章发布现在移动到这里进行统一管理,文章我就不再编写了,后面会用优快云进行编写,望审核给与通过谢谢!!!!https://share.mubu.com/doc/-3ilm81pOV原创 2021-04-27 10:53:08 · 73 阅读 · 0 评论 -
J2EE-004 JAVA Web Servlet(B/S)
因为之前都是用的幕布进行文章发布现在移动到这里进行统一管理,文章我就不再编写了,后面会用优快云进行编写,望审核给与通过谢谢!!!!https://share.mubu.com/doc/eCS-VyAf_F原创 2021-04-27 10:52:21 · 98 阅读 · 0 评论 -
J2EE-003 JDBC
因为之前都是用的幕布进行文章发布现在移动到这里进行统一管理,文章我就不再编写了https://share.mubu.com/doc/4f2Bberp0_F原创 2021-04-27 10:51:19 · 109 阅读 · 0 评论 -
J2EE-002 面向对象(OOP)
因为之前都是用的幕布进行文章发布现在移动到这里进行统一管理,文章我就不再编写了https://share.mubu.com/doc/2PCj6z3mOLF原创 2021-04-27 10:49:06 · 106 阅读 · 0 评论 -
J2EE-001 核心语法和环境搭建
因为之前都是用的幕布进行文章发布现在移动到这里进行统一管理,文章我就不再编写了https://share.mubu.com/doc/5y7YNI3_2TF原创 2021-04-27 10:47:58 · 78 阅读 · 0 评论