自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HaC 的博客

分享Java实战项目公众号:HelloCoder

  • 博客(188)
  • 资源 (1)
  • 收藏
  • 关注

原创 分享10个优质的Java练手项目

最近有很多小伙伴私信我说推荐几个毕设项目,在这里我收集了10个可以直接导入运行的项目。由简单到复杂,分别为:文章目录1、二手拍卖系统2、基于WEB的农产品销售管理系统3、mblog博客系统4、My-Blog5、学之思在线考试系统6、码问社区community7、在线考试系统8、eladmin9、RuoYi权限管理系统10、vhr 微人事管理系统1、二手拍卖系统这个系统我之前介绍过,是基于Nutz+JSP 搭建的,Nutz可以理解为这是一个轻量级的MVC框架。主要功能模块分为:用户模块订单模块

2021-01-17 17:33:40 3054

原创 2021超级详细的Java学习路线分享。

10张思维图,告诉你Java应该要怎么学。不知不觉踏入互联网行业已经三年了。回顾当初第一次接触Java,是在大学的课堂,晦涩难懂的知识点,现在还能想起被期末考试支配的恐惧。直到踏入互联网这个行业,加上前阵子把《Java核心技术卷1》、《深入理解Java虚拟机》、《计算机网络》等等这些书籍看完,再回想一下自己整个入行到工作的历程,总结了一下学习Java的路线,希望可以帮到各位初入行的Java小白。图一 大纲图二 Java基础图三 计算机基础图四 数据库图五 数据库前端图六 .

2020-10-04 18:17:43 317

原创 TLDR,一个简易版的命令查询手册

Linux系统拥有丰富的命令,一切基于命令操作。但是要记住所有的命令,任何人可能都无法完成,其次,Linux的命令都带有十分多的参数。比如我平时百度得最多的是 tar 命令,虽然我知道它是解压缩用的,但你直接用的时候就蒙圈了。缺少参数的后果:[root@VM-8-8-centos software]# tar zookeeper-3.4.11.tar.gztar: Old option `g' requires an&nbsp

2022-05-20 00:26:35 1864 1

转载 (十八)Worker线程管理

