Java学习笔记
文章平均质量分 75
Java学习笔记
程序员云帆哥
互联网厂程序员,高级Java开发工程师。博客认证:CSDN博客专家、阿里云专家博主、华为云云享专家、腾讯云年度优秀作者。
展开
-
阿里云Maven和Gradle仓库最新配置
阿里云云效 Maven 是什么?阿里云Maven中央仓库为 阿里云云效 提供的公共代理仓库,帮助研发人员提高研发生产效率,使用阿里云Maven中央仓库作为下载源,速度更快更稳定。原创 2023-09-01 01:15:19 · 4427 阅读 · 0 评论 -
Hutool工具类库之类型转换工具类
在Java开发中我们要面对各种各样的类型转换问题,尤其是从命令行获取的用户参数、从HttpRequest获取的Parameter等等,这些参数类型多种多样,我们怎么去转换他们呢?常用的办法是先整成String,然后调用XXX.parseXXX方法,还要承受转换失败的风险,不得不加一层try catch,这个小小的过程混迹在业务代码中会显得非常难看和臃肿。原创 2023-06-24 21:40:40 · 1221 阅读 · 0 评论 -
Java面试题(基础篇)
1、面向对象三大特征封装、继承、多态。2、简述Java中的8种基本数据类型字符型:char布尔型:boolean数值型: byte、short、int、long、float、double注意:String不是基本数据类型,是引用类型。这种数据的变量不需要使用new创建,他们不会在堆上创建,而是直接在栈内存中存储,因此会更加高效。3、可以用浮点型表示金额吗?由于计算机中保存的小数其...原创 2019-09-25 10:38:25 · 658 阅读 · 0 评论 -
蚂蚁金服面试问题总结
Spring 框架中都用到了哪些设计模式?spring的加载过程?Spring AOP的理解和实现原理怎么理解 Spring IOC 容器?HashMap 底层实现原理是什么?怎么解决HashMap碰撞问题?ConcurrentHashMap的实现原理threadLocal讲一下线程池,以及实现固定大小线程池底层是如何实现的?GC原理和使用的算法内存溢出是怎么造成的?full...原创 2019-04-04 10:49:54 · 1806 阅读 · 0 评论 -
为什么要分表分库?
数据库数据会随着业务的发展而不断增多,因此数据操作,如增删改查的开销也会越来越大。再加上物理服务器的资源有限(CPU、磁盘、内存、IO 等)。最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。原创 2020-04-25 16:30:28 · 3338 阅读 · 1 评论 -
Hutool工具类库之图片验证码
验证码功能位于createCode: 创建验证码,实现类需同时生成随机验证码字符串和验证码图片getCode: 获取验证码的文字内容verify: 验证验证码是否正确,建议忽略大小写write: 将验证码写出到目标流中其中write方法只有一个OutputStream,ICaptcha实现类可以根据这个方法封装写出到文件等方法。为一个ICaptcha抽象实现类,此类实现了验证码文本生成、非大小写敏感的验证、写出到流和文件等方法,通过继承此抽象类只需实现方法定义图形生成规则即可。原创 2023-06-12 13:10:39 · 2207 阅读 · 0 评论 -
Java爬取网站的所有图片链接
jsoup是一个用于处理真实世界 HTML 的 Java 库。它使用最好的 HTML5 DOM 方法和 CSS 选择器提供了一个非常方便的 API,用于获取 URL 以及提取和操作数据。jsoup实现了WHATWG HTML5规范,并将 HTML 解析为与现代浏览器相同的 DOM。原创 2021-08-20 22:44:31 · 450 阅读 · 0 评论 -
手写网络爬虫获取网页源代码
手写网络爬虫获取网页源代码原创 2018-07-29 20:17:26 · 1130 阅读 · 0 评论 -
Hutool工具类库之Excel导入导出
Hutool工具类库之Excel导入导出原创 2022-12-27 21:30:00 · 3198 阅读 · 1 评论 -
新人一看就懂:Dubbo3 + Nacos的RPC远程调用框架demo
之前有写过Dubbo2+Zookeeper的RPC远程调用框架demo,因为Dubbo3出来已经一段时间了,加上Zookeeper这玩意很少有人用了,所以结合实下流行的Dubbo3+Nacos搭建一套RPC远程调用框架demo。Nacos也是阿里出的,我前面的文章也有写过,是一个优秀的注册中心和配置中心。原创 2022-11-12 20:07:34 · 3160 阅读 · 10 评论 -
使用JDK的keytool工具生成JKS证书
使用JDK的keytool工具生成JKS证书原创 2022-09-15 20:41:54 · 2631 阅读 · 0 评论 -
Github如何快速找到优秀开源项目
文章目录一、Github搜索1、按名称2、按点赞3、按fork4、按作者5、按语言6、按大小(单位是kb)7、按更新时间8、按项目描述9、按readme二、热门项目一、Github搜索1、按名称in:name 名称2、按点赞stars:>10003、按forkfork:>10004、按作者user:作者名称5、按语言language:项目使用语言6、按大小(单位是kb)size:>=10247、按更新时间pushed:>2022-04-01原创 2022-04-06 22:00:01 · 3625 阅读 · 0 评论 -
ShardingSphere 5:开启数据库分库分表新篇章
Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款既能够独立部署,又支持混合部署配合使用的产品组成。 它们均提供标准化的数据水平扩展、分布式事务和分布式治理等功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景。原创 2022-03-14 22:45:21 · 1710 阅读 · 0 评论 -
使用强大的离线IP地址定位库ip2region获取城市信息
ip2region - 准确率99.9%的离线IP地址定位库,0.0x毫秒级查询,ip2region.db数据库只有数MB,提供了java、php、c、python、nodejs、golang、c#等查询绑定和Binary,B树,内存三种查询算法。原创 2022-02-27 21:26:38 · 4276 阅读 · 3 评论 -
分布式事务解决方案:Spring Cloud + Nacos + Seata整合
Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。2019 年 1 月,阿里巴巴中间件团队发起了开源项目 Fescar(Fast & EaSy Commit And Rollback),和社区一起共建开源分布式事务解决方案。Fescar 的愿景是让分布式事务的使用像本地事务的使用一样,简单和高效,并逐步解决开发者们遇到的分布式事务方面的所有难题。...原创 2022-02-25 21:23:03 · 2826 阅读 · 9 评论 -
搭建Skywalking分布式链路追踪与监控,并接入Java项目的教程
Skywalking是一个国产的开源框架,2015年有吴晟个人开源,2017年加入Apache孵化器,国人开源的产品,主要开发人员来自于华为,2019年4月17日Apache董事会批准SkyWalking成为顶级项目,支持Java、.Net、NodeJs等探针,数据存储支持Mysql、Elasticsearch等,跟Pinpoint一样采用字节码注入的方式实现代码的无侵入,探针采集数据粒度粗,但性能表现优秀,且对云原生支持,目前增长势头强劲,社区活跃。原创 2022-02-13 19:10:43 · 4091 阅读 · 0 评论 -
搭建Prometheus+Grafana实时监控平台监控Java应用服务
项目中需要监控Java应用服务,我想到可以搭建Prometheus+Grafana实时监控平台,搭建完成后记录下了这个过程,与你分享。原创 2021-12-26 23:39:47 · 4312 阅读 · 9 评论 -
搭建YApi接口管理平台+IDEA插件easyYapi一键生成接口动态发布到YApi平台
YApi:高效、易用、功能强大的API管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API。原创 2021-11-29 15:15:33 · 1920 阅读 · 0 评论 -
Java项目集成Redisson分布式锁
为什么需要分布式锁? 因为Java中的锁,只作用于单个JVM实例上。而当下在互联网技术架构中,大家都用的分布式架构了,应用部署到多个服务器,这种情况下,线程之间的锁机制,就没作用了。为了解决这个问题,我们就引入分布式锁。原创 2021-11-25 16:10:00 · 1961 阅读 · 0 评论 -
Java项目集成SonarQube代码审查
SonarQube是一种自动代码审查工具,用于检测代码中的错误、漏洞和代码异味。它可以与您现有的工作流程集成,以支持跨项目分支和拉取请求的持续代码检查。原创 2021-11-24 23:23:32 · 1541 阅读 · 0 评论 -
IDEA通过Docker插件部署SpringBoot项目
1、配置docker远程连接端口找到并编辑服务器上的docker.service文件。vi /usr/lib/systemd/system/docker.service如下图所示的地方,添加:-H tcp://0.0.0.0:23752、重启dockersystemctl daemon-reloadservice docker restart3、服务器开放端口我用的阿里云服务器,在安全组的配置规则,开放端口。4、测试远程连接是否正常curl http://localhost:原创 2021-11-22 23:40:28 · 4748 阅读 · 1 评论 -
Synchronized的实现原理
Synchronized是由JVM实现的一种实现互斥同步的一种方式,如果你查看被Synchronized修饰过的程序块编译后的字节码,会发现,被Synchronized修饰过的程序块,在编译前后被编译器生成了**monitorenter、monitorexit**两个字节码指令。原创 2021-11-17 10:22:29 · 731 阅读 · 0 评论 -
Java中常用的锁介绍
乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出当前版本号,然后加锁操作(比较跟上一次的版本号,如果一样则更新),如果失败则要重复读-比较-写的操作。原创 2021-11-17 10:15:49 · 981 阅读 · 0 评论 -
Java实现多张图片合并一张
Java代码实现多张图片合并一张,这个还是挺常用到的。原创 2021-10-26 14:52:12 · 8633 阅读 · 2 评论 -
Java实现批量图片生成PDF文件
Java实现批量图片生成PDF文件,这个也是比较常用到的。原创 2021-10-26 15:31:35 · 1639 阅读 · 1 评论 -
刷完牛客网910道Java题目,快速总结上万字,带你扫清Java基础面试障碍
花时间刷完了牛客网专项训练所有的Java题,终于有点时间,决定肝一篇Java基础总结,帮你扫清Java基础面试障碍!原创 2021-10-13 13:05:43 · 3020 阅读 · 4 评论 -
ThreadLocal的原理剖析和使用场景
ThreadLocal 主要是做数据隔离,它是线程的局部变量, 是每一个线程所单独持有的,其他线程不能对其进行访问,相对隔离的。当使用ThreadLocal维护变量的时候为每一个使用该变量的线程提供一个独立的变量副本,即每个线程内部都会有一个该变量,这样同时多个线程访问该变量并不会彼此相互影响,因此他们使用的都是自己从内存中拷贝过来的变量的副本,这样就不存在线程安全问题,也不会影响程序的执行性能。原创 2021-09-29 18:43:42 · 497 阅读 · 0 评论 -
总结常见的安全加密算法和使用场景
一、对称加密 对称加密:主要特点是加密和解密使用同一个密钥。 常用的对称加密算法:DES、3DES、Blowfish、IDEA、RC4、RC5、RC6 和 AES二、非对称加密 非对称加密:加密时使用了两个密钥,加密和解密过程中分别使用不同的密钥,这两个密钥分别为“公钥”和“私钥”,想要正常完成加密解密过程,就必须配对使用,而在使用过程中,“公钥”是公开的,“私钥”则必须有发送人保密,同时只能由持有人所有。 常用的非对称加密算法:RSA、ECC(移动设备用)、Diffie-Hellman、原创 2021-08-20 15:21:28 · 2777 阅读 · 0 评论 -
你真的理解Java中的包装类吗?还有不少人踩坑了
基础数据类型不是在计算机中运算更快吗?为啥还要有包装类?因为想要对基本类型数据进行更多的操作,最方便的方式就是将其封装成对象。为啥呢?因为在对象描述中就可以定义更多的属性和行为对该基本数据类型进行操作。基本数据类型的包装类是为了解决基本数据类型有些操作不方便带来的问题。原创 2021-04-01 13:19:16 · 697 阅读 · 0 评论 -
史上最详细的MongoDB操作命令大全
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。原创 2021-03-08 22:03:47 · 1802 阅读 · 0 评论 -
Java8新特性之Lambda与Stream流
Java 8 API添加了一个新的抽象称为流Stream,stream是用于对集合迭代器的增强,使之能够更高效的完成聚合操作(筛选、排序、统计分组)或者大批量数据操作。原创 2020-12-31 23:50:59 · 921 阅读 · 0 评论 -
Spring Cloud Alibaba Nacos搭建服务注册发现和配置中心
Nacos是阿里云中间件团队开源的一个项目。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。原创 2020-12-27 03:24:42 · 1033 阅读 · 3 评论 -
一文读懂分布式事务及其解决方案
事务提供一种机制将活动中涉及所有操作纳入到一个不可分割的执行单元。整个单独单元作为一个不可分割的整体,如果单元中某条sql语句一旦执行失败或者产生错误,整个单元将会回滚,也就是所有受到影响的数据将会返回到事务开始以前的状态;如果单元中的所有sql语句均执行成功,则事务被顺利执行。原创 2020-04-12 20:16:34 · 838 阅读 · 0 评论 -
还用Date表示时间?LocalDateTime看这里
当工作中遇到时间处理,我们是否首先想到JAVA提供的Date和Calendar,用于处理日期、时间的类,包括创建日期、时间对象,获取系统当前日期、时间等操作。原创 2020-01-08 18:42:46 · 2192 阅读 · 1 评论 -
新人一看就懂:Spring Cloud Eureka服务注册发现的框架demo
Eureka是由Netflix开发的一款服务治理开源框架,Spring-cloud对其进行了集成。Eureka包含两个组件:Eureka Server和Eureka Client。Eureka服务端是一个服务注册中心(Eureka Server),提供服务的注册和发现,即当前有哪些服务注册进来可供使用;原创 2019-12-26 12:04:04 · 582 阅读 · 1 评论 -
新人一看就懂:Spring Boot+Spring mvc+Mybatis的基础框架demo
Spring Boot的设计目的是来简化新Spring应用的初始搭建以及开发过程,大大减少了代码量,通过这篇文章你可以清楚的看到。这是一个基于Spring Boot的简单demo,希望读者可以通过这篇文章大概能看懂这一个简单的框架搭建。后续我会陆续更新,微服务架构(Spring Boot、Spring Cloud)、分布式架构(Dobbo+Zookeeper)、大数据架构以及源码解析等相关的文章,感兴趣的话可以关注一下。原创 2019-07-29 08:41:54 · 21828 阅读 · 461 评论 -
新人一看就懂:Dubbo+Zookeeper的RPC远程调用框架demo
Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现原创 2019-09-24 23:42:26 · 4490 阅读 · 65 评论 -
一文看懂HashMap底层原理
HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null 键和null值,因为key不允许重复,因此只能有一个键为null,另外HashMap不能保证放入元素的顺序,它是无序的。HashMap是线程不安全的。原创 2019-03-31 23:41:04 · 1202 阅读 · 2 评论 -
【Java基础篇】String、StringBuffer和StringBuilder的区别
String类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。StringBuffer对象则代表一个字符序列可变的字符串,当一个StringBuffer被创建以后,通过StringBuffer提供的append()、insert()、reverse()、setCharAt()、setLength()等方法可以改变这个字符串对象的字原创 2019-03-30 23:26:46 · 11378 阅读 · 0 评论 -
【Java基础篇】重载与重写的区别是什么?
在同一个类中,如果多个方法,名字相同、参数不同,即称为重载。方法重写是存在子父类之间的,子类定义的方法与父类中的方法具有相同的名字、参数、返回类型。原创 2019-01-23 20:14:04 · 381 阅读 · 0 评论