自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Java中几种保障线程安全的设计技术

说明:以下我主要从面向对象设计的角度出发介绍几种保障线程安全的设计技术,这些技术可以使得我们在不必借助同步锁的情况下保障线程安全,这就避免锁可能导致的问题及其资源的开销。文章目录一、变量定义为局部变量二、无状态(数据)对象三、不可变对象(final)四、构建线程私有对象一、变量定义为局部变量JVM里规定,Java运行数据区可以划分为以下五部分:线程私有:Java虚拟机栈、本地方法栈、程序计数器线程共享:堆空间、方法区(非堆)对JVM不太了解的朋友,可以看看我的这系列文章1、Java虚拟机栈:.

2020-09-02 11:09:49 12452 2

原创 spring-boot邮件发送功能演示(163邮箱与QQ邮箱互发)

背景:使用 Spring Boot 发送邮件,演示的邮箱为 163邮箱与QQ邮箱,两者可以实现互发邮件。问题:自己可以实现一下 QQ邮箱 发 QQ邮箱,163发163,是什么样的。演示 :163 邮箱向 QQ 邮箱发送邮件,两者的原理是一样的,原理如下图:一、准备邮箱阶段:1、登陆163邮箱,然后开启 pop 协议。2、发送短信开启 POP;3、复制授权密码;4、你若要是使用 QQ邮箱作为主机发送邮件的话,就得去开启 QQ 邮箱的相关协议。二、编码测试阶段:1、先引入spring

2020-09-30 11:34:23 10297

原创 本地和服务器上项目注册验证码出现中文乱码问题

首先注册时验证码出现乱码有两种情况:一是在 windows 上测试时;二是在 Linux 上部署时;出现验证码中文乱码的原因:在代码层面明确指定了使用哪一种字体(比如:宋体)但是运行环境中,却没有对应的字体库存在。比如说:在 Linux 上没有宋体的字体库,但是你的项目又是明确说明是要使用到宋体的字体库的。你不知道什么是字体库也没事,请继续往下看.一、windows 上出现注册时验证码乱码快速说一下这种情况,首先在windows 上出现这种情况还是挺少见的,因为 windows 系统默认是有所有字

2020-09-29 16:03:28 942

原创 Linux上Redis使用可视化工具RedisDesktopManager远程连接不上

错误截图(背景:在本地使用可视化工具Redis Desktop Manager远程连接Linux服务器上的 Redis无法连接,非Docker容器中)连接失败原因:你的 Redis 没有设置连接的密码。只需要设置一个连接客服端的密码即可解决。修改配置文件常用命令: vim properties_name # 打开指定文件 i 或 a 键 # 进入写模式 ESC 键 # 退出写模式 :wq

2020-09-25 23:47:59 13125 10

原创 MySQL时区问题Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Con

先看 IDEA 报错,这个问题是 Mysql 数据库的时区和系统的不一致 导致的:(您要是不是以下报错就可以不看下面了)背景介绍:今天一个小伙伴问我为什么她 spring boot 整合 Mybaits 检查了 持久层、配置文件、数据库、mybatis 依赖都没有问题,一涉及到操作数据库就一直报这个时区的错误,还说 JDBC 和数据源有问题,于是我就演示一下她的错误,也算是一种记录!毕竟以前我也遇到过这个问题:解决:这是 MySQL 高版本数据库配置的时区与你系统的时区不一致所致,只需要把两者的时区设

2020-09-25 12:50:51 2442 2

原创 Linux防火墙关闭.开启.端口放行命令

使用阿里云 CentOS 7 演示:1、暴力临时关闭所有端口(临时:重启服务器就不会生效,会打开防火墙): 不推荐service firewalld stop 或 systemctl stop firewalld # 临时关闭防火墙(所有端口)service firewalld status 或 systemctl status firewalld # 查看防火墙运行的信息firewall-cmd --state # 查看防火墙是否运行中2、防火墙放行指定端口命令: 推

2020-09-24 09:14:46 6980 6

原创 Linux上tomcat访问不到项目和关闭防火墙

背景:今天突然遇到一个问题,就是我的项目在外网访问不了,直接访问 tomcat 的首页也访问不到了。这台服务器没有使用 docker 容器 tomcat 镜像,就是直接安装的 tomcat 。我的解决办法:1、关闭服务器防火墙,最好只允许 8080 端口或者 80 端口 访问;2、查看一下 tomcat 容器是否是运行状态;假如是的话,就强制性关闭这个进程;3、再使用命令 ./shutdown.sh关闭 tomcat ;之后再开启 tomcat 进程 命令 ./startup.sh;4、查看通过什

2020-09-23 10:45:39 12225 6

原创 Linux +CentOS安装docker下载镜像开启容器等操作详细教程

其实 Linux 安装 docker 是很简单的,几乎都是傻瓜式安装了。所以第一次安装 docker 也不要慌张。今天准备在新的一台服务器上安装 docker,服务器是阿里云的CenOS7,当然安装这也跟版本几乎没关系。记录如下:让我们开始吧!步骤:1、先使用远程连接工具连接上我们的服务器,我使用的是 Xshell 6,这款工具还是值得推荐的。安装 Xshell 远程连接工具;2、使用命令 uname -r查看当前服务器 CentOS 系统的内核版本,版本要高于 3.10 才可以安装使用 do

