自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【学习笔记】Mybatis框架学习及个人感悟

文章目录一、简介1.1、什么是Mybatis1.2、持久化1.3、为什么需要Mybatis二、第一个Mybatis程序2.1、搭建环境2.2、创建一个子模块2.3、编写代码2.4、测试2.5、小结三、CRUD3.1、Mybatis传递多个参数(万能的Map)四、配置解析4.1、核心配置文件4.2、环境变量(environments)4.3、属性4.4、类型别名(typeAliases)4.5、设置4.6、映射器(mappers)4.7、其他五、生命周期和作用域5.1、SqlSessionFactoryBui

2021-09-26 12:19:17 2765

原创 【JavaScript】JavaScript模拟实现面向对象&一张图帮助你深刻理解原型链和原型对象

文章目录JavaScript模拟面向对象函数是类函数中各种变量的声明关于函数内的this练习:面向对象思想编写Complex类模拟静态成员初尝试初探究prototype原型  JavaScript毕竟不是Java,它也不是纯粹的面向对象语言,我的这篇博文只是模拟相关面向对象编程。同时也是深入学习JavaScript,将它与Java思想结合遇到的一些问题,在这里进行总结。JavaScript模拟面向对象函数是类function Obj() { // <=> var Obj = functi

2021-08-14 19:25:20 238

原创 【Java框架】自主模拟实现Spring核心——循环依赖问题的解决

文章目录(一)循环注入(二)循环依赖承接上文制作的工具(IoC容器),我们可以进行对循环依赖问题的讨论。(一)循环注入给三个类说明这个问题import com.mec.mSpring.core.Autowired;import com.mec.mSpring.core.Component;@Componentpublic class A { @Autowired private B b; public A() { } public B getB() { return b

2020-10-11 16:49:36 265

原创 【Java框架】自主模拟实现Spring核心——实现一个简易的IoC容器

什么是IoC  IoC(Inversion of Control)控制反转,是一种设计思想,DI(依赖注入)只是实现ioc的一种方式。是Spring的核心内容。可以xml配置,注解。Spring容器在初始化先读取配置文件,根据配置文件或者元数据创建与组织对象存入容器,程序使用时再从ioc容器中取出需要的对象。  没有IoC,传统应用程序都是由我们在类内部主动创建依赖对象,从而导致类与类之间高耦合,对象的创建和对象间的依赖关系完全在代码中,代码是程序员写的,控制权在程序员手里,对象的创建由代码控制。  

2020-10-09 17:23:08 368

原创 【Java工具】自主实现简易的ORM框架

ORM  ORM(Object Relational Mapping)对象关系映射,作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作Java对象一样操作它就可以了 。也就是将对象与数据库系统中的一条记录对应起来。我们首先来看一张表。  我们首先看表中表头是每一条记录拥有的东西,那我们是否可以把它变成一个model类,其成员就是表头。这样一条记录就可以变成一个model类的对象了。对象是在内存中,无法长期存储,但访问很

2020-09-25 22:18:23 405

原创 Failed to load response data:No data found for resource with given identifier

文章目录(一)timeout超时(二)返回数据格式和大小(三)ajax请求被form干扰解决办法1:ajax请求改为同步解决方法2:阻止表单默认提交机制最近项目遇到的问题。Failed to load response data:No data found for resource with given identifier翻译:加载响应数据失败:找不到具有给定标识的资源的数据。分析:saveLabel对应后台操作就是给数据库中插入一条记录,后台操作一切都正常执行,说明从前端传的参数后台接收到了;

2021-11-09 17:07:41 86356 8

原创 【学习笔记】SMBMS项目练习

文章目录SMBMS(超市管理项目)准备工作1、登录功能实现(一次完整的MVC)1.1、MVC理解1.2、重定向访问WEB-INF目录问题(权限页面的访问)2、登录功能优化2.1、如何为WEB-INF目录下文件加过滤器3、密码修改4、优化密码修改使用Ajax5、用户管理实现5.1、获取用户数量5.2、获取用户列表5.3、获取角色列表5.4、用户管理的Servlet5.4.1、数据获取和数据回显5.4.2、转发访问WEB-INF目录问题底层数据库访问公共类存在的坑SMBMS(超市管理项目)准备工作搭建

2021-09-15 14:20:16 851

原创 【Java】乌龟的屁股

记录一些规定要做的事,一来顺手,二来方便随时查看和修改。1、空白Maven_WEB项目  空白的maven_web项目一旦创建好,就立刻去修改。(1)web.xml加4.0的头文件<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance

2021-09-13 18:25:21 172

原创 【狂神学习笔记】JavaWeb文件上传

文章目录文件上传1、准备工作2、文件上传注意事项(调优)3、需要用的类解释4、代码编写文件上传在Web应用中,文件上传和下载功能是十分常见的功能,今天对狂神的文件上传进行总结。1、准备工作对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的。一般选择采用apache的开源工具common-fileupload这个文件上传组件。common-fileupload是依赖于common-io这个包的,所以还需要下载这个包。https://mvnrepository.com/arti

2021-09-10 17:16:12 528

原创 【学习笔记】深入理解及个人感悟JavaWeb

文章目录贯穿全文的问题一、域名解析二、HTTP三、Maven3.1、Maven环境配置3.2、IDEA中使用Maven3.2.1、标准目录结构布局(重要)3.2.2、pom.xml分析3.2.3、注意配置文件的过滤四、Servlet4.1、Servlet是什么4.2、初探究Servlet——HelloServlet4.2.1、从中得到的结论4.2.2、Mapping问题未完待续贯穿全文的问题  在学习JavaWeb的时候先提出一个问题,这个问题贯穿了整个JavaWeb,所以一开始提出这个问题,在Java

2021-08-31 09:12:06 516

原创 【狂神学习笔记】JUC基础认识

文章目录JUC并发编程(基础认识)1、什么是JUC2、线程和进程3、Lock锁(重点)4、生产者消费者5、synchronized锁对象和锁类6、线程不安全的类7、Callable8、常用辅助类8.1、CountDownLatch8.2、CyclicBarrier8.3、Semaphore9、读写锁10、阻塞队列11、线程池(重点)12、四大函数式接口13、Stream流式计算14、ForkJoin15、Volatile16、单例模式17、深入理解CAS18、原子引用Integer类型的坑19、各种锁的理解

2021-08-23 18:08:47 305

原创 【JavaScript】JavaScript编程小技巧

  JS最大的特点是灵活,极端的灵活,令人发指的灵活。  JS是一个弱类型语言;即JS的数据的数据类型不像其他语言那样明确或需要限定。  JS的对象({}括起来的),是一些键值对组成,更愿意称它为关联数组,因为数组就是特殊的json,以下标为键的关联数组。JS也有面向对象编程,可以看到后面的内容,优化传参都是传递json,而不是像C/Java一样特定位置传递特定值。逻辑运算逻辑运算在编程中十分重要,if,for,while等条件表达式都需要使用。console.log(1 ? "真" : "假

2021-08-19 12:19:24 89

原创 【狂神学习笔记】多线程基础

只记不会的。。。程序,进程,线程  程序是静态的,写死的代码(例如.exe)。程序跑起来称为一次进程,进程里面可以分为多个线程。进程是分配资源的最小单位,线程是CPU调度的最小单位,同一个进程下的线程相互共享资源。线程创建Thread类(继承) Runnabel接口(实现) Callable接口(实现)Callable接口public class CallableDemo implements Callable<Integer> { //需要声明返回值的类型 public

2021-08-19 12:12:37 51

原创 【JQuery】JQuery和原生DOM操作动态增加HTML代码问题探究

文章目录结论依然存在的问题  事情是这样的。再做动态表格行和列的删除时,导师说我做的这种键入的形式不对,这种形式用户体验感多差啊,甲方肯定不会满意的。给我提出改进方案,要么通过模态框和输入框结合起来获得相关数据,要么通过结合单选框(radio),选中要删除的行或列,再点击按钮删除。模态框我现在还没接触,同时为了锻炼前端编程能力就选择了使用单选框来解决。首先给出基本HTML<!DOCTYPE html><html lang="en"><head> <

2021-08-16 19:44:58 402

原创 【前端练习】根据JSON数据页面动态形成表格

文章目录题目描述题解过程描述json数据基本已确定的HTML加载读取json数据绑定事件更新数据提交数据按钮事件题解结果题目描述  此题算是以前的前端练习的综合训练了。刚看到题的时候一脸懵逼,不懂得从哪里开始下手。实际上这就是前后端分离典型的题,以前我练习的前端题的数据都是写死在HTML里的,不会产生动态的变化。确实是,前端是负责数据的展示,而数据是复杂多变的,是需要查询的,而这些工作就需要后端来做了。前端负责展示(HTML),渲染(CSS),控制更改(JavaScript)数据,而后端就负责这些数据从

2021-08-13 21:11:36 4029

原创 【前端练习】动态增加和删除表格

  最近完成前端练习,需要实现通过JS对table进行动态的变化(行列的增删),练习中有一些比较好的编程思想和技巧,在此总结出来。相关的基本结构(HTML)如下:<body><div> <div><!--这里是输入数据的地方--> <label for="rowInput">行:</label><input type="text" id = "rowInput" name="rowInputText

2021-08-13 21:06:31 2077

原创 【JQuery】JQuery绑定事件并传参

文章目录问题出现问题分析解决方法结论纠正一个错误事情是这样的,因为最近在学习前端的知识,学完了需要巩固下知识,所以在网上找的题来做。遇到这样的题。(包含遇到问题的详细过程,觉得例子无趣的可直接跳转结论)其代码也很简单,设计表格和事件绑定,最近学习了jquery,很快将代码写出来。说明下,工程上不要使用行间样式和内嵌js代码。应该做到HTML(结构)+CSS(样式)+JavaScript(控制)分离。我是为了图方便一页代码描述完问题才这样写的。<!DOCTYPE html><ht

2021-08-09 21:41:09 5043

原创 【HTML】简单的表格设计

表格设计  <table></table>其中再往表格里深入的标签为<tr></tr>(tableRow)代表行,<td></td>(tableData)代表具体到某一个单元格。为了设计好看的表格,我们常用td标签里的colspan(跨列),rowspan(跨行)来进行改变。有了这些基础知识能很快设计一个简单的表格。  但是如果设计不规则表格该如何设计呢?最近我做到练习题就遇到这样一个表格。总结了一种自己实用的手工过程来设计表格。

2021-08-09 21:35:08 1607

原创 【狂神学习笔记】JavaScript

文章目录JavaScriptJS的引入数据类型严格检查模式对象形如的for-each循环函数定义函数参数问题变量的作用域规范方法apply常见类的使用DateJSON面向对象编程什么是面向对象操作BOM对象(重点)获取cookie操作DOM对象(特别重要)JavaScriptHTML(结构):超文本标记语言(Hyper Text Markup Language),决定网页的结构和内容。CSS(表现):层叠样式表(Cascading Style Sheets),设定网页的表现样式。JavaScrip

2021-08-03 20:08:38 280

原创 【狂神学习笔记】CSS

文章目录什么是CSScss导入方式选择器(重点)基本选择器标签选择器(重点,必会)类选择器id选择器层次选择器后代选择器子选择器相邻弟弟选择器通用弟弟选择器结构伪类选择器属性选择器(常用)盒子模型居中display浮动清除浮动父级框塌陷display和浮动定位相对定位绝对定位固定定位css导入方式选择器(重点)基本选择器标签选择器(重点,必会)类选择器id选择器层次选择器后代选择器子选择器相邻弟弟选择器通用弟弟选择器结构伪类选择器属性选择器(常用)盒子模型居中display浮动清除浮动父级框塌陷displa

2021-08-02 20:21:31 515

原创 【狂神学习笔记】HTML

初识HTML什么是HTMLHTML(Hyper Text Markup Language)超文本标记语言。超文本包括:文字,图片,音频,视频,动画等。所有浏览器都对HTML5支持。这是跨平台。HTML5出现也是为了迎合市场需求,HTML5出现之前,修改浏览器的兼容性就很麻烦。因此,HTML5出现了,它就相当于一个标准,大家共同来遵守就没有差异了。维护HTML的组织。 W3C(World Wide Web Consortium)万维网联盟。Web技术领域最具影响力和权威的中立性技术机构。W3C标准包

2021-07-29 23:14:12 127

原创 【Java框架】手写实现简单的微服务之RMI框架

文章目录Ⅰ什么是RMIⅡRMI框架需求分析(一)准备工作:使用哪种代理ⅢRMI框架的实现(一)实现思路(二)RMI服务器启动前准备工作a. RMIBeanDefinitionb. RMIBeanFactoryc. RMIBeanFactoryBuilder(三)RMI服务器端a. RMIServerb. RMIServerWorker(四)RMI客户端a. RMIClientⅣ 后记和收获(一)RMI的诡异及其犀利之处(二)收获Ⅰ什么是RMI  Remote Method Invoke(远程方法调用)。

2021-02-01 14:20:20 403

原创 【Java】关于equals方法踩过的坑

发现问题  这个坑是在写资源发现时候遇见的,具体问题可以简化成下面这个问题。首先是默认网络节点public class DefaultNetNode { private String ip; private int port; public DefaultNetNode(String ip, int port) { this.ip = ip; this.port = port; } @Override public int hashCode() { final int

2021-01-28 10:10:13 619

原创 【Java】手写实现负载均衡(LoadBalance)框架

文章目录负载均衡的提出手动实现轮询实现法随机法负载均衡的提出  一个网络应用应该有服务器和客户端两个角色。在我们以前写的网络项目中,例如以前我们用C/S框架写的聊天室应用。其本质是一个服务器和多个客户端。  这些客户端和服务器是长连接,在这种单服务器的情况下,服务器成为整个应用的核心,如果服务器崩掉,客户端所有请求将会失败。如果服务器要进行升级,那就得全体用户下线,服务停止。或者说同一个服务器总有自己的最大承载用户量吧,这种肯定不能满足用户们日益增长的需求。  因此就提出了多个服务器。服务器数量相

2021-01-26 14:38:28 1062

原创 【学习笔记】ClassLoader学习笔记

文章目录类加载机制加载:查找并加载类的二进制数据连接1.确保被加载的类的正确性2.为类的静态变量分配内存,赋默认值初始化三个ClassLoader的启动过程为什么extClassLoader的parent为null,就指的是root双亲委托模式的过程双亲委托的好处类加载器的作用Java 中编译和运行的区别类加载机制  加载->连接->初始化加载:查找并加载类的二进制数据  加载就是将二进制的字节码(.class文件)通过IO输入到JVM中,我们的字节码是储存在硬盘上面的,而所用的类必须加

2021-01-24 08:50:06 152

原创 【Java框架】RMI框架的一步步实现

RMI框架一步步实现首先来写我们的RMI服务器这边的代码import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class RMIServer implements Runnable { public static final int DEFAULT_PORT = 54189; private int port; private ServerSocket server;

2020-11-17 11:21:40 183

原创 【Java】Java线程池ThredPoolExcutor分析及源码解析

文章目录为什么要使用线程池为什么要使用线程池  说到线程池那么一定是应用在多线程情况中,所谓的多线程系统,即多线程并发执行,实际上是通过共享CPU时间片段实现的。OS将CPU时间分成“CPU时间片段”,每一个片段CPU执行某一个线程;当时间片段到了,由OS中的线程调度程序来选择下一个时间片段内执行的线程。但不是立即切换,还要做一些事,分析其过程:线程A时间片段到后,线程调度进程需要先保护现场信息,即需要将当前正在执行的线程暂时中断,并将这个线程当前执行的状态保存起来,当然是为了以后这个线程恢复执行时,

2020-10-30 00:32:06 311 1

原创 【Java】关于序列化的事和Gson工具以及泛型

文章目录序列化JSONJSON概述JSON与XML比较JSON语法规则GsonGson概念及基本用法由Gson产生的工具ArgumentMaker泛型泛型擦除泛型擦除的应用序列化序列化:将对象写入IO流中,以便于传输和存储反序列化:从IO流中恢复成序列化之前的对象,以便从流中得到数据进行解析意义:可以将Java对象转换为字节序列,就方便保存在磁盘或者网络传输了,也可以将已存在的字节序列恢复为原来的对象。所有在网络上传输的对象和在磁盘中保存的对象都需要序列化。给如下例子可以清晰感受到序列化的意

2020-10-21 23:20:01 362

原创 【Java】Java强大的机制——代理机制

文章目录JDK代理JDK代理要求Cglib代理Cglib代理分析  今天来整理新学到的Java中一种强大的机制——代理机制。先简单讲下我在网上看到的代理机制的描述,有一个目标类的对象,他不直接面对用户,而是在它的基础之上有另外一个对象,称为代理对象,用户用的是这个代理对象,真正的操作还是用的目标对象。接下来给例子讲下两种动态代理JDK和Cglib。JDK代理直接简单粗暴点上例子,给出我们要代理的目标类SomeClass和接口ISomeClasspublic interface ISomeClass

2020-10-19 10:52:36 235

原创 【Java】用Copy文件例子来描述文件操作

文章目录解决方法一解决方法一

2020-10-18 21:34:25 140 1

原创 【Java工具】精准定时器工具(毫秒级误差)

需求分析由用户自行设定触发事件由用户提供具体工作过程在规定的触发事件到达时,自动执行具体工作过程。尽可能保证时间的精确性。这个工具有广泛的用途,例如轮询和CSFramework中踢出长时间不和服务器说话的客户端。SimpleDidadida首先给个简单的定时器实现SimpleDidaDida类public abstract class SimpleDidadida implements Runnable { public static final long DEFAULT_DELAY_

2020-10-08 03:14:51 2199

原创 【Java框架】CSFramework框架的应用——简易聊天室

先做服务器这边的界面,服务器界面这里不需要很花哨,只需要简简单单个控制台,命令行就行。要记得我们CSFramework有个观察者模式,Server(作为publisher)发出的消息要被这个界面(listener)得到,因此要实现IListener接口。import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.FlowLayout;import java.awt.even

2020-10-07 22:31:58 532

原创 【Java框架】保姆级教你写出简易框架——CSFramework

  我们在计算机网络课程中学过网络的OSI的七层模型,但只是理解其描述的一些概念,并没有真正的实现,只是个概念性框架。而另一种提出的TCP/IP参考模型被投入应用了。参考前两种层次模型,我们可以提出CSFramework使用的层次模型,如下图。  首先是最底层通信层(Communication),该层只关心最底层通信的事和对端异常掉线问题,但不关心接收到的相关信息该如何处理。信息的处理不在这一层,这一层没有权利处理信息,只是将信息发给对端的作用。  下来是会话层(Conversation),该层会收到

2020-10-06 16:18:07 565

原创 【Java基础】Java网络编程基础

前言  现如今,互联网几乎在我身边随处可见,早已深入我们人类生活中。如今的软件如果没有网络功能,那是很不可思议的事情。(单机游戏都有局域网功能,小时候和朋友联机打的红警就是例子)。许多语言都支持网络编程,我见过C与Java有关网络的程序代码,从中深刻感受到有工具和没工具编代码效率是多么天差地别。就相当于在赛跑,C还在那里造车轮子,Java已经开始用别人给的车开始跑了。  最近一直在学习Java,因此用Java学习网络编程。C/S模式,又称客户端服务器模式。至少用两台计算机来分别充当客户机和服务器角色。C

2020-10-06 01:40:30 177

原创 【Java】关于synchronized的深入理解

  近日在Java编程中使用到了synchronized这个关键字,对此不是特别了解想深挖以下内部原理,就在网上搜视频,看的是马士兵老师的讲解,听完之后有许多感想就此写出。CAS(无锁/乐观锁)  要讲清synchronized之前我们首先要了解什么是CAS。CAS(compare and swap)比较并且交换。CAS包括三个操作数:需要读写的内存位置的值E,进行比较的预期原值N和经过线程完后拟写入的新值V。首先读取值E,然后放到线程计算结果得V,计算结果后往回写的时候比较E与N,如果相同说明没人动

2020-10-05 23:51:23 219

原创 【Java】关于关键字volatile的深入理解

Volatile关键字  volatile:adj易变的;不稳定的;用来修饰变量的。翻译里的易变是针对多线程的,多线程修改同一个变量有可能会造成某些问题,就要使用volatile关键字。其最主要的两个作用是:线程可见性与禁止指令重排。线程可见性(禁止寄存器优化)我们首先来看一个程序public class Visiable implements Runnable { private static boolean flag = true;// private static volatile b

2020-09-28 22:10:20 189

原创 【Java笔记】关于面向对象的思考和自己用的工厂模式

面向对象的思考  在大学期间课堂有C语言课程和自学了Java。C语言是一个面向过程的程序设计语言,Java是面向对象程序设计语言。  在相关编程时,C语言实现的思想角度是:解决这个问题需要哪些过程,及这些过程进一步细分,最终形成一个功能函数,通过组合,协调这些函数,最终实现这个过程。  而Java实现的思想角度是,问题由哪些部件组成(对象),这些部件本身有哪些属性(成员)和关于这些属性的操作(方法)?部件和部件之间有什么联系,以及部件如何联系起来的,最终实现应用的目的。  举个例子来区分下两者吧。例

2020-09-28 01:58:43 72

原创 【Java工具】包扫描工具

包扫描  这个工具是在学了注解和反射机制后,遇到要把Model包下的所有有相关注解的类进行操作的时候遇到的。手动一个个Class.forName(className)太麻烦了,并且还要进行相应的筛选。因此才想出来做包扫描工具,把扫描过程用一个类完成,其他如何操作向外提供。  包扫描工具功能:给一个包名字,扫描该包下的所有类,如何操作这些类对外提供出去。import java.io.File;import java.io.IOException;import java.net.JarURLConne

2020-09-25 11:11:36 346

原创 【Java工具】EasySwing一键生成界面的工具

EasySwing介绍  不知道大家在编写Java界面部分的时候有没有这种感觉,就是设计界面这部分步骤大部分都大同小异,都是首先先new出一个新控件,然后设置这个新控件的一些属性,最后将这个控件加进相应的面板(例如:Jpanel)或者容器(例如:Container)里。反正我在设置界面的时候对于这些纷繁复杂的控件类的设置方法记不清,总要去网上查相应文档才能设置。例如jfrmMain.setLocationRelativeTo(null);设置窗口位于屏幕中央这句代码我总是漏写。  所以,对于这些大致逻辑

2020-09-25 01:24:00 945

原创 【Java基础】关于Java接口的作用

接口功能与特点类型的统一与保护  我们在编程的时候,会不断的创建出许多类,类的本质就是类型,随着类得种类越来越多,数据类型也变得越来越多。假如我们有个需求,需要统一管理某些类,我们很容易就能想到使用HashMap,处理键值对的好帮手。在没有接口的情况下,我们可以使用万物的基类Object。HashMap<String, Object>,但是,问题也出在Object上,正是因为它的包容性,任何其他类类型的对象也可以存储到这个Map里,对这个Map进行捣乱。  上述问题本质是因为“类型保护的缺

2020-09-25 00:19:15 294

空空如也

空空如也

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

TA关注的人

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