09 2018 档案

摘要:在JVM中堆空间划分如下图所示 上图中,刻画了Java程序运行时的堆空间,可以简述成如下2条 1.JVM中堆空间可以分成三个大区,新生代、老年代、永久代 2.新生代可以划分为三个区,Eden区,两个幸存区 在JVM运行时,可以通过配置以下参数改变整个JVM堆的配置比例 1.JVM运行时堆的大小 -X 阅读全文
posted @ 2018-09-30 18:47 DaryllD 阅读(408) 评论(0) 推荐(0)
摘要:Netty5.0用法 Maven坐标 <dependencies> <!-- https://mvnrepository.com/artifact/io.netty/netty-all --> <dependency> <groupId>io.netty</groupId> <artifactId> 阅读全文
posted @ 2018-09-30 18:31 DaryllD 阅读(185) 评论(0) 推荐(0)
摘要:maven <dependency> <groupId>io.netty</groupId> <artifactId>netty</artifactId> <version>3.3.0.Final</version> </dependency> TestNettyServer maven <depe 阅读全文
posted @ 2018-09-30 17:55 DaryllD 阅读(182) 评论(0) 推荐(0)
摘要:直接缓冲区与非直接缓冲区别 分散读取与聚集写入 非直接缓冲区 通过 allocate() 方法分配缓冲区,将缓冲区建立在 JVM 的内存中! 案例展示 这里提供一个名为Python1,大小为397.1MB的zip文件; 现分别用直接缓冲区和非直接缓冲区对上面文件进行文件复制,看哪个缓冲区耗时最短,效 阅读全文
posted @ 2018-09-30 12:47 DaryllD 阅读(278) 评论(0) 推荐(0)
摘要:单例模式 什么是单例模式? 单例保证一个对象JVM中只能有一个实例,常见单例 懒汉式、饿汉式 什么是懒汉式,就是需要的才会去实例化,线程不安全。 什么是饿汉式,就是当class文件被加载的时候,初始化,天生线程安全。 单例写法 class SingletonTest { public static  阅读全文
posted @ 2018-09-30 11:44 DaryllD 阅读(146) 评论(0) 推荐(0)
摘要:CGLIB与JDK动态代理区别 代理模式 什么是代理? 通过代理控制对象的访问,可以详细访问某个对象的方法,在这个方法调用处理,或调用后处理。既(AOP微实现) ,AOP核心技术面向切面编程。 代理应用场景 安全代理 可以屏蔽真实角色 远程代理 远程调用代理类RMI 延迟加载 先加载轻量级代理类,真 阅读全文
posted @ 2018-09-30 11:41 DaryllD 阅读(192) 评论(0) 推荐(0)
摘要:java并发编程之Condition 引言 在java中,对于任意一个java对象,它都拥有一组定义在java.lang.Object上监视器方法,包括wait(),wait(long timeout),notify(),notifyAll(),这些方法配合synchronized关键字一起使用可以 阅读全文
posted @ 2018-09-29 22:54 DaryllD 阅读(174) 评论(0) 推荐(0)
摘要:1、自旋锁自旋锁可以使线程在没有取得锁的时候,不被挂起,而转去执行一个空循环,(即所谓的自旋,就是自己执行空循环),若在若干个空循环后,线程如果可以获得锁,则继续执行。若线程依然不能获得锁,才会被挂起。使用自旋锁后,线程被挂起的几率相对减少,线程执行的连贯性相对加强。因此,对于那些锁竞争不是很激烈, 阅读全文
posted @ 2018-09-29 22:30 DaryllD 阅读(516) 评论(0) 推荐(0)
摘要:notify(): 唤醒在此对象监视器上等待的单个线程。如果所有线程都在此对象上等待,则会选择唤醒其中一个线程。选择是任意性的,并在对实现做出决定时发生。线程通过调用其中一个 wait 方法,在对象的监视器上等待。 直到当前线程放弃此对象上的锁定,才能继续执行被唤醒的线程。被唤醒的线程将以常规方式与 阅读全文
posted @ 2018-09-29 22:20 DaryllD 阅读(230) 评论(0) 推荐(0)
摘要:dubbo+zookeeper 本篇主要是来分享从头开始搭建一个dubbo+zookeeper平台的过程,其中会简要介绍下dubbo服务的作用。 首先,看下一般网站架构随着业务的发展,逻辑越来越复杂,数据量越来越大,交互越来越多之后的常规方案演进历程。 其次,当服务越来越多之后,我们需要做哪些服务治 阅读全文
posted @ 2018-09-29 15:27 DaryllD 阅读(219) 评论(0) 推荐(0)
摘要:Linux高可用之Keepalived 简介 Keepalived是基于vrrp协议的一款高可用软件。Keepailived有一台主服务器和多台备份服务器,在主服务器和备份服务器上面部署相同的服务配置,使用一个虚拟IP地址对外提供服务,当主服务器出现故障时,虚拟IP地址会自动漂移到备份服务器。 VR 阅读全文
posted @ 2018-09-29 09:54 DaryllD 阅读(229) 评论(0) 推荐(0)
摘要:1.ZooKeeper是什么?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户2.ZooKeep 阅读全文
posted @ 2018-09-29 09:36 DaryllD 阅读(219) 评论(0) 推荐(0)
摘要:Union与Union All的区别 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。 union和union all的区别是,union会自动压缩多个结果集合中的重复结 阅读全文
posted @ 2018-09-27 20:48 DaryllD 阅读(139) 评论(0) 推荐(0)
摘要:MySQL MyISAM InnoDB区别 MySQL MyISAM InnoDB区别 MySQL MyISAM InnoDB区别 MySQL MyISAM InnoDB区别 InnoDB:支持事务处理等不加锁读取支持外键支持行锁不支持FULLTEXT类型的索引不保存表的具体行数,扫描表来计算有多少 阅读全文
posted @ 2018-09-27 20:46 DaryllD 阅读(149) 评论(0) 推荐(0)
摘要:spring事物的七种事物传播属性行为及五种隔离级别 事务,就是一组操作数据库的动作集合。事务是现代数据库理论中的核心概念之一。如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事务。当所有的步骤像一个操作一样被完整地执行,我们称该事务被提交。由于其中的一部分或多步执行失败,导致 阅读全文
posted @ 2018-09-21 16:00 DaryllD 阅读(133) 评论(0) 推荐(0)
摘要:MD5加密+加盐 了解: MD5加密,是属于不可逆的。我们知道正常使用MD5加密技术,同一字符,加密后的16进制数是不变的,自从出现彩虹表,对于公司内部员工来说,可以反查数据,获取不可能的权限,所以出现了salt算法。代码如下: 一般使用的加盐:md5(Password+UserName),即将用户 阅读全文
posted @ 2018-09-21 15:49 DaryllD 阅读(176) 评论(0) 推荐(0)
摘要:前端加密后端解密Base64通用加密处理 前端加密后端解密Base64通用加密处理 前端加密后端解密Base64通用加密处理 前端加密后端解密Base64通用加密处理 下载Base64.js 下面先看下前端加密: 首先在html中引入jquery的js插件和base64js插件,然后编辑被加密数据 阅读全文
posted @ 2018-09-21 15:40 DaryllD 阅读(1535) 评论(0) 推荐(0)
摘要:springboot 全局异常处理 研究了半天springboot的全局异常处理,虽然还是需要再多整理一下,但是对于常见的404和500足以可以区分开,能够根据这两个异常分别处理 首先配置视图解析路径 spring.mvc.view.prefix=/WEB-INF/ spring.mvc.view. 阅读全文
posted @ 2018-09-21 12:15 DaryllD 阅读(775) 评论(0) 推荐(0)
摘要:mysql MySQL慢查询 - 开启慢查询 一、简介 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。 二、参数说明 slow_query_log 慢查询开启状态slow_query_log_file 慢查询日志存放的位置(这个 阅读全文
posted @ 2018-09-19 15:53 DaryllD 阅读(136) 评论(0) 推荐(0)
摘要:数据库的水平分割和垂直分割 在数据库操作中,我们常常会听说这两个词语:水平分割和垂直分割。那么到底什么是数据库的水平分割,什么是数据库的垂直分割呢?本文我们就来介绍一下这部分内容。 1、水平分割: 按记录进分分割,不同的记录可以分开保存,每个子表的列数相同。 水平分割通常在下面的情况下使用: A 表 阅读全文
posted @ 2018-09-19 14:45 DaryllD 阅读(224) 评论(0) 推荐(0)
摘要:java重定向与请求转发的区别 请求转发: request.getRequestDispatcher().forward(); 重定向: response.sendRedirect(); 例如: 请求转发: request.getRequestDispatcher("/student_list.js 阅读全文
posted @ 2018-09-18 17:08 DaryllD 阅读(138) 评论(0) 推荐(0)
摘要:Netty服务器端 class ServerHandler extends SimpleChannelHandler { /** * 通道关闭的时候触发 */ @Override public void channelClosed(ChannelHandlerContext ctx, Channel 阅读全文
posted @ 2018-09-17 16:27 DaryllD 阅读(212) 评论(0) 推荐(0)
摘要:Netty3服务器端 class ServerHandler extends SimpleChannelHandler { /** * 通道关闭的时候触发 */ @Override public void channelClosed(ChannelHandlerContext ctx, Channe 阅读全文
posted @ 2018-09-17 16:00 DaryllD 阅读(164) 评论(0) 推荐(0)
摘要:Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket。像大家熟悉的QQ、MSN都使用了Socket相关的技术。下面就让我们一起揭开Socket的神秘面纱。 Socket编程 一、网络基础知识(参考计算机网络) 阅读全文
posted @ 2018-09-16 14:25 DaryllD 阅读(171) 评论(0) 推荐(0)
摘要:解决spring使用动态代理类型转换失败的问题--java.lang.ClassCastException: com.sun.proxy.$Proxy$ cannot be cast to ... 今天在学习spring aop中的动态代理时,碰到了一个类型转换的问题:java.lang.Class 阅读全文
posted @ 2018-09-16 00:49 DaryllD 阅读(4600) 评论(0) 推荐(1)
摘要:this.getClass().getResource(String) 路径问题 this.getClass().getResource(String) 路径问题 这里的默认当前路径是该类所在目录; this.getClass() 说明了一切!! this.getClass().getClassLo 阅读全文
posted @ 2018-09-15 11:06 DaryllD 阅读(328) 评论(0) 推荐(0)
摘要:悲观锁、乐观锁、排他锁 场景 当多个请求同时操作数据库时,首先将订单状态改为已支付,在金额加上200,在同时并发场景查询条件下,会造成重复通知。 SQL: Update 悲观锁与乐观锁 悲观锁:悲观锁悲观的认为每一次操作都会造成更新丢失问题,在每次查询时加上排他锁。 每次去拿数据的时候都认为别人会修 阅读全文
posted @ 2018-09-14 16:14 DaryllD 阅读(160) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-09-14 15:11 DaryllD 阅读(78) 评论(0) 推荐(0)
摘要:ThreadLocal 什么是ThreadLocal ThreadLocal提高一个线程的局部变量,访问某个线程拥有自己局部变量。 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对 阅读全文
posted @ 2018-09-14 15:08 DaryllD 阅读(129) 评论(0) 推荐(0)
摘要:JDK1.5-Lock 在 jdk1.5 之后,并发包中新增了 Lock 接口(以及相关实现类)用来实现锁功能,Lock 接口提供了与 synchronized 关键字类似的同步功能,但需要在使用时手动获取锁和释放锁。 Lock写法 Lock lock = new ReentrantLock(); 阅读全文
posted @ 2018-09-14 14:30 DaryllD 阅读(143) 评论(0) 推荐(0)
摘要:win7系统一按U键就弹出轻松访问窗口 win7系统一按U键就弹出轻松访问窗口 核心提示:win7系统一按U键就弹出轻松访问窗口怎么办?一起看看吧! win7系统一按U键就弹出轻松访问窗口怎么办?朋友都遇过这种问题,别着急,下面2345软件大全小编给你分享下解决办法。 解决方法 1、轻拍键盘或连续按 阅读全文
posted @ 2018-09-14 11:26 DaryllD 阅读(362) 评论(0) 推荐(0)
摘要:volatile与synchronized区别 仅靠volatile不能保证线程的安全性。(原子性) ①volatile轻量级,只能修饰变量。synchronized重量级,还可修饰方法 ②volatile只能保证数据的可见性,不能用来同步,因为多个线程并发访问volatile修饰的变量不会阻塞。 阅读全文
posted @ 2018-09-13 15:38 DaryllD 阅读(137) 评论(0) 推荐(0)
摘要:AtomicInteger是一个提供原子操作的Integer类,通过线程安全的方式操作加减。 阅读全文
posted @ 2018-09-13 15:37 DaryllD 阅读(147) 评论(0) 推荐(0)
摘要:package com.zbb.test.thread; public class DeadLock { public static String obj1 = "obj1"; public static String obj2 = "obj2"; public static void main(String[] args) { Thread a = new Thread(new ... 阅读全文
posted @ 2018-09-13 15:16 DaryllD 阅读(153) 评论(0) 推荐(0)
摘要:java synchronized同步静态方法和同步非静态方法的异同 所有的非静态同步方法用的都是同一把锁——实例对象本身,也就是说如果一个实例对象的非静态同步方法获取锁后,该实例对象的其他非静态同步方法必须等待获取锁的方法释放锁后才能获取锁,可是别的实例对象的非静态同步方法因为跟该实例对象的非静态 阅读全文
posted @ 2018-09-13 14:54 DaryllD 阅读(134) 评论(0) 推荐(0)