java
anteoy
Full Stack Developer
展开
-
java golang tcp socket导致线上服务器出现大量close_wait的完整示例
tcp断开连接的四次挥手先说说tcp的四次挥手,这里假定A端为主动发起关闭端,B端为被动接收关闭请求端。A把tcp的数据包中标识位FIN置为1,seq为一个随机数,发送这个包给B端,自己进入FIN_WAIT_1状态;B端收到了马上给A端回复ack(A端收到ack进入FIN_WAIT_2状态),然后自己进入CLOSE_WAIT状态。然后这个时候需要业务代码处理,把自己需要发给客户端的数据发送完,然...原创 2019-05-21 11:51:01 · 1927 阅读 · 0 评论 -
自己写Stack 实现栈结构
前言:栈的应用:1. 可计算数学后缀表达式2. 把正常中缀表达式转换为后缀表达式3. 计算检测编译程序{}等括号符号是否正确,是否存在语法错误4. 递归中需要实用栈存储方法信息,计算机中函数调用是通过栈(stack)这种数据结构实现,在递归中调用一层函数,栈就会加一层栈帧,每当函数返回,栈就会减少一层栈帧。正文:java中使用数组实现栈package com.anteoy.dataStru原创 2017-03-02 14:42:09 · 773 阅读 · 0 评论 -
在Java中谈尾递归--尾递归和垃圾回收的比较
我不是故意在JAVA中谈尾递归的,因为在JAVA中谈尾递归真的是要绕好几个弯,只是我确实只有JAVA学得比较好,虽然确实C是在学校学过还考了90+,真学得没自学的JAVA好 不过也是因为要绕几个弯,所以才会有有意思的东西可写,另外还有我发现把尾递归如果跟JAVA中的GC比对一下,也颇有一些妙处(发现还没有人特地比较过) (不过后来边写边整理思路,写出来又是另一个样子了)转载请注明:博客园-阁刚广转载 2017-03-02 12:39:40 · 891 阅读 · 0 评论 -
自己写LinkedList GoLinkedList
前言: java GoLinkedList的简易实现,代码中注释比较详尽,通俗易懂,注意事项亦在注解中标明。正文:GoLinkedList.javapackage com.anteoy.dataStructuresAndAlgorithm.javav2.my;import java.util.Iterator;/** * Created by zhoudazhuang on 17-3-1.原创 2017-03-01 22:24:40 · 456 阅读 · 0 评论 -
自己写ArraryList GoArrayList
前言: java ArrayList的简易实现,代码中注释比较详尽,通俗易懂。正文:GoArrayList.javapackage com.anteoy.dataStructuresAndAlgorithm.javav2.my;import java.util.Iterator;import java.util.NoSuchElementException;/** * Created by原创 2017-03-01 16:39:30 · 914 阅读 · 0 评论 -
nginx搭配frp进行端口和服务转发
引言: java接入三方运营商服务接口,需要可供回调的公网接口,并在本地两台(及以上)调试接口服务,于是使用开源frp进行穿透,nginx搭配负责分发请求到不同机器。安装环境:ubuntu 16.04 LTS 一台服务器 两台客户机已安装好nginxfrp配置过程:参考我之前博文[http://blog.csdn.net/yan_chou/article/details/53406095](原创 2017-02-20 16:06:27 · 10302 阅读 · 0 评论 -
java递归简析
引言: 1. 给定一个整数,依次打印其没位上的数字想法: 1. 把数字转为String,再转为char,最后放入char[],逐个打印 2. 递归代码:package com.anteoy.dataStructuresAndAlgorithm.javav2;/** * Created by zhoudazhuang on 17-2-16. * Description:原创 2017-02-17 10:18:50 · 404 阅读 · 0 评论 -
Java中使用OpenSSL生成的RSA公私钥进行数据加解密
本文出处:http://blog.csdn.net/chaijunkun/article/details/7275632,转载请注明。由于本人不定期会整理相关博文,会对相应内容作出完善。因此强烈建议在原始出处查看此文。RSA是什么:RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是转载 2017-02-16 16:37:42 · 781 阅读 · 0 评论 -
芝麻分从本地mongo中获取有效数据工具
引言: 起因:java接入芝麻分,接口数据为了提高效率,需要储存在mongo中,若接口调用则优先从本地mongo库中查询是否存在有效数据。java处理时间的工具类:package com.anteoy.utils;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar原创 2017-01-16 22:03:44 · 558 阅读 · 0 评论 -
svn: E155007 和 svn: E155004
###引言: 环境:ubuntu 16.04 svn: 一个为IDEA插件版本 一个install 版本 情景:命令行下 svn: E155007 not a working copy ;IDEA插件下 svn: E155004 is already locked处理:尝试命令行下使用svn cleanup结果:svn: E155007 not a working copy尝试原创 2017-02-06 11:07:34 · 21182 阅读 · 1 评论 -
Java中方法多态以及多接口实现
关于java中方法多态通过多子类重写父类或接口实现。通过同类同方法(方法名相同,参数数量或者类型不同)实现,这里主要注意Java中判断同一方法的标准是方法名和参数,与返回值无关,如下,可简要看着yy(int a)package com.anteoy.coreJava.polymorphism;/** * Created by zhoudazhuang * Date: 17-1-9 * T原创 2017-01-09 22:24:03 · 961 阅读 · 0 评论 -
ubuntu16.04 自动挂载新分区到指定目录下
引言: 起因:ubuntu系统使用固态硬盘120G不够使用,如今已无法满足日常需要,于是增加了一枚机械硬盘,分别分了两个空闲分区,依次使系统自启时挂在到/home/和/usr/指定目录下安装环境:ubuntu 16.04 LTS有剩余未分配空间的硬盘安装过程:查看硬盘所有分区并记录下待挂在分区(主要以硬盘,分区大小和格式确定) fdisk -l 格式化分区为ext4 mkfs.原创 2016-12-28 23:08:54 · 13870 阅读 · 0 评论 -
自己写GoBinarySearchTree 二叉查找树
前言: java GoBinarySearchTree的简易实现,代码中注释比较详尽,通俗易懂,注意事项亦在注解中标明。正文:GoBinarySearchTree.javapackage com.anteoy.dataStructuresAndAlgorithm.javav2.my;/** * Created by zhoudazhuang on 17-3-2. * Description:原创 2017-03-02 23:26:49 · 508 阅读 · 0 评论 -
自己写GoBinaryHead 二叉堆binaryheap实现优先队列(堆)
前言:java GoBinaryHead二叉堆binaryheap实现优先队列(堆) 1. 二叉堆是完全二叉树 因为完全二叉数的规律(root始终最小) 用数组实现此数据结构优于链表 2. ,注意在插入和删除时,需要在数组实现的完全二叉树结构代码中,对原有节点数据进行上滤和下滤,插入时,和子树的根节点比较, 只有比子树根节点大才能满足定义, 否则循环交换位置。堆内元素向下移动为 下滤,删除后空余原创 2017-03-03 18:13:18 · 603 阅读 · 0 评论 -
Java String源码笔记
源码实现了3个接口 Serializable Comparable CharSequence关于CharSequenceJava从String类和StringBuffer类开始。但是这两个类是无关的,没有通过继承和接口相互联系。后来,Java团队意识到字符串相关实现之间应该存在统一的联系,以使它们可以互换。在Java4中,团队添加了CharSequence接口并在String和String ...原创 2019-04-09 17:35:00 · 476 阅读 · 0 评论 -
Java IO流源码笔记
概览Java中的IO源为4个抽象类,2个字节流相关抽象类InputStream,OutputStream. 2个字符流相关抽象类Reader,Writer.直接联系是都实现了Closeable接口,另外,整个IO的代码基于装饰者模式设计,存在大量的组合 > 聚合 > 关联 > 依赖关系,不了解UML模型图和关系的可以点击这里快速了解。我这里为了UML图的可读性,没有打开dep...原创 2019-04-11 17:38:29 · 648 阅读 · 0 评论 -
JDK常用设计模式整理
观察者模式jdk中有提供接口Observer 和用于定义subject的类Observable subject.addObserver(new ObserveTest()); subject.set(3); subject.setChanged(); subject.notifyObservers(3);subject持有一个Vector(线程安全的list),用于存储addOb...原创 2019-04-11 14:59:49 · 1775 阅读 · 0 评论 -
Java ThreadPoolExecutor源码笔记
概要速记接口Excutor->接口ExutorService->抽象类AbstractExcutorService->类ThreadPoolExcutor线程达到上限策略corePollSize->blockQueue->maxPollSize->handleblockQueue参数如果使用LinkedBlockQueue则会使maxPollSize参数无...原创 2019-04-11 14:02:37 · 428 阅读 · 0 评论 -
java技术圈上线啦,欢迎常驻~~~
Java技术圈一个开放,和谐,互帮互助,知识分享的IT技术社区。旨在为解决各种实际运用的技术问题和相关技术分享而成立的问答,知识分享社区。目前主要对标服务于Java,Golang,容器技术Docker,Kubernetes,以及机器学习相关生态 欢迎大家常驻 http://www.itsharecircle.com进群送千G学习资料 微信扫描如下二维码(或者微信搜索用户Anteoy)添加我为好...原创 2019-04-24 15:56:19 · 698 阅读 · 0 评论 -
java和golang中的unsafe包
首先聊聊反射java和golang都有各自的反射机制,为什么标准库会提供反射机制呢?反射(reflection)允许程序在运行时(runtime)检查、修改程序(比如对象,struct等)的结构与行为,跳过编译检查,越过访问权限,运行时对象生成,方法调用等。如果没有反射,那么需要完全手动进行硬编码,比如如果没有反射,那么在spring的ioc容器管理实现就需要我们使用new来创建对象,那么也就...原创 2019-03-22 18:02:16 · 670 阅读 · 0 评论 -
速查jvm字节码指令
id: 78date: 2019-03-13 18:56:00title: 速查jvm字节码指令categories:- javatags:- java jvmJVM指令集参考0x00 nop 什么都不做0x01 aconst_null 将null推送至操作栈栈顶0x02 iconst_m1 将int型-1推送至操作栈栈顶0x03 iconst_0 将int型0推送至操作栈...原创 2019-03-13 19:00:49 · 535 阅读 · 0 评论 -
浅析字节存储序列的大小端存储方式
基础内存地址是从低地址开始进行编号的,用16进制来进行编号,比如内存的开始地址(即低地址)0x0000,然后内存偏移以字节为单位,比如0x0001表示从0x0000位置偏移到后面1个字节,即偏移8bit.字节的高低位是俗成约定的,比如字节序列0x12345678,由于一个16进制的转为2进制占四个2进制(2^4=16,进制转换基础),那么0x12则可以转为8个二进制,也就是8bit=1byte,...原创 2019-03-22 11:49:35 · 1462 阅读 · 0 评论 -
java.lang.OutOfMemoryError:GC overhead limit exceeded
前言在我们写的java service里,需要加载一个比较大的算法模型pmml文件.在此模型文件由500M+变为1G+的时候,在测试环境中出现了此问题异常由来 GC overhead limt exceed检查是Hotspot VM 1.6定义的一个策略,通过统计GC时间来预测是否要OOM了,提前抛出异常,防止OOM发生。Sun 官方对此的定义是:“并行/并发回收器在GC回收时...原创 2018-08-20 15:52:26 · 1164 阅读 · 0 评论 -
SolrCloud概览
id: 75 date: 2018-08-15 23:44:00 title: [转]SolrCloud概览 categories: - 转载 tags: - solr solrCloud转自——找不到出处了。。ref->这里简介SolrCloud是Solr4.0版本以后基于Solr和Zookeeper的分布式搜索方案。SolrCloud是...转载 2018-08-15 23:51:28 · 512 阅读 · 0 评论 -
java构造函数以及static关键字
关于java构造器原本无显示编码构造器,则有一个默认的隐式(隐藏的无参构造器),但是,当显示指定了构造器,则这个默认隐式的构造器将不存在,比如此时无法new无参的构造器(除非显示地编写声明无参的构造函数)。如下: package com.anteoy.coreJava.constructor;/** * Created by zhoudazhuang * Date: 17-1-3 * Ti原创 2017-01-03 11:41:59 · 702 阅读 · 0 评论 -
ubuntu 16.04安装zookeeper
搭建环境ubuntu 16.04 LTS zookeeper-3.5.1-alpha搭建过程使用官方源码包进行安装资源准备zookeeper-3.5.1-alpha.tar.gz 源码包 官方稳定版下载地址http://apache.fayea.com/zookeeper/开始安装解压压缩包到指定目录tar -zxvf zookeeper-3.5.1-alpha.tar.gz -C /h原创 2016-11-24 17:01:59 · 10107 阅读 · 0 评论 -
Java中的事务——JDBC事务和JTA事务
本文转载自http://www.hollischuang.com/archives/1658Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。 常见的容器事务如Spring事务,容器事务主要是J2EE应用服务器提供的,容器事务大多是基于JTA完成,这是一个基于JNDI的,相当复杂的API实现。所以本文暂不讨论容器事务。本文主要介绍J2EE开发转载 2016-09-23 22:32:44 · 581 阅读 · 0 评论 -
java.util.Date,java.sql.Date及java.sql.Timestamp
java.sql.Date及java.sql.Timestamp继承自java.util.Date ,三个类都可以使用getTime()进行互换,java.util.Date有无参构造方法获取当前时间,其余两个没有。Timestamp为时间戳,和sql.Date的精确度一样,但表示当前时间更加方便(另外在hibernate中使用idea自动生成表的pojo时,会把sql.Date写为Timestam原创 2016-09-18 20:35:06 · 456 阅读 · 0 评论 -
java collection Iterator的remove()方法
事情是这样的,今天在项目里用spring data jpa hibernate的SearchFilter返回一个List<Object>的时候,由于需求需要,必须再使用一定条件过滤部分元素,开始想iterator.remove()方法三下五除二就能解决,结果就悲剧了,前前后后搞了近一小时。下面上代码,同时记录一下: Specification<Lawyer> specification = D原创 2016-09-12 17:09:28 · 4281 阅读 · 0 评论 -
关于java研发工程师面试相关的部分参考
今天受邀去参加了某个公司面试的第二轮复试,今天复试的是公司的一个项目主管,感觉比之前面试的更懂技术一些,还问了一些比较刁钻的问题,在这里记录一些自己的不足和自己觉得比较有价值的东西,作为自己的部分参考。①关于docker和vmware优势 docker在磁盘空间上的节省不用说了,MB 与 GB的对比; VMware公司指出虚拟化会只会引入大约2%到4%的性能损失。在Docker容器中运行像Red原创 2016-07-21 12:27:37 · 664 阅读 · 0 评论 -
关于spring,spring mvc的一些理解
最近一直在思考,spring,springmvc 到底谁是超集,谁是子集,而后google了一大堆资料,但并没有看到一针见血的,这里说下个人对此的总结理解。 首先,spring的诞生是由于EJB太过于笨重,而开发出的一个轻量级的应用Bean框架,而springmvc是在基于spring的基础上,扩展开发出来(利用spring的IOC,AOP,其他spring预留用户扩展的接口)的一个,类似于str原创 2016-07-19 23:16:57 · 679 阅读 · 0 评论 -
spring AOP 动态代理 jkd动态代理和cglib动态代理 hibernate使用cglib延迟加载
spring 的AOP 实现 可以使用jdk的动态代理,也可以使用cglib的动态代理 先说下两者区别: 静态代理:代理之前就已经知道了代理者和被代理者 动态代理:代理之前并不清楚,在运行时使用反射机制动态生成代理类的字节码 无需我们手动编写它的源代码 jdk动态代理:java.lang.reflect 包中的Proxy类,InvocationHandler 接口提供了生成动态代理类的原创 2016-07-19 22:03:44 · 2030 阅读 · 1 评论 -
git本地版本落后仓库几个版本pull冲突相关
git中本地落后仓库几个版本pull冲突,但是自己又不想提交本地的代码到远程仓库,可以尝试使用下面的方法: 一种是使用git fetch,但是自己这个用得少 另外就是使用git pull git pull = git fetch + git merch 解决冲突时利用git stash 把本地代码保存起来 1.git pull origin master 报错:有冲突 不能拉取下来(本原创 2016-07-19 17:24:02 · 5129 阅读 · 0 评论 -
Java快速排序的具体实现
最开始写快速排序花了不少时间,其实关于排序算法,最重要的是首先你要理解,各种排序算法的原理是什么,当你理解了具体的实现原理再来写程序的时候你就会觉得很轻松了。不多说,直接上代码:package Algorithm.sort;/** * 快速排序的实现 * @author zhoudafu * */public class QuickSort { public void quickS原创 2016-07-19 16:02:59 · 682 阅读 · 0 评论 -
关于java部分知识点的总结(三)
之前一直使用云笔记写自己遇到的一些体会,最近因为工作需要,准备回头梳理下以前自己学习的知识点,想把以前的记录下载博客里,既方便自己以后查阅,同时也能让自己有一个更深刻的记忆。 dubbo构成: 2者(服务提供者【无状态】,服务消费者),2中心(服务注册中心,服务监控中心)。 (1) 连通性:连通流程 (2) 健状性:多数部分宕挂了,其余服务部分仍能正常使用 (3) 伸缩性:主要是伸,动态增原创 2016-07-19 16:00:18 · 508 阅读 · 0 评论 -
关于java部分知识点的总结(二)
之前一直使用云笔记写自己遇到的一些体会,最近因为工作需要,准备回头梳理下以前自己学习的知识点,想把以前的记录下载博客里,既方便自己以后查阅,同时也能让自己有一个更深刻的记忆。关于反射: super.getClass() 得到的依然是runtime当前类,若要得到真正的父类,需要用super.getClass().getSuperclass() 虽然这里写的是super,但其实用this原创 2016-07-19 15:26:31 · 445 阅读 · 0 评论 -
关于java部分知识点的总结(一)
之前一直使用云笔记写自己遇到的一些体会,最近因为工作需要,准备回头梳理下以前自己学习的知识点,想把以前的记录下载博客里,既方便自己以后查阅,同时也能让自己有一个更深刻的记忆。Cannot use this in a static context 在一个static代码块或者是static方法中,不能使用this和supper,因为static在jvm加载时就会初始化,而此时this和super可能原创 2016-07-19 15:07:37 · 736 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 重点内容斜体 Ctrl + I 强调内容引用原创 2016-07-18 20:10:08 · 316 阅读 · 0 评论 -
maven pom.xml 主要标签说明
Maven 构件工程的属性文件本文转载自:https://my.oschina.net/u/1187481/blog/204865pom.xml文件(实践用): xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4转载 2016-10-25 21:21:37 · 658 阅读 · 0 评论 -
更新GitHub上自己 Fork 的代码与原作者的项目进度一致
本文转载自(原文地址不详):http://blog.csdn.net/peterwanghao/article/details/49762479 在GitHub上我们会去fork别人的一个项目,这就在自己的Github上生成了一个与原作者项目互不影响的副本,自己可以将自己Github上的这个项目再clone到本地进行修改,修改后再push,只有自己Github上的项目会发生改变,而原作者项目并不转载 2016-12-05 18:07:19 · 694 阅读 · 0 评论