- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 Java 线程池
一、如何构建线程池?我相信多数用过线程池的Java程序员都用过Executors来创建线程池,该类提供了几个静态方法,可以快速创建线程池。 如上图所示,可以创建四种类型的线程池 固定线程数量的线程池。 根据需要创建线程的线程池。 执行定时任务的线程池。 单个线程的线程池。 多数情况下,这几种类型的线程池就能满足我们的需要。但是实际上还有一个创...
2018-12-12 13:33:25
155
1
原创 前后端分离(一)
互联网架构中,web服务器:一般指像nginx,apache这类的服务器,一般只能解析静态资源。应用服务器:一般指像tomcat,jetty,resin这类的服务器可以解析动态资源也可以解析静态资源,但解析静态资源的能力没有web服务器好。一般都是只有web服务器才能被外网访问,应用服务器只能内网访问。前后端分离,通过nginx+tomcat的方式有效的进行解耦,为以后的大型分布式架构、微...
2018-11-22 09:18:18
339
原创 java web获取spring容器中bean的几种方式
一、注解的bean1、 ApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext()); WorkContentService workContentService = (WorkContentService) a...
2018-07-31 16:55:16
1882
原创 jvm可达性分析算法中,哪些可以作为root?
被启动类(bootstrap 加载器)加载的类和创建的对象;JavaStack 中的引用的对象 (栈内存中引用的对象);方法区中静态引用指向的对象;方法区中常量引用指向的对象;Native 方法中 JNI 引用的对象。...
2018-05-17 10:18:32
3458
原创 JVM中GC什么时候开始进行
GC 经常发生的区域是堆区,堆区还可以细分为新生代、老年代,新生代还分为一个 Eden 区和两个 Survivor 区。对象优先在 Eden 中分配,当 Eden 中没有足够空间时,虚拟机将发生一次 Minor GC,因为 Java 大多数对象都是朝生夕灭,所以 Minor GC 非常频繁,而且速度也很快;Full GC,发生在老年代的 GC,当老年代没有足够的空间时即发生 Full GC,发生 ...
2018-05-17 10:16:00
8138
原创 JVM内存分配
堆内存JVM 初始分配的内存由-Xms 指定,默认是物理内存的 1/64;JVM 最大分配的内存由-Xmx 指定,默认是物理内存的 1/4;默认空余堆内存小于 40% 时,JVM 就会增大堆直到-Xmx 的最大限制;空余堆内存大于 70% 时,JVM 会减少堆直到 -Xms 的最小限制;因此服务器一般设置-Xms、-Xmx 相等以避免在每次 GC 后调整堆的大小。对象的堆内存由称为垃圾回收器的自动...
2018-05-17 10:05:15
210
原创 Redis
作为key-value缓存一、优势1、支持数据类型多,string、list、set、zset、hash 五中类型。针对每种数据类型都有丰富的操作。2、性能高,处理速度快3、支持持久化,快照和AOF的方式,各有特性4、支持主从复制,容灾...
2018-05-16 19:20:32
116
原创 MySQL事务
一、数据库事务遵循 ACID原则。原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。一致性(Consistency)一致性是指事务必须使数据库从一个一致的状态变到另外一个一致的状态,也就是执行事务之前和之后的状态都必须处于一致的状态。隔离性(Isolation)隔离性是指当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事...
2018-05-16 10:46:19
90
原创 二分查找或折半查找
一、如果我们的目标对象在一个有序的线性表中,从小到达排列,我们就可以采用二分查找,也叫折半查找。 二分查找或折半查找的时间复杂度为O(logn)。二、闲话少说,直接上代码/** * 二分查找、折半查找 * @param array 目标有序序列,从小到大排列 * @param target 待查找的目标对象 * @param fromIndex 数组的开始查找...
2018-04-16 10:51:07
178
原创 java 发邮件-java mail
一、前言在日常系统开发工作中,我们有时会遇到发送邮件的需求,使用java来实现发送邮件功能轻而易举。借助spring的JavaMailSenderImpl,以及mail jar包,很容易实现发送邮件功能。二、依赖的jar包相关jar包:添加pom.xml依赖<dependency> <groupId>org.springframework</groupId>...
2018-04-09 11:36:24
264
原创 java 虚拟机JVM,内存模型JMM
JVM的JMM (Java Memory Model)线程共享:方法区、堆区线程私有:虚拟机栈、本地方法栈、程序计数器。一、方法区 (线程共享)存放已经被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等。特点1、线程共享,方法区是堆的一个逻辑部分,因此和堆一样,都是线程共享的。整个虚拟机中只有一个方法区。2、永久代,方法区中的信息一般需要长期存在,而且它又是堆的逻辑分区,因此用堆的划分...
2018-04-08 08:14:21
183
原创 TOP n 在mysql 与 oracle 中的区别
在日常开发需求中,我们有时会遇到获取表中前n条记录的情况.例如登录日志表 login_log_info 中有id, user_name, client_ip, login_in, create_time, brow 这几个字段。具体数据有: ID | USER_NAME | client_ip | LOGIN_IN | CREATE_TIME ...
2018-03-30 12:09:37
406
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人