- 博客(101)
- 收藏
- 关注
原创 创建文件到底发生了什么?
为什么要浅浅探究这个问题?大家大部分时间的工作其实都是写业务层的”CURD“,而真正陪伴在我们身边的计算机底层原理则不再有那么多好奇心去探究了。这篇文章旨在抛砖引玉,也许大家在空闲的时间里,也能够去探求自己以前一直想知道的原理到底是怎么样的。如何探究?这里是使用了自顶向下的方式去探寻。说人话就是从业务层代码入手,逐层探讨,不说废话,直接进入正片部分。分层:Java层:这里放一段简单的创建文件的kotlin代码:从理论上来讲,Java本身是在JVM上面运行的,我们的Java层代码是不可能直接利
2024-07-25 14:50:29
541
原创 Elasticsearch入门(包含整合SpringBoot和简单实战demo)
Elasticsearch保姆级入门,样例简单,介绍的功能优先,只限快速上手,缺乏原理探究,后面补上
2022-06-03 16:41:15
756
原创 Git入门(使用gitee,包含整合IDEA和Git)
Git一、什么是版本控制说的通俗一点,就是我们平时不管干什么,比如写个文档也好,写个PPT也好,都不是一次就定稿的吧,总会修修改改,而每次修修改改都会变成一个新版本的文件,说的互联网一点,就是版本迭代,版本控制。当然,我们写程序也一样,git就是来帮助我们更加方便的管理版本控制的。下面看一下文绉绉的概念和作用:版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。实现跨区域多人
2022-02-06 00:44:12
725
原创 JSON的简单介绍和使用
Json一、什么是JsonJSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。在 JavaScript 语言中,一切都是对象。因此,任何JavaScript 支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。看看他的
2022-01-26 01:44:01
2807
1
原创 Redis入门
Redis本文使用的为Redis6.2.6版本注:一到七章是基础,八到十二是进阶和面试会问的内容一、背景1、简单介绍Redis数据库分为SQL数据库和NOSQL数据库,NOSQL的NO不是not(不)的意思而是not only的意思,也就是不只是SQL的数据库。Redis就是一种NOSQL型数据库Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言
2022-01-20 15:24:55
1693
4
原创 MybatisPlus入门(涉及大部分常用操作)
MybatisPlus一、MybatisPlus概述1、学习MybatisPlus前所需的知识 Mybatis、Spring、SpringMVC2、为什么要学习MybatisPlusMybatis本身就是被用作简化我们CRUD过程的一个框架,而MybatisPlus是和Mybatis配合使用的,可以更加简化我们的CRUD过程,可以自动化完成CRUD。官网原话:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效
2021-11-27 10:53:37
1268
原创 Linux系统的基本使用指南(速成,帮助快速上手使用Linux系统)
Linux一、Linux背景知识1、什么是linuxLinux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。2、为什么要学linux在
2021-11-17 16:47:20
25984
4
原创 SSM框架中,配置连接池无法识别DataSource的原因
在配置环境的时候发现的问题,本来以为是代码出错,找了半天发现是DataSource的配置文件是有严格要求的,配置的属性必须有jdbc.等前缀,否则就会出错。这里我觉得是后来springboot的yml配置和properties配置的原型雏形了吧,踩坑了。...
2021-11-02 16:31:05
452
原创 快速入门HTML(半小时包会)
HTML一、背景:1、什么是HTMLHTML也就是Hyper Text Markup Language的缩写,超文本标记语言的意思,所谓超文本,就是除了文本之外,还可以进行其他的标记,比如各种媒体元素等。2、HTML的发展目前使用的就是HTML53、W3C标准W3C:全称World Wide Web Consortium,成立于1994年,Web技术领域最权威和具影响力的国际中立性技术标准机构网址为:http://www.w3.org/,http://www.chinaw3c.org/W
2021-10-20 11:35:28
597
原创 SpringMVC入门
SpringMVC一、什么是MVC1.背景MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。**Model(模型):**数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Obje
2021-10-14 23:17:26
128
原创 报错java.lang.IllegalArgumentException: Unsupported class file major version 59
诸如Unsupported class file major version 59之类的报错,原因都可能是SDK的版本不对导致的,如我遇到的这个问题是因为jdk15无法兼容某些依赖导致的,改为jdk1.8就可以解决问题了
2021-10-08 23:34:58
3225
原创 Spring入门(包括spring整合mybatis的spring-mybatis)
Spring一、背景介绍1、spring理念使现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架Spring是一个轻量级控制反转(lOC)和面向切面(AOP)的容器框架2、轮子理论不需要重复的“造轮子”,可以使用已经存在的轮子简化开发流程3、框架早期为SSH框架,即:Struct2 + Spring + Hibernate现在多数使用的是SSM框架,即:Spring MVC + Spring + Mybatis目前Spring 的稳定版本为:5.3.04、所需依赖&l
2021-10-08 22:39:06
399
原创 Error creating bean with name ‘sqlSessionFactory‘ defined in class path reso...报错的解决方法
这种错误一般都发生在spring配置里面,今天遇到了花了一点时间解决了一下,有两个容易报该错误的点。1.在mybatis配置文件和spring配置文件中都注册了同一个mapper,此时会出现报错,只要删掉mybatis中的配置mapper的部分就可以正常运行了。2.spring配置标签中,把ref赋值错误的写成了value赋值,也会出现相同的错误,把value改回ref即可解决问题。...
2021-10-03 19:13:25
15625
3
原创 Idea关于maven项目中pom.xml文件变为xml配置文件而不是maven项目的解决方法
有时候重启idea的时候会发现已有的maven项目突然不能运行了,查看代码没有问题后发现,pom.xml文件变为普通的xml配置文件了,如图:此时只需要右键该文件,然后添加为maven项目就可以解决问题了!如图:这是个容易忽略的坑,觉得是自己代码报错,其实是项目配置文件出错了哈哈哈...
2021-09-22 21:24:32
2607
2
原创 Mybatis入门
Mybatis一、简介1、什么是MybatisMyBatis 是一款优秀的持久层框架。它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache sof
2021-09-08 19:56:09
302
原创 JavaWebの知识讲解(JDBC+JSP+Servlet)
JavaWeb一、web开发的背景知识web,顾名思义是网页的意思,如:www.baidu.comweb分为静态web和动态web1、静态web纯前端网站即使静态web,只使用html,css等前端语言进行编写静态web提供给所有人看的数据始终不会发生变化2、动态web几乎现在所有的网站都是动态web网站,如:淘宝,百度,B站等提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同动态web除了静态web所需的技术之外,还需要引入后台技术,后台技术目前有两套
2021-09-05 20:26:12
2589
2
原创 Java关于多线程的简单了解和应用
多线程补充:main方法实际上是主线程一、线程的创建1、继承Thread类(重点)1.自定义类继承Thread类2.重写run()方法3.创建线程对象后调用start()方法启动线程2、实现Runnable接口(重点)1.自定义类实现Runnable接口2.实现run()方法3.创建线程对象后调用start()方法启动线程3、实现Callable接口(仅作为了解)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mr6mwyeX-1630834710407
2021-09-05 17:39:26
154
原创 Java基础之反射(Reflection)
反射(Reflection)反射使得静态的Java代码转化为准静态的语言[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bx6Fp9ex-1628179082749)(C:\Users\利姆鲁\AppData\Roaming\Typora\typora-user-images\image-20210712235754105.png)]1、Class类①class对象只能由系统建立②一个加载的类在JVM中只会有一个class实例③class对象对应的是一个加载到JVM
2021-08-05 23:59:06
167
原创 Java基础之注解(Annotation)
注解(Annotation)一、内置注解1、@Override只能用于修饰方法表示该方法是同名方法的重写的注解2、@Deprecated可以用于修饰方法、属性、类表示不鼓励程序员使用这样的元素3、@Suppresswarnings可以用于多种元素用于抑制编译时候的警告信息,需要设定一个参数才能正常使用如:@suppresswarnings(“all”) 可以抑制所有警告//内置注解public class Test01 { @Override public Str
2021-08-05 23:51:38
196
原创 拓扑排序和动态规划的简单组合应用
18747 最长路径时间限制:1000MS 代码长度限制:10KB提交次数:0 通过次数:0题型: 编程题 语言: 不限定Description在一个工程项目里,多项工作可以同时进行。我们可以用有向无环图表述项目流程,把项目中的事件表述为结点,把活动表述成有权值的边。现在我们已知项目共有n个事件,起点为1,终点为n,m个活动。请你计算出这个项目的最早完成事件,也就是起点到收点的最长路径。输入格式第一行两个整数n和m,代表结点数量和边数量。(1<=n,m<=100)下
2021-08-04 18:49:52
393
原创 Java网络编程之URL初认识(五)
一、利用URL获取信息package com.xiafan.study06;import java.net.*;public class URLdemo { public static void main(String[] args) throws MalformedURLException{ URL url = null; url = new URL("http://localhost:8080/helloworld/index.jsp?username=
2021-07-13 21:49:42
71
原创 Java网络编程之利用DUP和多线程进行实时通信(四)
一、类的创建package com.xiafan.study05;import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetSocketAddress;public class TalkSend implements Runnable{ Datagram
2021-07-13 21:47:41
93
原创 Java网络编程之DUP(三)
一、发送端发送数据package com.xiafan.study03;import java.net.*;public class TestUdpSend { public static void main(String[] args) throws Exception{ //1.建立一个socket DatagramSocket socket = new DatagramSocket(); //2.建立包裹 String
2021-07-13 21:44:40
100
原创 Java网络编程之TCP(二)
一、客户端发送数据package com.xiafan.study02;import java.net.*;import java.io.*;public class TestTcpClient { public static void main(String[] args) { InetAddress serverip = null; int port; Socket socket = null; OutputStream
2021-07-13 21:39:44
61
原创 Java网络编程之初识IP和端口(一)
一、查询IPpackage com.xiafan.study01;import java.net.*;import java.io.*;public class Testinetaddress { //封装的是IP public static void main(String[] args) { try { //查询本机ip InetAddress inet1 = InetAddress.getByName("127.0
2021-07-13 21:36:36
91
原创 Java网络编程的基础理论
网络编程1、网络编程的两个问题:①如何准确定位到网络上的一台或多台主机②定位到主机后如何进行通信2、网络编程的要素①IP和端口号IP有IPV4和IPV6IPV4又分为ABCDE四种类型②网络通信协议,TCP/UDP3、端口端口号为0-65535(16位)TCP,UDP : 不同协议的端口号可以相同,也就是可以有65535*2个端口端口分类公有端口 0-1023http : 80https : 443ftp : 21Telent : 23程序注册端口 : 1024-4915
2021-07-13 21:30:01
118
原创 mysql中的联表查询
联表查询以三种基本查询为基础,可以分为七种查询,本文只讲三种基本查询inner join 交叉集合,左右的表有匹配的值,才返回left join 即使右表没有匹配,也会从左表返回值right join 即使左表没有匹配,也会从右表返回值多表联接需要一个一个进行联接,把大问题分解为小问题-- 联表查询-- 七种查询(基于以下三种)SELECT * FROM studentSELECT * FROM result-- 左联SELECT s.`studentno`,`studentna
2021-04-06 22:29:03
106
原创 mysql中的模糊查询
模糊查询重点是like和in的用法和区别,like可以用于任意匹配,in用于准确匹配简单的模糊查询不作代码详解,如and,or,not,between a and b,is not null,is null(都从字面意思即可知道如何使用)需要注意的是 between a and b是闭区间,即[a,b]-- 模糊查询(重点)-- like %(代表任意多个任意字符) _(代表一个任意字符)-- 查找姓张的人SELECT `studentname` FROM `student`WHERE L
2021-04-03 16:31:41
143
原创 mysql中的查询操作(DQL数据库查询语言)(mysql中最重要的部分)
查询操作(DQL数据库查询语言)这是mysql最重要的部分,但是语句比较零散,难以总结,可以一个一个试着运行一下理解语句意思。以下为简单语句,功能还不齐全,但也很重要-- 查询表中对应字段的数据 select 字段名1,字段名2... from 表名 SELECT `sex`,`phone` FROM student-- 字段名为*的时候为表的全部数据SELECT * FROM student运行结果:-- 可以给结果中的列名和表名起一个其他的名字显示在结果中, 用as SELECT
2021-04-03 16:02:15
108
原创 mysql中的增删改操作(DML数据库操作语言)
insert操作-- 插入语句-- insert into `表名`(字段名1,字段名2,字段名3...) values(值1),(值2),(值3)...-- 主键自增可以省略-- 数据和字段一定要一一对应INSERT INTO `student`(`name`,`sex`,`grade`) VALUES ('李华','女','大二'), ('张三','男','大三')...
2021-04-03 12:07:04
97
原创 mysql中物理外键的链接
物理外键的链接一般不会这么使用,会导致数据库操作不方便(必须先删从表才能删主表),仅做理解,实践中使用程序逻辑完成相同的效果-- 物理外键-- alter table 表名 add constrain 约束名 foreign key(作为外键的列) references 某个表(某一列)ALTER TABLE `student1` ADD CONSTRAINT `FK_grade` FOREIGN KEY (grade) REFERENCES grade(gradeid)...
2021-04-03 11:37:15
153
原创 mysql中对表的增删改
表的增删改-- 修改表名:alter table 旧表名 renmae as 新表名ALTER TABLE student RENAME AS student1-- 增加表的字段: alter table 表名 add 字段名 列属性ALTER TABLE student1 ADD age INT(10)-- 修改表的字段(修改字段名或者修改约束)-- alter table 表名 modify 字段名 属性[]ALTER TABLE student1 MODIFY age VARCHAR
2021-04-03 11:06:11
87
原创 mysql中的数据库引擎
数据库引擎分为:innodb和myisaminnodbmyisam事务支持支持不支持数据行锁定支持不支持(是表锁,不能行锁)外键约束支持不支持全文索引不支持支持表空间大小较大(大约是myisam的两倍)较小目前常用的是innodb(默认使用)myisam的优点:节约空间,速度较快innodb的有点:安全性高,支持事务处理,可多表多用户操作...
2021-04-03 10:42:16
63
原创 mysql创建数据库表
创建数据库表格式: CREATE TABLE (IF NOT EXISTS) 表名(字段名 列类型 [属性] [索引] [注释],)[表类型] [字符集设置] [注释]如:CREATE TABLE `student` ( `id` INT NOT NULL AUTO_INCREMENT COMMENT '学号', `name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名', `sex` VARCHAR(2) NOT NULL DEFAUL
2021-04-03 10:25:29
426
原创 mysql中的字段属性(重要)
mysql中的字段属性1.unsigned设置该列的数值为无符号数(需要列数据类型是整型或浮点型)声明该列不能声明为负数2.zerofill不足的位数由0填充,如数据类型是int,长度为3,写入5,则自动补充为0053.自增自动在上一条记录的基础上+1(也可以+其他数值,一般是+1,可以自定义为其他)一般用来设置主键,主键必须是整型可以自定义自增的起始值和步长4.非空如果不赋值,则会出错如果不写数值,则默认值为null(不冲突,可以理解一下)...
2021-04-01 23:16:55
138
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人