Java极客技术

其他

对比三种内网穿透工具,到底谁好用?

每天早上七点三十,准时推送干货我们都知道,现在是用内网穿透工具的人是越来越多了,阿粉今天就给大家说说各种不同的内网穿透工具是怎么用的。内网穿透工具你在本地开发了一个网站,通过内网穿透工具映射到一个公网ip,别人就能直接通过公网ip访问了,而我们要做的就是选一个合适的工具,免费肯定香,这个是公认的道理是不是。1.Sunny-Ngrok这个内网穿透工具是阿粉最早开始的时候使用的,那个时候,完全不需要付费,应该是四五年之前吧,现在虽然也是免费的,但是会收取一点实名认证的费用,不过胜在比较简单,也比较划算。Sunny-Ngrok官网版本挺多,有需要的下载自己适合的版本,阿粉才用的就是
2022年3月29日
其他

为什么说两个 Integer 数值之间不建议使用 “==” 进行比较

众所周知阿里巴巴开发手册里面有一条强制的规则,说的是在包装类对象之间的值比较的时候需要使用
2021年10月13日
其他

为什么foreach中不允许对元素进行add和remove

java.util.ArrayList$Itr.checkForComodification(ArrayList.java:911)
2021年10月12日
其他

三年经验开发,二线城市面试情况如何?

为什么这么的重视数据库,阿粉猜想的是,可能在二线城市,项目架构还没有那么完善,毕竟想用分布式高可用的架构来弄公司的项目,肯定需要考虑数据库,而且在二线城市想让项目经理和产品去撕,那可能不太靠谱。
2021年10月3日
其他

一文教你如何学会写Shell脚本

脚本的变量定义变量和使用变量命名实际上很简单,我们先来试一下name=zhiyikeji这时候我们怎么使用变量呢?实际上只要在前面加上一个符号就可以
2021年9月18日
其他

了解这些软件设计思想,你的思维至少上升一个段位

类,这种场景下,第一:逻辑很可能非常复杂,代码可读性可能很差,第二种可能会出现方法名或者属性名冲突。我曾经修改一个老项目
2021年8月2日
其他

老司机阿粉带你玩转 Guava 集合类

不可变(Immutable)集合,顾名思义集合不可以被修改。初始创建不可变集合时吗,需要传入数据源,创建完成之后,集合就再也不能修改,增加,删除元素,否则将会报错。
2020年3月9日
其他

面试官提到的 AVL 树,到底是个啥

平衡二叉查找树的查找思路,与二叉树是一样,每次查询的时候对半分,只查询一部分,以达到提供效率的目的,插入、删除也一样,最大的不同点:每次插入或者删除之后,需要计算节点高度,然后按需进行调整!
2020年3月7日
其他

诡异的并发之可见性

如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能同时访问这个对象中任何一个synchronized方法。
2020年2月28日
其他

看懂这篇文章,玩转二叉查找树

查找元素表示从根节点开始查找元素,如果根节点为空,就直接返回空值,如果不为空,通过以左子树小于父节点,右子树大于父节点的特性为依据进行判断,然后以递归方式进行查找元素,直到找到目标的元素为止。
2020年2月14日
其他

疫情下,B类人怎么样啦?

比如说大象,平均寿命60年,蓝鲸,平均寿命80年,而老鼠的平均寿命在3年左右,相同的体型下,蝙蝠的的平均寿命能达到30年,这是什么概念,就那么大的生物,寿命都有大象的一半了,想想是不是真的很可怕。
2020年2月11日
其他

学渣阿粉的首次阿里面试之路

二面过去了很久还没接到电话,阿粉我就知道肯定是到此为止了。哎,很遗憾阿粉我就进行到了二面,没机会给大家介绍三面的内容了,不过阿粉我会努力的!争取下次给大家分享三面的内容。
2020年2月6日
其他

阿粉带你学习设计模式之原型(Prototype)模式

可以看到我们完美的克隆了五个猴哥,但是仔细观察我们会发现一个问题,在更改了克隆出来的猴哥的名字和年龄的时候对原始的猴哥一号没有影响,但是在更改克隆猴哥的技能的时候,原始猴哥的技能也变掉了!
2020年2月5日
自由知乎 自由微博
其他

因新型肺炎,多国对中国入境人员实施管制,网友猛批!

从发现新型冠状病毒具有人传人的现象,各地政府就开始全力以赴的群防群控,但是病毒是一种看不见、摸不着的敌人,如何打赢这场疫情防控战,抢在时间的前面让感染的患者早日康复,可以说挑战很大!
2020年2月4日
其他

一次关于 Dubbo 服务 IP 注册错误的踩坑经历

文件配置错误,但是整个查找问题的过程还是值得学习的,深入到了源码层面,跟踪代码,最终发现问题。毕竟运维人员和开发人员在一定的程度上还是会出现沟通问题,而且还是生产环境,所以更加需要仔细。
2020年2月3日
其他

灵魂拷问:Java 的 substring() 是如何工作的?

开始的——这听起来好像是一句废话。真正的原因是下标并不是下标,在指针(C)语言中,它实际上是一个偏移量,距离开始位置的一个偏移量。第一个元素在开头,因此它的偏移量就为
2019年11月19日
其他

