自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

无界编程

我是Oracle Java JCP会员 博客域名 https://linuxstyle.blog.csdn.net/

原创 Java程序员必读和推荐读的Java好书推荐【Java四库全书】

Java程序员推荐书单作者:无界编程

2020-04-22 00:02:15 1854 2

原创 Netty和JDK源码来看Netty的NIO和JDK的NIO有什么不同

JDK底层提供了NIO实现,在Linux环境会调用内核epoll。但是Netty通过JNI的方式提供了Native Socket Transport,为什么Netty要自己搞一套NIO呢?这篇文章带你从jdk的源码和Netty的源码角度来分析为什么Netty要这么做。1.先看EpollEventLoop实现Native.epollCtlAdd(epollFd.intV...

2020-04-14 15:11:57 823

原创 从源码和内核角度分析redis和nginx以及java NIO可以支持多大的并发

有人询问我网上一篇关于“redis为什么单线程这么快”的文章,我建议他不要看了,因为redis是单进程不是单线程,后面的意见不用看了,文章质量肯定不会很好,他也说了自己看了很久源码似乎还是有些云里雾里,所以我就给他分析了为什么redis这么快,这篇主要讲epoll的实现。从redis和nginx源码和llinux内核角度分析redis和nginx可以支持多大的并发.redis和nginx都...

2020-04-14 11:43:27 672

原创 JVM XMX设置多大比较好,Docke容器里该怎么设置JVM呢@无界编程

XMX是JVM的最大堆内存大小。XMS是JVM的初始堆内存大小。如果你想快速得到一个答案:XMX和XMS设置为一样大,设置为系统最大内存的70%左右即可。先看参考java官方文档:https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gc-ergonomics.htmlhttps://docs.oracle.c...

2020-04-03 15:07:28 749

原创 互联网大厂技术面试内幕@霞落满天

很多求职者往往并非因为技术不好,而是没有掌握面试的技巧导致不能把握机会,本课程的目的就是本课程先通过比较真实的好简历和不好的简历让大家明白自己的简历有哪些问题,事实上简历是大厂的敲门砖,非常重要,很多人得不到大厂青睐就是问题出在简历上。面试会遇到内推,猎头推荐,那么这里面又会有什么不同和需要注意的地方呢?面试之前肯定要准备准备,怎么样才可以比较好的准备,甚至押宝押准呢?面试都需要做自我介绍,你做的...

2020-03-03 21:43:25 2145

原创 IDEA常用和实用配置以及各种必要插件

主要是收集IDEA常用和不常用配置陆续更新------------------------自动写构造函数等Alt + Insert------------------------idea中隐藏.idea文件夹和.iml文件idea中的.idea文件夹和.iml是平常几乎不使用的文件,在创建父子工程或者聚合工程时反而会对我们操作产生干扰,所以,一般情况下,我们都将其隐藏掉...

2020-02-04 11:32:28 4096 1

原创 spring springboot springcloud常用注解

@SpringBootApplication组合注解,用在启动类上,源码:@Retention(RetentionPolicy.RUNTIME)@SpringBootConfiguration@EnableAutoConfiguration@ComponentScanpublic @interface SpringBootApplication================...

2020-01-19 18:06:25 4217

原创 Fiddler+夜神模拟器进行APP抓包

Fiddler+夜神模拟器进行APP抓包作者:霞落满天需求:对公司APP进行抓包获取详细的接口信息,这是现在开发必备的。工具:Fiddler抓包,夜神模拟器 模拟手机 安装APP1.下载Fiddlerhttps://www.telerik.com/download/fiddlerFiddler正是在这里帮助您记录计算机和Internet之间传递的所有HTTP和HTTPS通信...

2020-01-14 18:31:15 11706 3

原创 高性能微服务架构设计模式@霞落满天

高性能微服务架构设计模式主讲:霞落满天现在企业开发都是微服务架构,但是有很多问题,比如分布式定义,分布式的微服务怎么拆分,什么时候拆分,怎么做到高性能,中台怎么设计,读写分离模式难道仅仅是MySQL做主从就够了么?分库分表怎么使用,缓存和数据库之间怎么保持一致性,领域模型中的CQRS模式又应该怎么结合自己公司的业务呢?面试过程老是被问题一些系统架构相关的问题,怎么面对新问题可以在面试中短短...

2020-01-09 23:18:58 2690

原创 经典算法书籍推荐以及算法书排行【算法四库全书】

经典算法书籍推荐以及算法书排行【算法四库全书】作者:霞落满天 https://linuxstyle.blog.csdn.net/ https://blog.csdn.net/21aspnet行文方式:类似《四库全书》截取经典算法书目录和精华篇章版权说明:本文于2019年5月5日首发于CSDN,若有转载请务必保留版权,为了整理编排选择全文内容花费了2019年一个五一的时间。...

2019-05-05 20:14:35 15428 8

原创 支撑Java框架的基础技术:泛型,反射,动态代理,cglib

以Spring为例要想看明白他的源码需要彻底理解Java的一些基础技术泛型,反射同时对于一些高级技术例如动态代理,cglib和字节码技术也需要掌握,下面就按章节来一一说清楚这些技术的核心部分,最后手写一个简单的Spring框架。一.静态代码块和非静态代码块以及构造函数的调用顺序静态代码块:https://stackoverflow.com/questions/2420389/s...

2019-04-22 10:29:24 6475 2

原创 深入浅出Java反射原理和使用场景

反射非常重要,特别是Spring这类框架离不开反射,而反射对于初学者理解起来其实还是有一定的难度的,本帖希望把晦涩的反色用最易懂的方式给你讲明白。先不说反射是什么先看一个问题:如果不知道对象的真实类型怎么去调用他的方法?Object obj = new Date();编译类型:Object运行类型(其实就是obj对象真实的类型):Date需求:根据对象obj调用Dat...

2019-04-19 16:38:56 6715 3

原创 Java多线程的11种创建方式以及纠正网上流传很久的一个谬误

创建线程比较传统的方式是继承Thread类和实现Runnable,也可以用内部类,Lambda表达式,线程池,FutureTask等。经常面试会问到继承Thread类和实现Runnable的区别,然后网上会流传如下这样的说法,这是错误的。流传很久的错误说法:这个说法是举一个火车票售票的例子,大致意思是说实现Runnable接口可以实现多继承,这一点说的是正确的,但是错误的是下面的,那些...

2019-04-06 21:22:58 4794 4

原创 为什么Java8中HashMap链表使用红黑树而不是AVL树

在Jdk1.8版本后,Java对HashMap做了改进,在链表长度大于8的时候,将后面的数据存在红黑树中,以加快检索速度。那么很多人就有疑问为什么是使用红黑树而不是AVL树,AVL树是完全平衡二叉树阿?最主要的一点是:在CurrentHashMap中是加锁了的,实际上是读写锁,如果写冲突就会等待,如果插入时间过长必然等待时间更长,而红黑树相对AVL树他的插入更快!第一个问...

2019-04-01 01:51:46 14584 2

原创 异步编程原理以及Java实现

说实话多线程和异步是非常容易让人混淆的,好像产生的效果差不多,甚至有人称多线程为异步,实际上这两种技术背后的实现原理是不同的。 假设您有2个任务,不涉及任何IO(在多处理器机器上)。在这种情况下,线程优于Async。因为像单线程程序一样的Async按顺序执行你的任务。但是线程可以同时执行这两个任务。 假设您有2个任务,涉及IO(在多处理器机器上)。在这种情况下,Async和Thre...

2019-03-30 14:16:11 6263 2

原创 从Jdk8到Jdk12的Java虚拟机垃圾回收(垃圾收集)相关论文和官方网站集锦

JVM架构图《Java Program Execution Process in Detail | Working of JUST-IT-TIME Compiler (JIT) in Detail》----这张图微观画的很好:https://www.javainterviewpoint.com/java-virtual-machine-architecture-in-java/...

2019-03-24 03:00:23 4906 2

原创 Spring4实战学习笔记

《Spring4实战 第4版》2016年4月新出版的,之前的第三版看起来还是不错的,所以看到新版就直接买下来。英文版源码地址:Spring in Action, Fourth Edition Covers Spring 41.IOC装配Bean参考【Spring实战42.2】,作者提倡无XML配置化。1.1接口只有一个现实类可以自动装配public in...

2016-05-12 18:42:40 15194 2

原创 深入浅出理解Paxos算法

Paxos算法是莱斯利·兰伯特(英语:Leslie Lamport,LaTeX中的「La」)于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法。Paxos算法一开始非常难以理解,但是一旦理解其实也并不难,之所以难理解其实是因为作者讲的故事难理解。Paxos算法维基百科https://en.wikipedia.org/wiki/Paxos_(computer_science)网上有2篇

2016-02-19 20:09:40 25183 4

原创 mybatis结合log4j打印SQL日志

mybatis结合log4j打印SQL日志 默认的mybatis不能打印出SQL日志,不便于查看调试,需要结合log4jdbc-log4j2就可以完整的输入SQL的调试信息。pom.xml 配置maven,注意以下3个都需要 org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4.1

2016-01-22 11:56:56 38353 12

原创 Java开发环境的搭建以及使用eclipse从头一步步创建java项目

原文:出自本人的Linux博客http://blog.csdn.net/unix21/article/details/18813173一、Java 开发环境的搭建这里主要说windows环境下怎么配置Java环境。如果是Linux环境参考本博客另一篇文章即可:Linux环境安装卸载JDK1.首先安装JDKjava的SDK简称JDK。去官网下载最新的JDK即可:http://www.oracle.c

2014-01-27 16:06:02 94792 13

原创 Unix下C程序内存泄漏检测工具Valgrind安装与使用

Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。 Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Google-O'Reilly开源代码奖。 Valgrind遵守GNU通用公共许可证条款,是一款自由软件。  官网http://www.valgrind.org 下载与安装#wget http://www.

2012-11-11 21:39:40 36593 5

原创 Linux进程间通信--进程,信号,管道,消息队列,信号量,共享内存

Linux进程间通信--进程,信号,管道,消息队列,信号量,共享内存参考:《linux编程从入门到精通》,《Linux C程序设计大全》,《unix环境高级编程》参考:C和指针学习 说明:本文非常的长,也是为了便于查找和比较,所以放在一起了Linux 传统的进程间通信有很多,如各类管道、消息队列、内存共享、信号量等等。但它们都无法介于内核态与用户态使用,原因如表通信方法无法介于内核态与用户态的原因

2012-04-19 22:43:28 44716 7

原创 Linux常用命令手册

版权见图片

2011-08-29 11:17:34 4466 1

原创 Linux网络编程必看书籍推荐

首先要说讲述计算机网络和TCP/IP的书很多。先要学习网络知识才谈得上编程讲述计算机网络的最经典的当属Andrew S.Tanenbaum的《计算机网络》第五版,这本书难易适中。《计算机网络(第5版)》是国内外使用最广泛、最权威的计算机网络经典教材。目前已经是第五版,本书作者80年代就开发出MINIX,是一个用于操作系统教学的类UNIX(的小型操作系统。而linux就是受其影响。。。。第五版是

2011-08-17 12:27:10 104908 41

原创 C语言经典著作导读

本人不是卖书的,我也不会给出任何购书链接,只是给C语言学习者推荐一条学习的方向。如果你喜欢看电子书网上很多,如果你喜欢纸质那么就买吧,经典的书值得收藏,是对版权的尊重!基础篇1.《写给大家看的C语言书(第2版)》原书名: Absolute Beginner's Guide to C (2nd Edition) 原出版社: Sams 作者: (美)Greg Perry [作译者介绍] 译者:

2011-06-21 14:20:00 26947 22

原创 C#精髓 第四讲 GridView 72般绝技

说明:准备出一个系列,所谓精髓讲C#语言要点。这个系列没有先后顺序,不过尽量做到精。可能会不断增删整理,本系列最原始出处是csdn博客,谢谢关注。C#精髓第四讲 GridView 72般绝技作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.3.24-26为了写本文,又搭工又搭料,累的2天2宿没睡觉,这篇文章实在是耗费我太多的心血

2007-03-25 04:36:00 547239 703

原创 .c和.h文件的区别

  一个简单的问题:.c和.h文件的区别学了几个月的C语言,反而觉得越来越不懂了。同样是子程序,可以定义在.c文件中,也可以定义在.h文件中,那这两个文件到底在用法上有什么区别呢? 2楼:子程序不要定义在.h中。函数定义要放在.c中,而.h只做声明.否则多引用几次,就会发生函数重复定义的错误。3楼:.h只做声明,编译后不产生代码4楼: 这样做目的是为了实现软件的模块化使软件结构清晰,而且也便于别人

2004-10-24 23:20:00 170549 16

原创 阿里巴巴开源的缓存框架JetCache创建缓存

JetCache的优势自动刷新和加载保护是JetCache的大杀器,对于加载开销比较大的对象,为了防止缓存未命中时的高并发访问打爆数据库:public interface SummaryService{ @Cached(expire = 3600, cacheType = CacheType.REMOTE) @CacheRefresh(refresh = 1800, stopRefreshAfterLastAccess = 3600, timeUnit = TimeUnit.SEC

2020-06-18 20:12:24 257

原创 Win10蓝屏原因查找以及解决

Win10蓝屏会重新收集信息,这个时候不能强制重启需要过一段时间,不然导致Win10无法进入。Win10蓝屏要找原因,不然还会重复出现。如果你乱猜什么显卡驱动,杀毒软件都是不靠谱的。看Win10日志找到18:26分的日志,是在同步时间:关闭时间同步很简单:...

2020-05-10 20:43:29 954

原创 深入浅出SpringBoot源码分析

Bean的初始化类DefaultListableBeanFactorythis.beanDefinitionNames.add(beanName);初始化这里写入所有的bean对每一个进行初始化@Override public void preInstantiateSingletons() throws BeansException { if (log...

2020-04-28 23:10:46 466

原创 更换yum的源为阿里云或者网易

1.备份原本的yum源:#mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup2.下载阿里云的yum源:CentOS6,CentOS7,CentOS8下对应的即可wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.ali...

2020-04-27 23:37:26 376

原创 安装最新的GCC

GCC版本低了会出错,导致头文件不能解析,需要升级GCC。一、下载gcc最新源码包#wget http://ftp.gnu.org/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz二、解压缩#tar -xzvf gcc-9.3.0.tar.gz三、进入解压缩目录#cd gcc-9.3.0四、运行download_prerequisites脚本,这个脚本...

2020-04-23 15:08:13 664

原创 Apache Hudi的写时复制和读时合并

Apache Hudihttp://hudi.apache.org/http://hudi.apache.org/docs/quick-start-guide.htmlHudi将流处理带到大数据,提供新数据,同时比传统批处理效率高一个数量级。存储类型和视图Hudi存储类型定义了如何在DFS上对数据进行索引和布局以及如何在这种组织之上实现上述原语和时间轴活动(即如何写入数据)...

2020-04-22 18:23:41 587

原创 MongoDB分布式原理以及read-preference和readConcern解决读写一致性问题

MongoDB词汇表:https://docs.mongodb.com/manual/reference/glossary/#term-replica-set几个重要概念:primaryIn areplica set, the primary is the member that receives all write operations. SeePrimary.在副本集中...

2020-04-20 12:27:28 571

原创 一步一步学习VirtualBox安装CentOS7和CentOS8

具体步骤可以参考我很多年前写的《虚拟机安装CentOS以及SecureCRT设置【完美无错版】》,这个整体并无太大变化。下载镜像CentOS源可以选择阿里云的https://mirrors.aliyun.com/centos/https://mirrors.aliyun.com/centos/7.7.1908/isos/x86_64/CentOS-7-x86_64-DVD-1...

2020-04-18 20:47:22 902

原创 Redis源码分析 List实现

在版本3.2之前,Redis中的列表是 ziplist 和 linkedlist 实现的,在3.2之后,由quicklist实现。双向链表linkedlist在表的两端进行push和pop操作非常方便,但是地址不连续,而且需要保持额外的指针。ziplist是连续内存,存储效率高。但不利于修改操作,插入和删除需要重新申请和释放内存。先看quicklist数据结构/* Nod...

2020-04-14 23:30:57 332

原创 Linus采访对Linux对git和对代码品味的理解

Linus大师说他11岁就开始编程,他说他是一个喜欢安静和不合群的人。图中是他和他的弟弟,看来少儿编程还是很重要的,大师21岁写出linux0.0.1最初的内核。图中是他的家,也是Linux的总部,非常简单的办公环境,只有显示器,大师喜欢安静,所以不想听到电脑主机风扇声音,墙壁是绿色的,他觉得可以让他宁静。Linus说他认识很多在谷歌工作的人在家里都有小型数据...

2020-04-13 23:15:49 395

原创 切换阿里云maven源解决maven中央仓库下载太慢卡顿的问题

maven默认官方的中央仓库有时候很慢下载jar甚至会卡住,那么你可以切换到阿里云的maven源在本地的maven文件夹新建settings.xml<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http:...

2020-04-13 20:06:12 504

原创 Java得到调用当前方法的方法名

Thread.currentThread().getStackTrace()[1]当前方法执行堆栈 Thread.currentThread().getStackTrace()[2]上一级的方法堆栈Thread.currentThread().getStackTrace()[3]上上一级的方法堆栈StackTraceElement[] temp=Thread.currentThread()...

2020-04-11 11:25:55 401

原创 Java的List和Json转换以及StringRedisTemplate往redis存泛型对象

List转JsonList<User> user= new ArrayList();String str = JSON.toJSONString(user);Json 转List方法一List<User> user= JSON.parseArray(json,User.class); 如果是泛型方法需要使用TypeReferenceJson ...

2020-04-10 10:47:12 581

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