xx

linux 运维面试题

大兔子大兔子 提交于 2019-12-18 02:16:38
tomcat 的内存溢出是由什么导致? 解: 1.OutOfMemoryError : Java heap space    2.OutOfMemoryError : PermGen space    3.OutOfMemoryError : unable to create new native thread.   Tomcat 内存溢出解决方案   对于前两种情况,在应用本身没有内存泄露的情况下可以用设置 tomcat jvm 参数来解决。( -Xms -Xmx -XX : PermSize -XX : MaxPermSize )   最后一种可能需要调整操作系统和 tomcat jvm 参数同时调整才能达到目的。  第一种:是堆溢出。 但堆的大小受下面三方面影响:    1. 相关操作系统的数据模型( 32-bt 还是 64-bit )限制;( 32 位系统下,一般限制在 1.5G~2G ;我在 2003 server 系统下(物理内存: 4G 和 6G , jdk : 1.6 )测试 1612M , 64 位操作系统对内存无限制。)    2. 系统的可用虚拟内存限制;    3. 系统的可用物理内存限制。 其初始空间 ( 即 -Xms) 是物理内存的 1/64 ,最大空间 (-Xmx) 是物理内存的 1/4 。可以利用 JVM 提供的 -Xmn -Xms -Xmx

JVM运行时数据区域

最后都变了- 提交于 2019-12-17 14:16:25
运行时数据区域 定义 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域 类型 程序计数器 较小的内存空间,当前线程执行的字节 码的行号指示器;各线程之间独立存储,互不影响 虚拟机栈 每个线程私有的,线程在运行时,在执行每个方法的时候都会打包成一个栈帧,存储了局部变量表,操作数栈,动态链接,方法出口等信息,然后放入栈。每个时刻正在执行的当前方法就是虚拟机栈顶的栈桢。方法的执行就对应着栈帧在虚拟机栈中入栈和出栈的过程。 栈桢大小缺省为1M,可用参数 –Xss调整大小,例如-Xss256k 堆 几乎所有对象都分配在这里,也是垃圾回收发生的主要区域,可用以下参数调整: -Xms:堆的最小值; -Xmx:堆的最大值; -Xmn:新生代的大小; -XX:NewSize;新生代最小值; -XX:MaxNewSize:新生代最大值; 例如- Xmx256m 方法区/永久代 用于存储已经被虚拟机加载的类信息,常量(“zdy”,"123"等),静态变量(static变量)等数据,可用以下参数调整: jdk1.7及以前:-XX:PermSize;-XX:MaxPermSize; jdk1.8以后:-XX:MetaspaceSize; -XX:MaxMetaspaceSize jdk1.8以后大小就只受本机总内存的限制 如:-XX:MaxMetaspaceSize=3M

H5样式与布局 --常用居中方法

别来无恙 提交于 2019-12-17 10:47:50
近日清闲,决定用博客来总结下入行一年多来零零散散记录在小本本上的知识点。 先看布局 1.常用居中方法 我们假设DOM文档结构如下,子元素要在父元素中居中: <div class="parent"> <div class="child">   <span>啦啦啦</span>   <p>我要居中</p>   </div> </div> 水平居中 实现水平居中的 前提是父元素有一个宽度 ,没有设置的话,默认为上一级的宽度。 子元素为行内元素还是块状元素,宽度一定还是宽度未定,采取的布局方案不同。下面进行分析: 1.行内元素&& 不定宽块状元素 :对父元素设置 text-align:center; 2.定宽块状元素 : 设置左右 margin 值为 auto ; (自身有宽度margin才有效) 3.通用方案 : flex布局,对父元素设置 display:flex;justify-content:center; 垂直居中 实现垂直居中的父元素有定高或被子元素撑开高度。 子元素类型不同,采取的布局方案不同。下面进行分析: 1.子元素单行文本垂直居中: 设置父元素的 height 等于行高 line-height   以上文本不管是由块标签还是内联标签包裹的,都一样。    有一种很常见的图标加文字一起居中的布局待以后展开说。 2.子元素为定高的块元素:  1) .父元素 height

