- 面试必问的线程池原理与实战:从源码到应用全解析
混进IT圈
Java线程池面试多线程并发编程TomcatNetty
摘要:本文结合JDK官方文档、《Java并发编程实战》等权威资料,深入剖析线程池的核心原理,并通过电商、消息中间件等真实场景演示选型策略。全文包含20+代码示例、5大避坑指南,帮你轻松应对面试中的高频考点。一、线程池核心原理:从JDK源码到Tomcat扩展1.1JDK原生线程池的工作机制(附源码)JDK线程池的核心是ThreadPoolExecutor,其工作流程可概括为://核心执行逻辑(简化版
- Java并发编程实战 Day 24:高并发系统设计原则与架构模式
在未来等你
Java并发编程实战java并发编程高并发系统架构设计多线程微服务缓存
【Java并发编程实战Day24】高并发系统设计原则与架构模式文章简述在高并发系统中,单靠多线程和锁机制已经难以满足性能与稳定性需求。本文作为“Java并发编程实战”系列的第24天,聚焦于高并发系统的设计原则与架构模式,深入探讨异步化、服务化、缓存等核心设计理念,并结合实际业务场景进行分析与代码实现。文章不仅从理论层面解析了高并发系统的本质问题,还通过完整的Java代码示例展示如何构建高性能系统。
- Java并发编程实战 Day 14:并发编程最佳实践
在未来等你
Java并发编程实战javaconcurrencythreadbest-practicemultithreadingperformancejava8
【Java并发编程实战Day14】并发编程最佳实践文章简述在Java并发编程中,良好的实践不仅能提升系统性能,还能避免潜在的线程安全问题和死锁风险。本文作为“Java并发编程实战”系列的第14天,深入探讨了并发编程的最佳实践,包括线程安全策略、资源管理、锁优化、异常处理等关键点。文章结合实际业务场景,通过完整的代码示例和性能测试数据,展示了如何在真实环境中合理使用并发工具。此外,还分析了常见错误及
- Java并发编程实战 Day 20:响应式编程与并发
在未来等你
Java并发编程实战project-reactorbackpressurespring-webflux
【Java并发编程实战Day20】响应式编程与并发文章简述随着高并发、低延迟的业务需求日益增长,传统的阻塞式编程模型在面对大规模请求时逐渐暴露出性能瓶颈。响应式编程(ReactiveProgramming)作为一种面向数据流和事件驱动的编程范式,为构建高性能、可伸缩的并发系统提供了全新思路。本文作为“Java并发编程实战”系列的第20天,深入探讨响应式编程的核心概念和其在Java并发场景中的应用。
- Java并发编程实战 Day 16:并发编程中的锁进阶
在未来等你
Java并发编程实战javaconcurrency多线程并发编程锁机制StampedLockJava并发编程实战
【Java并发编程实战Day16】并发编程中的锁进阶文章简述在高并发系统中,锁是控制资源访问的核心机制。Day16的文章深入探讨了Java并发编程中的“锁进阶”主题,重点介绍StampedLock、读写锁的实现原理以及如何在实际业务场景中合理选择和使用锁机制。文章不仅从理论层面解析了锁的底层实现机制(如JVM中的CAS操作、锁升级过程等),还结合代码示例和性能测试数据,展示不同锁策略对系统吞吐量和
- Java并发编程实战 Day 7:并发集合类详解
在未来等你
Java并发编程实战Java并发编程多线程
【Java并发编程实战Day7】并发集合类详解开篇欢迎来到"Java并发编程实战"系列的第7天!今天我们将重点探讨并发集合类(如ConcurrentHashMap和CopyOnWriteArrayList),它们是Java并发编程中的核心组件之一。通过本篇文章,你将掌握这些并发集合的使用方法、实现原理以及最佳实践,为处理高并发场景提供解决方案。注意:本文适用于有一定多线程基础的开发者,建议先复习前
- Java并发编程实战 Day 6:Future与异步编程模型
在未来等你
Java并发编程实战Java并发编程Future异步编程
【Java并发编程实战Day6】Future与异步编程模型在今天的课程中,我们将深入学习Java中的Future与异步编程模型。这是为期30天的"Java并发编程实战"系列的第6天。理论基础Future接口Future接口是Java提供的用于表示异步计算的结果。它提供了以下方法:get():阻塞直到任务完成并返回结果。isDone():判断任务是否已经完成。cancel(booleanmayInt
- Java并发编程实战 Day 4:线程间通信机制
在未来等你
Java并发编程实战Java并发编程线程通信CountDownLatchCondition
【Java并发编程实战Day4】线程间通信机制在并发编程中,多个线程之间的协作是实现高效任务处理的关键。如何在线程之间进行有效的通信,确保数据的一致性并避免资源竞争,是开发人员必须掌握的核心技能之一。今天我们将聚焦于三种主要的线程间通信机制:wait/notify、Condition和CountDownLatch,从理论到实践全面剖析它们的用法、原理以及性能优化策略。理论基础:线程间通信的基本概念
- Java并发编程实战:掌握AQS框架的基础与实战应用
谢飞机️
Java场景面试宝典JavaAQS并发编程锁同步器
概念介绍在Java并发编程中,AbstractQueuedSynchronizer(AQS)是一个用于构建锁和同步器的框架。它提供了一种基于队列的优化机制,使得开发者可以轻松实现自定义的同步器。AQS的重要性在于它被广泛应用于JDK中的各种锁和同步器实现,如ReentrantLock、Semaphore和CountDownLatch。基础知识AQS的核心是一个FIFO等待队列和一个状态变量。它通过
- Java并发编程实战:线程池原理与实践
谢飞机️
Java场景面试宝典Java线程池并发编程Executor线程管理
Java并发编程实战:线程池原理与实践概念介绍线程池是一种线程使用模式,能够提高应用程序的响应速度和资源利用率。它的重要性在于通过复用线程来减少系统开销,从而提升性能。基础知识线程池的核心思想是通过池化技术,复用线程资源,减少线程创建与销毁的开销。Java提供了Executor框架来管理线程池,其主要接口包括ExecutorService和ThreadPoolExecutor。实现方式在Java中
- java并发编程 pdf_Java并发编程实战 PDF
斯提利科
java并发编程pdf
目录对本书的赞誉译者序前言第1章简介1.1并发简史1.2线程的优势1.2.1发挥多处理器的强大能力1.2.2建模的简单性1.2.3异步事件的简化处理1.2.4响应更灵敏的用户界面1.3线程带来的风险1.3.1安全性问题1.3.2活跃性问题1.3.3性能问题1.4线程无处不在第一部分基础知识第2章线程安全性2.1什么是线程安全性2.2原子性2.2.1竞态条件2.2.2示例:延迟初始化中的竞态条件2.
- Java并发编程实战:AQS框架解析与应用
谢飞机️
Java场景面试宝典Java并发编程AQS框架并发锁Java同步器线程管理
概念介绍在Java并发编程中,AbstractQueuedSynchronizer(AQS)是一个用于构建锁和同步器的框架。AQS的设计使得它可以支持多种同步器实现,如ReentrantLock、Semaphore等。通过AQS,我们能够更简洁和高效地管理线程之间的同步。基础知识AQS利用了一个FIFO队列来管理获取锁的线程,并通过一个int类型的状态(state)来表示锁的状态。其核心原理是利用
- Java 并发编程实战:深入理解线程池的核心原理与最佳实践
全栈探索者chen
javajava服务器开发语言性能优化缓存node.js数据库
Java并发编程实战:深入理解线程池的核心原理与最佳实践1.为什么需要线程池?在Java并发编程中,直接创建和管理线程的成本较高,频繁创建线程会带来性能开销和资源浪费。线程池(ThreadPool)的作用:降低线程创建和销毁的开销,提高系统响应速度。提高系统吞吐量,充分利用CPU资源。避免资源耗尽,限制最大线程数,防止OOM(内存溢出)。支持任务排队,确保任务按照一定规则执行。2.线程池的核心组成
- Java修炼之道--并发编程
weixin_30312557
运维面试操作系统
原作地址:https://github.com/frank-lam/2019_campus_apply前言在本文将总结多线程并发编程中的常见面试题,主要核心线程生命周期、线程通信、并发包部分。主要分成“并发编程”和“面试指南”两部分,在面试指南中将讨论并发相关面经。参考资料:《Java并发编程实战》第一部分:并发编程1.线程状态转换新建(New)创建后尚未启动。可运行(Runnable)可能正在运
- 【java并发编程实战读书总结6】显式锁
powerjiajun
Java5.0以后除了内置锁synchronized外在concurrent包还提供了显式锁接口Lock。何为显式?就是显式地加锁和解锁,需要自己写代码去加锁和解锁。Synchronized是隐式加锁解锁,也就是无需自己写加锁解锁代码,进了synchronized代码块就隐式加锁,出了代码块就隐式解锁。下图为使用显式锁保证计数结果正确的demo:aaa.png在lock和unlock之间的代码是被
- 业务程序中如何设置线程数?
半亩方塘立身
Java面试java后端
线程池线程数如何设置在实际工作和面试中,线程池线程个数的设置是一个常见而又复杂的问题。我们通常在资料中找到一些经典的回答,例如判断任务是CPU密集型还是IO密集型,或者参考《Java并发编程实战》一书的建议:1.判断任务是CPU密集型还是IO密集型(其中N表示CPU的核心数量):CPU密集型,线程池大小设置为N+1。IO密集型,线程池大小设置为2N+1。然而,在实际业务中,任务往往涉及到复杂的计算
- 1-《Java并发编程实战》(Java Concurrency in Practice) 代码示例
太自由
javaJava并发编程JUC线程安全性Java并发编程实战多线程
背景最近在学习Java并发编程方面的知识,我的学习的路线是:先学习了JVM,然后再学的JUC。学习了JVM后,我开始看《Java并发编程实战》作者BrianGoetz,童云兰翻译的那本,在看书的过程中,书中给出了一些重点突出的辅助示例代码(但是这些代码不是完整的,本来想按照书中提供的完整代码地址http://www.javaconcurrencyinpractice.com去下载完整的代码示例,奈
- 2-《Java并发编程实战》(Java Concurrency in Practice) 代码示例
太自由
java并发编程JUC多线程
说明这是针对《Java并发编程实战》(JavaConcurrencyinPractice)一书中的示例代码进行扩展,并且进行验证的完整代码,具体背景可看这篇文章:1-《Java并发编程实战》(JavaConcurrencyinPractice)代码示例下面的示例代码都是针对书中的(不完整的)代码扩展,不再介绍具体上下文背景(如果你也在看这本书,可以拿我这里的示例代码做个参考,并欢迎提出意见和建议)
- 分布式定时任务系列8:XXL-job源码分析之远程调用
kobe_t
#分布式调度xxl-job
传送门分布式定时任务系列1:XXL-job安装分布式定时任务系列2:XXL-job使用分布式定时任务系列3:任务执行引擎设计分布式定时任务系列4:任务执行引擎设计续分布式定时任务系列5:XXL-job中blockingQueue的应用分布式定时任务系列6:XXL-job触发日志过大引发的CPU告警分布式定时任务系列7:XXL-job源码分析之任务触发Java并发编程实战1:java中的阻塞队列通讯
- springboot 多数据源怎么配置在控制台的sql打印日志
飞乐鸟
mybatisspringbootjava
程序员的公众号:源1024,获取更多资料,无加密无套路!最近整理了一波电子书籍资料,包含《EffectiveJava中文版第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》,《Java并发编程实战》等等获取方式:关注公众号并回复电子书领取,更多内容持续奉上单数据源的配置:mybatis-plus:mapper-locations:classpath:mapper
- 【Java 面试题合集】ThreadPoolExecutor 线程池面试题
秀强
并发编程JUC源码解析java
文章目录自定义的线程池的7个参数如何合理设置核心线程数corePoolSize的大小《JAVA并发编程实战》中的方案java开发手册中为什么不允许使用Executors默认的实现?一个线程池中的线程异常了,那么线程池会怎么处理这个线程?线程池被创建后里面有线程吗?有什么方法对线程池进行预热吗?submit和execute两个方法有什么区别?shutdownNow()和shutdown()两个方法有
- 「 并发编程技术 」剖析Synchronized修饰方法与代码块的区别(附详细代码案例解析)
FrozenPenguin
JUC并发编程并发编程技术javajvm开发语言
「并发编程技术」剖析Synchronized修饰方法与代码块的区别(附详细代码案例解析)参考&鸣谢oldmonk真正的小明被占用了Java学到头秃《Java并发编程实战》《深入理解Java虚拟机》文章目录「并发编程技术」剖析Synchronized修饰方法与代码块的区别(附详细代码案例解析)一、块与方法块方法二、同步方法三、同步块四、二者区别锁的粒度不同锁的获取时间不同锁的释放时间不同五、案例分析
- 免费的GPT4来了,你还不知道吗?
飞乐鸟
GPT
程序员的公众号:源1024,获取更多资料,无加密无套路!最近整理了一波电子书籍资料,包含《EffectiveJava中文版第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》,《Java并发编程实战》等等获取方式:关注公众号并回复电子书领取,更多内容持续奉上免费的GPT4它来了,你还不知道吗?免费的GPT4它来了,你还不知道吗?https://www.gnomic
- 《Java并发编程实战》第2章-线程安全性
技术人爱思考
javajvm开发语言并发线程安全
0.概念理解对象状态:存储在状态变量(例如实例或静态域)中的数据;线程安全性:当多个线程访问某个类时,这个类始终都能表现出正确的行为,那么就称这个类是线程安全的;竞态条件:针对一段有多个操作逻辑的代码,不恰当的线程执行时序可能导致不正确的结果的情况;不变性条件:涉及多个变量时,各个变量之间并不是彼此独立的,而是某个变量的值会对其他变量的值产生约束。1.什么情况下会面临线程安全性问题?多个线程需要访
- 《Java并发编程实战》第4章-对象的组合
技术人爱思考
java开发语言多线程线程安全并发对象共享
0.概念理解状态空间:对象与变量所有可能的取值,状态空间越小,就越容易判断线程的状态,final域用得越多,就越能简化对象可能状态的分析过程(不可变对象只有唯一的状态)。实例封闭:将数据封装在对象内部,并且用锁来保护所有访问路径。Java监视器模式:一种编写代码的约定,把对象的所有可变状态都封装起来,并由对象自己的内置锁来保护,优势在于其简单性(进一步优化可以考虑使用私有锁对象,使得客户代码无法得
- Java并发编程实战 - 第16章 Java内存模型
我是松哥
Java并发编程实战并发java
指令重排序Java语言规范规定了JVM线程内部维持一种类似串行语义:只要程序的最终结果与在严格串行环境中执行的结果相同,指令的执行顺序可以与代码的顺序不一致。这个技术叫指令的重排序。指令重排序存在的意义在于:JVM能够根据处理器的特性(CPU的多级缓存系统、多核处理器等)重新排序机器指令,使机器指令更符合CPU的执行特点,最大限度的发挥机器的性能。Happens-before规则Java内存模型(
- 面试官:并发和并行的区别
飞乐鸟
面试干货java
程序员的公众号:源1024,获取更多资料,无加密无套路!最近整理了一波电子书籍资料,包含《EffectiveJava中文版第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》,《Java并发编程实战》等等获取方式:关注公众号并回复电子书领取,更多内容持续奉上并发针对单核CPU而言,指的是多个任务交替执行,每个任务都会在一段时间内执行一部分,然后切换到另一个任务,因
- 面试官:JVM为什么用元空间代替永久代?
飞乐鸟
面试干货jvm
程序员的公众号:源1024,获取更多资料,无加密无套路!最近整理了一波电子书籍资料,包含《EffectiveJava中文版第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》,《Java并发编程实战》等等获取方式:关注公众号并回复电子书领取,更多内容持续奉上JVM用元空间代替永久代原因:降低OOM风险永久代的最大容量通过参数PermSize和MaxPermSize
- 2019-02-20 Java并发编程实战
向日葵666666
目录编辑对本书的赞誉译者序前言第1章简介1.1并发简史1.2线程的优势1.2.1发挥多处理器的强大能力1.2.2建模的简单性1.2.3异步事件的简化处理1.2.4响应更灵敏的用户界面1.3线程带来的风险1.3.1安全性问题1.3.2活跃性问题1.3.3性能问题1.4线程无处不在第一部分基础知识第2章线程安全性2.1什么是线程安全性2.2原子性2.2.1竞态条件2.2.2示例:延迟初始化中的竞态条件
- java并发编程实战第二版pdf,附赠复习资料
阿里Java后端
程序员java面试经验分享
正文MyBatis的整体架构分为三层,分别是基础支持层、核心处理层和接口层,如下图所示。基础支持层反射模块该模块对Java原生的反射进行了良好的封装,提供了更加简洁易用的API,方便上层使调用,并且对反射操作进行了一系列优化,例如缓存了类的元数据,提高了反射操作的性能。类型转换模块类型转换模块提供了两个主要功能,一个功能是别名机制,MyBatis为了简化配置文件提供了别名机制;另一个功能是实现JD
- java数字签名三种方式
知了ing
javajdk
以下3钟数字签名都是基于jdk7的
1,RSA
String password="test";
// 1.初始化密钥
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(51
- Hibernate学习笔记
caoyong
Hibernate
1>、Hibernate是数据访问层框架,是一个ORM(Object Relation Mapping)框架,作者为:Gavin King
2>、搭建Hibernate的开发环境
a>、添加jar包:
aa>、hibernatte开发包中/lib/required/所
- 设计模式之装饰器模式Decorator(结构型)
漂泊一剑客
Decorator
1. 概述
若你从事过面向对象开发,实现给一个类或对象增加行为,使用继承机制,这是所有面向对象语言的一个基本特性。如果已经存在的一个类缺少某些方法,或者须要给方法添加更多的功能(魅力),你也许会仅仅继承这个类来产生一个新类—这建立在额外的代码上。
- 读取磁盘文件txt,并输入String
一炮送你回车库
String
public static void main(String[] args) throws IOException {
String fileContent = readFileContent("d:/aaa.txt");
System.out.println(fileContent);
- js三级联动下拉框
3213213333332132
三级联动
//三级联动
省/直辖市<select id="province"></select>
市/省直辖<select id="city"></select>
县/区 <select id="area"></select>
- erlang之parse_transform编译选项的应用
616050468
parse_transform游戏服务器属性同步abstract_code
最近使用erlang重构了游戏服务器的所有代码,之前看过C++/lua写的服务器引擎代码,引擎实现了玩家属性自动同步给前端和增量更新玩家数据到数据库的功能,这也是现在很多游戏服务器的优化方向,在引擎层面去解决数据同步和数据持久化,数据发生变化了业务层不需要关心怎么去同步给前端。由于游戏过程中玩家每个业务中玩家数据更改的量其实是很少
- JAVA JSON的解析
darkranger
java
// {
// “Total”:“条数”,
// Code: 1,
//
// “PaymentItems”:[
// {
// “PaymentItemID”:”支款单ID”,
// “PaymentCode”:”支款单编号”,
// “PaymentTime”:”支款日期”,
// ”ContractNo”:”合同号”,
//
- POJ-1273-Drainage Ditches
aijuans
ACM_POJ
POJ-1273-Drainage Ditches
http://poj.org/problem?id=1273
基本的最大流,按LRJ的白书写的
#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
#define INF 0x7fffffff
int ma
- 工作流Activiti5表的命名及含义
atongyeye
工作流Activiti
activiti5 - http://activiti.org/designer/update在线插件安装
activiti5一共23张表
Activiti的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。
ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
A
- android的广播机制和广播的简单使用
百合不是茶
android广播机制广播的注册
Android广播机制简介 在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。这个广播跟我们传统意义中的电台广播有些相似之处。之所以叫做广播,就是因为它只负责“说”而不管你“听不听”,也就是不管你接收方如何处理。另外,广播可以被不只一个应用程序所接收,当然也可能不被任何应
- Spring事务传播行为详解
bijian1013
javaspring事务传播行为
在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。
Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚。这
- eidtplus operate
征客丶
eidtplus
开启列模式: Alt+C 鼠标选择 OR Alt+鼠标左键拖动
列模式替换或复制内容(多行):
右键-->格式-->填充所选内容-->选择相应操作
OR
Ctrl+Shift+V(复制多行数据,必须行数一致)
-------------------------------------------------------
- 【Kafka一】Kafka入门
bit1129
kafka
这篇文章来自Spark集成Kafka(http://bit1129.iteye.com/blog/2174765),这里把它单独取出来,作为Kafka的入门吧
下载Kafka
http://mirror.bit.edu.cn/apache/kafka/0.8.1.1/kafka_2.10-0.8.1.1.tgz
2.10表示Scala的版本,而0.8.1.1表示Kafka
- Spring 事务实现机制
BlueSkator
spring代理事务
Spring是以代理的方式实现对事务的管理。我们在Action中所使用的Service对象,其实是代理对象的实例,并不是我们所写的Service对象实例。既然是两个不同的对象,那为什么我们在Action中可以象使用Service对象一样的使用代理对象呢?为了说明问题,假设有个Service类叫AService,它的Spring事务代理类为AProxyService,AService实现了一个接口
- bootstrap源码学习与示例:bootstrap-dropdown(转帖)
BreakingBad
bootstrapdropdown
bootstrap-dropdown组件是个烂东西,我读后的整体感觉。
一个下拉开菜单的设计:
<ul class="nav pull-right">
<li id="fat-menu" class="dropdown">
- 读《研磨设计模式》-代码笔记-中介者模式-Mediator
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/*
* 中介者模式(Mediator):用一个中介对象来封装一系列的对象交互。
* 中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
*
* 在我看来,Mediator模式是把多个对象(
- 常用代码记录
chenjunt3
UIExcelJ#
1、单据设置某行或某字段不能修改
//i是行号,"cash"是字段名称
getBillCardPanelWrapper().getBillCardPanel().getBillModel().setCellEditable(i, "cash", false);
//取得单据表体所有项用以上语句做循环就能设置整行了
getBillC
- 搜索引擎与工作流引擎
comsci
算法工作搜索引擎网络应用
最近在公司做和搜索有关的工作,(只是简单的应用开源工具集成到自己的产品中)工作流系统的进一步设计暂时放在一边了,偶然看到谷歌的研究员吴军写的数学之美系列中的搜索引擎与图论这篇文章中的介绍,我发现这样一个关系(仅仅是猜想)
-----搜索引擎和流程引擎的基础--都是图论,至少像在我在JWFD中引擎算法中用到的是自定义的广度优先
- oracle Health Monitor
daizj
oracleHealth Monitor
About Health Monitor
Beginning with Release 11g, Oracle Database includes a framework called Health Monitor for running diagnostic checks on the database.
About Health Monitor Checks
Health M
- JSON字符串转换为对象
dieslrae
javajson
作为前言,首先是要吐槽一下公司的脑残编译部署方式,web和core分开部署本来没什么问题,但是这丫居然不把json的包作为基础包而作为web的包,导致了core端不能使用,而且我们的core是可以当web来用的(不要在意这些细节),所以在core中处理json串就是个问题.没办法,跟编译那帮人也扯不清楚,只有自己写json的解析了.
- C语言学习八结构体,综合应用,学生管理系统
dcj3sjt126com
C语言
实现功能的代码:
# include <stdio.h>
# include <malloc.h>
struct Student
{
int age;
float score;
char name[100];
};
int main(void)
{
int len;
struct Student * pArr;
int i,
- vagrant学习笔记
dcj3sjt126com
vagrant
想了解多主机是如何定义和使用的, 所以又学习了一遍vagrant
1. vagrant virtualbox 下载安装
https://www.vagrantup.com/downloads.html
https://www.virtualbox.org/wiki/Downloads
查看安装在命令行输入vagrant
2.
- 14.性能优化-优化-软件配置优化
frank1234
软件配置性能优化
1.Tomcat线程池
修改tomcat的server.xml文件:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="1200" m
- 一个不错的shell 脚本教程 入门级
HarborChung
linuxshell
一个不错的shell 脚本教程 入门级
建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行)。 如同其他语言一样
- Spring4新特性——核心容器的其他改进
jinnianshilongnian
spring动态代理spring4依赖注入
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
- Linux设置tomcat开机启动
liuxingguome
tomcatlinux开机自启动
执行命令sudo gedit /etc/init.d/tomcat6
然后把以下英文部分复制过去。(注意第一句#!/bin/sh如果不写,就不是一个shell文件。然后将对应的jdk和tomcat换成你自己的目录就行了。
#!/bin/bash
#
# /etc/rc.d/init.d/tomcat
# init script for tomcat precesses
- 第13章 Ajax进阶(下)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- Troubleshooting Crystal Reports off BW
blueoxygen
BO
http://wiki.sdn.sap.com/wiki/display/BOBJ/Troubleshooting+Crystal+Reports+off+BW#TroubleshootingCrystalReportsoffBW-TracingBOE
Quite useful, especially this part:
SAP BW connectivity
For t
- Java开发熟手该当心的11个错误
tomcat_oracle
javajvm多线程单元测试
#1、不在属性文件或XML文件中外化配置属性。比如,没有把批处理使用的线程数设置成可在属性文件中配置。你的批处理程序无论在DEV环境中,还是UAT(用户验收
测试)环境中,都可以顺畅无阻地运行,但是一旦部署在PROD 上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,原因可能是JDBC驱动版本不同,也可能是#2中讨论的问题。如果线程数目 可以在属性文件中配置,那么使它成为
- 正则表达式大全
yang852220741
html编程正则表达式
今天向大家分享正则表达式大全,它可以大提高你的工作效率
正则表达式也可以被当作是一门语言,当你学习一门新的编程语言的时候,他们是一个小的子语言。初看时觉得它没有任何的意义,但是很多时候,你不得不阅读一些教程,或文章来理解这些简单的描述模式。
一、校验数字的表达式
数字:^[0-9]*$
n位的数字:^\d{n}$
至少n位的数字:^\d{n,}$
m-n位的数字:^\d{m,n}$