转自:美团技术团队线程池为了掌握线程的状态并维护线程的生命周期,设计了线程池内的工作线程Worker。这也是线程回收的核心我们来看一下它的部分代码:private final class Worker extends AbstractQueuedSynchronizer implements Runnable{ final Thread thread;//Worker持有的线程 Runnable firstTask;//初始化的任务,可以为null}Worker这个工作.

2022-04-07 14:45:48 432 1

原创 4个java死锁工具:jstack、jconsole、jvisualvm、jmc

在 Java 中,死锁(Deadlock)情况是指:两个或两个以上的线程持有不同系统资源的锁,线程彼此都等待获取对方的锁来完成自己的任务,但是没有让出自己持有的锁,线程就会无休止等待下去。线程竞争的资源可以是:锁、网络连接、通知事件,磁盘、带宽,以及一切可以被称作“资源”的东西。在程序执行的时候,难免会遇到死锁的情况。下面介绍一下如何排查Java中的死锁线程。先来个死锁的例子:import java.util.concurrent.TimeUnit;import java.util.concur

2022-03-25 00:06:30 864

原创 新版Maven—mvnd的使用测试

Maven、gradle 作为主流的构建工具,几乎所有的Java项目都使用,但是Maven相对gradle来说,构建还是太慢了。特别是构建十几个子项目的程序。如果要把项目从Maven转换成gradle,成本也是巨大的。但是现在有了 maven-mvnd ,可以使构建变得更快。1、maven-mvnd介绍maven-mvnd是Apache Maven团队借鉴了Gradle和Takari的优点,衍生出来的更快的构建工具,是maven的强化版。github地址:https://github.com/ap

2022-03-10 14:37:56 707

原创 (十)Dubbo性能调优参数

Dubbo性能调优参数需要根据各自业务进行调整。建议多在provider端配置属性,原因如下:作为服务的提供方,比服务消费方更清楚服务的性能参数,如调用的超时时间、合理的重试次数等在 Provider 端配置后,Consumer 端不配置则会使用 Provider 端的配置,即 Provider 端的配置可以作为 Consumer 的缺省值 。否则,Consumer 会使用 Consumer 端的全局设置,这对于 Provider 是不可控的,并且往往是不合理的。配置的覆盖规则:方法级别

2022-03-07 17:47:15 684

原创 (九)JMH的详细使用,以及压测dubbo

JMH即Java Microbenchmark Harness,@Benchmark的使用用来压测dubbo很方便,比较了jmeter、ab、jmh,还是jmh好用

2021-12-29 18:16:47 467

原创 (八)Dubbo常见的错误总结

dubbo常见错误总结

2021-12-29 18:08:20 1558

原创 (七)使用Jmeter压测Dubbo

压测思路:压测consumer的Controller,调用provider暴露的接口。provider做1w次循环,生成随机数做累加。provider再把consumer的入参无处理返回给consumer。1、准备使用的工具:1、gc可视化工具:https://gceasy.io2、压测工具:jmeter5.1(其他版本不兼容dubbo)3、jmeter 插件,在jmeter官网可以找到,主要用来获取响应时间、TPS 参数4、ServerAgent插件,jmeter的官方监测工具,用于收集

2021-12-29 17:32:31 649

原创 (六)dubbo-admin(旧版本)搭建(附下载链接)

dubbo-admin旧版本下载

2021-12-29 17:30:12 282

原创 (五)新版本dubbo-admin的搭建和使用

Dubbo官方提供了一个 admin 的可视化后台,可能是整合进Apache,github的Dubbo原项目已经没有dubbo-admin这个项目已经没有了,独立出来做成了一个vue+springboot项目了。地址:https://github.com/apache/dubbo-admindubbo管理控制台开源部分主要包含: 提供者 路由规则 动态配置 访问控制 权重调节 负载均衡 负责人,等管理功能1、启动后台项目后台项目是dubbo-admin-server,是一个spring-

2021-12-29 17:24:43 606

原创 (四)Dubbo 2.7 整合Spring(xml形式)

Dubbo整合Spring(xml形式),附源码

2021-12-28 18:25:44 1007

原创 (三)使用ab(Apache-BenchMark)压测dubbo,测试dubbo的性能

1、准备使用ab(Apache-BenchMark)压测consumer的Controller,触发调用。dubbo的consumer发起调用,调用provider暴露的接口。provider做1w次循环,生成随机数做累加。2、ab压测情况2.1、1k 数据情况一:三台同机房的机器,利用两台consumer请求同一台provider机器:consumer1 2h4g -server -Xmx4g -Xms4g -XX:+UseG1GCconsumer2 4h8g -serve

2021-12-28 18:22:02 681

原创 (一)Dubbo快速入门、介绍、使用

1、介绍Dubbo官方文档:https://dubbo.apache.org/zh目前Dubbo最新的是Dubbo3。Dubbo3 格式的 Provider 地址不能被 Dubbo2 的 Consumer 识别到,反之 Dubbo2 的消费者也不能订阅到 Dubbo3 Provider。这里的架构和使用都是基于Dubbo2.7 版本,Dubbo2(2.7以下)和Dubbo3两个版本的注解有区别。Registry是注册中心,用于发现服务者和消费者。注册中心可以选择 zookeeper、con

2021-12-28 18:18:03 1216

原创 (二)Duboo3.0+SpringBoot+zookeeper整合例子(附源码)

dubbo3.0整合SpringBoot例子dubbo新版本(3.0以上)在相对于 dubbo 旧版本(2.5、2.6、2.7),有很多的不相同的地方。官方文档也说了新版本的特性:https://dubbo.apache.org/zh/docs/v3.0/new-in-dubbo3/本文就来使用dubbo3.0新版本 搭建一个 dubbo+SpringBoot 项目,项目结构:源码已上传到github:https://github.com/DogerRain/dubbo-samples-test

2021-11-19 15:43:43 7289 13

原创 AndroidStudio的安装和运行第一个Android项目

AndroidStudio有很多种版本,可以在这个网站找到(不用梯子):http://www.android-studio.org/index.php/download/hisversion/一 下载AndroidStudio我使用的是这个版本:该版本包括了SDK、AVD一系列东西,双击进行安装:我本地已经安装了SDK,会自动监测到SDK的路径,假如你没有安装SDK或者想重新安装SDK,可以选择新的文件夹,这里我把这里提示的所有都安装:我安装到这个目录安装完成就可以了,然后这个文件夹就

2021-06-28 15:16:04 379 2

原创 HTTP1.0、HTTP2.0、HTTP 3.0区别

众所周知,建立起一个TCP连接需要经过“三次握手”,而HTTP协议是建立在TCP协议之上的一种应用。TCP建立连接时三次握手有1.5个RTT(round-trip time)的延迟,为了避免每次请求的都经历握手带来的延迟,应用层会选择不同策略的http长链接方案;TCP在建立连接的初期有慢启动(slow start)的特性,所以连接的重用总是比新建连接性能要好。HTTP 0.9http0.9只是一个简单的协议,只有一个GET方法,没有首部,目标用来获取HTML。HTTP 1.0在 HTTP/1.

2021-06-26 10:58:56 1051 2

原创 【教你搭建服务器系列】 (11)使用GitHub+Hexo搭建自己的网站、博客

我白嫖过的一些云厂商: 云服务器厂商学生身份新用户(非学生身份) 腾讯云 学生特惠,1核2G5M宽带,仅需9元/1个月 星星海SA2云服务器,1核2G首年99元(答主目前用的) 不知道还有没有券,可以试试新客户无门槛代金券,价值高达2860元代金券

2021-06-26 10:44:31 136

原创 【教你搭建服务器系列】(10)利用Docsify搭建个人笔记网站

写文档的工具非常多,但是作为程序员,大部人还是偏爱Markdown的,有时需要写一份开发文档,以供自己或者他人查看,那如何把 Markdown 文件转换成文档呢?docsify 就可以做到了,docsify 可以直接加载 Markdown 文件并动态渲染,同时还可以生成封面页,还可以部署在github pages ,效果图像以下这种:docsify官方文档:https://docsify.js.org/#/zh-cn/1、安装docsify安装docsify需要node环境,所以必须先安装No

2021-06-12 00:55:50 1550 2

原创 【教你搭建服务器系列】(9)让你的服务器更安全

上一篇文章介绍了使用秘钥对登录服务器的好处。本文使用服务器为Centos 7.6除了使用密钥对之外,只能确保我们的服务器是安全的,但是并不能确保我们的应用是安全的。为什么这么说?以MySQL来说,我们希望在我的电脑可以连接我服务器的MySQL服务,那必然需要我的服务器开放3306端口,那么这个端口是暴露在公网的,如果你的密码简单,很容易就会被攻击。类似的还有Redis 6389这些端口。如果要使服务安全,最好的方法就是不暴露公网的端口,只允许本地的服务访问。那这样也不现实,业务上还需要连

2021-06-12 00:34:44 219 2

原创 【教你搭建服务器系列】(8)使用密钥对登录服务器

我白嫖过的一些云厂商: 云服务器厂商学生身份新用户(非学生身份) 腾讯云 学生特惠,1核2G5M宽带,仅需9元/1个月 星星海SA2云服务器,1核2G首年99元(答主目前用的) 不知道还有没有券,可以试试新客户无门槛代金券,价值高达2860元代金券

2021-06-01 22:43:32 692 1

原创 【教你搭建服务器系列】(7)一次服务器被黑的排查全过程

前一阵子腾讯云搞活动,哈C我买了个轻量级的服务器,部署了自己的网站。一切都井然有条的进行中。直到某天清晨,我一如既往的打开我的网站,发现网站竟然打不开了。于是我进行了一系列的排查。1、排查日志第一时间想到的就是登录服务器,查看异常登录的日志。好家伙,我发现服务器竟然无法登录了!1)VNC登录服务器第一时间想到的应该是密码登录被禁用了。于是我在腾讯云后台使用VNC登录。无法通过客户端SSH远程登录时,可以通过VNC登录来登录服务器.2)查看sshd_config文件查看了/et

