自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 目录

1:什么情况下发生GC 2:生产环境如何打印Dump快照,如何查询Dump 3:jvm的流程,各区都存储什么数据信息 4:jvm的内存图和原理 5:系统优化和内存调优有哪些方法 6:分析服务器运行状态的方式 7:JVM的内存模型 8:虚拟机调优 9:永久代和新生代的区别...

2018-09-23 14:07:47 124 0

原创 目录

1:线程的工具类 2:线程的生命周期 3:多线程的理解 4:线程池的运行机制 5:线程池中变量的定义 6:corePoolSize和maxPoolSize的区别 7:线程池中的阻塞队列无限大是否合适 8:线程池的队列一般设置多少 9:线程池的实现,源码中常用的方法 10:线程池和...

2018-09-23 14:05:54 88 0

原创 目录

1:hashMap的原理,hash冲突如何解决 2:hashMap如何保证线程安全 3:hashMap的数据结构,hashcode进行了几次转换 4:hashMap的数据结构,get和put方法如何实现 5:hashMap查询的时间复杂度 6:linkedlist和arraylist的区...

2018-09-23 14:05:18 73 0

原创 idea常用快捷键

一:编写代码 Ctrl+E, 最近的文件。 Ctrl+Shift+E, 最近更改的文件。 Alt+Shift+C, 最近的更改。 Ctrl+F, 查找文本。 F3, 向下查找 Shift+F3, 向上查找 Ctrl+F12, 查找类中的方法 Ctrl+Shift+Alt+N,查找类中...

2020-02-17 11:14:38 49 0

转载 美团技术四面1

分享一位美团面试经历: 美团我是在拉勾网上投的简历,之前也投过一次,简历都没通过删选,后来让学姐帮我改了一下简历,重新投另一个部门,获得了面试机会。10月23日中午HR打电话过来预约了下午4点半面试,说会在线写代码,让我准备好网络环境。 结果5点半还没打电话过来,被放鸽子。与hr重新沟通过后,...

2019-05-05 15:52:46 157 0

转载 高并发架构1

前言 高并发经常会发生在有大活跃用户量,用户高聚集的业务场景中,如:秒杀活动,定时领取红包等。 为了让业务可以流畅的运行并且给用户一个好的交互体验,我们需要根据业务场景预估达到的并发量等因素,来设计适合自己业务场景的高并发处理方案。 在电商相关产品开发的这些年,我有幸的遇到...

2019-05-05 13:58:34 69 0

原创 目录

1:mysql优化 2:sql查询优化,sql写入优化 3:分库分表如何实现,使用什么工具 4:数据库分库分表分区 5:有哪些索引 6:索引什么情况下失效 7:什么是索引,Oracle索引的数据结构 8:oracle索引建立时需要注意什么 9:什么是游标 10:海量数据如何更新 ...

2018-11-10 15:00:59 72 0

转载 1.什么情况下发生GC

一:jvm运行时数据区的划分         (1)程序计数器(Program Conuter Register)         程序计数器是一块较小的内存空间,它是当前线程执行字节码的行号指示器,字节码解释工作器就是通过改变这个计数器的值来选取下一条需要执行的指令。它是线程私有的内存,...

2018-10-05 22:35:27 930 0

转载 9.btree结构和b+tree结构的区别

(1)B树        即二叉搜索树:        1.所有非叶子结点至多拥有两个儿子(Left和Right);        2.所有结点存储一个关键字;        3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;        如:       ...

2018-10-05 17:09:36 828 0

转载 8.如何理解迭代器

一:概念 迭代器:对Collection进行迭代 二:源码中的参数介绍 Collection接口的定义:        public interface Collection<E> extends Iterable<E> Itera...

2018-10-05 15:52:55 153 0

转载 7.谈谈对集合的理解

         Java集合是java提供的一个工具包,全部继承自java.util.*。主要包括两大接口Collection接口和Map接口以及相关的工具类(Iterator迭代器接口、Enumeration枚举类、Arrays和Colletions)。      (1)Collecti...

2018-10-05 11:08:10 995 0

转载 6.linkedlist和arraylist的区别

ArrayList和LinkedList的大致区别如下: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。  2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。  3.对于新增和删除操作...

2018-10-04 19:31:12 120 0

转载 5.concurrentHashMap的实现

  JDK1.7的实现 在JDK1.7版本中,ConcurrentHashMap的数据结构是由一个Segment数组和多个HashEntry组成,如下图所示:   Segment数组的意义就是将一个大的table分割成多个小的table来进行加锁,也就是上面的提到的锁分离技术,而每一个Seg...

2018-10-04 19:12:53 89 0

转载 2.hashMap如何保证线程安全

一:hashMap线程不安全表现 (1)在两个线程同时尝试扩容HashMap时,可能将一个链表形成环形的链表,所有的next都不为空,进入死循环; (2)在两个线程同时进行put时可能造成一个线程数据的丢失; 二:如何线程安全的使用hashMap (1)Hashtable //Hasht...

