
框架技术
文章平均质量分 91
Java中的框架和工具
攻城狮Chova
一位有自我修养的攻城狮。
2006年《时代》周刊年度人物,
2008年感动中国组委会特别奖获得者。
展开
-
MySQL数据库Day04-数据库MySQL的高级使用
数据库MySQL的高级使用MySQL常用工具mysqlMySQL常用工具mysql客户端工具mysql基本语法:mysql [options] [database]选项options包括:连接选项执行选项连接选项:连接选项含义说明-u- -user指定用户名-p- -password指定密码-h- -host指定服务器IP或者域名-P- -port指定连接的端口号.......................原创 2022-08-01 08:00:46 · 550 阅读 · 0 评论 -
MySQL数据库Day03-数据库MySQL的优化
数据库优化SQL优化SQL优化步骤查看SQL执行频率定位慢查询SQL分析SQL执行计划分析SQL执行耗费分析SQL优化器执行计划SQL优化实例批量插入大量数据优化主键顺序插入关闭唯一性校验关闭自动提交事务INSERT语句优化ORDER BY 语句优化两种排序方式ORDER BY优化方式filesort排序优化GROUP BY语句优化子查询优化OR语句优化LIMIT语句优化SQL优化SQL优化步骤在应用开发初期,使用的数据库SQL语句注重的是功能上的实现.但是当应用系统正式上线之后,随着生产数据量的急原创 2022-04-21 08:09:27 · 1199 阅读 · 0 评论 -
MySQL中事务四大特性的实现详解
MySQL事务的四大特性的实现基本概念原子性实现基本概念事务的四大特性ACID :原子性Atomic : 事务的所有的SQL操作作为一个原子工作单元执行.要么全部执行,要么全部不执行一致性Consistent : 事务完成后,所有数据状态都是一致的隔离性Isolation : 如果有多个事务并发执行,那么每个事务做出的修改必须和其余的事务隔离持久性Duration : 事务完成后,对数据库中数据的修改会持久化存储事务的四种隔离级别:隔离级别脏读不可重复读幻读原创 2022-01-21 10:31:34 · 2357 阅读 · 1 评论 -
数据库MySQL的完全使用说明
数据库MySQL的使用数据库基本介绍MySQL数据库基本介绍MySQL数据库安装数据库基本介绍数据库的优点:将数据持久化到本地提供结构化查询功能数据库的存储特点:数据存放到表中,然后将表存放到库中一个库中可以有多张表,每张表有唯一的表名标识表中有一个或者多个列字段表中可以存放多行数据数据库的分类:关系型数据库:MySQLOracleDB2SQL Server非关系型数据库:键值存储的数据库:RedisMemcachedMemcacheDB原创 2022-01-19 13:32:41 · 2318 阅读 · 0 评论 -
MySQL数据库Day02-数据库MySQL的体系结构
数据库的SQL优化MySQL的体系结构MySQL的体系结构MySQL由以下组件组成:Connection Pool : 连接池组件Management Services & Utilities : 管理服务和工具组件SQL Interface : SQL接口组件Parser : 查询分析器组件Optimizer : 优化器组件Caches & Buffers : 缓冲池组件Pluggable Storage Engines : 插件式存储引擎组件File Syste原创 2021-12-07 08:18:13 · 932 阅读 · 0 评论 -
高性能并发队列Disruptor
Disruptor基本概念基本概念Disruptor是一个高性能的异步处理框架,是一个轻量的Java消息服务JMS, 能够在无锁的情况下实现队列的并发操作Disruptor实现了队列的功能,并且是一个有界队列.通常应用于生产者-消费者的场景Disruptor是一个观察者模式的实现Disruptor和BlockingQueue比较:BlockingQueue: FIFO队列.生产者Producer向队列中发布publish一个事件时,消费者Consumer能够获取到通知.如果队列中没有消费的事原创 2021-08-06 13:26:15 · 533 阅读 · 0 评论 -
Gradle使用Day04-Gradle构建实践
Gradle构建实践Gradle构建JavaJava插件Java项目构建Java项目外部依赖Gradle构建JavaJava插件Gradle是一个通用工具,在脚本中编写好代码就可以通过脚本构建任何想要实现的操作,真正实现开箱即用Java项目基本流程:编译源文件进行单元测试创建jar包Gradle提供插件扩展来解决Java项目基本流程问题为Java项目添加默认配置Gradle自带很多插件,并且可以自定义插件Gradle中的Java插件Java plugin提供编译,测试,打包等原创 2020-11-03 16:27:08 · 417 阅读 · 0 评论 -
Gradle使用Day02-安装Gradle
安装Gradle安装先决条件下载Gradle解压Gradle压缩包配置环境变量测试安装JVM参数配置安装先决条件已安装JDK或者JRE的7以上版本下载GradleGradle官网下载Gradle的最新发行版本的压缩包解压Gradle压缩包Gradle发行包是一个zip文件,完整的发行包包括以下内容:Gradle可执行文件用户手册DSL参考指南API手册.包括JavaDoc和GroovyDoc样例.包括用户手册中的例子,一些完整的构建样例和更加复杂的构建脚本Gradle源代原创 2020-08-10 16:54:24 · 297 阅读 · 0 评论 -
Gradle使用Day03-Gradle构建
Gradle构建基础原创 2020-09-03 16:43:25 · 414 阅读 · 0 评论 -
Gradle使用Day01-Gradle基本介绍
Gradle基本介绍Gradle特点Gradle基本介绍Gradle特点Gradle是一个基于JVM的富有突破性构建工具:类似ant的灵活的构建工具可切换,类似maven的基于约定约定优于配置的构建框架强大的多工程构建支持强大的基于ApacheIvy的依赖管理对已有的maven和ivy仓库的全面支持支持传递性依赖管理,不需要远程仓库或者pom.xml或者ivy配置文件\ant式的任务和构建是gradle的第一公民基于groovy,Gradle的build脚本使用groovy dsl编原创 2020-08-10 16:34:36 · 369 阅读 · 0 评论 -
Java多线程Day23-JUC锁之共享锁
共享锁原创 2021-07-06 08:12:51 · 416 阅读 · 2 评论 -
MySQL数据库Day01-数据库MySQL的基本概念
数据库MySQL的基本概念MySQ启动和登录MySQ启动和登录启动MySQL:# service mysql startmysql.server start授权MySQL远程登录权限:grant all priviliges on *.* to 'root' identified by '123456'flush priviliges原创 2021-07-06 08:06:12 · 371 阅读 · 3 评论 -
Java多线程Day22-JUC锁之LockSupport
LockSupport原创 2021-05-13 07:42:23 · 326 阅读 · 0 评论 -
Tomcat服务器Day11-Tomcat扩展功能
Tomcat扩展功能-WebSocket基本概念基本概念WebSocket时HTML中新增的协议,目的是在浏览器和服务器之间建立一个不受限的双向通信的通道传统的HTTP协议不能实现浏览器和服务器之间双向通信的问题:HTTP协议是一个请求-响应协议,请求必须先由浏览器发送给服务器,服务器才能响应这个请求.也就是说 ,HTTP协议是由浏览器到服务器的单向请求协议,浏览器不主动请求,服务器是无法主动发数据给浏览器的HTTP协议也可以使用轮询和Comet实现类似双向通信的功能:轮询:浏览器通过原创 2021-04-18 23:39:50 · 328 阅读 · 0 评论 -
Java多线程Day21-JUC锁之Condition条件
Condition基本概念函数列表基本概念Condition的作用: 对锁进行更精确的控制Condition和Object类之间的联系:ConditionObject等待await()wait()唤醒signal()notify()唤醒全部signalAll()notifyAll()锁互斥锁或者共享锁synchronized关键字的同步锁函数列表...原创 2021-05-09 07:54:51 · 265 阅读 · 2 评论 -
Tomcat服务器Day10-Tomcat性能调优
Tomcat性能调优Tomcat性能测试ApacheBench安装验证是否安装成功部署项目性能测试Tomcat性能测试性能测试最直观的衡量指标就是系统的加载和操作时间,也就是用户执行某项操作的耗时性能测试可以从以下两个指标进行量化:响应时间: 执行某个操作的耗时. 大多数情况下,需要针对同一个操作测试多次来获取操作的平均响应时间吞吐量: 在给定的时间内,系统支持的事务数量.单位为TPS使用一些自动化测试工具来进行性能测试,目前主流的性能测试工具有:ApacheBenchApache原创 2021-03-18 07:14:54 · 614 阅读 · 3 评论 -
Java多线程Day20-JUC锁之非公平锁
非公平锁基本概念获取公平锁lockacquire基本概念非公平锁和公平锁在获取锁的方法上,流程是一样的,区别在与获取锁的机制不同非公平锁在每次尝试获取锁时,采用的是非公平策略,无视等待队列,直接尝试获取锁,如果锁是空闲的,即可获取锁的状态,则获取锁公平锁在每次尝试获取锁时,采用的是公平策略,根据等待队列依次排序等待获取锁获取公平锁locklock() 在ReentrantLock的NonfairSync类中实现: final void lock() {原创 2021-03-03 15:15:26 · 489 阅读 · 0 评论 -
Tomcat服务器Day09-Tomcat安全
Tomcat安全原创 2021-03-03 12:31:37 · 456 阅读 · 1 评论 -
Tomcat服务器Day08-Tomcat集群
Tomcat集群原创 2021-01-19 08:05:08 · 352 阅读 · 0 评论 -
Tomcat服务器Day07-JVM配置
JVM配置基本概念基本概念通常情况下的JVM配置是指内存分配在大部分情况下,特别是生产环境下 ,JVM默认分配的内存无法满足需求,所以需要手动修改Tomcat启动时的内存参数分配原创 2020-12-28 08:11:45 · 367 阅读 · 0 评论 -
Java多线程Day19-JUC锁之公平锁
公平锁基本概念AQS锁CLH队列CAS函数ReentrantLock基本概念AQS锁AQS: AbstractQueuedSynchronizerAQS是Java中管理锁的抽象类,包含锁实现的公共方法AQS是独占锁和共享锁的公共父类AQS锁的类别:独占锁:锁在一个时间点只会被一个线程所占有根据锁的获取机制,独占锁又分为公平锁和非公平锁公平锁: 通过CLH等待线程队列按照先来先得的规则,公平地获取锁非公平锁: 当线程需要获取锁时,无视CLH等待线程队列直接获取锁原创 2021-03-01 16:13:32 · 599 阅读 · 2 评论 -
Tomcat服务器Day06-Tomcat管理配置
Tomcat的管理配置原创 2020-12-25 07:47:07 · 394 阅读 · 0 评论 -
Tomcat服务器Day05-Tomcat的Web应用配置
Tomcat的Web应用配置基本概念基本概念web.xml是web应用的描述文件,支持来自于Servlet规范定义的元素以及属性在Tomcat中 ,Web应用的描述信息包括:tomcat/conf/web.xml中的默认配置Web应用的WEB-INF/web.xml的定制配置属性描述welcom-file-listservlet-mappingservletfilter-mappinglistenercontext-param原创 2020-12-07 07:22:31 · 404 阅读 · 0 评论 -
Java多线程Day18-JUC锁之独占锁ReentrantLock
独占锁ReentrantLock基本概念ReentrantLock函数列表ReentrantLockgetHoldCountgetOwnergetQueuedThreadsgetQueueLengthgetWaitingThreadsgetWaitQueueLengthhasQueuedThreadhasQueuedThreadshasWaitersisFairisHeldByCurrentThreadisLockedlocklockInterruptiblynewConditiontryLockunloc原创 2020-12-07 13:37:07 · 386 阅读 · 0 评论 -
Java多线程Day17-JUC锁基本概念
JUC锁基本概念基本概念同步锁JUC锁LockReentrantLock**ReentrantLock**锁包括公平的**ReentrantLock**和非公平的**ReentrantLock:**ReadWriteLockLockSupportConditionAbstractQueuedSynchronizerAbstractQueuedLongSynchronizerAbstractOwnableSynchronizer基本概念根据锁添加到Java中的时间 ,Java中的锁分为同步锁和JUC包中原创 2020-11-15 09:42:15 · 471 阅读 · 0 评论 -
Java多线程Day16-JUC原子类之AtomicLongFiledUpdater
AtomicLongFieldUpdater基本概念AtomicLongFieldUpdater函数列表AtomicLongFieldUpdateraddAndGetcompareAndSetdecrementAndGetgetgetAndAddgetAndDecrementgetAndIncrementgetAndSetincrementAndGetlazySetnewUpdatersetweakCompareAndSetAtomicLongFieldUpdater源码newUpdater基本概念A原创 2020-11-10 15:34:28 · 490 阅读 · 0 评论 -
Java多线程Day15-JUC原子类之AtomicReference
AtomicReference基本概念AtomicReference函数列表AtomicReferencecompareAndSetgetgetAndSetlazySetsettoStringweakCompareAndSet基本概念AtomicReference的作用是对引用对象进行原子操作AtomicReference函数列表AtomicReference/** * 使用null初始值创建新的AtomicReference */public AtomicReference() {}原创 2020-11-10 08:54:13 · 405 阅读 · 0 评论 -
Tomcat服务器Day04-Tomcat服务器配置
Tomcat服务器配置基本概念server.xmlServer基本概念Tomcat的服务器配置主要集中于tomcat/conf下的文件:catalina.policycatalina.propertiescontext.xmlserver.xmltomcat-user.xmlweb.xmlserver.xmlserver.xml是Tomcat的核心配置文件,包含了Tomcat的Servlet容器Catalina的所有配置ServerServer是server.xml的原创 2020-11-25 07:30:15 · 422 阅读 · 0 评论 -
Java多线程Day14-JUC原子类之AtomicLongArray
AtomicLongArray原子类基本概念AtomicLongArray函数列表AtomicLongArrayaddAndGetcompareAndSetdecrementAndGetgetgetAndAddgetAndDecrementgetAndIncrementgetAndSetincrementAndGetlazySetlengthsettoStringweakCompareAndSet基本概念AtomicLongArray的作用: 对长整型的数组进行原子操作AtomicLongArra原创 2020-11-09 12:05:28 · 427 阅读 · 0 评论 -
Tomcat服务器Day03-Jasper引擎
Jasper引擎基本概念编译方式运行时编译编译过程基本概念对于基于JSP的Web应用,可以在JSP页面直接编写Java代码,添加第三方库,使用EL表达式.但是最终输出到客户端浏览器的都是标准的HTML页面,包括js,css等等.并不包含Java相关的语法 .JSP可以看作是一种运行在服务器端的脚本,最终以HTML页面方式响应给客户端使用Tomcat中的Jasper引擎将jsp文件转换为HTML页面文件:JSP本质上是一个ServletTomcat使用Jasper对JSP语法进行解析,生成Ser原创 2020-11-06 08:07:04 · 537 阅读 · 0 评论 -
Java多线程Day13-JUC原子类之AtomicLong
AtomicLong原子类基本概念基本概念AtomicLong原子类 : 对长整型数据进行原子操作原创 2020-10-27 13:31:13 · 498 阅读 · 0 评论 -
Java多线程Day12-JUC原子类之原子类类型
原子类类型JUC原子类基本类型数组类型引用类型对象的属性修改类型JUC原子类原子操作: 操作过程不会中断,保证数据操作是以原子方式进行的JUC原子类是对数据进行原子操作根据修改的数据类型,可以将JUC原子类分为4类:基本类型AtomicIntegerAtomicLongAtomicBoolean数组类型AtomicIntegerArrayAtomicLongArrayAtomicReferenceArray引用类型AtomicReferenceAtomicStam原创 2020-09-24 12:32:55 · 359 阅读 · 0 评论 -
Java多线程Day11-多线程之生产者消费者
生产者消费者问题生产者消费者模型生产者消费者模型生产者消费者模型包括生产者,消费者,仓库,产品:生产者在仓库未满时才能生产,仓库满时停止生产消费者在仓库有产品时才能消费,仓库空时等待当消费者发现仓库为空,没有产品可以消费时,通知生产者生产生产者在生产出可以消费的产品时,通知等待的消费者消费...原创 2020-09-24 12:21:09 · 407 阅读 · 0 评论 -
Java多线程Day10-多线程之线程优先级和守护线程
线程优先级和守护线程线程优先级线程优先级Java中的线程优先级范围为1~10, 默认优先级为5 . 高优先级线程会优先于低优先级线程执行Java中有两种线程:用户线程: 执行用户级任务守护线程: 执行后台任务可以使用isDaemon() 来对两种线程进行区分:如果返回true, 则表示是守护线程如果返回false, 则表示是用户线程JVM会在用户线程都执行结束后退出每一个线程都可以被标记为一个守护线程或者非守护线程在一些运行的主线程中创建新的子线程时:子线程的优先级会原创 2020-09-15 12:50:27 · 289 阅读 · 0 评论 -
Java多线程Day09-多线程之线程中断和线程终止
线程中断和线程终止线程中断interrupt线程中断interruptinterrupt() 的作用是中断当前线程原创 2020-09-15 12:29:22 · 318 阅读 · 0 评论 -
Tomcat服务器Day02-Tomcat架构
Tomcat架构HTTP工作原理HTTP工作原理原创 2020-10-29 07:15:44 · 568 阅读 · 0 评论 -
Java多线程Day08-多线程之线程join()方法
线程的join方法基本概念join源码join运行流程基本概念join() 定义在Thread.java中join() 的作用 : 让主线程等待子线程结束之后才能继续运行join源码 /** * 等待millis毫秒后线程结束.如果值为0则表示永久等待 * * 该实现使用循环的wait调用条件为isAlive的方法 * 当一个线程结束时会调用notifyAll方法 * 建议不要在线程实例上使用wait,notify和notifyAll方法原创 2020-09-07 13:01:29 · 340 阅读 · 0 评论 -
Java多线程Day07-多线程之线程休眠
线程休眠基本概念基本概念sleep() 方法定义在Thread类中sleep()方法的作用:让当前线程休眠当前线程会从 [运行状态] 进入 [休眠或者阻塞状态]sleep() 会指定休眠时间:当线程休眠的时间大于或者等于该休眠时间时,线程被唤醒,会由 [阻塞状态] 进入 [就绪状态], 等待CPU的调度执行...原创 2020-09-07 12:11:05 · 304 阅读 · 0 评论 -
Java多线程Day06-多线程之线程让步
线程让步基本概念yield()与wait()比较相同点不同点基本概念yield() 的作用: 线程让步可以让当前线程由 [运行状态] 进入到 [就绪状态]从而让其余具有相同优先级的 [等待线程] 获得执行权不能保证在当前线程调用yield() 之后,其余具有相同优先级的 [等待线程] 就一定能获得执行权.因为当前线程可能又会进入到 [运行状态] 继续运行yield()与wait()比较线程让步之后,并不会释放锁.因此,其余线程也没机会获得锁,只能是当前线程执行完之后,才会释放对象的原创 2020-09-03 12:52:45 · 338 阅读 · 0 评论 -
Tomcat服务器Day01-Tomcat基础
Tomcat基本概念Web基本概念Web基本概念软件架构:C/S: 客户端/服务器端B/S: 浏览器/服务器端资源分类:静态资源:所有用户访问后,得到的结果都是一样的. 称为静态资源静态资源可以被浏览器直接解析比如 : html, css, JavaScript, jpg…动态资源:每个用户访问相同的资源后,得到的结果可能不一样. 称为动态资源动态资源被访问后,需要先转化为静态资源,再返回给浏览器,然后被浏览器解析比如 : servlet, jsp, php, a原创 2020-09-08 07:59:23 · 401 阅读 · 0 评论