2021-06-01 22:39:25 2814 19

原创 【教你搭建服务器系列】(6)如何判断服务器被入侵

可以说,只要你不设置安全组、防火墙,那么你的服务器基本上就没了,别问我为什么知道,因为我的三台服务器就是这么被黑掉的。

2021-05-23 12:32:27 311

原创 【教你搭建服务器系列】(5)部署JavaWeb项目到服务器

我白嫖过的一些云厂商: 云服务器厂商学生身份新用户(非学生身份) 腾讯云 学生特惠,1核2G5M宽带,仅需9元/1个月 星星海SA2云服务器,1核2G首年99元(答主目前用的) 不知道还有没有券,可以试试新客户无门槛代金券,价值高达2860元代金券

2021-05-22 15:36:49 143

原创 【教你搭建服务器系列】(4)部署静态网站到Nginx服务器

我白嫖过的一些云厂商: 云服务器厂商学生身份新用户(非学生身份) 腾讯云 学生特惠,1核2G5M宽带,仅需9元/1个月 星星海SA2云服务器,1核2G首年99元(答主目前用的) 不知道还有没有券,可以试试新客户无门槛代金券,价值高达2860元代金券

2021-05-18 23:55:32 244 2

原创 (十七)AtomicInteger原子类的介绍和使用