2018-10-03 20:49:37 882 0

转载 3.hashMap的数据结构,源码中的常用方法

一:hashMap的数据结构         HashMap储存的是键值对,并允许使用null值和null键,不保证映射的顺序。HashMap实际上是一个“链表散列”的数据结构,即数组和链表和红黑树的结合体。          数组:存储区间连续,占用内存严重,寻址容易,插入删除困难;  ...

2018-10-03 15:51:38 73 0

转载 1.jdk1.8中hashMap的原理,hash冲突如何解决

一:hashMap的工作原理        HashMap是基于链地址法的原理,使用put(key, value)存储对象到HashMap中,使用get(key)从HashMap中获取对象。        当我们给put()方法传递键和值时,我们先对键调用hashCode()方法计算hash从...

2018-10-03 15:25:18 2170 0

转载 11.线程的状态,线程池的构造方式,线程池的特性

一:线程的状态 (1)初始状态         实现Runnable接口和继承Thread可以得到一个线程类,new一个实例出来,线程就进入了初始状态。 (2) 就绪状态       1)就绪状态只是说你资格运行,调度程序没有挑选到你,你就永远是就绪状态。       2)调用线程的...

2018-09-30 20:30:26 96 0

转载 10.线程和线程池的区别,线程池有哪些,什么情况下使用

一:线程和线程池的区别 (1)new Thread 的弊端       a. 每次new Thread时,新建对象性能差。       b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,可能占用过多系统资源导致死机或oom。       c. 缺乏更多功能,如定时执行、定期执行、线程中...

2018-09-30 19:51:01 559 0

转载 9.线程池的实现,源码中常用的方法

一:程池的作用       线程池可以使线程复用,避免了每次线程都new一个新的线程,另外我们可以给线程池一个固定大小,从而避免了大量线程对CPU的占用。 二:线程池的创建         在Java用有一个Executors工具类,可以为我们创建一个线程池,其本质就是new了一个Threa...

2018-09-28 21:31:40 112 0

转载 8.线程池的队列一般设置多少

一、ThreadPoolExecutor的重要参数 corePoolSize:核心线程数         核心线程会一直存活,及时没有任务需要执行        当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理        设置allowCoreThreadTime...

2018-09-24 14:49:03 7705 2

转载 7.线程池中的阻塞队列无限大是否合适

      在设置线程池队列长度时,如果长度设置的不合理就无法发挥出多线程的威力。设置线程池的队列长度取决于使用场景;比如全程异步的系统,队列可以设置为0,corePoolSize设置为cpu核数。研究tomcat、Dubbo等业界成熟的产品是如何设置线程队列,分析如何合理设置线程池队列长度。 ...

2018-09-24 11:41:48 3009 0

转载 6.corePoolSize和maxPoolSize的区别

       受限于硬件、内存和性能,我们不可能无限制的创建任意数量的线程,每一台机器允许的最大线程是一个有界值。因此ThreadPoolExecutor管理的线程数量是有界的。线程池就是用这些有限个数的线程,去执行提交的任务。但是对于多用户、高并发的应用来说,提交的任务数量非常巨大,会比允许的最...

2018-09-24 11:41:19 4691 0

原创 5.线程池中变量的定义

1.线程池的概念        线程:进程中负责程序执行的执行单元。一个进程中至少有一个线程。        多线程:解决多任务同时执行的需求,合理使用CPU资源。多线程的运行是根据CPU切换完成,如何切换由CPU决定,因此多线程运行具有不确定性。       线程池:基本思想还是一种对象池...

2018-09-24 11:41:04 413 0

转载 4.线程池的运行机制

一、线程池原理 1.1 使用线程池的好处 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 第三:提高线程的可管理性。线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性...

2018-09-24 11:40:34 234 0

原创 3.多线程的理解

1.多线程的概念        解决多任务同时执行的需求,合理使用CPU资源。多线程的运行是根据CPU切换完成,如何切换由CPU决定,因此多线程运行具有不确定性。 2.多线程的优势 (1)发挥多核CPU的优势        随着工业的进步,现在的笔记本、台式机乃至商用的应用服务器至少也都是...

2018-09-24 11:34:16 162 0

转载 2.线程的生命周期

线程的生命周期       线程是一个动态执行的过程,它也有一个从产生到死亡的过程。 (1)生命周期的五种状态 新建(new Thread)       当创建Thread类的一个实例(对象)时,此线程进入新建状态(未被启动)。 例如:Thread  t1=new Thread(); ...

2018-09-24 11:33:28 205 0

转载 1.java 线程常用工具类

