- 博客(106)
- 收藏
- 关注
原创 SSM框架的实际使用流程
一、以用户登录功能为例,可以分为四步:1. 用户-登录-持久层(a) 分析需要执行的SQL语句(b) 接口与抽象方法© 配置映射2. 用户-登录-业务层(a) 创建异常(b) 接口与抽象方法© 实现业务3. 用户-登录-控制器层(a) 处理异常(b) 设计需要处理的请求请求路径:/users/login请求参数:String username, String password请求类型:POST响应结果:JsonResult<User>© 处理请求4. 用户-
2020-06-07 08:01:01
845
原创 密码加密的前世今生
如果直接将用户填写的明文密码(原始密码)存储到数据库中,当出现数据库泄密,用户的账号安全就无法保障!所以,需要将明文密码进行加密,在数据库中,实际存储的会是密文(加密后的结果),即使数据库泄密,被看到也只是密文,如果无法通过密文还原出原文(原始密码),则不会影响账号安全。比如,大名鼎鼎的CSDN就曾经出现过,数据库泄漏导致明文密码泄漏的安全事故:https://blog.csdn.net/jnqqls/article/details/7099911假设,某用户的原始密码是1234,假设使用非常简单的规
2020-06-04 19:46:01
342
原创 SpringBoot——传说中的终极框架
1. SpringBoot框架SpringBoot框架可以简单的理解为是一个“增强版的SpringMVC框架,极大程度的简化了各种配置,默认就已经集成了绝大部分常用的依赖”。2. 创建SpringBoot项目的方式创建SpringBoot的方式主要有3种:基于SpringBoot的父级项目来创建子级项目;使用开发工具的创建向导进行创建,如果使用的是Eclipse,需要安装Spring Tools Suite插件,如果使用的是Intellijia IDEA则不需要安装任何插件,可以直接创建;通过
2020-06-02 23:04:51
403
原创 记一次centos8.1环境下mysql(mariadb)的调错安装
1. find / -name mysql把查到的能删的都删了,因为之前装了很多不能用的,会互相冲突。全部删掉rm -rf /run/lock/subsys/mysqlrm -rf /etc/rc.d/init.d/mysqlrm -rf /var/lib/mysqlrm -rf /usr/bin/mysqlrm -rf /usr/share/bash-completion/completions/mysqlrm -rf /usr/share/selinux/targeted/defaul
2020-06-01 21:07:15
332
原创 Could not connect to Redis at 127.0.0.1:6379: Connection refused亲测可用
Redis连接时报错:Could not connect to Redis at 127.0.0.1:6379: Connection refusedCould not connect to Redis at 127.0.0.1:6379: Connection refused[root@rongle bin]# redis-cliCould not connect to Redis at 127.0.0.1:6379: Connection refused[root@rongle /]# redi
2020-05-31 20:06:52
328
原创 Ajax,不得不说的故事
1. 服务器的响应方式在传统模式下,服务器端向客户端的主要响应方式是:转发,或重定向。使用这种模式时,通常,服务器端会向客户端响应某个页面,而这种模式是不利于当前的互联网架构的!因为现在客户端的种类越来越多,例如:电脑上的网页客户端、Android手机APP、iOS手机APP、Android平板电脑、iOS平板电脑、其它智能设备等,不同的设备存在明显的屏幕尺寸差异,如果把同一个网页响应到不同的客户端,是极为不合适的!所以,传统的响应模式只能适用于一些简单的、没有多种客户端的应用场景,例如:不知名的小型网站
2020-05-30 22:50:32
466
2
原创 Redis在Centos 8.1环境下的安装
反正命令行不能粘贴复制,这样对着手打应该也OK第十步可能有人看不懂,进入profile文件后,G可以忽略不计,后面两行打上即可保证全盘直接运行Redis,然后:wq保存。source命令将环境配置生效。验证一下,没问题,安装完成。...
2020-05-28 22:51:15
270
原创 TCP传输相关概念,图示理解
网络层主机地址、掩码、局域网关传输层链路层网络重启,先找ARP硬件地址网络寻址自带两个地址:网络IP和硬件地址,网络IP始终不变,硬件地址迭代成下一跳地址。负载均衡7层连接另外,关于Linux安装和Xshell配置等,请查看:http://www.mashibing.com/bird.html...
2020-05-28 22:00:08
224
原创 关于MyBatis的那些事
1. MyBatis框架的作用主要作用:简化持久层开发。持久层:解决项目中的数据持久化处理的相关组件。使用MyBatis框架实现数据库编程时,只需要指定各个功能对应的抽象方法及需要执行的SQL语句即可。2. 创建MyBatis项目MyBatis项目可以是本机直接运行的,不一定需要与SpringMVC框架结合起来一起使用,所以,在创建项目时,只需要创建为jar项目即可。当项目创建出来之后,需要添加mybatis依赖:<!-- https://mvnrepository.com/arti
2020-05-28 21:19:23
353
原创 SpringMVC基础知识小结
【理解】SpringMVC框架的作用:主要解决了如何接收请求、如何给予响应的问题;【理解】SpringMVC的核心执行流程(参考流程图);【掌握】创建SpringMVC项目:配置pom.xml使得没有web.xml也不会报错,且添加spring-webmvc依赖,勾选Tomcat,创建启动入口类并重写其中的3个抽象方法,创建SpringMVC的配置类;【掌握】使用控制器处理客户端提交的请求:控制器类必须放在组件扫描的包或其子孙包中,控制器类必须添加@Controller注解,处理请求的方法之前需要.
2020-05-26 19:06:39
207
原创 Spring,真的是程序员的春天吗?续
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。关于Spring容器,还有这些补充1. 自动装配Spring可以将容器中存在的任何对象自动赋值到某个属性或参数中去!这样的机制就称之为“自动装配”!简单的说,当某个属性或参数需要值时,只要这个值是在Spring容器中,Spring就可以为它自动赋值!在需要被自动装配的属性之前添加@Autowired注解,即表示“希望Spring为该属性自动的装配值”,例如:@Controllerpub
2020-05-22 23:31:35
278
原创 对象创建的过程你真的懂吗?
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。我们一起过一下前两问:源码:class T { int m = 8;}T t = new T();汇编码:0 new #2 <T>3 dup4 invokespecial #3 <T.<init>>7 astore_18 return申请内存,在堆里面创建一个新对象。半初始化,新建对象中的m值是0。dup复制操作,因
2020-05-21 22:28:07
129
原创 Spring真的是程序员的春天吗?
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。学了两天Spring框架,没有感觉到任何便利,反而是一堆条条框框的注解把原本随心所欲的程序逻辑变得不可控了,不测试一下你甚至不知道既定的操作到底完成了没有。1. 什么是框架框架在项目中的表现就是一系列的jar包,例如Thymeleaf就是一个框架。每种框架都会解决某种特定的问题,可能是开发效率的问题,或运行效率的问题,或代码管理维护的问题等等。项目中使用框架就相当于得到了一个“毛坯房”,
2020-05-21 19:58:43
377
原创 Session Listener实现在线人数统计功能
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。这几天一直在努力实现这个功能,可是一直都有一点问题,即登出后立即登录会报错,最后用前端重定向刷新页面来解决,回顾一下。Listener端:package cn.tedu.listner;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.List;
2020-05-21 17:51:11
348
原创 传说中的拓扑排序
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。一直听很多大佬说,拓扑排序是现代计算机科学实践中的的重要排序,今天就用一道典型的例题带大家了解一下神秘的拓扑排序。拓扑排序对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topolog
2020-05-17 18:19:07
201
原创 finalize()方法的作用及用法,小案例解释
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。finalize:Java中的一个方法名Java使用finalize()方法在垃圾收集器将对象从内存中清除出去前,做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object类中定义的,因此所有的类都继承了它。子类可以重写finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
2020-05-15 09:35:31
3379
原创 一个30岁转行程序员的心路历程
前言打开今天的第二罐啤酒,对着屏幕发呆,今天天气很闷,雨是要下没下,武汉的潮气如同氤氲一样弥漫在城市的每一个角落。这是我学习Java的第三个月,从最开始的情绪激昂慢慢变得迷茫和消沉,要学的东西还有很多,学了的也都是皮毛而已,路,还有很长。我的过去我今年2月刚满30,在去年拿到年终奖的那一天,我做了一个冲动而又深思熟虑的决定,我决定离开汽车行业。从研究生毕业到现在,已经在汽车行业整整5年半,有意气风发有迷茫困惑也有消极散漫。毕业的第一份工作是在一家上市公司做项目管理员,与其说是项目管理员,不如说是翻译
2020-05-14 22:11:20
5521
11
转载 程序员的丽春院
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。今天转的一篇文章是关于python的,曾经我也很迷茫,到底是应该学python还是java,被python的花拳绣腿迷惑的神魂颠倒,后来慢慢学了java才找到了方向,不过还是要感谢python,它是我编程启蒙老师,带我走进了CS的世界。嗯,让我们来看看大牛马老师是怎么用一个故事来形容python的。一到傍晚,丽春院就忙碌起来了,灯火通明,人影攒动,正是码农们光顾的时候。python菇凉是丽春
2020-05-13 21:16:22
1351
原创 js和jq的联系和区别
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。 今天来聊聊js和jq。以上两幅图可以表明两者之间的关系,用一句说来表示就是:jq封装了DOM相关的操作,提高了兼容性,并且通过链式调用简化了js的操作,因此一切与DOM相关的操作,推荐用jq完成。下面是两者的区别:js和jquery的区别1.入口函数不同 js:window.onload = function(){内部放js} 实质就是一个事件,拥有事件的三要素,事
2020-05-11 08:34:23
2446
原创 让上下级li对齐的小技巧
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。晚上回顾jquery代码的时候发现之前的一个坑。好友分组列表的案例应该很多人做过:原本效果是这样的,因为用的是ul,li左侧对不齐,不理想。查了不少地方才找到: /* 去掉ul,li的默认左边距,必须一起去掉或者去掉ul的一样 */ ul,li{ margin: 0; padding: 0; }就OK了。不好意思,我的女友是有点多。...
2020-05-10 23:30:53
915
原创 什么? 这就是传说中的Servlet?
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。学到Servlet就真正进入了Java EE的工程阶段了,让我们一起来看看什么是Servlet,不过在这之前首先来理一下Web中各个大佬的关系。什么是服务器服务器就是一台高性能的电脑电脑上安装什么样的服务器软件,就可以称为xxx服务器举例:安装了数据库软件(mysql/Oracle…),就是数据库服务器安装了ftp服务软件,就是ftp服务器安装了邮件服务器软件,就是邮件服务器安装
2020-05-10 11:28:44
319
原创 JDBC是什么你不会没听过吧?
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。 JavaDataBaseConnectivity Java数据库连接,JDBC是sun公司提供的一套通过Java语言和数据库进行连接的相关API(Application Program Interface)为什么使用JDBC: 在工作中Java语言有可能连接多种不同的数据库,为了避免Java程序员每一种数据库都学习套新的方法,Sun公司定了一套方法的声明(JDBC),各个数据库厂商根据此接口
2020-05-10 11:07:29
360
1
原创 Visual VM可视化监视GC回收过程
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。今天又学了一招,一直在看关于JVM调优的理论知识,关于GC也听了不少了,可是一直没有形象的概念,Visual VM做到了,非常真实,来一起看看吧。1、下载Visual VM很多地方说这个软件是自带的,但是我确实没在JDK的bin里面找到,于是自己去网上下了个2.0版,也不大,分分钟...
2020-05-06 22:55:57
308
原创 验证码图片生成及点击重载功能实现
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。今天让我们来看看如何用java实现验证码图片生成,以及点击重载的功能。验证码图片的生成:1、构造静态字符串,用于随机生成验证码,用StringBuilder就OK了2、用到了java自带的awt包,使用画布画笔以及各种随机颜色将随机生成的code画上去,同时随机画上干扰线。3、...
2020-05-04 21:40:27
357
原创 自动生成javadoc文档的方法与错误修正
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。今天建立Javadoc的时候出了问题,前两个问题都找到了办法,最后一个试了半天才解决,记录下来以告后人。1.生成javadoc首先选中想要生成的项目,右键,选择Export(导出),然后在Export(导出)对话框中选择Java下的javadoc,然后下一步。到了Javadoc ...
2020-05-03 00:12:52
684
原创 终止Running状态线程的四种方式,举个栗子让你明白
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。线程本质上执行结束就会自动关闭,因此,其实在业务当中也很少出现关闭线程的操作,但是如果想要在线程running的状态下结束线程,该怎么做呢?下面提供四种方法实现:interrupt()中止阻塞状态实现下面这个程序模拟的是主线程任务完毕,同时中止t线程的场景。这个方法需要被中止线程...
2020-05-02 10:11:48
844
转载 HashTable和HashMap的区别
其实HashTable、HashMap在线程中和Vector、ArrayList的区别一样;下面就来详细说说:1.继承父类不同Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类;但二者都实现了Map接口。2.线程的安全性1. HashTable是同步(方法中使用了Synchronize)的;而HashMap是未同步(方法中缺省Synchroniz...
2020-05-01 17:49:22
351
原创 关于MySQL,这些基础知识你知道吗?
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。MySql这块的知识,语句就像是pseudocode,虽然简单容易理解,但是较为零散,今天就来回顾总结一下。数据库之前通过IO技术对数据进行增删改查 相当于自己写了一个简单版的数据库软件,只不过功能简陋效率低下,将来工作中任何一个项目都需要数据库软件,如果每个项目都自己写一遍数据库...
2020-05-01 08:44:29
506
原创 Are you happy today?快乐数
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。今天是五一长假前的最后一天,其实想想,对于有稳定工作的人来说,今年也真是爽,上半年假就像休不完一样,连leetcode的每日一题在今天都抛出了快乐数这个题,让我们一起来看看吧。202. 快乐数编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该...
2020-04-30 14:58:48
379
原创 僵尸入侵网页小游戏 JS实现 附带素材
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。现在我终于知道了为什么前几年网页小游戏如雨后春笋般层出不穷,原来是因为JS强大的网页编程功能让动态网页成为了可能,今天就来带大家实现一个僵尸入侵的页面小游戏。代码实现:<!DOCTYPE html><html> <head> <me...
2020-04-26 15:10:08
328
转载 EverythingAbout TreeSet
TreeSetTreeSet是一个有序的集合,它的作用是提供有序的Set集合。它继承了AbstractSet抽象类,实现了NavigableSet,Cloneable,Serializable接口。TreeSet是基于TreeMap实现的,TreeSet的元素支持2种排序方式:自然排序或者根据提供的Comparator进行排序。(1)TreeSet继承于AbstractSet,并且实现了N...
2020-04-26 10:11:52
206
转载 ArrayList循环遍历并删除元素时常见的陷阱
ArrayList循环遍历并删除元素的常见陷阱在工作和学习中,经常碰到删除ArrayList里面的某个元素,看似一个很简单的问题,却很容易出bug。不妨把这个问题当做一道面试题目,我想一定能难道不少的人。今天就给大家说一下在ArrayList循环遍历并删除元素的问题。首先请看下面的例子:import java.util.ArrayList;public class ArrayListRemo...
2020-04-25 20:52:19
230
原创 计数排序应该如何来写 我用Java告诉你
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。今天来聊聊桶原理的第一种排序方法,一种非基于比较的排序方法,计数排序计数排序计数排序是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法...
2020-04-22 11:07:18
173
原创 当我们在谈论HTML和CSS的时候,我们在谈什么?
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。关于HTML以及CSS的相关知识,想发表一点看法。 相较于Java而言,无论是HTML还是CSS都显得很不严谨,而且功能零散缺乏有效整合,更像是在做PPT,而且还是没有图形界面功能的PPT,实在是伤神费脑,明明鼠标拖拽可以实现的效果,偏偏用了盒子模型怎么都调不好,如果这就是前端开发的工...
2020-04-19 16:15:45
240
原创 HTTP协议,以及用Java程序在PC端无框架实现Tomcat基本功能
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。今天跟大家聊聊HTTP协议以及用Java程序在PC端无框架实现Tomcat基础功能。HTTP协议 超文本传输协议由万维网制定(w3c)是浏览器与服务器通讯的应用层协议,规定了浏览器与服务器之间的交互规则以及交互数据的格式信息等。HTTP协议对于客户端与服务端之间的交互规则有以下定...
2020-04-19 15:13:07
410
原创 浅析Arrays.sort以及Collection.sort
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。今天继续跟大家聊Java自带的两种排序方法是如何实现的。Arrays.sort打开以后,里面的方法叫做DualPivotQuickSort:不过绝不仅仅如名字所述,真正的排序过程经过了很多次对数组的判定,如下面的流程图:这些都是关键的常数阈值。根据阈值的判断,从繁到简,...
2020-04-14 08:54:44
196
原创 并发编程三大特性,针对Volatile关键字的分析及Java实例
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。今天跟大家聊聊Volatile关键字。并发编程三大特性:概念听上去很虚对不对,我们用三个实例来理解一下:1.可见性:package com.mashibing.juc.c_012_volatile_visible;import java.util.concurrent.T...
2020-04-12 18:13:12
283
原创 单指针快排和双指针快排,Java实现,附详细推导步骤
我是一个从汽车行业转行IT的项目经理,我是Edward,如想了解更多,请关注我的公众号【转行项目经理的逆袭之路】。今天想跟大家聊聊快排,快速排序是我很早就很感兴趣的一种排序,时空复杂度低,递归,有代表性,但是代码相对复杂,理解起来不那么容易,最常见的两种算法是单轴和双轴,各有优缺点,不过万变不离其宗。单轴快排package algorithm;import java.util.Array...
2020-04-11 22:22:19
886
原创 双冒号写法可以直接放进Thread()里的原因
我是一个从汽车行业转行IT的项目经理,我是Edward。今天学volatile的时候发现了一个奇怪的现象,为什么会有对象直接双冒号接方法的写法? 为什么还可以直接放到Thread()里? 要知道没有继承Runnable接口对象的方法是不能直接放到Thread()里的哟。小朋友你是否有很多问号?先放上这段令人以后的代码:package com.mashibing.juc.c_012_volati...
2020-04-10 13:58:55
875
2
原创 强大的dfs和bfs算法,各适合何种场景,以及Java实现
我是一个从汽车行业转行IT的项目经理,我是Edward。今天我们来聊一下,dfs和bfs,连着两天leetcode每日一题给到dfs,着实让我领略到了dfs查找功能的强大,那么我们先一起来看看这两道题。22. 括号生成数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例:输入:n = 3输出:[“((()))”,“(()())”,“((...
2020-04-09 12:03:35
1263
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