在第十四章提到 AtomicInteger 可以保证原子性。但是我并没有展开讲它的详细用法,因为内容多,所以这一章节就来学习一下原子操作类——AtomicIntegerAtomicInteger是对int类型的一个封装,提供原子性的访问和更新操作,其原子性操作的实现是基于CAS(compare-and -swap)技术。《深入理解Java虚拟机第二版.周志明》说到这个CAS:CAS在本专栏 第 十六章ReentrantLock 介绍过,也可以回顾一下。1、AtomicInteger 有什么用?

2021-05-18 22:58:32 302 1

原创 Linux面试题

常见Linux面试题,Java面试

2021-05-16 11:21:51 94

原创 CPU 密集型 和 IO密集型 的区别,如何确定线程池大小?

CPU 密集型CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPU Loading 100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可以完成,而CPU还有许多运算要处理,CPU Loading很高。比如说要计算1+2+3+…+ 1亿、计算圆周率后几十位、数据分析。都是属于CPU密集型程序。此类程序运行的过程中,CPU占用率一般都很高。假如在单核CPU情况下,线程池有6个线程,但是由于是单核CPU,所以同一时间只能运行一个线程

2021-03-23 18:12:59 3972 2

原创 三款免费好用的代码对比工具,丢弃BeyondCompare

代码比较是日常开发经常需要做的工作,比如说源代码对比、文档对比,甚至是excel表格对比。这里推荐三款免费的对比工具。1、winMerge下载地址:https://winmerge.org/downloads/?lang=enwinMerge的大小只有7M,轻量级,也支持解压式,点击即可打开。winMerge是一款免费的windows开源对比工具,诞生时间十分久远,也很稳定。winMerge支持三个文件对比,而且支持表格、图像文件对比,以易于理解和处理的可视化文本格式显示差异。比对完成

2021-03-11 17:21:06 14992 5

原创 详细聊聊 Java序列化和反序列化的作用

1、序列化和反序列化是什么?如果你看过某些类的源码或者公司的项目,有一些类是实现 Serializable 接口,同时还要显示指定 serialVersionUID 的值。例如String类:public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */

2021-03-08 17:25:51 2277

原创 (十六)ReentrantLock可重入锁使用和介绍

1、ReentrantLock介绍jdk中独占锁的实现除了使用关键字synchronized外,还可以使用ReentrantLock。虽然在性能上ReentrantLock和synchronized没有什么区别,但ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵活,也更适合复杂的并发场景。两者的相同点:1、ReentrantLock和synchronized都是独占锁,只允许线程互斥的访问临界区。但是实现上两者不同:synchronized加锁解锁的过程是隐

2021-02-26 11:31:38 537 5

原创 引用拷贝、对象拷贝、浅拷贝、深拷贝 到底是什么【详细例子介绍】

