自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 简单两步,用Java实现网络在线聊天室

Echat在线聊天室一款轻量级的基于SpringBoot + WebSocket的在线聊天室项目,在MccreeFei的聊天室基础上,将其升级为SpringBoot版本,去掉了JSP文件,去掉了xml编写的sql语句,使用thymeleaf以及注解的形式,更便于维护和使用。本文不涉及项目技术实现,感兴趣的话可以去查看源码。项目链接:https://github.com/Cool-CoCoder/Echat-springboot,编码不易,点个star再走吧~文章目录Echat在线聊天室一、项目展示

2021-01-12 11:57:47 735

原创 数据结构思维导图

2021-06-22 19:42:16 111

原创 SpringBoot搭建在线聊天室

Echat-SpringBoot一款轻量级的基于SpringBoot + WebSocket的在线聊天室项目,在MccreeFei的聊天室基础上,将其升级为SpringBoot版本,去掉了JSP文件,去掉了xml编写的sql语句,使用thymeleaf以及注解的形式,更便于维护和使用。项目展示使用下载并安装mysql 8.x,执行sql文件,在yml中配置数据库信息,启动项目即可使用。启动后访问本地8080端口即可,如果有SSL证书需求请自行配置。== 项目地址 ==Echat-Spri

2021-06-12 12:18:00 1515

原创 可视化编程|数据可视化基础思维导图

2021-06-06 20:10:57 251

原创 带你逐行阅读经典Class字节码指令

首先阅读字节码指令前必须知道两个重要概念操作数栈:可理解为java虚拟机栈中的一个用于计算的临时数据存储区。局部变量表:(Local Variable Table)是一组变量值存储空间,用于存放方法参数和方法内部定义的局部变量。在IDEA中,可以查看局部变量表,下图中,main方法有两个变量,args和a。字节码指令,有一篇很好的博客:Java字节码指令收集大全案例1.定义一个局部变量bipush 10 // 将10入栈istore_1 // 将栈顶引用类型值保存到局部变量1中

2021-01-10 17:26:45 150 1

原创 带你阅读class文件,了解访问标志,类索引、父类索引与接口索引集合,字段表、方法表、属性表

读class文件是个漫长的过程,但阅读并不需要你手写二进制代码那么恐怖,只是重在理解,能够更好的理解虚拟机执行引擎,也很好的提升java基础。访问标志class文件常量池之后,继而是访问标志,即这个类的public、final、interface、abstract等访问信息。(下表不全)例如下图中,橙色两个字节就是访问标志,代表0x0021,表示ACC_PUBLIC,ACC_SUPER类索引与父类索引访问标志结束以后,类索引和父类索引分别有两个字节,一个指向当前类名,一个指向父类。绿色代.

2021-01-06 14:43:34 114 1

原创 带你阅读class文件,认识class文件中的常量池

Java语言中,常量池位于方法区,用于存放编译期生成的各种字面量和符号引用。可以比喻为class文件的资源仓库。编写一段java代码找到class文件,用sublime打开,我们看到了真实的字节码文件,字节码文件中每两位为一个字节(16进制)其中前8个字节是主副版本号,说明是class文件以及jdk版本。接着两个字节就代表常量池容量,转换后是40,表示有39个常量,索引为1~39打开IDEA使用jclasslib查看,发现无误如果要自行解析,需要对照数据类型表以及结构表。例如0a对应

2021-01-04 17:58:12 112

原创 DBMS中死锁如何预防?wait-dieh和wound-wait讲解