2020-09-22 14:45:05 11319

原创 SpringBoot配置文件、静态资源不同文件目录加载优先级

1、Spring Boot 启动会扫描以下位置的 application.properties或者 application.yml/yaml 文件作为 Spring Boot 的默认配置文件(1)当前项目下的 config 文件夹中;(2)当前项目路径的根目录下;(3)resource资源文件下的 config 文件夹中;(4)resource资源文件下(项目默认创建的配置文件)。启动 Spring Boot 项目扫描这四个位置的配置文件的顺序优先级为:优先级 1:当前项目下的 config.

2020-09-20 13:01:17 2438 4

原创 个人浅显理解 Redis 的简单总结回顾-01篇

首先先说一下,这是一篇我学习 Redis 之后的总结。其中的知识部分知识来源于享学课堂。其中还有一些常见面试题。Redis安装:阿里云CetenOS7(Linux)服务器Redis下载、安装、配置、测试教程,见这篇文章;Windows系统下载安装Redis教程,见这篇文章;阿里云服务器配上Redis缓存到底有多快?8.5万/S 分享测试方法,见这篇文章;免费下载安装redis-desktop-manager可视化工具,见这篇文章;非关系型数据库 Redis 基础学习总结分享,见这篇文章。一、.

2020-09-18 20:33:41 529

原创 CSDN总排名是什么时候更新一次的

有一天我突然注意到 CSDN 的个人总排名,然后就留意了一下它是什么时候更新一次的于是我默默的观察了两周(当前时间2020年9月),大概是知道了更新的规律。所以就分享给大家。2020年当前CSDN 总排名更新规律:每周二更新一次总排名的数据之前(大概在18年19年)CSDN 更新的时间是很短的,不像现在是一周更新一次,我估计是,更新太频繁了会出很多问题,之前有很多博主都再说这个排名问题有很多 bug ,现在用户也多了,要是实时的更新,估计他们的数据库也受不了,数据及时的刷新到缓存,不断地请求回数据库.

2020-09-15 10:59:40 2114 4

原创 Spring IOC AOP常见的面试题及概念

本篇部分内容来源于网络,加上个人总结归纳,另外加上一些自己的见解,于是本篇文章诞生。感谢部分内容的提供者。1、 Spring的 IOC和AOP机制 ?(1)我们是在使用 Spring框架的过程中,其实就是为了使用 IOC(控制反转)、依赖注入(DI与IOC一样)和AOP(面向切面编程),这两个也是 Spring 的灵魂。(2)主要用到的设计模式有工厂模式和代理模式IOC就是典型的工厂模式,AOP就是典型的代理模式的体现。代理模式是常用的Java设计模式,他的特征是代理类与委托类有同样的接口,代理

2020-09-12 20:56:49 8802

原创 新版IDEA2020.2.1创建Java web工程时找不到Java Enterprise

今天有一个同学问我,他的IDEA 更新之后就创建不了Java web 工程了,找不到 Java Enterprise 也就创建不了web项目于是我就写了这篇文章,希望可以帮到有这个困惑的小伙伴,

2020-09-11 10:19:15 24118 25

原创 演示提交任务方法execute()、submit()的区别

向线程池提交任务的两个方法 execute()、submit() 的区别,我总结的主要有四点(1)申明位置不同:execute() 方法定义在 Executor 接口中,submit() 方法定义在 ExecutorService 接口中;   ExecutorService 接口继承了 Executor 接口。(2)可传参数不同: execute() 方法参数只能传入 Runnable 接口;submit() 方法有三个重载的方法;public interface ExecutorServ.

2020-09-08 11:36:00 10807 6

原创 IDEA Plugins中 搜索插件时找不到任何插件信息

1、IDEA 搜索插件找不到任何信息原因是:IDEA 有一套网络安全机制,检测到你的网络可能存在安全问题,所以就不去连接,这也是为什么在不同的时间和地方会出现有时加载不出来插件信息。解决方法有很多种,我这里只是为了记录一下,所以就记录了一种最快捷的方法2、此方法不用重启 IDEA 就可以,只需要添加一个 IDEA 下载插件的官方地址即可3、2020.1.1 版 IDEA演示:(1)打开 HTTP Proxy Settings ;(2)打开 Check connnection ;(3)添加这.

2020-09-07 20:38:28 5917 11

原创 Java中提升锁性能及锁的优化注意事项

一、减少锁持有时间对于使用锁进行并发控制的应用程序来说,如果单个线程特有锁的时间过长,会导致锁的竞争更加激烈,会影响系统的性能。在程序中需要尽可能减少线程对锁的持有时间,如下面伪代码:public synchronized void syncMethod() { otherCode1(); //不需要进行同步加锁的方法,但是它需要的执行时间很长 mutexMethod(); //需要进行同步加锁的方法 other

2020-09-02 17:37:36 12545 8

原创 Java获取CPU数量及线程池怎样设置最大线程数量公式

Java代码:System.out.println(Runtime.getRuntime().availableProcessors()); //输出本机CPU的数量,是一个数字线程池设置最大线程数量公式:线程池大小 = CPU的数量 × 目标CPU的使用率 × (1+等待时间与计算时间的比)有用点个关注,手留余香! ???? ???? ????...

2020-09-01 13:07:22 11397 6

空空如也

空空如也

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

TA关注的人

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