![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
yizhizou123ABC
这个作者很懒,什么都没留下…
展开
-
java解析csv文章
https://blog.csdn.net/wangjun5159/article/details/51655806/转载 2021-03-31 10:15:16 · 122 阅读 · 0 评论 -
elect、poll、epoll优缺点
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用...转载 2019-12-31 10:24:18 · 130 阅读 · 0 评论 -
java序列化详解
一、序列化与反序列化序列化:指堆内存中的java对象数据,通过某种方式把对存储到磁盘文件中,或者传递给其他网络节点(网络传输)。这个过程称为序列化,通常是指将数据结构或对象转化成二进制的过程。 即将对象转化为二进制,用于保存,或者网络传输 反序列化:把磁盘文件中的对象数据或者把网络节点上的对象数据,恢复成Java对象模型的过程。也就是将在序列化过程中所生...转载 2019-12-30 10:33:51 · 242 阅读 · 0 评论 -
NIO&epoll
说到NIO,涉及到的知识点有很多,我们来一一捋一捋。IO IO(InputStream/OutputStream)指的是读出/写入数据,IO可以分为磁盘IO和网络IO,围绕我们今天主题讲的是网络IO。网络IO包括了等待数据传输和读写数据的过程,等待数据传输其实就是等待数据经由网线、网卡、内核空间的过程,读写数据的过程是内核空间和用户空间的互相拷贝的过程。 举个例子,在read...转载 2019-12-18 17:31:07 · 242 阅读 · 0 评论 -
基于xa的分布式事务详解
1.XAXA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接口。XA接口是双向的系统接口,在事务管理器(Transaction Manager)以及一个或多个资源管理器(Resource Manager)之间形成通信桥梁。XA之所以需要引入...转载 2019-12-18 16:56:46 · 326 阅读 · 0 评论 -
linux 性能瓶颈排查
背景作为开发人员,肯定遇到过以下场景,应用突然卡住了,或者异常退出,cpu占用过高等各种异常情况,一般遇到这些异常情况,该如何去查找具体原因呢? linux和jdk提供了一些命令和工具来查看内存、cpu、网络等数据。我们统称这些情况成为性能瓶颈,常见的性能瓶颈主要包括以下分类:内存瓶颈cpu瓶颈网络瓶颈磁盘瓶颈应用瓶颈下面分别介绍各种瓶颈的排查命令和工具内存瓶颈c...转载 2019-11-26 10:30:03 · 157 阅读 · 0 评论 -
kafka压测过程
https://blog.csdn.net/u013411339/article/details/100029388转载 2019-11-22 10:54:17 · 250 阅读 · 0 评论 -
线程池主要信息解析
ThreadPoolExecutor是一个通过使用可能几个池线程之一来执行每个提交任务的ExecutorService,这些线程池通常通过Executors工厂方法进行配置。ThreadPoolExecutor中的线程池处理了两个不同的问题:1、由于减少了每个任务调用的开销,在执行大量的异步任务时它们通常提供改进的性能;2、它们提供了...转载 2019-11-21 22:04:02 · 334 阅读 · 0 评论 -
log4j日志组合
commons-logging apache最初的日志门面,目的是在开发组件时不强依赖日志实现,给调用者以选择。jcl-over-slf4j slf4j开发的为了兼容前者的适配,里面的内容和前者基本一致,引用时和前者互斥。slf4j-api slf4j的主api,作为独立的日志门面。slf4j-log4j slf4j对log4j的适配,要和log4j包一起引用log4j log4j实现...转载 2019-11-18 17:33:42 · 184 阅读 · 0 评论 -
raft算法动态展示
http://thesecretlivesofdata.com/raft/转载 2019-11-13 20:27:03 · 188 阅读 · 0 评论 -
打印瑞年和打印质数
public static void printRui(int k){ for (int i = 1; i <=k ; i++) { if ((i%4==0&&i%100!=0)||i%400==0){ System.out.println(i); } }}public static vo...原创 2019-11-13 16:01:47 · 158 阅读 · 0 评论 -
斐波那契数列在杨辉三角中的运用
public static void fun(int n){int [][] a = new int[n+1][n+1];for(int i=1;i<=n;i++){for(int j=1;j<=i;j++){if(j==1||j==i){a[i][j]=1;}else{a[i][j]=a[i-1][j-1]+a[i-1][j];//斐波那契数列应用...原创 2019-11-13 15:51:09 · 996 阅读 · 0 评论 -
redis
https://www.cnblogs.com/leeSmall/p/8398401.html版本号第二位为奇数,为非稳定版本(2.7、2.9、3.1)第二为偶数,为稳定版本(2.6、2.8、3.0)a.数据放内存中是速度快的主要原因b. C语言实现,与操作系统距离近c.使用了单线程架构,预防多线程可能产生的竞争问题5〉持久化:发生断电或机器故障,数据可能会丢失,持久化...转载 2019-11-12 14:45:16 · 124 阅读 · 0 评论 -
简单工厂 工厂方法 抽象工厂模式
简单工厂:由工厂产生实现同一接口的对象 只有一个工厂:对一类对象抽象成一个工厂 由工厂产生对象比如:工厂包含:铅笔,圆珠笔,钢笔工厂方法:延迟到子类实例 有多个工厂,但每个工厂只能产生一类对象比如:抽象工厂包含: mysql 和oracle ,mysql工厂产生 mysql驱动,oracle工厂产生oracle驱动抽象工厂:对多个工厂的抽象 有多个工厂,但每个工厂可以产生一组...转载 2019-11-11 15:41:38 · 129 阅读 · 0 评论 -
快速排序
public static void quickSort(int [] arr,int low,int high){if(low>high)return;int i=low;int j=high;int base=arr[low];while(i<j){while(base<=arr[j]&&i<j){j--;}whi...原创 2019-11-09 15:10:42 · 203 阅读 · 0 评论 -
二叉树前序 中序 后序 层序 概念
前序遍历:就是从二叉树的根结点出发,当第一次到达结点时就输出结点数据,按照先向左在向右的方向访问ABDHIEJCFG 根节点在第一位中序遍历就是从二叉树的根结点出发,当第二次到达结点时就输出结点数据,按照先向左在向右的方向访问HDIBJEAFCG 根节点在中间 中序遍历顺序和大小顺序是相同的后序遍历就是从二叉树的根结点出发,当第三次到达结点时就输出结点数据,按照先向左在向右的方...转载 2019-11-08 15:24:45 · 788 阅读 · 0 评论 -
二叉树递归 详解
public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } }public ...原创 2019-11-08 14:57:46 · 267 阅读 · 0 评论 -
java延迟队列DelayQueue使用及原理
队列元素需要实现getDelay(TimeUnit unit)方法和compareTo(Delayed o)方法, getDelay定义了剩余到期时间,compareTo方法定义了元素排序规则,注意,元素的排序规则影响了元素的获取顺序,将在后面说明。内部存储结构 DelayedQuene的元素存储交由优先级队列存放。public class DelayQueue<E exte...转载 2019-11-07 10:46:50 · 304 阅读 · 0 评论 -
ThreadLocal
ThreadLocal是什么ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射每个Thread线程内部都有一个Map。 Map里面存储线程本地对象(key)和线程的变量副本(value) 但是,Thread内部的Map是由ThreadLocal维护的,由ThreadLocal负责向map获取和设置线程的变量值。ThreadLocal...转载 2019-11-07 10:02:46 · 156 阅读 · 0 评论 -
强虚软弱引用
强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。 ps:强引用其实也就是我们平时A a = new A()这个意思。软引用(SoftReference)...转载 2019-11-07 09:54:02 · 122 阅读 · 0 评论 -
聚集索引和非聚集索引区别
聚集索引数据行的物理顺序与列值的顺序相同,如果我们查询id比较靠后的数据,那么这行数据的地址在磁盘中的物理地址也会比较靠后而且由于物理排列方式与聚集索引的顺序相同,所以也就只能建立一个聚集索引了索引的叶子节点就是对应的数据节点 可以直接获取到对应的全部列的数据非聚集索引按照定义,除了聚集索引以外的索引都是非聚集索引非聚集索引,分成普通索引,唯一索引,全文索引非聚集索引叶...转载 2019-11-07 09:14:07 · 130 阅读 · 0 评论 -
sleep(0),sleep以及yeid 的区别
Thread.Sleep(0)Sleep 的意思是告诉操作系统自己要休息 n 毫秒,这段时间就让给另一个就绪的线程吧。当 n=0 的时候,意思是要放弃自己剩下的时间片,但是仍然是就绪状态,其实意思和 Yield 有点类似。但是 Sleep(0) 只允许那些优先级相等或更高的线程使用当前的CPU,其它线程只能等着挨饿了。如果没有合适的线程,那当前线程会重新使用 CPU 时间片优势:相比 ...转载 2019-11-05 20:58:38 · 941 阅读 · 1 评论 -
parallel scavenge 与parnew 区别
两者都是复制算法,都是并行处理,但是不同的是,paralel scavenge 可以设置最大gc停顿时间(-XX:MaxGCPauseMills)以及gc时间占比(-XX:GCTimeRatio),转载 2019-11-05 20:52:56 · 1004 阅读 · 0 评论 -
linux下jdk安装卸载
查看现有jdkrpm -qa | grep java删除上述所有java文件例子:rpm -e --nodeps java-1.7.0-openjdk-devel-1.7.0.45-2.4.3.3.el6.x86_64查看jdk 安装目录ls -lrt /usr/bin/javals -lrt /etc/alternatives/java一般在以下位置cd /usr/lib/...原创 2019-11-05 16:45:23 · 125 阅读 · 0 评论 -
[java] 反射和多态实现原理详解以及对比
Table of Contents反射和多态多态什么是多态java里多态的具体用法多态的实现原理反射什么是反射反射的实现原理反射的应用反射的弊端反射相关类反射应用实例一些问题private修饰的方法可以通过反射访问,那么private意义何在?反射和多态的区别反射和多态事实上,反射和多态这两种技术并无直接联系,之所以把它们放在一起说...转载 2019-10-31 14:30:32 · 137 阅读 · 0 评论 -
Java并发之AQS详解
https://www.cnblogs.com/waterystone/p/4920797.html转载 2019-10-30 15:50:25 · 101 阅读 · 0 评论 -
Java并发编程:Thread类的使用
Java并发编程:Thread类的使用Java并发编程:Thread类的使用 在前面2篇文章分别讲到了线程和进程的由来、以及如何在Java中怎么创建线程和进程。今天我们来学习一下Thread类,在学习Thread类之前,先介绍与线程相关知识:线程的几种状态、上下文切换,然后接着介绍Thread类中的方法的具体使用。 以下是本文的目录大纲: 一.线程的状态 二.上下文切换...转载 2019-10-30 14:59:14 · 114 阅读 · 0 评论 -
JAVA多线程之wait/notify
本文主要学习JAVA多线程中的 wait()方法 与 notify()/notifyAll()方法的用法。①wait() 与 notify/notifyAll 方法必须在同步代码块中使用②wait() 与 notify/notifyAll() 的执行过程③中断 调用wait()方法进入等待队列的 线程④notify 通知的顺序不能错⑤多线程中测试某个条件的变化用 if ...转载 2019-10-30 14:40:57 · 132 阅读 · 0 评论 -
JAVA多线程之volatile 与 synchronized 的比较
hapjinTechnology is a powerful force in our society. Data, software,and communication can be used for bad: to entrench unfair power structures, to undermine human rights, and to protect vested i...转载 2019-10-30 14:33:30 · 99 阅读 · 0 评论 -
深入理解Java内存模型(一)——基础
并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过...转载 2019-10-30 14:23:18 · 110 阅读 · 0 评论 -
java安全管理器SecurityManager
java安全管理器SecurityManager入门一、文章的目的 这是一篇对Java安全管理器入门的文章,目的是简单了解什么是SecurityManager,对管理器进行简单配置,解决简单问题。 比如在阅读源码的时候,发现这样的代码,想了解是做什么的:SecurityManager security = System.getSecurityManager();if (se...转载 2019-10-29 15:50:43 · 120 阅读 · 0 评论 -
redis zset内部结构
Redis对象Redis对象由redisObject结构体表示。typedef struct redisObject { unsigned type:4; // 对象的类型,包括 /* Object types */ unsigned encoding:4; // 底部为了节省空间,一种type的数据,可以采用不同的存储方式 un...转载 2019-10-29 15:41:19 · 147 阅读 · 0 评论 -
java jdk1.8 hashmap 源码解析
数据结构:数组+链表/红黑树 (链表大于8 转为红黑树)一 keyhashcode 的高16与低16 异或 主要是让高16参与运算static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);}二 初始...原创 2019-10-28 16:15:56 · 112 阅读 · 0 评论 -
java 拆箱和装箱过程
装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。装箱:public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + ...原创 2019-10-28 15:32:30 · 165 阅读 · 0 评论 -
activemq 调优
转自 : http://setting.iteye.com/blog/1484498amq自己带了一个性能test:http://activemq.apache.org/activemq-performance-module-users-manual.html使用jmeter压测的介绍:http://activemq.apache.org/jmeter-performance-te...转载 2019-10-25 17:21:31 · 134 阅读 · 0 评论 -
java缓存实现(LRU,LFU,FIFO)
提到缓存,不得不提就是缓存算法(淘汰算法),常见算法有LRU、LFU和FIFO等算法,每种算法各有各的优势和缺点及适应环境。1、LRU(Least Recently Used ,最近最少使用)算法根据数据的最近访问记录来淘汰数据,其原理是如果数据最近被访问过,将来被访问的几概率相对比较高,最常见的实现是使用一个链表保存缓存数据,详细具体算法如下:1. 新数据插入到链表头部;2. 每当缓存...转载 2019-10-14 16:57:50 · 377 阅读 · 0 评论 -
ANSI 9.8 , ANSI 9.9和ANSI X9.19
ANSI 9.8 :加密PIN(账号)(1) ANSI X9.8 Format(不带主账号信息 ) 位置 长度 说明 1 1byte PIN的长度 2...原创 2019-10-14 15:07:01 · 2528 阅读 · 0 评论 -
在DES加密里边,ECB和CBC有什么区别
ECB(Electronic Codebook,电码本)模式是分组密码的一种最基本的工作模式。在该模式下,待处理信息被分为大小合适的分组,然后分别对每一分组独立进行加密或解密处理。如下图所示: 优缺点编辑ECB模式作为一种基本工作模式,具有操作简单,易于实现的特点。同时由于其分组的独立性,利于实现并行处理,并且能很好地防止误差传播。另一方面由于所有分组的加密方式一致,明文中的...原创 2019-10-14 14:58:26 · 1129 阅读 · 0 评论 -
对加密的了解(DES/3DES/AES区别 )
DES1977年1月,美国政府颁布:采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(DES Data Encryption Standard) 。目前在国内,随着三金工程尤其是金卡工程的启动,DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密,如信用卡持卡人的PIN的加密传输,IC卡与POS间的双向认证、金融交易数...转载 2019-10-14 14:50:08 · 333 阅读 · 0 评论 -
重写equals和hashcode
class Student{ privateStringname; privateintage;}equals:@Overridepublic boolean equals(Object obj){if(other==this) returntrue;if(!(otherinstanceof...原创 2019-09-26 10:16:35 · 90 阅读 · 0 评论