Linux共享文件夹映射到Windows磁盘

北战南征 提交于 2019-12-15 14:29:18
摘自:https://www.jianshu.com/p/4a06121450e5 1.1 方案背景 本方案就是在解决磁盘不足的问题而产生的,利用映射盘的原理将Linux共享文件夹映射到Windows磁盘。 1.2 Samba 服务器搭建 实现linux与windows文件共享的方法有很多,本文主要是介绍利用Samba是实现共享方式。 1.2.1 Samba 简介 Samba(SMB是其缩写) 是一个网络服务器,用于Linux和Windows共享文件之用;Samba即可以用于Windows和Linux之间的共享文件,也一样用于Linux和Linux之间的共享文件;不过对于Linux和Linux之间共享文件有更好的网络文件系统NFS,NFS也是需要架设服务器的; 大家知道在Windows 网络中的每台机器即可以是文件共享的服务器,也可以同是客户机;Samba 也一样能行,比如一台Linux的机器,如果架了Samba Server 后,它能充当共享服务器,同时也能做为客户机来访问其它网络中的Windows共享文件系统,或其它Linux的Sabmba 服务器; 我们在Windows网络中,看到共享文件功能知道,我们直接就可以把共享文件夹当做本地硬盘来使用。在Linux的中,就是通过Samba的向网络中的机器提供共享文件系统,也可以把网络中其它机器的共享挂载在本地机上使用

Java并发编程-volatile解释

最后都变了- 提交于 2019-12-14 16:44:36
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1. CPU 、主存及高速缓存的概念 计算机的硬件组成可以抽象为由总线、IO设备、主存、处理器(CPU)等组成。其中数据存放在主存中,CPU负责指令的执行,CPU的指令执行非常快,大部分简单指令的执行只需要一个时钟周期,而一次主内存数据的读取则需要几十到几百个时钟周期,那么CPU从主存中读写数据就会有很大的延迟。这个时候就产生了高速缓存的概念。 也就是说,当程序在运行过程中,会将运算需要的数据从主存复制一份到CPU的高速缓存当中,那么CPU进行计算时就可以直接从它的高速缓存读取数据和向其中写入数据,当运算结束之后,再将高速缓存中的数据回写到主存当中,通过这种方式来降低CPU从主存中获取数据的延迟。大致的示意图如下: 图一这个模型,可以简单的认为是单核模型,在这个模型里面,以i++这个操作为例,程序执行时,会先从主内存中获取i的值,复制到高速缓存,然后CPU从高速缓存中加载并执行+1操作,操作完成后回写到高速缓存,最后再从高速缓存回写到主内存。单核模型这样操作没有任何问题,但是计算机自产生以来,一直追求的两个目标,一个是如何做的更多,另一个就是如何计算得更快,这样带来的变化就是单核变成多核,高速缓存分级存储。大致的示意图如下: 在图二示意图里面,i++这个操作就有问题了,因为多核CPU可以线程并行计算,在Core

慢慢记录有关渗透2sqlmap

偶尔善良 提交于 2019-12-13 17:47:47
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> sqlmap定义忘了就是sql注入的开源工具python实现,有关下载和概念科普: http://sqlmap.org 还有源码和api可做扩展,由于自己新手这方面渗透2周的学习表示要学的太多,还是迷迷糊糊。 先记录: get型:sqlmap -u “ http://xxx.xx.xxx/xx.xxx?xx=xxx” post型: sqlmap -u “ http://xxx.xx.xxx/xx.xxx” –data=”xxxx=xxxx&xxxx=xxx” cookie类注入: sqlmap -u “ http://xxx.xx.xxx/xx.xxx?xx=xxx” –cookie=”xxx=xxx&xxx=xxx” –level=2 大概这些,sqlmap.py --h 帮助文档有点多,看着有点累上面几种类型大致,细节的把帮助文档重定向拿出来看能好点。对了有一个-dump命令可以尝试。 继续get的话后面一些参数包括数据库。。。。 post 自动forms即可 下周继续整理大概如果顺利就差不多能玩了自己,不过说实话细节的注意毕竟控制台执行有时候提示不太好看导出来,写的还是挺清楚。 下周整理 剩下和findbugs 个人认为入门参考资料不错的: http://www.jb51.net/softjc