尽管数据库在死锁问题上普遍采用检测和解除的方法处理死锁,而不是预防。对DBMS预防死锁、活锁的方法还是有必要学习的。三种主要策略:一次性封锁(类似于静态资源分配,操作系统知识)每个事务必须一次将所有要用的数据加锁,否则不能继续执行。顺序封锁(请求序列,破坏循环等待条件,操作系统知识)预先为数据对象规定一个封锁顺序,所有事务按照顺序进行封锁。以上两种方法都不适用,第一种效率很低,第二种执行困难。第三种方法,也是比较难理解的一种方法:时间戳(这个按照书面语挺难理解的,下面是我转

2020-12-12 13:59:53 2082

原创 IDEA 2020.3 在源码阅读方面的一个巨大改进

本人一直是IDEA用户,特别喜欢它的设计和各种人性化功能。这次更新体验真的很不错。本来读源码是个头疼的事情,不仅代码复杂,注释还是全英文的,只能用谷歌翻译辅助阅读,但源码的注释总是有一个个特殊符号,标签等等,又给我们无形地增加了难度,例如*,<p>,@等等符号,我们在阅读或者复制原文的的时候都会有一些障碍。最新版的IDEA简直太舒服了,源码的注释全部解析成了更好的形式。如下图:注释的*号被替换了,标签也解析成了对应的段落,文件链接变成了更友好的高亮模式,鼠标放上去会有下划线提示跳转。

2020-12-03 22:44:02 312

原创 this、static、final关键字与四大修饰符常见盲区有哪些?

看了一下其他的博客,关于这个知识点列举的很详细,但大部分看起来还都是初学者,只是把一些概念用法罗列上去。下面我也总结了一些常见知识点,以便大家写程序或者做面试题、考试题的时候少走一些弯路。this关键字不能在static方法中使用(static是跟随类一起加载的,而this指向实例化对象的某个变量或方法,前提是被实例化,所以this作用域与static不同,也就不能使用)final变量如果是基本类型则初始化后不可以改变,但如果是引用类型,引用类的值可以改变(不要以为final后就完全不可变了)

2020-11-19 17:59:35 63

原创 如何通过Docker部署mysql并设置配置文件?

由于一些博客发布时间已久,部分配置步骤有了变动,为了减少一些新人配置mysql的时间,我想在这里做一个教程,本博文内容是基于docker安装最新一代的mysql(8.0.22版本)并配置文件。建议记住一个自己会配置的稳定版本(新版本会有新需求,如果没必要的话会增加很多劳动成本)mysql8,或者高版本mysql,对配置有很多新的规范和要求,修改了很多的默认属性,例如group by的条件做了变动,再比如要求设置TimeZone这样的信息。下面进入正题,linux环境下基于docker部署并配置my

2020-11-03 14:15:46 3472

原创 如何在linux和windows下的配置MySQL8.0?

粘贴一个自用的。windows下 my.ini的配置或linux下 my.cnf的配置[mysqld]# 设置3306端口port=3306# 自定义设置mysql的安装目录,即解压mysql压缩包的目录basedir=C:\MySQL\mysql-8.0.20-winx64# 自定义设置mysql数据库的数据存放目录datadir=C:\MySQL\data# 允许最大连接数max_connections=200# 允许连接失败的次数,这是为了防止有人从该主机试图攻击数据库系

2020-10-29 21:39:08 64

原创 Java命令行运行带包名的class文件,解决找不到或无法加载主类问题

今天在做练习时,没有使用IDEA环境,通过原始命令运行class文件,发现了带包名文件执行的问题。会报错找不到或无法加载主类。用命令行执行不带包名的class文件,使用以下命令即可java XXX(class文件名)执行带包名的class文件需要注意一点,除了java指令要添加包名java com.alibaba.XXX(class文件名)解决这个错误,需要把当前路径转换为包之外的路径。这里有二级包名,使用两次 cd ..到包以外再执行,发现执行成功!(后面的数字是main需要的变量,.

2020-10-28 20:33:10 767 1

原创 保姆级教学Windows远程连接云服务器Ubuntu18.04,以及安装Gnome

1. 云服务器ubuntu18.04 安装可视化界面与远程连接博客时间 : 2020/10/14很抱歉需要拿一部分篇幅出来说一些看似无关的话,但如果是在这里踩了很多坑的同学可能会有同感!话可能有点难听,但我必须要说,很多博客质量很低,博主很不负责,代码截图胡乱一放,且不说代码和文字混在一起乱七八糟,连指令的目的都不讲述,胡乱堆砌完就发布了,像我刚接触的时候,仔细地照着他们的博客流程走了一遍,失败,又走一遍,失败,换其他的博客,继续失败,这对学习者的时间是一个极大的浪费,也很影响心情。很多博客推荐下载

2020-10-14 12:41:15 278

原创 操作系统系统笔记整理

操作系统前言本篇文章的内容结合了哈工大李治军老师操作系统课程,王道考研操作系统的资料以及学习了B站CodeSheep的一次知识梳理,以及为了便于理解学习,增加了个人的一些解释。总之,对于开发人员来说,操作系统需要下四个方面进行学习:进程/线程;并发/锁;内存管理与调度;I/O原理,本文也将围绕这几点逐渐深入。一、常用术语总结名词概念PCB进程控制块(PCB Process Control Block),系统中存放、管理和控制进程信息的数据结构称为TCB线程控制块

2020-09-26 13:37:27 19460 10

原创 Java多线程进阶(十四)—— J.U.C之atomic框架:AtomicReference

传送门Java多线程进阶(十四)—— J.U.C之atomic框架:AtomicReference

2020-09-25 21:46:42 42

原创 【2020最新】ip 、子网掩码、 网关、 DNS概念梳理

ip 、子网掩码、 网关、 DNS学习计算机网络的过程中,发现有一些名字的概念虽然存在,但一直很模糊,所以课下搜集了一些资料进行梳理总结,并绘制了示意图供理解。1. 内外网ip:用cmd输入IPCONFIG 显示的是你是自己电脑的上网IP号,如果你的单位或家里只有一台电脑,这IP就是公网。如果有很多机子一起上网的(多个机子一起连到交换机上的)就是内网。公网、内网是两种internet的接入方式。内网接入方式:上网的计算机得到的ip地址是inetnet上的保留地址,保留地址有如下3种形式:10.

2020-09-18 12:15:50 1300

原创 Java8 forEach 使用

没有在CSDN找到特别好的帖子,贴一个传送门Java8 forEach 使用

2020-09-17 20:31:59 66

原创 人脸打分! 如何用Java接入百度AI人脸识别并部署到公众号?

前言主要涉及的技术 SpringBoot框架、RestTemplate、fastjson、HttpHeaders、URIBuilder整体难度并不高,并且十分有趣一、接入百度AI链接 详细内容查看官方文档 https://cloud.baidu.com/product/face获取AccessToken接口public interface BaiDuAccessTokenService { /** * 获取权限token * @re

2020-09-15 22:01:18 233

原创 玩转JSONObject、JSONString、JSONArray、JavaBean的相互转换

导入依赖<!-- 导入fastjson处理json--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.73</version> </dependency> fastjson 我们在使用该以来的时候,主要使用J

2020-09-13 09:50:20 394

原创 Java数据类型及变量的新理解

Java数据类型及变量的新理解在刚接触java时,对这些只有模糊的概念,虽然不影响使用,但一定会限制你的上限,当回过头学习JVM的时候,发现基础的重要性,这里把阅读的几篇优秀博客,和个人笔记整合在了一起,简短、易懂,希望阅读后能有所收获,欢迎补充。要做优秀的程序员,一定不要做API调用员。数据类型Java的数据类型分为两大类:-基本数据类型:包括 整数、浮点数、字符、布尔。-引用数据类型:包括 类、数组、接口。基本数据类型变量变量:常量是固定不变的数据,那么在程序中可以变化的量称为

2020-09-10 16:31:04 96

原创 超详细! Docker 安装Tomcat 访问首页报错404 解决方案

为了保证时效性,我使用的是最新的tomcat:9.0.37,阿里云的镜像加速器,没有配置的推荐去配置,下面是链接,下载速度提升了数十倍不止。https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors需要先注册,开通服务等具体步骤可以参考其他博客。进入正题我知道最开始调试的时候可能要重复很多遍才能成功,指令也敲到想吐,所以我把所有需要的指令都提供给各位了,复制粘贴即可,可以多次调试。下载最新tomcat,已下载的可以跳过。docker

2020-08-21 23:46:24 217

原创 【最新】CentOS-7命令ip addr不显示ip的解决方案

第一次安装成功后,输入命令:ip addr但是发现不显示ip地址。然后我看了很多博客,解决方法大致都相同,输入指令: vi /etc/sysconfig/network-scripts/ifcfg-ens33但我却找不到ens33的文件,所以我总结了一套更灵活的,对新手友好的方案。第一步打开文件夹输入指令cd /etc/sysconfig/network-scripts/第二步展开文件列表打开文件夹后输入指令ls得到这样的结果,可以看到我电脑上并没有cifcfg-ens33

2020-08-21 13:16:41 652

原创 thymeleaf传值的bug【th:replace】和【th:fragment】

这个bug调了一段时间,一直怀疑是自己写错了,后来才知道是th:replace在传值的时候,只在第一个传递,后面的th:replace不能传递值。代码大概是这样的<div th:replace="commons/bar :: topbar"></div><div th:include="commons/bar :: sidebar(active='emps')"></div>结果后端怎么都拿不到这个active,更别提还需要这个值进行判断,我就尝试了

2020-08-19 22:50:12 984 2

原创 如何对IDEA2020进行全局编码以及properties编码设置?

编码问题事小,但有时候调整起来还是有点烦人。下面说一下IDEA全局编码设置以及properties文件的编码设置。setting中设置只改变当前的project,下一次创建仍需要手动修改,比较麻烦,相对于以往的IDEA版本,删除了Other Setting的选项,选择New Projects Settings中如图的选项即可。搜索file encoding来到对应界面,按如下设置即可。...

2020-08-18 16:16:11 1536

原创 MyBatis入门及深入完整版

文章目录Mybatis1.IDEA2020的问题2.xml配置CRUD(增删改查)IUserDao.xmlSqlMapConfig.xml3.xml配置3.1优化config配置3.2类型别名4. environment5.映射器6.xml映射文件6.1select元素的属性6.2问题7.日志工厂log4j8. 注解的CRUD8.1 字符串替换8.2 @param9.Lombok10.生命周期10.1 SqlSessionFactoryBuilder10.2 SqlSessionFactory10.3 Sq

2020-08-04 16:37:51 176

原创 Maven,配置文件\修改本地仓库位置\settings.xml的配置\第一次执行maven操作\Could not resolve dependencies

文章目录配置文件修改本地仓库位置pom配置settings.xml配置执行maven操作(有项目目录)“Failed to execute goal on project taotao_manage_web: Could not resolve dependencies ”配置文件下载maven后,解压到一个没用空格和中文的文件夹,这一点毋庸置疑,接着配置环境变量win + Q搜索环境变量配置一个M2_HOME,或者MAVEN_HOME,复制解压地址(不是bin目录)在用户变量或者系统变量中配置

2020-07-31 10:41:51 397

原创 直接导入图片src,使用JSP编写简单的图片验证码

效果<%@ page import="java.awt.*" %><%@ page import="java.util.Random" %><%@ page import="java.awt.image.BufferedImage" %><%@ page import="javax.imageio.ImageIO" %><%@ page contentType="image/jpeg;charset=UTF-8" language="java

2020-07-29 10:39:09 214 1

原创 jquery ajax返回值result接收解析,以及javascript与jquery传递json格式/多个数据的方法,以及jquery,js post方法后,sendRedirect不跳转

我们将input传递给服务器,除了使用form表单的post,还可以使用js或jquery1.js传递json格式数据传递一个参数,我们用xhr.send("tel="+tel)这样的格式,但多个参数,就需要添加&,但需要注意,这个&要添加在下一个变量名的双引号中,而不是在外面。xmlHttpRequsts.open("post","/login",true); //设置post方式的头信息 xmlHttpRequsts.setRequ

2020-07-27 15:33:56 463

原创 IDEA 上传更新的代码到码云上

这是一个传送门IDEA 上传更新的代码到码云上

2020-07-26 22:17:52 369

原创 【JDBC】关于apache的DbUtils的常用方法

DbUtils下载地址:apache-DbUtilsDbUtils库是一小类,旨在简化 JDBC的使用。JDBC资源清理代码是普通的,容易出错的工作,因此这些类从代码中抽象出了所有清理任务,从而使您首先有了真正想对JDBC进行的工作:查询和更新数据。使用DbUtils的一些优点是:没有资源泄漏的可能性。更加清晰的持久性代码。自动从ResultSets填充JavaBean属性。核心接口1.DbUtils举例提供一些close方法static void close(Connection

2020-07-26 14:49:17 78

原创 一步步教你从Mysql中读取图片并在网页显示

1.首先图片的src昨天研究了很久,看了很多博客,发现真的能实现的很少,我也不知道怎么那么多搬运工,看了实在浪费时间,除了有一篇提醒了我,图片的src填Servlet的地址,然后再Servlet中输出二进制数据,那样图片就能显示了。操作起来也十分方便。2.示例<img class="UserCover" src="/test">这个/test就是我们注解的地址@WebServlet("/test")我们详细看代码怎么写3.获取和数据库的连接这里不赘述,各自方法不同4. 构造

2020-07-21 09:47:13 2851

原创 如何通过表单提交图片并存入Mysql?

首先使用的是Controller ——》Service——》Repository这样一个框架,也可以简化,核心不复杂,然后我们是使用的IDEA进行开发1. 首先创建一个提交表单<form action="...." method="post" enctype="multipart/form-data"><input type="file" >注意这里method和enctype一定要按这样的格式写,之后设置input type为file2.介绍我们的核心组件在web-

2020-07-21 09:09:38 470

原创 简单,向MySql中存入图片

学习JavaWeb的时候,接触到了mysql,想到向表中存放图片,那今后照片管理就可以用sql语句来执行了,所以尝试了一下,还尝试了蛮久的。1.效果不是存了个字符串哈,可以看左边的数据类型。2. 获取blob数据我们创建一个方法使用FileInputStream读取图片,还有ByteArrayOutputStream将读取的数据写入byte[]数组,然后public static byte[] getImgStr(String path) throws IOException {

2020-07-10 09:52:15 8264 2

原创 Java线程同步安全问题的三种解决方案

1.synchronized同步代码块注意:在任何时候,最多允许一个线程拥有同步锁,谁拿到锁就进入代码块,其他的线程只能在外等着(BLOCKED)。synchronized(同步锁){需要同步操作的代码}1.1对象锁synchronized(this|object) {}1.2类锁synchronized(类.class) {}2.synchronized方法public synchronized void method(){可能会产生线程安全问题的代码}3.lock锁

2020-07-06 11:00:49 162

原创 [Java数据结构][10]Java二叉树

[Java数据结构][10]二叉树前、中、后序遍历(递归)的Java代码实现文章目录[Java数据结构][10]二叉树前、中、后序遍历(递归)的Java代码实现1.前序遍历2.中序遍历3.后序遍历1.前序遍历先输出根节点,然后输出左节点,右节点,代码思路很简单 /** * 前序遍历方法 */ public void preOrder() { System.out.println(this);//先输出父节点 //向左子树递归

2020-07-05 19:14:20 92

原创 [Java数据结构][9]以雇员为例的哈希表HashTable代码展开

[Java数据结构][9]以雇员为例的哈希表HashTable代码展开散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。下图就是一个简易哈希表,

2020-07-04 21:54:27 96

原创 [Java数据结构][8]八皇后问题的判定条件分析

[Java数据结构][8]八皇后问题的判定条件分析由于在博客中已经可以看到很多八皇后问题相关的java代码,例如public class Queen8 { //定义一个max表示共有多少皇后 int max = 8; int[] array = new int[max]; static int count = 0; public static void main(String[] args) { Queen8 queen8 = new Quee

2020-06-29 16:49:15 568 1

原创 [Java数据结构][7]中缀表达式转后缀表达式的Java代码实现

[Java数据结构][7]中缀表达式转后缀表达式的Java代码实现中缀表达式是一个通用的算术或逻辑公式表示方法。也就是我们人平常使用的表示方式,如2+(2+6)*5-8逆波兰式(Reverse Polish notation,RPN,或逆波兰记法),也叫后缀表达式(将运算符写在操作数之后)例如 3 + ( 4 + 5)* 6 -83 4 5 + 6 * + 8 -中缀表达式转后缀表达式方法初始化两个栈:运算符栈s1 和储存中间结果的栈s2;从左至右扫描中缀表达式;遇到操作数时,将

2020-06-29 09:17:48 277

转载 递归中使用记忆化解法,LeetCode509. 斐波那契数

斐波那契数列斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)题目示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1

2020-06-27 18:49:54 120

空空如也

空空如也

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

TA关注的人

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