摘要:一、同步与异步 阻塞与非阻塞 无论是同步还是异步的情况,只要任务执行时不能中断做别的任务,就可能造成阻塞。如果在执行该任务时,可以中断做别的任务就不会造成阻塞。 同步/异步、阻塞/非阻塞之间的区别:同步和异步仅仅是关注的消息如何通知的机制,而阻塞与非阻塞关注的是等待消息通知时的状态。也就是说,同步的
阅读全文
摘要:1、新建project 根据需求填加依赖。 二、测试项目环境: 配置服务器: 然后创建controller包,创建HelloController类 三、在浏览器测试结果 地址栏输入:localhost:8080/hello
阅读全文
摘要:1、端口占用问题 使用8080端口时,发展该端口被占用。 解决方案 参见 https://blog.csdn.net/weixin_44519467/article/details/104072131 查看端口情况 : netstat /ano 2、JAVA版本更新报错 报错信息: Java Hot
阅读全文
摘要:1、因为版本更新,JAVA15以前的版本都已经没办法下载了,所以要使用oracle java必须使用最近的java15 $ sudo apt-get install oracle-java15-installer 运行上述语句,即可完成下载 2、导入别人的项目文件时,先配置tomcat,然后将lib
阅读全文
摘要:一、三层架构 三层: 表现层:通常说的web层,负责接受客户端请求,向客户端响应结果,通常客户端使用HTTP协议请求web层,web层接受http请求,完成http响应。 表现层包括展示层和控制层;控制层负责接受请求,展示层负责结果的展示。 表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务
阅读全文
摘要:一、技术要求 使用Spring的IoC实现对象的管理 使用DBAssit作为持久层解决方案 使用c3p0数据源 二、AOP 什么是AOP?简单的说它就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的已有方法进行增强。 AOP的作用及优势 作用: 在
阅读全文
摘要:一、 GIT是分布式版本控制系统,没有中央服务器,每个电脑都是一个完整的版本库,工作时不需要联网,因为版本在自己的电脑上。 一般工作流程如下: 1.从远程仓库中克隆 Git 资源作为本地仓库。 2.从本地仓库中checkout代码然后进行代码修改 3.在提交前先将代码提交到暂存区。 4.提交修改。提
阅读全文
摘要:一、Spring概述 Spring是分层的JAVA se/ee 应用,full-stack轻量级开源框架,以IoC(Inverse of control 反转控制)和AOP(Aspect Oriented Programming 面向切面编程)为内核,提供了展现层SpringMVC和持久层Sprin
阅读全文
摘要:一、插入数据 package TestJDBC; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import com.sun.jdi.connect.spi.Connec
阅读全文
摘要:一、准备 在mysql官网,下载jar包 解压压缩包后,将jar包添加到外部库,操作步骤如下 1. 找到mysqlJAR包并添加即可。 package TestJDBC; import java.sql.DriverManager; import java.sql.SQLException; imp
阅读全文
摘要:一、原因 每一个线程的启动和结束都比较消耗时间和占用资源,如果系统中有很多线程,大量的启动和结束动作会导致系统性能下降,相应变慢。 为了解决上述问题,引入线程池的思想。 二、原理 1、准备任务容器 2、初始化创建数个线程,让他们保持等待 3、当有外部线程往容器中扔来一个“任务”,就会有一个线程被唤醒
阅读全文
摘要:一、死锁 死锁需要满足四个条件: 1、互斥条件; 2、请求与保持条件; 3、循环等待条件; 4、不可剥夺条件 二、线程交互 使用wait和notify进行线程交互 wait的作用是使编程等待,并临时释放资源占有。 notify的作用是通知那些在等待的线程可以苏醒过来了。 三、练习:生产者消费者问题
阅读全文
摘要:1、ArrayList 以数组实现,继承AbstractList,实现了List接口。基于数组实现容量大小的动态变化。 允许NULL存在。同时还实现了 RandomAccess、Cloneable、Serializable 接口,所以ArrayList 是支持快速访问、复制、序列化的。 ArrayL
阅读全文
摘要:一、多线程实现 有三种实现多线程的方式: 1.继承Thread 2.接入runnerble 3.使用匿名类 二、实现实例 1 package threadtest; 2 3 public class TestThread { 4 5 public static void main(String[]
阅读全文