辉哥的博客

男人生来不是享受安逸的

jvm 内存分布 和新生代,老年代,永久代,(详细)

如果大家想深入的了解JVM,可以读读周志明《深入理解Java虚拟机:JVM高级特性与最佳实践》      需要掌握的东西,包括以下内容、判断对象存活还是死亡的算法(引用计数算法、可达性分析算法)、常见的垃圾收集算法(复制算法、分代收集算法等以及这些算法适用于什么代)以及常见的垃圾收集器的特点(这...

2019-01-18 08:39:44

阅读数:26

评论数:0

内存溢出和内存泄漏的区别、产生原因以及解决方案

内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。 内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危...

2019-01-17 10:46:09

阅读数:32

评论数:0

同步与异步、阻塞与非阻塞概念以及五种IO模型

1、概念剖析 相信很多从事linux后台开发工作的都接触过同步&异步、阻塞&非阻塞这样的概念,也相信都曾经产生过误解,比如认为同步就是阻塞、异步就是非阻塞,下面我们先剖析下这几个概念分别是什么含义。 同步: 所谓同步,就是在发出一个功能调用时,在...

2019-01-17 10:18:05

阅读数:67

评论数:0

HashMap引发死循环及元素丢失情景分析

公司项目的一个模块在线上运行的时候出现了死循环,死循环的代码就卡在HashMap的get方法上。尽管最终发现不是因为HashMap导致的,但却让我重视了HashMap在多线程环境下会引发死循环的这个问题,下面先用一段代码简单模拟出HashMap的死循环: 1 2 3 ...

2019-01-17 09:30:08

阅读数:129

评论数:0

ConcurrentHashMap 与 CAS

在做接口限流时涉及到了一个有意思问题,牵扯出了关于concurrentHashMap的一些用法,以及CAS的一些概念。限流算法很多,我主要就以最简单的计数器法来做引。先抽象化一下需求:统计每个接口访问的次数。一个接口对应一个url,也就是一个字符串,每调用一次对其进行加一处理。可能出现的问题主要有...

2019-01-17 09:22:22

阅读数:95

评论数:0

深入分析ConcurrentHashMap1.8的扩容实现

什么情况会触发扩容 当往hashMap中成功插入一个key/value节点时,有可能触发扩容动作: 1、如果新增节点之后,所在链表的元素个数达到了阈值 8,则会调用treeifyBin方法把链表转换成红黑树,不过在结构转换之前,会对数组长度进行判断,实现如下: 如果数组长度n小于阈值MIN...

2019-01-17 09:16:53

阅读数:63

评论数:0

ConcurrentHashMap1.7和1.8的不同实现

ConcurrentHashMap 在多线程环境下,使用HashMap进行put操作时存在丢失数据的情况,为了避免这种bug的隐患,强烈建议使用ConcurrentHashMap代替HashMap,为了对ConcurrentHashMap有更深入的了解,本文将对ConcurrentHashMap...

2019-01-17 09:11:30

阅读数:97

评论数:0

快速启动脚步实现统一修改maven版本号

1.首先确定maven的环境变量已配置 2.dos窗口运行 mvn -version出现如下结果证明环境变量已配置 3.如果只需要修改项目的版本号,创建bat文件 把如下命令粘贴即可 4,如果需要修改项目里面的配置文件以及maven项目的版本号,配置如下 5,执行bat 文...

2019-01-15 14:42:10

阅读数:14

评论数:0

SpringBoot结合cxf自动生成webservice客户端代码插件

直接撸代码: 1.创建一个小的maven项目 2.引入cxf的插件依赖: <?xml version="1.0" encoding="UTF-8"?> &lt...

2019-01-15 14:39:29

阅读数:26

评论数:0

SpringBoot结合CXF发布webService服务详细流程

什么都不多说直接撸代码: 1.创建SpringBoot web项目,并引入cxf依赖: <properties> <start-class>WebServiceApplicati...

2019-01-15 14:31:52

阅读数:11

评论数:0

TCP三次握手四次挥手详解

TCP三次握手 所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。 三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect(...

2018-12-11 16:54:47

阅读数:65

评论数:0

超强大的XML和JavaBean相互转换的工具类

import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOExc...

2018-11-30 14:07:51

阅读数:111

评论数:0

Java网络编程面试总结

1.GET 和 POST 的区别? GET 请求可被缓存 GET 请求保留在浏览器历史记录中 GET 请求可被收藏为书签 GET 请求不应在处理敏感数据时使用 GET 请求有长度限制 POST 请求不会被缓存 POST 请求不会保留在浏览器历史记录中 POST 不能被收藏为书签 ...

2018-11-29 16:27:55

阅读数:115

评论数:0

maven面试总结

1.Maven有哪些优点和缺点 优点如下: 简化了项目依赖管理 易于上手,对于新手可能一个"mvn clean package"命令就可能满足他的工作 便于与持续集成工具(jenkins)整合 便于项目升级,无论是项目本身升级还是项目使用的依赖升级。 ...

2018-11-29 16:23:08

阅读数:101

评论数:0

Java反射获取JavaBean的属性值或者设置属性值

import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 反射处理Bean,...

2018-11-23 14:45:39

阅读数:258

评论数:0

Nginx知识概述

本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整,毕竟只是个人使用过和了解到过得,欢迎留言交流。 Nginx能做什么 ——反向代理 ——负载均衡 ——HTTP服务器(动静分离) ——正向代理 以上就是我了解到的...

2018-11-23 08:42:54

阅读数:43

评论数:0

Java架构知识体系概述

每个程序员都会有这样的经历进公司之后,太多东西不懂的,都是一切听从老大的安排,敲敲代码,看看数据库,测试自己和别人的代码;这样干了一年,有可能又一年。 第三年、第四年的时候就会思考,自己还要这样吗? 当然是否定的,不可能的,一年的经验自己完全可以入行了,是时候该学习怎么进行需求分析,怎么设计...

2018-11-08 09:01:47

阅读数:66

评论数:2

美团面试经验分享

本文面试题是转载于:程序员乔戈里,因为作者只是描述面试问题的过程,我这里对面试问题做详细补充。   一面 1、自我介绍 答:自我介绍是面试中唯一的自己主动介绍自己的环节,一定要好好把握好,你数据结构学的好的话可以手撕一个红黑树。你就说我数据结构掌握地很好,反正就是要把自己的优势凸显出来,然...

2018-11-05 19:42:17

阅读数:218

评论数:0

JSON字符串控制台格式化输出

1.正常情况下返回的json数据格式如下: {"header":{"transSn":"e33128bb7622462ebfb2cbfcc46baa14","dateT...

2018-10-29 15:48:41

阅读数:159

评论数:0

jdk线程池总类以及线程池的核心参数简述

JDK自带线程池总类: 1、newFixedThreadPool创建一个指定工作线程数量的线程池。每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。 2、newCachedThreadPool创建一个可缓存的线程池。这种类型的线程池特点是...

2018-10-25 09:23:02

阅读数:68

评论数:0

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