带你涨姿势是认识一下Kafka Producer

不会进行重试,直接抛出异常。异步发送消息同步发送消息都有个问题,那就是同一时间只能有一个消息在发送,这会造成许多消息无法直接发送,造成消息滞后,无法发挥效益最大化。比如消息在应用程序和
2019年11月13日
其他

如何创建一个完美的单例模式,你会么?

本文主要讲了单例模式的特点,优缺点和4种单例模式的创建,但是这4中单例模式真的是完美的单例模式吗?有没有什么方式可以破坏单例?有没有什么方式可以防止单例被破坏?敬请期待单例模式下一期
2019年9月5日
其他

重点丨什么是双重检查锁模式?以及为何需要 volatile 关键字?

这个方法首先判断变量是否被初始化,没有被初始化,再去获取锁。获取锁之后,再次判断变量是否被初始化。第二次判断目的在于有可能其他线程获取过锁,已经初始化改变量。第二次检查还未通过,才会真正初始化变量。
2019年8月14日
其他

没错,这绝逼是史上最用心的星球

BY在我读王小波的书之前,从来没想过世界上还有这么幽默的书和特立独行的作者在我读王小波的书之前,从来没想过世界上还有这么幽默的书和特立独行的作者;在我加入「Java极客技术」团队之前,从来没想过世界上还有这么优秀的团队成员和与众不同的读者。哇,我真的是三生有幸啊!随着越来越多的读者关注「Java极客技术」公号,越来越多的球友加入「Java极客技术」星球,随着越来越多优质内容的生产,是时候把星球的内容进行一个梳理了。我想各位读者和球友也迫切期待吧!本次的梳理主要分为:精华篇、设计模式篇、提问篇、面试篇、经验篇、介绍篇等
2019年8月4日
其他

MyBatis基础搭建及架构概述

Java世界里,有很多优秀的日志框架,如Log4j、Log4j2、slf4j等。Mybatis除了提供了详细的日志输出信息,还能够集成多种日志框架,其日志模块的主要功能就是集成第三方日志框架。
2019年7月10日
其他

Effective Java - 静态方法与构造器

众所周知,构造器的声明必须与类名相同,构造方法顾名思义就是构造此类的方法,也就是通过构造方法能够获得这个类对象的引用,所以构造方法必须与类名相同。不知道你有没有遇见过类似的情况,看下面一个例子
2019年7月8日
其他

Spring 源码学习(六)扩展功能 上篇

org.springframework.context.support.AbstractApplicationContext#invokeBeanFactoryPostProcessors
2019年7月5日
其他

我竟然不再抗拒 Java 的类加载机制了

该阶段是类加载过程的最后一步。在准备阶段,类变量已经被赋过默认初始值,而在初始化阶段,类变量将被赋值为代码期望赋的值。换句话说,初始化阶段是执行类构造器方法的过程。
2019年7月5日
其他

Java实现一致性哈希算法,并搭建环境测试其负载均衡特性

一致性哈希算法通过把每台服务器的哈希值打在哈希环上,把哈希环分成不同的段,然后对到来的请求计算哈希值从而得知该请求所归属的服务器。这个办法解决了传统服务器增减机器时需要重新计算哈希的麻烦。
2019年7月4日
其他

java的可变参数

Java方法中的可变参数类型是一个非常重要的概念,有着非常广泛的应用,今天小编带大家一起去深入的了解java的可变参数使用方式!
2019年7月4日
其他

Java实现一致性哈希算法,并搭建环境测试其负载均衡特性

一致性哈希算法通过把每台服务器的哈希值打在哈希环上,把哈希环分成不同的段,然后对到来的请求计算哈希值从而得知该请求所归属的服务器。这个办法解决了传统服务器增减机器时需要重新计算哈希的麻烦。
2019年7月4日
其他

java泛型特性,你了解多少?

在软件设计的过程中经常会用到容器类,容器类代码都一样只是数据类型不同,如果能够让一种类型容纳所有类型,就可以实现代码重用,但是没有一种类型可以容纳所有类型,为了解决容器的问题,由此就产生了泛型设计。
2019年7月3日
其他

面试中的Spring,我们该怎么去回答

GreenTea();但是如果说店家发现绿茶销售不如隔壁的红茶销售好,就想着进红茶卖,那么在这个售货系统过中,凡事出现过AbstractTea1
2019年6月29日
其他

Java 中 == 与 equals 区别,再确认一遍?

基本数据类型:byte,short,char,int,long,float,double,boolean。他们之间的比较,应用双等号(==),比较的是他们的值。
2019年6月27日
其他

Docker 数据卷操作[Docker 系列-6]

/var/lib/docker/volumes/0746bdcfc045b237a6fe2288a3af9d7b80136cacb3e965db65a212627e217d75/_data
2019年6月21日
其他

hashCode和equals的区别

p2的内容相等,但是它们的hashCode()不等;所以,HashSet在添加p1和p2的时候,认为它们不相等。举个例子,我们同时覆盖equals()
2019年6月21日
其他

Spring Boot(二):Web 综合开发

compile("org.springframework.boot:spring-boot-starter-thymeleaf:1.3.6.RELEASE")
2019年3月1日