一 Timer 定时器 Timer 类主要是用来完成定时任务的功能,比如闹钟这种周期性变化的事物。 ** 1 一个最简单的定时器** 两秒钟后引爆一个定时炸弹。 @Test public void test() { new Timer().schedule...

2018-09-23 14:11:14 67 0

转载 2年Java开发工作经验面试总结

最近换了个公司,从三月底开始面,面到四月底,面了有快二十家公司。我是一个喜欢总结经验的人,每经过一场面试,我在回来的路上都会仔细回想今天哪些问题可以答的更好,或者哪些问题是自己之前没遇到过的,或者是哪个知识点今天又问了等等。四月中旬的时候,我就在构思要写一篇面经,主要是想着可能对那些跟我相同处境的...

2017-10-24 19:37:38 343 0

原创 Window下Apahce指令

在CMD下Apache指令: 启动:httpd.exe -k start 停止:httpd.exe -k stop   或者httpd.exe -k shutdown 重启:httpd.exe -k restart 移除:httpd.exe -k uninstall -n  "A...

2017-07-24 09:18:51 259 0

原创 Oracle客户端误删除后,Toad和Sqlplus无法连接Oracle数据库的问题

Oracle 10g数据库服务端安装在B电脑上,我本地电脑A在删除Oracle客户端后,使用Toad和SqlPlus无法连接数据库。通过安装Oralce 11g客户端(简装版本,占用存储空间最小)后,Toad可以直接连接Oralce服务端数据库,SqlPlus却无法连接,经查询发下简装版的Orac...

2017-07-11 19:59:27 459 0

原创 做一个心无杂念的平凡人

近来,因为思想没有主见,生活没有目标,喜好空想,不做行动,导致自己思想十分累,严重损害身心健康,若长此下去,真心不敢想象自己会变成什么样子。生活本来就不容易,一直坚信付出和所得成正比,整日不做学习,不懂得控制自己,却想要的更多,自己想象都觉得不可能,觉得眼前不可能实现的事情就不要在去想了,空想误己...

2017-07-10 09:23:39 403 0

转载 windows系统下nginx+tomcat+redis做负载均衡和session粘滞附整套解决方案

Nginx: 在nginx-1.8.0\conf目录下找到nginx.conf文件,打开文件修改文件中http{}中的内容,在http{}中加入    upstream localhost  {          server localhost:8080;        ...

2017-07-05 16:43:57 442 0

转载 windows下nginx+tomcat+memcache负载均衡集群搭建

使用nginx 做负载均衡 memcached处理session共享    环境 windows 7  X64   java : jdk7     nginx : 1.5.0  http://nginx.org/   tomcat :6.37.0 X 3   memecached : h...

2017-07-05 16:37:45 305 0

转载 Nginx负载均衡session会话保持方法

负载均衡时,为了保证同一用户session会被分配到同一台服务器上,可以使用以下方法: 1.使用cookie 将用户的session存入cookie里,当用户分配到不同的服务器时,先判断服务器是否存在该用户的session,如果没有就先把cookie里面的sessoin存入该服务器,实...

2017-07-05 15:22:46 6177 0

原创 如何将Apache Http Server2.2.32的C源码包编译成exe安装包

通过GnuWin32软件将patch后缀的不定文件打到Apache Http Server2.2.32安装包后,如何将Apache Http Server的源码包编译成Windows下可以安装的exe安装包

2017-07-05 09:14:40 350 0

转载 Maven 快速入门及简单使用

Maven入门指南 :Maven 快速入门及简单使用 前言       Maven是一个Java语言编写的开源项目管理工具,是Apache软件基金会的顶级项目。主要用于项目构建,依赖管理,项目信息管理。       maven项目在编译、测试、打包里,会需要从maven的中央仓库...

2017-07-04 19:01:03 2257 0

转载 Redis的安装与使用(单节点)

IP:192.168.4.111 环境:CentOS 6.6 Redis版本:redis-3.0(考虑到Redis3.0在集群和性能提升方面的特性,rc版为正式版的候选版,而且很快就出正式版) 安装目录:/usr/local/redis 用户:root   编译和安装所需的包: # ...

2017-07-04 18:57:47 222 0

转载 计算机网络

协议体系结构TCP协议 概念三次握手为什么三次握手四次挥手为什么四次挥手SYN攻击对应的协议 UDP协议TCP和UDP区别面向连接和非面向连接的服务的特点是什么 面向连接非面向连接 浏览器输入wwwbaiducom后执行的全过程 涉及到的协议 DNS域名系统交换机路由器网关...

2017-07-04 18:55:57 353 0

转载 Shell脚本知识点

Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。 Shell可以直接使用在win/Unix/Linux上面,并且可以调用大量系统内部的功能来解释执行程序,如果熟练掌握Shell脚本,可以让我们操作计算机...

2017-07-04 18:52:31 233 0

转载 Tomcat 启动速度优化

一般建议 问题一般分为2类: 一类是BUG,还有一类是性能问题。 首先提醒一点: 如果碰到 Tomcat hang 住或者请求不响应, 必须先诊断和排查问题, 而不要急着去优化。 可以执行 线程转储, 看看 JVM 出了什么问题。请参考Tomcat的wiki页面: 问题检测与诊断 。 ...

2017-07-04 18:42:46 4454 0

提示
确定要删除当前文章?
取消 删除