随机点名器

痞子三分冷 提交于 2019-12-13 01:39:00
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> *{ margin: 0; padding: 0; } h2{ height: 80px; line-height: 80px; font-size: 30px; color: red; text-align: center; } input[type="text"]{ display:block; float:left; height:30px; line-height:30px; width:80px; margin-right:8px; border:1px solid #666; text-align: center; margin-bottom: 30px; background: none; } input[type="text"]:nth-of-type(7){ margin-right: 0; } p{ clear: both; display: block; text-align: center; } p label{ float: left; } input.huida[type="text"]{ width

JVM 优化

半世苍凉 提交于 2019-12-12 04:27:59
## JVM 优化 Java 的内存模型分为: - Young,年轻代(易被 GC)。Young 区被划分为三部分,Eden 区和两个大小严格相同的 Survivor 区,其中 Survivor 区间中,某一时刻只有其中一个是被使用的,另外一个留做垃圾收集时复制对象用,在 Young 区间变满的时候,minor GC 就会将存活的对象移到空闲的Survivor 区间中,根据 JVM 的策略,在经过几次垃圾收集后,任然存活于 Survivor 的对象将被移动到 Tenured 区间。 - Tenured,终身代。Tenured 区主要保存生命周期长的对象,一般是一些老的对象,当一些对象在 Young 复制转移一定的次数以后,对象就会被转移到 Tenured 区,一般如果系统中用了 application 级别的缓存,缓存中的对象往往会被转移到这一区间。 - Perm,永久代。主要保存 class,method,filed 对象,这部门的空间一般不会溢出,除非一次性加载了很多的类,不过在涉及到热部署的应用服务器的时候,有时候会遇到 java.lang.OutOfMemoryError : PermGen space 的错误,造成这个错误的很大原因就有可能是每次都重新部署,但是重新部署后,类的 class 没有被卸载掉,这样就造成了大量的 class 对象保存在了 perm 中

java虚拟机启动参数分类详解

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-10 04:06:39
官方文档见: http://docs.sun.com/source/819-0084/pt_tuningjava.html java启动参数共分为三类; 其一是 标准参数 (-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 其二是 非标准参数 (-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容; 其三是 非Stable参数 (-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用; 一、标准参数 中比较有用的: verbose -verbose:class 输出jvm载入类的相关信息,当jvm报告说找不到类或者类冲突时可此进行诊断。 -verbose:gc 输出每次GC的相关情况。 -verbose:jni 输出native方法调用的相关情况,一般用于诊断jni调用错误信息。 二、非标准参数 又称为扩展参数,一般用到最多的是 -Xms 512m 设置JVM促使内存为512m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。 - Xmx 512m ,设置JVM最大可用内存为512M。 -Xmn 200m : 设置年轻代大小为200M。整个堆大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大

Spring中xml和注解方式使用AOP

◇◆丶佛笑我妖孽 提交于 2019-12-09 22:32:35
AOP是面向切面的编程。使用AOP的方式可以减少代码直接的耦合,后期维护起来较为方便。先看看最普通的Spring项目来配置AOP。 需要的Jar包 Spring 需要的 Jar : spring-core.xx.jar,spring-beans.xx.jar,spring-context.xx.jar,spring-context-support.xx.jar,spring-expression.xx.jar AOP需要的包: spring-aop.xx.jar,spring-aspects.xx.jar,aopalliance.xx.jar,aspectjrt.jar,aspectjweaver.jar XML方式 配置好通知类,Spring的基础内容 使用xml <aop:config> <aop:aspect id="time" ref="timeHandler1"> <!-- 前置通知 --> <aop:before method="printStartTime" pointcut="execution(* com.xx.service.*.*(..))"/> <!-- 后置通知 --> <aop:after method="printEndTime" pointcut="execution(* com.xx.service.*.*(..))"/> </aop:aspect