- 博客(106)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 一个30岁转行程序员的心路历程终
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-09-04 00:41:37
4030
5
原创 【被抛弃的程序员】和30岁“转行程序员”Say GoodBye
这是这个系列的第四篇文,秉承程序员发文一向标题党的光荣传统我写下了这个标题,借着微醺的酒意,以及对家哥和这个世界上所有还奋战在一线的程序员同事们,说一声“辛苦了”!是你们的低调和付出才让我有时间写下这篇文。......
2022-08-14 22:57:30
746
1
原创 一个三十岁转行程序员的心路历程终续
本来我已经决定不写了,因为前文提到我终于进了一个不怎么出名的大厂,统信软件–其前身是大家可能更熟悉的deepin OS,我想在这里奉献至少三年,可惜决定权并不在我,八个月后我便被扫地出门。关于统信为什么不说是深度,因为这里已经不能称之为深度,可以称为深度的大概只有武研,也就是桌面版的一小撮人了,具体可以参考这个问题下的高赞回答https://www.zhihu.com/question/281097040,这个置顶的hualet就是桌面产线的总经理耀华总。现在的统信与其说是深度不如说是由资本拼凑出.
2022-04-26 12:43:22
930
原创 关于操作系统,那些我从来没听说过的名词
操作系统单道?中断✔多道批处理?交互✔分时,软硬实时。原语。大内核性能更高,但层级更混乱更难打理。(例子:小公司&大公司)中断: 内(trap fault abort:)外中断,CPU从用户态进入核心态的唯一途径,外中断处理过程:轮询,保护,处理,恢复系统调用:int x trap指令,访管指令。PCB,进程组织,链表和索引。进程控制:原语,关/开中断指令实现,PCB修改。进程通信:共享储存,管道通信,消息通信。线程:..
2022-02-21 22:11:47
589
原创 关于指针的一些例子
趁着做操作系统,也学学C,指针是真的绕。++b和&b+1#include <stdio.h>void foo(int b[][3]){ //++b; // b + 1*sizeof(b[0]) 故只跳过了一行将a[2][1]变成了9 &b+1; //b + 1*sizeof(b) 故跳过了所有已有值,原有值不变 b[1][1] = 9;}void main(){ int a[3][3] = {{1, 2, 3}, {4, .
2022-02-08 20:38:07
322
原创 一个30岁“转行程序员”的心路历程
故事还在继续,时间来到一年后,30岁转行程序员又转行了,现在是一名实施顾问…前言年前跳槽以后,来到了现在的公司,除去过年的十天假截止今天刚刚三个月。这是一家外企高管单飞成立的小公司,上下不到100人,主营业务是Infor的WMS二次开发及实施,副业是自主研发的OWTB(OMS,WMS,TMS,BMS)开发及实施,在业内有一定的知名度。关于工作性质这里的实施顾问是真正意义上的实施顾问,前期调研、蓝图、接口、功能,后期SIT、UAT、上线,代码别说写了,几乎看都看不到,代理产品的开发是基于特有平台和.
2021-03-20 23:52:54
2079
3
原创 初探MQ(JMS体系)
一直都想好好搬弄一下消息中间件,对于我这样培训机构出身的后端初级程序员,这一块是必须掌握而又遗漏的部分。1、MQ的流程图:可以类比JDBC的流程:也可以类比JVM:2. Destination两种形式:点对点:Queue发布订阅:Topic3、控制台ActiveMQ下载与部署。1、 下载到官网下载最新版本,有windows版本和linux版本的。http://activemq.apache.org/download.htmlwindows版本:apache-activ.
2021-01-02 21:19:12
412
原创 自己写一个FutureTask类,如何?
多线程的应用场景:第二种方式明显更好。两种不同的写法:1、单线程:2、多线程:可以改写成:效果:手写一个FutureTask类代替JDK的上代码:import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.locks.LockSupport;/** * @author Edward * @version 1.0 * @date 2020/11/24 21:48 * 目标
2020-11-24 23:59:40
181
原创 javascript:void(0),你代表着什么?
javascript:void(0)的含义void关键字介绍首先,void关键字是javascript当中非常重要的关键字,该操作符指定要计算或运行一个表达式,但是不返回值。语法格式:void func()void(func())实例1当点击超级链接时,什么都不发生 <!-- 1.当用户链接时,void(0)计算为0,用户点击不会发生任何效果 --> <a href="javascript:void(0);">单击此处什么都不会发生</a>&
2020-09-12 08:54:19
353
原创 MiniUI测试项目在IDEA上的部署
Javaweb项目在IDEA上的部署首先吐槽一下,之前一直在用eclipse部署web项目,学习maven/springmvc/springboot项目时才换到用IDEA,发现IDEA部署web项目真是坑很多,抛砖引玉,建议大家先看看这一篇https://blog.csdn.net/zhuralll112/article/details/86238882,理解基本的javaweb项目部署流程,再来部署我们的MiniUI测试项目。另外,为什么要学习miniUI也是个大坑,作为一个学习java的后端人员,本
2020-08-16 20:17:08
920
原创 聊聊Jquery中的各种选择器
Jquery中的各种选择器1. 基础选择器 (用法和css中一样)id选择器 $("#id")标签名选择器 $(“div”)class选择器 $(".class")分组选择器 $("#id,div,.class")任意元素选择器 $("*")2. 层级选择器$(“div span”) 匹配div里面所有的span(包括所有后代span)$(“div>span”) 匹配div里面所有的span子元素$(“div+span”) 匹配div后面的span$(“
2020-08-15 08:40:58
275
原创 Hibernate @JoinColumn 注解的用法
1、一对一单项外键(比如实体People和实体IDCard,一个人对应一个身份证号)@OneToOne(cascade=CAscadeType.ALL)全级联关系@JoinColumn(name=“pid”,unique=true)被控类的外键写到主控类中,且唯一注意:保存时应该先保存主表对象,再保存外键对象,这是因为数据库外键约束的原因。删除时则相反,应该先删除该人的身份证号,再删除该人,或者将该人和身份证号一起删除。2、一对一双向外键主控方配置不变被控方添加@OneToOne(map
2020-08-08 17:14:42
3067
原创 Hibernate一款功能强大的重量级ORM
Hibernate介绍Hibernate,让程序员更方便访问数据库,一款全ORM的框架,通过操作对象来操作数据库…Hibernate入坑2.1 准备数据库2.2 实体类2.3 元数据文件2.4 主配置文件2.5 测试CRUD2.5.1 get2.5.2 save2.5.3 update2.5.4 delete一级缓存从获取单个用户可以看出,调用session的get方法会打印一次sql语句,也就是执行一次查询,那如果调用两次呢?从控制台可以看出其实是只打印出
2020-08-06 20:51:20
232
原创 AOP概念续及日志记录的实现
1. 添加日志思路分析 1. 日志:是用于记录当前用户/系统进行了哪些操作的,会将操作信息 保存起来在本项目中,日志管理模块中有添加日志的功能,不是由用户添加的,而是由程序来添加的。原理为:程序对当前用户进行的所有操作都会记录(将日志数据保存到数据库中)本项目中日志添加功能分析:2. AOP:aop:Aspect oriented programming 面向切面编程,是一种编程思想aop的好处:将核心业务代码和横切关注点解耦,提高了项目的维护性以及扩展性aop的
2020-07-31 10:34:34
207
原创 分页查询的原理及PageHelper插件的使用
1. 日志管理业务层开发1. 分页分页原理分页在使用时的分类物理分页:在操作数据库中的表时,sql语句中使用了limit ?,?,此时sql语句返回的结果是分页结果逻辑分页:依赖程序的代码,其原理为:通过sql语句将数据库表中的所有数据都查询出,之后将数据保存在内存中,最终要显示的数据若涉及到分页,到内存中去查找数据返回.通过以上原理得出,逻辑分页在对数据库表的操作上没有limit物理分页和逻辑分页的区别?数据库压力:物理分页对数据库查询操作次数多,数据库压力
2020-07-31 10:02:56
892
原创 一个30岁转行程序员的心路历程续
又来给大家讲故事,这一篇应该算是续吧,时间点是两个月以后,培训班的课程还有5天结束。前言上一篇是的写作时间5月中旬,课程过半,人很彷徨,要学的很多,会的很少,前前后后也讲了很多过去的事,这里是传送门:https://blog.csdn.net/EdwardWH/article/details/106128908关于培训班到了这个时候,也差不多可以给培训班盖棺定论了,具体名称不表,以免有炒作嫌疑。作为Java基础培训来说,打分的话,75分,中规中矩。不像很多网文里描述的那么坑,但是也谈不上特别良.
2020-07-30 22:48:13
1715
原创 axios中post请求传参问题
1. post请求传参失败问题原因:axios发送post请求的content-Type的值是application/json,参数在请求体中以json对象的形式传递,而springMvc框架接受post请求的参数的类型必须要求是键值对的形式解决办法:axios文档中针对该问题提出了2种解决方法:使用浏览器提供的URLSearchParams的Api:请求时使用 application/x-www-form-urlencoded axios 会默认序列化 JavaScr
2020-07-29 22:31:01
5884
原创 Shiro框架基本知识及应用
1. Shiro 基本知识1. 目前市面主流的安全框架:shiro:轻量级的,使用很方便,灵活,是apache提供的,在任何框架的SpringSecurity:是Spring家族的一部分,很多项目中会使用spring全家桶,相对与shiro来说,springSecurity更重量级,必须要求spring环境;相对shiro而言,功能更强大2. 什么是Shiro?Shiro是apache旗下一个开源安全框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证、权限授权、加密、会话管理等功
2020-07-29 21:43:16
7551
1
原创 Mybatis的关联集合映射
1. 关联和集合:public class Emp{ private Integer id; private String name; private Dept dept; //关联 private List<Task> tasks; //Task类表示工作类 }2. 关联映射作用:关联映射解决的就是将查询出的数据映射到关联对象中分类:关联嵌套select查询在本地创建staff表(id,name,dept_id),
2020-07-29 21:07:34
1237
原创 IDEA解决卡顿问题终极方案
困扰了我整整三天的问题:场景复现:IDEA弹出更新选项,果断点了更新,噩梦从此开始。原本开多个项目也完全不卡的IDEA开一个项目居然卡得动弹不得,不得不重启甚至关机。Try:很多方法都试了,比如修改配置文件Xms,Xmx,清理内存,清理磁盘等等等,甚至重装都没办法解决!!!Settle:方法很直接也很简单:(是在搜索为什么IDEA一直indexing的时候找到的)File -> invalidate Caches/Restart 清空内存并重启 解决!后记经过5min的
2020-07-27 19:00:10
2610
转载 一文说透JDK Proxy动态代理!
追溯学一个技术,要知道技术因何而产生,才能有学下去的目标和动力,才能更好的理解首先,要明确为什么要存在代理呢?存在一个常见的需求:怎样在不修改类A代码的情况下,在调用类A的方法时进行一些功能的附加与增强呢?先不考虑什么代理不代理的,我们设计一个简单的实现方案:新创建一个类B,类B组合类A,在类B中创建一个方法b,方法b中调用类A中的方法a,在调用前和调用后都可以添加一些自定义的附加与增强代码。 当有需求需要调用类A的方法a并且想要添加一个附加功能时,就去调用类B的方法b即可实现上述需求;下面为了
2020-07-17 08:51:52
456
1
原创 分布式锁and动物园管理员
为什么需要锁?常用的分布式锁实现技术DB以及Redisson在Java实现分布式锁动物园管理员简介依赖及第一代实现缺点改进后的逻辑动物园管理员的典型应用场景
2020-07-14 08:38:19
148
原创 IDEA创建并配置Springboot项目
创建springboot项目并启动创建项目之后按照提示一致下一步,需要注意的地方有:注意点:idea窗口只能显示一个项目(project),可以通过本窗口重新打开某项目,则显示新打开的项目打开新项目可以在本窗口显示,也可以在新窗口显示(再打开一个idea窗口)若想删除项目,去磁盘目录下删除项目,在idea窗口中没有删除选项2. springboot项目添加了mysql依赖,在本项目中,使用yml配置文件:在yml文件中配置数据库连接信息:idea的搜索引擎很强大,根
2020-07-11 22:23:38
535
原创 数据库高级知识点汇总
数据库1.事务 (1)什么是事务? 为了完成某个业务而对数据库进行一系列操作,这些操作要么全部成功,要么全部失败。 (2)事务的四个特性原子性:事务包含的这一系列操作,要么全部成功,要么全部失败。一致性:事务完成之后,不会将非法的数据写入数据库。隔离性:多个事务可以在一定程度上并发执行。持久性:事务完成之后,数据要永久保存(一般会保存在硬盘上)。 (3)隔离级别读未提交:一个事务可以读取到另外一个事务尚未提交的数据。该隔离级别可能会产生“脏读”、“不可重复读取”和
2020-07-08 09:19:11
2588
1
原创 SpringMVC实现文件下载的原理及实现
原理基于HTTP1.1协议RFC2616的19.5.1:只要遵守协议要求,SpringMVC、Servlet甚至手写WebServer都可以实现下载功能。流程如下:实现1、搭建好SpringMVC环境2、创建Controllerimport java.awt.image.BufferedImage;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.IOException;import j
2020-07-05 12:53:53
594
原创 Java中常见的数据结构API的特点及分析
数据结构ArrayList 和 CopyOnWriteArrayListArrayList利用可变长(更换数组)数组实现的线性表数据结构创建默认的ArrayList, 其内部封装了一个对象数组elementData, 默认长度为0在添加第一个元素时候, ArrayList会立即分配数组空间, elementData长度为10. 数据添加到数组elementData的第一个元素中.添加第二个元素时候, 元素按照顺序存储到数组elementData中当数组容量不够时候, ArrayList会进行
2020-07-05 12:39:53
541
原创 Arrays自带API----binarySearch的用法及源码解析
binarySearch二分查找API看一个Demoimport java.util.Arrays;/***@author Edward*@date 2020年7月3日---下午4:17:32*/public class Demo09 { public static void main(String[] args) { /* * 二分查找API * Arrays.binarySearch(有序数组,被查找元素) * -如果找到,返回找到元素在数组中的位置
2020-07-03 22:57:14
305
原创 BST即搜索二叉树中序遍历的三种方法(两种递归,一种栈迭代)
1、Node类中建立的递归(Easy):见toString和Node.class中的inOrder方法package tree;import java.util.ArrayList;import java.util.Deque;import java.util.LinkedList;import java.util.List;/** * 排序二叉树 * E extends Comparable<E>指的是 * E这个类型要实现Comparable接口,这样方便比
2020-07-01 23:20:55
394
原创 知道DispatcherServlet为你们做了多少事吗?
DispatcherServletDispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理,是配置spring MVC的第一步。DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。简单地说就是承上启下,核心
2020-06-30 23:34:26
155
原创 手写JDK1.8前的LinkedList(头节点非哨兵节点,双向循环链表)
六种方法的实现:package list;import java.util.ArrayList;import java.util.List;/***@author Edward*@date 2020年6月30日---下午2:32:40*/public class LinkedList<E> { private Node head; private int size; class Node{ E data; Node prev; Node next;.
2020-06-30 22:52:17
379
转载 MYSQL强力排序新功能---窗口函数
MYSQL窗口函数什么是窗口函数含义:窗口函数也叫OLAP函数(Online Anallytical Processing,联机分析处理),可以对数据进行实时分析处理。作用:解决排名问题,e.g.每个班级按成绩排名解决TOPN问题,e.g.每个班级前两名的学生语法:select 窗口函数 over (partition by 用于分组的列名, order by 用于排序的列名分类:专用窗口函数:rank(),dense_rank(),row_number()汇总函数:max(),min
2020-06-26 15:04:50
622
原创 上古时代Sun公司的宝贵遗产JSP
1.什么是JSP?由SUN公司制订的一种服务器端的动态页面技术规范。JSP本质就是一个Servlet。注:jsp是一个以".jsp"为后缀的文件,该文件主要内容是html和少量的java代码,该文件会被容器自动转换成一个对应的Servlet然后执行。2.如何写一个JSP?step1. 添加一个以".jsp"为后缀的文件。step2. 在该文件里面,可以使用如下几种元素:(1)html(css,js) 直接写即可。(2)java代码 1)方式一:java代码片断:语法:
2020-06-23 22:09:23
341
原创 Java使用百度人脸识别API攻略
1、首先在百度AI官网获取API Key、 Secret Key创建新应用,即可自动获取。2、查阅文档https://cloud.baidu.com/doc/FACE/index.html获取Java代码模板创建获取token的类package cn.tedu.chatBoardboot.faceDetect;import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.HttpURLCon
2020-06-21 20:41:14
722
1
原创 心心念念的AOP
面向切面编程AOP = 面向切面编程AOP并不是Spring框架特有的功能,不依赖于Spring也可以实现AOP,只是Spring很好的支持了AOP!常规的数据处理流程大致是:注册:前端页面 -----> Controller -----> Service -----> Mapper登录:前端页面 -----> Controller -----> Service -----> Mapper改密:前端页面 -----> Controller -----
2020-06-20 23:44:00
134
原创 基于Spring JDBC的事务处理与RESTful API
【附1】基于Spring JDBC的事务处理事务(Transaction):在数据库中,可以保持一系列的数据操作要么全部执行成功,要么全部执行失败的机制!假设存在以下信息:账户余额苍松1000国斌8000如果存在任务“国斌向苍松转账5000元”,需要执行的SQL语句大致是:update 账户信息表 set 余额=余额-5000 where 账户='国斌';update 账户信息表 set 余额=余额+5000 where 账户='苍松';如果出现某种意外,导
2020-06-19 19:40:11
413
原创 Nginx-----从概念到安装到配置到...放弃...再到拾起
Nginx学习笔记基本概念Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。最高可达50,000个并发连接数。架构图:反向代理正向代理在客户端配置代理服务器,通过代理服务器访问互联网、反向代理Nginx的Master-Worker模式启动
2020-06-17 23:12:44
213
原创 nginx配置文件在哪里?
如何找出nginx配置文件的所在位置?对于一台陌生的服务器或安装太久忘了位置,怎么才能简单快速的找到配置文件的位置呢?要找出配置文件的位置,需要先找出nginx可执行文件的路径 , 这里有几种方法: 1、如果程序在运行中 ps -ef | grep nginx # ps -ef | grep nginx root 29514…对于一台陌生的服务器或安装太久忘了位置,怎么才能简单快速的找到配置文件的位置呢?要找出配置文件的位置,需要先找出nginx可执行文件的路径 ,这里有几种方法:1、如果程序在运
2020-06-16 07:54:22
4574
原创 JDBC事务的隔离和传播
事务隔离级别SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容)在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)。Read Committed(读取提交内容)这是大多数数据库系统的默认隔离级别(但不是MyS.
2020-06-15 11:56:58
302
原创 教你学会并查集算法
并查集并查集被很多OIer认为是最简洁而优雅的数据结构之一,主要用于解决一些元素分组的问题。它管理一系列不相交的集合,并支持两种操作:合并(Union):把两个不相交的集合合并为一个集合。查询(Find):查询两个元素是否在同一个集合中。当然,这样的定义未免太过学术化,看完后恐怕不太能理解它具体有什么用。所以我们先来看看并查集最直接的一个应用场景:亲戚问题。(洛谷P1551)亲戚题目背景 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是
2020-06-08 21:42:07
646
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人