- 博客(43)
- 资源 (17)
- 收藏
- 关注
原创 dubbo 基本配置(入门)
文章目录一、配置二、直连三、(消费者)启动不检查的配置四、超时时间五、配置的优先级六、重试次数 retries七、本地存根据一、配置provider.xml 示例<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo=&am
2019-02-28 23:16:35 2015
原创 JVM之常用的垃圾收集算法的总结
1、复制算法将可用内存按容量分成大小相等的两块,每次只使用其中一块,当这块内存使用完了,就将还存活的对象复制到另一块内存上去,然后把使用过的内存空间一次清理掉。这样使得每次都是对其中一块内存进行回收,内存分配时不用考虑内存碎片等复杂情况,只需要移动堆顶指针,按顺序分配内存即可,实现简单,运行高效。特点:针对存活率低的对象优点:无内存碎片缺点:可使用的内存降为原来一半2、标记-清除算法最...
2019-02-28 23:06:27 243
转载 Netty 权威指南笔记:Java NIO 和 Netty 对比
Netty 权威指南笔记(一):网络 I/O 模型和 Java NIO 入门https://blog.csdn.net/hustspy1990/article/details/78385935Netty 权威指南笔记(二):Java NIO 和 Netty 对比https://blog.csdn.net/hustspy1990/article/details/78393538...
2019-02-28 14:38:02 1823
转载 基于Java NIO框架区别对比
一、通信框架流行基于Java NIO通信框架有Mina、Netty、Grizzly等。接下来说下它们之间的对比。二、它们的出身1、Mina 出身于开源界的大牛Apache组织;2、Netty 出身于商业开源大亨Jboss;3、Grizzly 则出身于土鳖Sun公司。三、它们的设计理念1、MinaMina(Multipurpose Infrastructure for Network...
2019-02-28 11:25:50 574
原创 NIO (java.nio.file)Paths 、Files 学习
Paths 路径工具类@Testpublic void test1() { Path path = Paths.get("e:/", "nio/hello.txt"); System.out.println(path.endsWith("hello.txt")); System.out.println(path.startsWith("e:/")); System.out.prin...
2019-02-28 10:09:47 2640
原创 NIO——非阻塞式IO (SocketChannel、DatagramChannel ) 学习
一、使用 NIO 完成网络通信的三个核心:通道(Channel):负责连接 java.nio.channels.Channel 接口: |--SelectableChannel |--SocketChannel |--ServerSocketChannel |--DatagramChannel |--Pipe.SinkChannel |--Pipe.SourceCh...
2019-02-28 10:00:24 871
原创 NIO —— 阻塞式IO 示例
一、使用 NIO 完成网络通信的三个核心:通道(Channel):负责连接 java.nio.channels.Channel 接口: |--SelectableChannel |--SocketChannel |--ServerSocketChannel |--DatagramChannel |--Pipe.SinkChannel |--Pipe....
2019-02-28 09:53:27 464
转载 Java IO和 NIO在文件复制上的性能差异
1、传统的IO在JAVA传统的IO系统中,读取磁盘文件数据的过程如下:以 FileInputStream 类为例,该类有一个 read(byte b[]) 方法,byte b[] 是我们要存储读取到用户空间的缓冲区。参看 read(byte b[]) 方法的源码,可知,它会在内部再调用 readBytes(b, 0, b.length) 方法,而且 readBytes(b, 0, b.leng...
2019-02-27 17:07:10 586
原创 NIO —— Channel (通道、管道) 学习
Channel (通道、管道)A、通道(Channel)用于源节点与目标节点的连接。在 Java NIO 中负责缓冲区中数据的传输。Channel 本身不存储数据,因此需要配合缓冲区进行传输。B、通道的主要实现类java.nio.channels.Channel 接口: |--FileChannel |--SocketChannel |--ServerSocketChannel |...
2019-02-27 15:45:34 9778
原创 NIO —— Buffer(缓冲区) 存储和读取数据
一、Buffer(缓冲区):在 Java NIO 中负责数据的存取(存储和读取)。缓冲区就是数组。用于存储不同数据类型的数据根据数据类型不同(boolean 除外),提供了相应类型的缓冲区:ByteBufferCharBufferShortBufferIntBuffer (记住没有 IntegerBuffer)LongBufferFloatBufferDoubleBuffera...
2019-02-26 11:39:17 2961
原创 EasyCHM:本程序可能被病毒或者人为修改!的解决方案
EasyCHM 编译时,提示 “本程序可能被病毒或者人为修改! ” ,如图所示:一、分析因为,我们编辑修改文件,才出现如上提示。用 Notepad++ 打开发现,发现不同:被编辑文件的编码未被编辑文件的编码二、解决方案2.1、将Windows 改成 Unix双击 Windows (CR LF) ,弹出如图所示,选择 转换UNIX格式,然后保存。2.2、将编码改成UTF-8...
2019-02-26 10:10:13 6695 4
原创 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql8 安装后,修改密码时,,报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements其实就是设置的密码简单,不符合mysql的密码策略。方法1:密码设置复杂。密码要有大小写、特殊字符,数字等组合。方法2:更改mysql的密码策略。1、查看 mysql 初始的密码策略...
2019-02-23 16:30:10 627
转载 (转载)Java内存中的常量池
转载: https://www.cnblogs.com/Kingram/p/9477692.html1、java内存模型简介《深入理解java虚拟机》里将java内存分为如下五个模块:堆:堆是所有线程共享的,主要用来存储对象。其中,堆可分为:新生代和老年代两块区域。使用NewRatio参数来设定比例。对于年轻代,一个Eden区和两个Suvivor区,使用参数SuvivorRatio来...
2019-02-23 09:29:43 174
原创 JVM之 方法区 和 堆 的总结(学习笔记)
1、方法区(Method Area),又称永久代(Permanent Generation),又称非堆区(Non-Heap space)方法区,又称永久代(Permanent Generation),常称为PermGen,位于非堆空间,又称非堆区(Non-Heap space)。方法区是被所有线程共享。所有字段和方法字节码,以及一些特殊方法如构造函数,接口代码也在此定义。简单说,所有定...
2019-02-23 09:19:28 6162 4
转载 Minor GC、Major GC和Full GC之间的区别
三者负责的区域年轻代 包括 Eden和Survivor区域Minor GC 是 清理 Eden区 ;Major GC 是 清理 老年代 ;Full GC 是 清理整个堆空间,包括 年轻代和老年代。触发机制Minor GC当年轻代(Eden区)满时就会触发 Minor GC,这里的年轻代满指的是 Eden区满。Survivor 满不会引发 GC 。Full GC当年老代满时会...
2019-02-21 17:05:02 430
原创 ForkJoin demo 示例
package com.aop8.forkjoin;import java.time.Duration;import java.time.Instant;import java.util.concurrent.ForkJoinPool;import java.util.concurrent.RecursiveTask;import java.util.stream.LongStream...
2019-02-21 13:51:47 803
原创 mysql 设置远程登录权限
mysql 默认情况下,不充许远程登录的,所以设置远程登录权限。用户名是 root,密码是 123456 ,可以远程登录。GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;一定记得要刷新缓存:flush privileges;...
2019-02-21 13:26:34 302
转载 Java JVM虚拟机学习的经典书籍
1、深入理解Java虚拟机——JVM高级特性与最佳实践(第2版)基于最新JDK1.7,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行全面而深入的分析,深刻揭示JVM的工作原理。以实践为导向,通过大量与实际生产环境相结合的案例展示了解决各种常见JVM问题的技巧和实践2、揭秘Java虚拟机:JVM设计原理与实现《揭秘Java虚拟机:JVM设计原理与实现》从源码角度解...
2019-02-20 21:55:47 7398
原创 JVM之运行时常量池,不同JDK版本中的变化
/** * VM options:-Xms10M -Xmx20M -XX:PermSize=10M -XX:MaxPermSize=10M -XX:-UseGCOverheadLimit */public class JVMTest02 { byte[] byteArray = new byte[1 * 1024 * 1024]; public static void main(St...
2019-02-20 17:18:13 881
原创 JVM之类的加载过程的应用:Class.forName 和 ClassLoader.loadClass 的区别
1、Class.forName()和ClassLoader.loadClass的比较1.1、 Class.forName(className)其内部实际调用的方法是 Class.forName(className,true,classloader)方法:Class.forName0(String className, boolean initialize, ClassLoader load...
2019-02-20 15:37:41 3492
转载 java获取反射机制的三种方式
java 获取反射机制的三种方式:new对象 实现反射机制路径类名代码示例建立一个学生类:package com.aop8.reflect;public class Student { private int id; String name; protected boolean sex; public float score;}获取反射机制:package com...
2019-02-20 14:25:23 571
转载 JVM 垃圾回收之Minor GC、Major GC和Full GC之间的区别
三者负责的区域年轻代 包括 Eden和Survivor区域Minor GC 是 清理 Eden区 ;Major GC 是 清理 老年代 ;Full GC 是 清理整个堆空间,包括 年轻代和老年代。触发机制Minor GC当年轻代(Eden区)满时就会触发 Minor GC,这里的年轻代满指的是 Eden区满。Survivor 满不会引发 GC 。Full GC当年老代满时会...
2019-02-20 10:39:23 9519 6
转载 Java中字段、属性、成员变量、局部变量、实例变量、静态变量、类变量、常量
代码示例public class Student { private int Id;//成员变量(字段)、实例变量(表示该Id变量既属于成员变量,又属于实例变量) private String name;//成员变量(字段)、实例变量 public int age;//成员变量(字段)、实例变量(这里用来举例子,在实际中一般都会设置为private) ...
2019-02-19 09:53:49 1405
原创 mongodb 时间范围查询
2018-12-21 00:00:00 < createtime < 2019-01-22 00:00:00db.chat_intent.find({ user:"cm93t1545274300cmt1ht5z", createtime:{"$gt":"2018-12-21 00:00:00","$lt":"2019-01-22 00:00:00"}});db.chat
2019-02-18 16:15:46 7867 1
转载 JVM 相关的面试题
请谈谈你对JVM的理解? java8的虚拟机有什么更新?什么是OOM ? 什么是StackOverflowError ? 有哪些方法分析?JVM的常用参数调优,你知道哪些?内存快照抓取和MAT分析DUMP文件知道吗?谈谈JVM中,对类加载器你的认识?...
2019-02-18 11:18:00 395
转载 Semaphore 计数信号量
转载: https://blog.csdn.net/hanchao5272/article/details/797800451.Semaphore 简介Semaphore,是JDK1.5的java.util.concurrent并发包中提供的一个并发工具类。所谓Semaphore即 信号量 的意思。这个叫法并不能很好地表示它的作用,更形象的说法应该是许可证管理器。Semaphore是一个...
2019-02-15 18:04:54 1670 1
转载 队列 LinkedBlockingQueue
1 apijava.util.concurrent包下的新类。LinkedBlockingQueue 就是其中之一,是一个阻塞的线程安全的队列,底层采用 链表 实现。LinkedBlockingQueue 构造的时候若没有指定大小,则默认大小为 Integer.MAX_VALUE ,当然也可以在构造函数的参数中指定大小。LinkedBlockingQueue 不接受null。添加元素的方法...
2019-02-15 15:34:46 1565
转载 队列和栈、JUC有界队列、 JUC无界队列的简单介绍
文章目录1、队列和栈2、有限队列2.1、SynchronousQueue:2.2、 ArrayBlockingQueue:3、 无限队列3.1、 LinkedBlockingQueue:3.2、 LinkedBlockingDeque3.3、PriorityBlockingQueue3.4、LinkedTransferQueuepublic ThreadPoolExecutor(int core...
2019-02-15 15:07:31 7008
转载 ThreadPoolExecutor 参数详解
1、 ThreadPoolExecutor 数据成员 private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0));ctl 主要用于存储线程池的工作状态以及池中正在运行的线程数。显然要在一个整型变量存储两个数据,只能将其一分为二。其中高3bit用于存储线程池的状态,低位的29bit用于存储正在运行的线程数。线程...
2019-02-15 14:10:22 20889 4
转载 ThreadPoolTaskExecutor 使用说明
当我们需要实现并发、异步等操作时,通常都会使用到 ThreadPoolTaskExecutor,现对其使用稍作总结。配置ThreadPoolTaskExecutor 通常通过XML方式配置,或者通过Executors的工厂方法进行配置。XML方式配置代码如下:&amp;amp;amp;lt;bean id=&amp;amp;quot;taskExecutor&amp;amp;quot; class=&amp;amp;quot;
2019-02-15 11:10:57 6887
原创 为什么不推荐通过Executors直接创建线程池
阿里发布的 Java开发手册中强制线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式。这是为什么?Executors 底层其实是使用的 ThreadPoolExecutor 的方式 创建的,但是使用的是 ThreadPoolExecutor 的默认策略,即 AbortPolicy。//默认策略 private static final Re...
2019-02-14 13:48:09 6415
原创 3个线程 交替换打印,lock.newCondition()、Condition的使用例子
编写一个程序,开启 3 个线程,这三个线程的 ID 分别为 A、B、C,每个线程将自己的 ID 在屏幕上打印 10 遍,要求输出的结果必须按顺序显示。如:ABCABCABC…… 依次递归package com.aop8.lock1;import java.util.Random;import java.util.concurrent.TimeUnit;import java.util....
2019-02-13 23:38:19 3562
转载 Lock、ReentrantLock实现生产者,消费者的面试题
package com.aop8.proAndcum;import java.util.Random;import java.util.Vector;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock...
2019-02-13 18:23:36 1846
转载 Executor、ExecutorService 和 Executors 三者的继承关系 和 不同点
Executor,ExecutorService,Executors 最主要的区别是 Executor 是一个抽象层面的 **根接口**。ExecutorService 接口 对 Executor 接口进行了扩展,提供了返回 Future 对象,终止,关闭线程池等方法。当调用 shutDown 方法时,线程池会停止接受新的任务,但会完成正在 pending 中的任务。`Executors` 是一个工具类,类似于 `Collections` 、`Arrays` 等 。提供工厂方法来创建不同类型的线程池,比如
2019-02-13 15:09:07 2619
转载 JDK1.7 ConcurrentHashMap 的源码解读
转载:https://blog.csdn.net/zzti_erlie/article/details/80179487
2019-02-12 18:37:41 435
转载 AOP思想的了解
一、AOP是什么?这里的AOP指的是面向切面编程思想,而不是Spring AOP 。AOP 的全称是 Aspect Orient Programming ,即面向切面编程。是对OOP( Object Orient Programming )的一种补充,专门用于处理一些具有横切性质的服务。常常用于日志输出、安全控制等。上面说到是对OOP的一种补充,具体补充的是什么呢?考虑一种情况,如果我们...
2019-02-12 14:10:58 700
原创 Spring Bean的生命周期
Spring 对bean进行实例化,默认bean是单例;Spring 对bean的属性进行依赖注入;如果 bean实现了BeanNameAware接口,spring将bean的id传给 setBeanName() 方法;如果 bean实现了 BeanFactoryAware 接口,spring将调用 setBeanFactory 方法,将 BeanFactory 实例传进来;如果 be...
2019-02-12 13:42:40 263
原创 java基本数据类型所占字节数
1、整型类型存储需求bit数取值范围备注byte1字节1*8-128~127-short2字节2*8-32768~32767-int4字节4*8--long8字节8*8--JAVA是采用Unicode编码。每一个字节占8位。你电脑系统应该是 32位系统,这样每个int就是 4个字节 。其中,一个字节由8个二进制位...
2019-02-11 17:30:41 10899 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人