Java的数据类型分为基本数据类型和引用数据类型。拷贝一个对象,可以使用 Cloneable接口的clone()方法。对象拷贝分为 浅拷贝 和 深拷贝,这两种拷贝都是从引用拷贝 引出的。通过下面的例子你就可以明白这三者的区别了。1、引用拷贝引用拷贝 简单的说就是通过 = 地址赋值。class TestClone { public static void main(String[] args) throws CloneNotSupportedException { Stri

2021-02-08 15:42:00 673 1

原创 Java IO 的分类、使用场景、缓冲流、使用例子、文件拷贝

文章目录1、什么是IO1、流的特点:2、IO流的分类1、按方向分2、按处理数据类型分3、按功能分4、按有无缓冲分2、Java IO 流对象详解1、InputStream ——字节流输入流FileInputStreamBufferedInputStream2、OutputStream——字节输出流3、Reader——字符输入流4、Writer——字符输出流3、使用方法1、FileOutputStream写文件、FileInputStream读文件2、FileWriter写文件、FileReader读文件注意点

2021-02-03 14:17:45 509 7

原创 java.lang.IllegalArgumentException: Invalid character found in the request target. The valid charact

报错:java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986 02-Feb-2021 09:08:32.817 信息 [http-nio-8080-exec-1] org.apache.coyote.http11.AbstractHttp11Processor.process E

2021-02-02 09:41:56 3842 2

原创 魔改《合成大西瓜》——附试玩链接

最近合成大西瓜这个游戏很火,最近几天都看到朋友圈有很多小伙伴在挑战合成大西瓜。但是因为合成大西瓜的难度太大了,极少概率能合成大西瓜,无奈只能刷到高分数。这篇文章就带大家合成一个大西瓜,顺便魔改一下这个游戏,玩起来更加有趣。1、初识合成大西瓜这是一个类似于《2048》的游戏,每种水果都代表不同的等级,2个同类水果相碰即可合体,成为更高等级的新水果,最高级别的水果就是大西瓜。玩家只需控制好水果掉落的位置,让相同的水果合成另一种体积较大的新水果,如果水果填满了屏幕,游戏就结束,最后会显示你的分数和击

2021-01-31 23:22:50 3690 6

原创 遍历Map的四种方法

1、keySet2、Map.entrySet 大量数据较快,常用3、Iterator4、map.values() 不常用public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "五菱宏光"); map.put(3, "奥迪"); map.put(2, "宝马");

2021-01-26 17:22:57 162

转载 Windows系统Git安装教程

作者:学为所用出处:http://www.cnblogs.com/xueweisuoyong/ Windows系统Git安装教程(详解Git安装过程)  今天更换电脑系统,需要重新安装Git,正好做个记录,希望对第一次使用的博友能有所帮助!获取Git安装程序  到Git官网下载,网站地址:https://git-scm.com/downloads,如下图:  因为我们是用Windows系统上的浏览器访问的,Git官网自动之别到了我使用的操作系统,所以右侧直接显示下载使用Window.

2021-01-02 17:26:40 130

原创 IDEA Windows + Mac 快捷键(全)

Windows快捷键Ctrl快捷键介绍Ctrl + F在当前文件进行文本查找 (必备)Ctrl + R在当前文件进行文本替换 (必备)Ctrl + Z撤销 (必备)Ctrl + Y删除光标所在行 或 删除选中的行 (必备)Ctrl + X剪切光标所在行 或 剪切选择内容Ctrl + C复制光标所在行 或 复制选择内容Ctrl + D复制光标所在行 或 复制选择内容,并把复制内容插入光标位置下面 (必备)Ctrl + W递进式选

2020-12-30 23:40:19 1082

原创 ping命令的常见用法

ping (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP,回声请求消息给目的地并报告是否收到所希望的ICMP echo (ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令ping 原理ICMP协议是“Internet Control Message Ptotocol”(因特网控制消息协议)的缩写,它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。这个“Ping”的过程实际上就是ICMP.

2020-12-24 20:50:52 2178

jetty 适合jdk1.8用的服务器

jetty 是一款轻量级的web服务器,相比Tomcat版本更复杂,每个jdk的版本使用的jetty都可能不一样,9.4的版本适合jdk1.8使用

2020-12-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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