- 零基础开始的网工之路第二十一天------性能优化
aigoushan
网络服务器运维
目录一、性能优化概述二、性能监控工具1.基础工具2.高级工具三、子系统优化策略1.CPU优化2.内存优化3.磁盘I/O优化4.网络优化四、资源限制优化1.ulimit2.cgroups(控制组)五、安全与注意事项六、综合案例案例1:TCP连接数过高导致Web服务卡顿问题描述优化配置验证方法案例2:Java应用内存溢出导致系统崩溃问题描述优化配置验证方法案例3:磁盘I/O延迟导致数据库性能下降问题描
- Linux Core 文件查看和调试
xx155802862xx
linux运维服务器
在Linux系统中,程序崩溃时通常会生成一个coredump文件,包含了程序崩溃时的内存状态、寄存器信息和调用堆栈。通过分析core文件,可以找到程序崩溃的原因并进行调试。本文将详细介绍如何生成、查看和调试core文件。一、生成Core文件1.1设置Core文件生成首先,需要确保系统允许生成core文件。通过以下命令查看当前的设置:ulimit-c如果输出为0,表示不生成core文件。可以通过以下
- centos修改服务器句柄不生效,Centos 7 中的ulimit -n 65535 对进程的文件句柄限制不生效??...
Chihchou Tai
今日闲来无事,就看群里大佬吹牛逼了,偶然一条技术疑问提出来了,神奇啊,作为广大老司机技术交流群体竟然还有这么深入的研究?大佬问:这个文件句柄限制怎么设置了/etc/security/limits.conf对进程都无效呢?如图刚好看到了这方面的知识点,在修改/etc/security/limits.conf以及使用ulimit-n命令进行修改文件句柄数量时,是需要重新进入终端方可生效的,于是饶有兴趣
- 新开Centos7配置yum源、selinux、ulimit
Ljk的运维笔记
linux服务器centos
mvCentOS-Base.repoCentOS-Base.repo.bakwget-O/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com/repo/Centos-7.repoyuminstall-yepel-releasesystemctlstopfirewalldsystemctldisablefirewalldsetenfo
- 如何在CentOS7中使ulimit -n 65535开机自动生效,看看ChatGPT怎么说
只何
Linuxchatgptlinuxcentos
文章目录前言GPT3.5Q:Cenyos7中怎么使ulimit-n65535开机自动生效Q:3和4步不做会怎么样Q:软限制和硬限制有什么区别Q:只设置软限制或硬限制可以吗GPT4Q:Cenyos7中怎么使ulimit-n65535开机自动生效?考虑的越详细越好方法1:修改系统级别的限制方法2:修改systemd服务配置方法3:修改特定服务的限制结论前言如标题所言,我遇到了这个问题,在rc.loca
- centos中的ulimit命令
myhyyyyyy
centos
centos中的ulimit命令ulimit的作用CENTOS系统文件配置配置文件地址配置格式配置方法ulimit的作用ulimit用于限制shell启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小、进程数据块的大小、Shell进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU时间、单个用户的最大线程数、Shell进程所能使用
- 如何在ubuntu上调试core dump
omage
Linuxlinux运维服务器
启用coredump确认ulimit状态ulimit-c如果输出是0,表示coredump被禁用了运行ulimit-cunlimited再次运行ulimit-c确认输出是ulimited设置coredump路径和文件名格式下面命令表示设置coredump文件在当前目录(%e表示程序名,%p表示程序进程id)echo"core.%e.%p"|sudotee/proc/sys/kernel/core_
- Linux内核参数详细说明
程序猿学长
LinuxNginx架构师linux网络tcp/ip
针对Linux内核参数调优,增加补充的详细说明,便于大家更好的理解1.调整文件描述符限制#临时生效ulimit-n65534#永久生效,编辑/etc/security/limits.conf*softnofile65534*hardnofile65534说明:ulimit-n:设置当前会话的最大文件描述符数。nofile:指定每个用户进程的最大文件描述符数。好处:增加文件描述符限制有助于服务器在高
- 【Docker 运维】Java 应用在 Docker 容器中启动报错:`unable to allocate file descriptor table`
roman_日积跬步-终至千里
#Docker运维dockerjava
文章目录一、根本原因二、判断与排查方法三、解决方法1、限制Docker容器的文件描述符上限2、在执行脚本中动态设置ulimit的值3、升级至Java11+四、总结容器内执行脚本时报错如下,Java进程异常退出:libraryinitializationfailed-unabletoallocatefiledescriptortable-outofmemory/entrypoint.sh:line2
- 64核128线程512内存固态硬盘的服务器基于docker部署Laravel5.5+mysql+redis+nginx+php7.4怎样调优使并发最大化
深山技术
性能调优Docker经验PHP经验服务器dockermysql
高并发Docker化Laravel应用调优方案(64C/512G/SSD)一、Docker编排与资源分配优化1.Docker全局配置(/etc/docker/daemon.json){"default-ulimits":{"nofile":{"Name":"nofile","Soft":1048576,"Hard":1048576}},"log-driver":"json-file","log-o
- 性能优化-Spring参数配置、数据库连接参数配置、JVM调优
经年小栈
Java基础性能优化spring数据库
SpringBoot配置参数server:tomcat:#线程池配置max-threads:200#最大工作线程数(建议:2~4倍CPU核心数,如16核设200-400)min-spare-threads:20#最小空闲线程(应对突发流量,建议:max-threads的10%~20%)#连接控制max-connections:10000#最大连接数(需结合系统句柄数ulimit-n设置,建议:系统
- linux下ulimit -a参数,linux ulimit命令用法解析
姚朝明
linux下ulimit-a参数
学习ulimit命令的用法。功能说明:控制shell程序的资源。语法:ulimit[-aHS][-c][-d][-f][-m][-n][-p][-s][-t][-u][-v]补充说明:ulimit为shell内建指令,可用来控制shell执行程序的资源。参数:复制代码代码如下:-a显示目前资源限制的设定。-c设定core文件的最大值,单位为区块。-d程序数据节区的最大值,单位为KB。-fshell
- ulimit 可限制用户资源上限,比如限制用户可打开的最多文件描述符、可使用的最大内存等
shimly123456
Linux
url:https://cloud.tencent.com/developer/article/1982394ulimit-a可以查看当前所有选项的设置、以及解释ulimit-m可查看当前设置的最大内存
- Linux使用cpulimit对CPU使用率进行限制
云服务器linux运维cpu
介绍cpulimit是一款可以对CPU使用率进行限制的软件,既可限制单个特定程序,也可以对整个CPU使用率进行限制,安装使用都很方便,需要的朋友可以试试。源安装(推荐)Centos:yuminstallcpulimitDebian/Ubuntu:apt-getinstall-ycpulimit编译安装cd/tmpwget'https://www.02405.com/wp-content/uploa
- 关闭iterm2中对于行数的限制
你的微笑像拥抱
工具
iTerm2默认的行数限制,超过1000的部分就被隐藏不显示了。处理方式:打开Preferences窗口,点击Profiles,右侧点击Terminal,在Scrollbackline右边勾选Ulimitedscrollback。
- linux学习(十六)(集装箱(ulimits,cgroups,容器运行时,Docker))
solomonzw
linux学习docker
集装箱容器化是一种虚拟化方法,涉及将应用程序封装在具有自己的隔离作环境的容器中。这种高级方法使应用程序在从一个计算环境移动到另一个计算环境时能够可靠、快速地运行。在Linux中,这项技术可以通过各种开源平台(如Docker和Kubernetes)来利用。容器通常与虚拟机(VM)进行比较。但是,与需要整个作系统来运行应用程序的VM不同,容器共享主机系统的用户空间。这就是为什么它们更轻、更快。在Lin
- Linux提权sudo篇
璃靡
linux网络安全安全
文章目录linux提权01.CVE-2019-1428702.sudoapt03.sudoapach204.sudoash05.sudoawk06.sudobase6407.sudobash08.sudocp09.sudocpulimit10.sudocurl11.sudodate12.sudodd13.sudodstat14.sudoed15.sudoenv16.exiftool17.sudoe
- OSError: [Errno 24] Too many open files
LutingWang
debugpython
执行ulimit-a查看操作系统对打开文件数量的限制$ulimit-a-t:cputime(seconds)unlimited-f:filesize(blocks)unlimited-d:datasegsize(kbytes)unlimited-s:stacksize(kbytes)8192-c:corefilesize(blocks)0-m:residentsetsize(kbytes)unli
- ubuntu20.04 突破文件数限制
Henry_Wu001
ubuntulinux网络服务器数据库
增加文件描述符的限制每个网络连接都占用一个文件描述符。增加文件描述符的数量,可以让系统处理更多的并发连接。1.1临时修改文件描述符限制首先,查看当前的文件描述符限制:ulimit-n然后,将文件描述符限制增大,例如:ulimit-n100000这种方法是临时的,仅对当前会话有效。如果你希望永久更改限制,需要修改系统配置文件。1.2永久修改文件描述符限制打开/etc/security/limits.
- MySQL核心原理4
郑心程意
databasemysql数据库
性能优化1.硬件选择CPU:OLTP高可用小事务查询、OLAP分析系统仓库RAM:越大越好快磁盘存储:SSD、阵列优网络、系统:关DNS、mysql接入区DMG内网core:DNS、mysql文件句柄打开数量即开辟io通道可命令:ulimit-n查看10242.缓存Redis、memcrched内存中,减少mysql压力缓存穿透:布隆过滤器bloomfilter缓存雪崩:主从机制加高可用方案、高并
- docker启动容器,语句名词解释
劉三岁
docker容器运维
#启动容器代码dockerrun-it-d--namedev_aios-vD:\project\aialign:/www/-vD:\project\data\dev\aios:/myfile/data/dev/aios-w/www/stand-alone-aios/aios-p9002:9000--ulimitcore=0aialign/python-base:1.0bash名词解释dockerr
- ES启动时报错解决
T_LOYO
elasticsearch
报如下错该怎么解决?且看详细解决:这个错误报告与前面的问题类似,它指出Elasticsearch进程的最大文件描述符数和最大虚拟内存区域数量限制太低。以下是解决这个问题的步骤:增加最大文件描述符数:打开终端并以root用户身份登录。运行以下命令来查看当前的最大文件描述符数:ulimit-n如果当前值小于65535,可以通过以下命令临时增加最大文件描述符数:ulimit-n65535如果需要永久生效
- Nginx高并发性能优化
AquaPluto
nginx性能优化php
Nginx高并发性能优化单节点nginx优化nginx做代理服务器的代理配置优化安全设置缓存压缩优化FastCGI优化内核参数优化总结:Nginx调优方式单节点nginx优化全局配置worker_processes4;#nginx进程数,通常设置为auto就行,有几个核就设置为几worker_rlimit_nofile65535;#配合着要把文件描述符调大,最好与ulimit-n的值保持一致eve
- 程序默认栈空间大小
tadus_zeng
操作系统
linuxlinux下线程的默认栈大小是8M$ulimit-s8192#8*1024KB查看单个进程暂用堆栈的信息$strace-f-p{PID}临时改变栈空间的大小ulimit-s102400#改为100MBulimit-sunlimited#不限制永久修改栈空间大大小echo-ne"*softstack102400">>/etc/security/limits.conf或者$sudoecho'
- CentOS查看最大线程数
willhuo
centos
查看最大线程数:cat/proc/sys/kernel/threads-maxulimitUserlimits-limittheuseofsystem-wideresources.Syntaxulimit[-acdfHlmnpsStuv][limit]Options-SChangeandreportthesoftlimitassociatedwitharesource.-HChangeandrep
- 修改linux系统用户最大线程数限制
饭桶也得吃饭
SRElinuxjava操作系统多线程python
ulimit的作用ulimit:显示(或设置)用户可以使用的资源的限制(limit),这限制分为软限制(当前限制)和硬限制(上限),其中硬限制是软限制的上限值,应用程序在运行过程中使用的系统资源不超过相应的软限制,任何的超越都导致进程的终止。参数描述ulimited不限制用户可以使用的资源,但本设置对可打开的最大文件数(maxopenfiles)和可同时运行的最大进程数(maxuserproces
- CentOS下高并发socket最大连接数所受的各种限制
浪里狼
网络编程centossocket连接数最大连接数限制
CentOS下高并发socket最大连接数所受的各种限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当前用户进程打开的文件数限制:[speng@as4~]$u
- 【操作系统】详述linux系统性能调优及技巧
Dylanioucn
linux性能优化
Linux系统性能调优是一个涉及多个方面的复杂过程,包括CPU、内存、磁盘I/O、网络等多个方面的优化。以下是一些常用的性能调优技巧和方法:性能监控基础:使用top、htop、vmstat、iostat和sar等工具来监控系统性能,这些工具可以帮助你全面掌握系统的实时状态。CPU性能调优:优化进程调度,调整调度策略。限制CPU密集型进程,使用cpulimit限制进程的CPU使用率。使用taskse
- 【C++ 面试 - 内存管理】每日 3 题(三)
Pandaconda
面试职场和发展c++后端开发语言
✍个人博客:Pandaconda-CSDN博客专栏地址:http://t.csdnimg.cn/fYaBd专栏简介:在这个专栏中,我将会分享C++面试中常见的面试题给大家~❤️如果有收获的话,欢迎点赞收藏,您的支持就是我创作的最大动力7.堆和栈的区别申请方式不同栈由系统自动分配。堆是自己申请和释放的。申请大小限制不同栈顶和栈底是之前预设好的,栈是向栈底扩展,大小固定,可以通过ulimit-a查看,
- 数据结构(二)——单向有头链表基本操作和复杂操作
m0_6793018756
数据结构链表
1.段错误调试方法:1.按照网上的方法配置Ubuntu,允许生成core文件2.重新编译代码并加入-g选项(允许进行GDB调试)3.ulimit-cunlimited不限制core文件的生成的大小4.执行代码,复现段错误,产生包含出错信息的core文件(检查core文件是否生成)5.gdba.outcore查看段错误产生的位置bt查看段错误时的堆栈信息p变量名查看段错误时的变量信息2.vscode
- Java实现的简单双向Map,支持重复Value
superlxw1234
java双向map
关键字:Java双向Map、DualHashBidiMap
有个需求,需要根据即时修改Map结构中的Value值,比如,将Map中所有value=V1的记录改成value=V2,key保持不变。
数据量比较大,遍历Map性能太差,这就需要根据Value先找到Key,然后去修改。
即:既要根据Key找Value,又要根据Value
- PL/SQL触发器基础及例子
百合不是茶
oracle数据库触发器PL/SQL编程
触发器的简介;
触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。触发器和过程函数类似 过程函数必须要调用,
一个表中最多只能有12个触发器类型的,触发器和过程函数相似 触发器不需要调用直接执行,
触发时间:指明触发器何时执行,该值可取:
before:表示在数据库动作之前触发
- [时空与探索]穿越时空的一些问题
comsci
问题
我们还没有进行过任何数学形式上的证明,仅仅是一个猜想.....
这个猜想就是; 任何有质量的物体(哪怕只有一微克)都不可能穿越时空,该物体强行穿越时空的时候,物体的质量会与时空粒子产生反应,物体会变成暗物质,也就是说,任何物体穿越时空会变成暗物质..(暗物质就我的理
- easy ui datagrid上移下移一行
商人shang
js上移下移easyuidatagrid
/**
* 向上移动一行
*
* @param dg
* @param row
*/
function moveupRow(dg, row) {
var datagrid = $(dg);
var index = datagrid.datagrid("getRowIndex", row);
if (isFirstRow(dg, row)) {
- Java反射
oloz
反射
本人菜鸟,今天恰好有时间,写写博客,总结复习一下java反射方面的知识,欢迎大家探讨交流学习指教
首先看看java中的Class
package demo;
public class ClassTest {
/*先了解java中的Class*/
public static void main(String[] args) {
//任何一个类都
- springMVC 使用JSR-303 Validation验证
杨白白
springmvc
JSR-303是一个数据验证的规范,但是spring并没有对其进行实现,Hibernate Validator是实现了这一规范的,通过此这个实现来讲SpringMVC对JSR-303的支持。
JSR-303的校验是基于注解的,首先要把这些注解标记在需要验证的实体类的属性上或是其对应的get方法上。
登录需要验证类
public class Login {
@NotEmpty
- log4j
香水浓
log4j
log4j.rootCategory=DEBUG, STDOUT, DAILYFILE, HTML, DATABASE
#log4j.rootCategory=DEBUG, STDOUT, DAILYFILE, ROLLINGFILE, HTML
#console
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4
- 使用ajax和history.pushState无刷新改变页面URL
agevs
jquery框架Ajaxhtml5chrome
表现
如果你使用chrome或者firefox等浏览器访问本博客、github.com、plus.google.com等网站时,细心的你会发现页面之间的点击是通过ajax异步请求的,同时页面的URL发生了了改变。并且能够很好的支持浏览器前进和后退。
是什么有这么强大的功能呢?
HTML5里引用了新的API,history.pushState和history.replaceState,就是通过
- centos中文乱码
AILIKES
centosOSssh
一、CentOS系统访问 g.cn ,发现中文乱码。
于是用以前的方式:yum -y install fonts-chinese
CentOS系统安装后,还是不能显示中文字体。我使用 gedit 编辑源码,其中文注释也为乱码。
后来,终于找到以下方法可以解决,需要两个中文支持的包:
fonts-chinese-3.02-12.
- 触发器
baalwolf
触发器
触发器(trigger):监视某种情况,并触发某种操作。
触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/delete)
语法:
create trigger triggerName
after/before 
- JS正则表达式的i m g
bijian1013
JavaScript正则表达式
g:表示全局(global)模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止。 i:表示不区分大小写(case-insensitive)模式,即在确定匹配项时忽略模式与字符串的大小写。 m:表示
- HTML5模式和Hashbang模式
bijian1013
JavaScriptAngularJSHashbang模式HTML5模式
我们可以用$locationProvider来配置$location服务(可以采用注入的方式,就像AngularJS中其他所有东西一样)。这里provider的两个参数很有意思,介绍如下。
html5Mode
一个布尔值,标识$location服务是否运行在HTML5模式下。
ha
- [Maven学习笔记六]Maven生命周期
bit1129
maven
从mvn test的输出开始说起
当我们在user-core中执行mvn test时,执行的输出如下:
/software/devsoftware/jdk1.7.0_55/bin/java -Dmaven.home=/software/devsoftware/apache-maven-3.2.1 -Dclassworlds.conf=/software/devs
- 【Hadoop七】基于Yarn的Hadoop Map Reduce容错
bit1129
hadoop
运行于Yarn的Map Reduce作业,可能发生失败的点包括
Task Failure
Application Master Failure
Node Manager Failure
Resource Manager Failure
1. Task Failure
任务执行过程中产生的异常和JVM的意外终止会汇报给Application Master。僵死的任务也会被A
- 记一次数据推送的异常解决端口解决
ronin47
记一次数据推送的异常解决
需求:从db获取数据然后推送到B
程序开发完成,上jboss,刚开始报了很多错,逐一解决,可最后显示连接不到数据库。机房的同事说可以ping 通。
自已画了个图,逐一排除,把linux 防火墙 和 setenforce 设置最低。
service iptables stop
- 巧用视错觉-UI更有趣
brotherlamp
UIui视频ui教程ui自学ui资料
我们每个人在生活中都曾感受过视错觉(optical illusion)的魅力。
视错觉现象是双眼跟我们开的一个玩笑,而我们往往还心甘情愿地接受我们看到的假象。其实不止如此,视觉错现象的背后还有一个重要的科学原理——格式塔原理。
格式塔原理解释了人们如何以视觉方式感觉物体,以及图像的结构,视角,大小等要素是如何影响我们的视觉的。
在下面这篇文章中,我们首先会简单介绍一下格式塔原理中的基本概念,
- 线段树-poj1177-N个矩形求边长(离散化+扫描线)
bylijinnan
数据结构算法线段树
package com.ljn.base;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
/**
* POJ 1177 (线段树+离散化+扫描线),题目链接为http://poj.org/problem?id=1177
- HTTP协议详解
chicony
http协议
引言
- Scala设计模式
chenchao051
设计模式scala
Scala设计模式
我的话: 在国外网站上看到一篇文章,里面详细描述了很多设计模式,并且用Java及Scala两种语言描述,清晰的让我们看到各种常规的设计模式,在Scala中是如何在语言特性层面直接支持的。基于文章很nice,我利用今天的空闲时间将其翻译,希望大家能一起学习,讨论。翻译
- 安装mysql
daizj
mysql安装
安装mysql
(1)删除linux上已经安装的mysql相关库信息。rpm -e xxxxxxx --nodeps (强制删除)
执行命令rpm -qa |grep mysql 检查是否删除干净
(2)执行命令 rpm -i MySQL-server-5.5.31-2.el
- HTTP状态码大全
dcj3sjt126com
http状态码
完整的 HTTP 1.1规范说明书来自于RFC 2616,你可以在http://www.talentdigger.cn/home/link.php?url=d3d3LnJmYy1lZGl0b3Iub3JnLw%3D%3D在线查阅。HTTP 1.1的状态码被标记为新特性,因为许多浏览器只支持 HTTP 1.0。你应只把状态码发送给支持 HTTP 1.1的客户端,支持协议版本可以通过调用request
- asihttprequest上传图片
dcj3sjt126com
ASIHTTPRequest
NSURL *url =@"yourURL";
ASIFormDataRequest*currentRequest =[ASIFormDataRequest requestWithURL:url];
[currentRequest setPostFormat:ASIMultipartFormDataPostFormat];[currentRequest se
- C语言中,关键字static的作用
e200702084
C++cC#
在C语言中,关键字static有三个明显的作用:
1)在函数体,局部的static变量。生存期为程序的整个生命周期,(它存活多长时间);作用域却在函数体内(它在什么地方能被访问(空间))。
一个被声明为静态的变量在这一函数被调用过程中维持其值不变。因为它分配在静态存储区,函数调用结束后并不释放单元,但是在其它的作用域的无法访问。当再次调用这个函数时,这个局部的静态变量还存活,而且用在它的访
- win7/8使用curl
geeksun
win7
1. WIN7/8下要使用curl,需要下载curl-7.20.0-win64-ssl-sspi.zip和Win64OpenSSL_Light-1_0_2d.exe。 下载地址:
http://curl.haxx.se/download.html 请选择不带SSL的版本,否则还需要安装SSL的支持包 2. 可以给Windows增加c
- Creating a Shared Repository; Users Sharing The Repository
hongtoushizi
git
转载自:
http://www.gitguys.com/topics/creating-a-shared-repository-users-sharing-the-repository/ Commands discussed in this section:
git init –bare
git clone
git remote
git pull
git p
- Java实现字符串反转的8种或9种方法
Josh_Persistence
异或反转递归反转二分交换反转java字符串反转栈反转
注:对于第7种使用异或的方式来实现字符串的反转,如果不太看得明白的,可以参照另一篇博客:
http://josh-persistence.iteye.com/blog/2205768
/**
*
*/
package com.wsheng.aggregator.algorithm.string;
import java.util.Stack;
/**
- 代码实现任意容量倒水问题
home198979
PHP算法倒水
形象化设计模式实战 HELLO!架构 redis命令源码解析
倒水问题:有两个杯子,一个A升,一个B升,水有无限多,现要求利用这两杯子装C
- Druid datasource
zhb8015
druid
推荐大家使用数据库连接池 DruidDataSource. http://code.alibabatech.com/wiki/display/Druid/DruidDataSource DruidDataSource经过阿里巴巴数百个应用一年多生产环境运行验证,稳定可靠。 它最重要的特点是:监控、扩展和性能。 下载和Maven配置看这里: http
- 两种启动监听器ApplicationListener和ServletContextListener
spjich
javaspring框架
引言:有时候需要在项目初始化的时候进行一系列工作,比如初始化一个线程池,初始化配置文件,初始化缓存等等,这时候就需要用到启动监听器,下面分别介绍一下两种常用的项目启动监听器
ServletContextListener
特点: 依赖于sevlet容器,需要配置web.xml
使用方法:
public class StartListener implements
- JavaScript Rounding Methods of the Math object
何不笑
JavaScriptMath
The next group of methods has to do with rounding decimal values into integers. Three methods — Math.ceil(), Math.floor(), and Math.round() — handle rounding in differen