- 博客(106)
- 资源 (39)
- 收藏
- 关注
原创 Java基础手写服务器
Tomcat服务器运行原理客户浏览器发出要求访问特定的Servlet的请求。1)Tomcat服务器接收到客户请求并解析。2)Tomcat服务器创建一个ServletRequest对象,在ServletRequest对象中包含了客户请求信息及其他关于客户的信息,如请求头,请求正文,以及客户机的IP地址等。3)Tomcat服务器创建一个ServletResponse对象4)Tomcat服务器调用客户所请求的Servlet的service服务方法,并且把ServletRequst对象和ServletRe
2021-12-18 23:37:29
547
原创 最简单的服务器和客户端Java代码学习
最简单的服务器和客户端Java代码学习客户端逻辑创建Socket对象获取输出流—>请求获取输入流—》响应关闭流客户端代码import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.net.Socket;import java.rmi.UnexpectedException;public class Client { pub
2021-12-12 10:41:53
848
原创 冒泡排序的基础算法
冒泡排序是最常用的排序算法,在笔试中也非常常见,能手写出冒泡排序算法可以说是基本的素养。算法重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,这样越大的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下: 1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3. 针对所有的元素重复以上的步骤,除了最后一个。 4. 持续每次对越来
2021-11-21 10:25:16
4175
原创 二分查找法
二分法检索(binary search)又称折半检索,二分法检索的基本思想是设数组中的元素从小到大有序地存放在数组(array)中,首先将给定值key与数组中间位置上元素的关键码(key)比较,如果相等,则检索成功; 否则,若key小,则在数组前半部分中继续进行二分法检索; 若key大,则在数组后半部分中继续进行二分法检索。 这样,经过一次比较就缩小一半的检索区间,如此进行下去,直到检索成功或检索失败。二分法检索是一种效率较高的检索方法。比如,我们要在数组[7, 8, 9, 10, 12
2021-11-21 10:20:11
212
原创 Stream的创建四种方式
package com.hejun.springboot.common;import org.junit.Test;import java.util.Arrays;import java.util.List;import java.util.stream.IntStream;import java.util.stream.Stream;/** * 1.Stream关注的是对数据的运行,与CPU打交道 * 2.Stream自己不会存储元素 * 2.Stream不会改变源对象。相反,他们
2021-11-06 16:20:45
507
原创 Lambda表达式的使用
/**Lambda表达式的使用1.举例(o1,o2) ->Integer.compare(o1,o2);2.格式: ->:lambda操作符 或 箭头操作符 -> lambda形参列表 (其实就是接口中的抽象方法的形参列表) -> 右边: lambda体 (其实就是重写的抽象方法的方法体)Lambda表达式的使用:(6种情况) 总结: ->左边:lambda形参列表的参数类型可以省略(类型推断);如果lamda形参列表只
2021-10-31 21:23:19
249
原创 解决org.springframework.amqp.AmqpIOException: java.io.IOException错误
启动项目报错:org.springframework.amqp.AmqpIOException: java.io.IOException解决:检查mq配置,很明显未连接15672是访问web的端口应该是5672才是访问mq发消息的端口启动项目,没有报错完美解决
2021-10-24 11:44:35
13718
原创 双亲委派机制原理详解
双亲委派机制工作原理如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行。如果父类加载器还存在其父类加载器,则进一步向上委托,依次递归,请求最终到达顶层的启动类加载器。如果父类加载器可以完成类加载任务,就成功返回。倘若父类加载器无法完成此加载任务,子加载器才会尝试自己去加载,这就是双亲委派机制。...
2021-10-04 17:30:27
339
原创 常见的五种单例模式实现方式
常见的五种单例模式实现方式主要饿汉式(线程安全,调用效率高,但是不能延时加载)懒汉式(线程安全,调用效率不高,但是,可以延时加载)其他:双重检测锁式(由于JVM底层内部模型原因,偶尔会出问题,不建议使用静态内部类式(线程安全,调用效率高,但是可以延时加载)枚举式(线程安全,调用效率高,不能延时加载,并且可以天然的防止反射和反序列化漏洞)如何选择?单例对象 占用 资源少,不需要 延时加载枚举类类 好于 饿汉式单列对象 占用 资源大 需要延时加载静态内部类 好于懒汉
2021-09-25 22:02:14
134
原创 TCP的三次握手与四次挥手理解及面试题(很全面)
序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时.
2021-08-18 20:38:32
449
1
原创 实现多线程的四种方式
package duoxiancheng;public class ThreadTest { /** * 多线程的创建: 方式一:继承于Thread类 * 1.创建一个继承于Thread类的子类 * 2.重写Thread类的run()-->将此线程执行的操作声明在run()中 * 3.创建Thread类的子类的对象 * 4.通过此对象调用start() * eg:遍历100以内的所有的偶数 */ public s
2021-08-13 20:21:06
249
原创 多线程问题 创建三个窗口买票 总票数100张
package duoxiancheng;public class Window extends Thread{ private static int ticket =100; @Override public void run(){ while (true){ if (ticket>0){ System.out.println(getName()+":卖票,票号为:"+ticket);
2021-08-13 20:05:57
351
原创 2021java学习路线
第一阶段:JavaSE基础:1. 基础语法2. 面向对象基础3. 循环语句、数组4. 面向对象高级第二阶段:JavaSE进阶:Java API集合IO多线程网络编程第三阶段:Java Web:MySQLJDBCMavenMyBatisHTML+CSSJavaScriptTomcat+HTTP+ServletRequest+ResponseJSP+Cookie+SessionFilter+ListenerAjax + Vue + ElementUI
2021-07-25 23:28:24
160
原创 Spring Boot项目:使用第三方天气API接口实现天气预报功能
查询天气的api:“http://aider.meizu.com/app/weather/listWeather?cityIds=101210101”直接在city=后面加上中文城市,就会返回json数据。基于maven创建一个springboot应用,pom信息如下,注意添加了httpclien <dependency> <groupId>org.apache.httpcomponents</groupId> ..
2021-07-14 18:44:21
1642
1
原创 Springboot+Mybatis对数据库中的表随机添加数据
数据库数据库sqlCREATE TABLE `sys_faces` ( `id` int(10) NOT NULL AUTO_INCREMENT COMMENT 'ID', `img` varchar(255) DEFAULT NULL COMMENT '抓拍照', `name` varchar(255) DEFAULT NULL COMMENT '姓名', `sex` int(2) DEFAULT NULL COMMENT '性别 ', `create_time` varchar
2021-07-06 20:19:23
255
原创 整合mybatis plus
第一步:导入jar包pom中导入mybatis plus的jar包,因为后面会涉及到代码生成,所以我们还需要导入页面模板引擎,这里我们用的是freemarker。<!--mp--><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.2.
2021-06-28 12:28:20
547
原创 工具类-验证码
验证码package com.hejun.utils;import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.FileOutputStream;import java.io.IOException;import java.util.Arrays;import java.util.Random;public class ValidateImageCo
2021-06-25 11:16:15
97
原创 数组的工具类ArrayUtil
数组的工具类ArrayUtilpackage day01;public class ArrayUtil { //求数组的最大值 public int getMax(int[] arr){ int maxValue = arr[0]; for (int i =1;i<arr.length;i++){ maxValue = arr[i]; } return maxValue; }
2021-06-23 01:44:06
594
原创 Springboot+JPA对一张表实现增删改查
数据库表:idea项目结构pox.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.a
2021-06-22 21:27:11
145
1
原创 软件产品开发流程
软件产品开发流程:下图所示的是一个软件产品开发大体上所需要经历的全部流程:1、启动在项目启动阶段,主要确定项目的目标及其可行性。我们需要对项目的背景、干系人、解决的问题等等进行了解。并编制项目章程和组建项目团队,包括:产品经理、架构工程师、UI工程师、开发工程师、测试工程师等。完成以上准备工作之后,召开项目启动会,启动会结束则进入下一步的工作。2、规划在项目的规划阶段,项目经理需要和项目需求方,以及项目的相关干系人确定项目的范围,创建WBS,确定项目的里程碑和项目计划。同时制定项目的管理计划,
2021-06-22 19:32:14
1316
原创 /*和/的区别
其中/和/*的区别:/不会匹配到*.jsp,即:.jsp不会进入spring的DispacherServlet类。 /会匹配*.jsp,会出现返回jsp视图时再次进入spring的DispacherServlet类,导致找不到对应的controller所以报404错。总之,关于web.xml的url映射的小知识:<url-pattern>/</url-pattern>会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url<url-pa
2021-06-09 18:13:12
385
原创 教你一分钟在win10终端成功安装Pytorch
pip3 install torch1.2.0+cpu torchvision0.4.0+cpu -f https://download.pytorch.org/whl/torch_stable.htm
2020-08-21 21:21:30
287
原创 TCP三次握手
什么是事务概念:事务一般特指数据库事务(Datebase Transaction),是指作为一个程序执行单元执行的一系列操作,要么完全执行,要么完全不执行事务的特性原子性(atomicity)一个事务是一个不可分割的工作单位.一致性(consistency)事务必须是使数据库从一个一致性状态变到另一个一致性状态隔离性(isolation)一个事务的执行不能被其他事务干扰.持久性(durability)一个事务一旦提交,它对数据库中数据的改变就应该是永久性的.当MyBatis运行开始
2020-06-21 08:59:48
161
原创 跨域问题:[CORS] 原点“http://localhost:8080”未在“http://127.0.0.1:9002/busincss/admin/chapter/list”的 cross-or
什么是跨域:原来请求的目标URL和所在网页的URL的协议、域名、端口有一个不同,就算是跨域了。情况如下:遇到这样的问题呢.该如何解决呢?CORS,Cross-Origin Resource Sharing跨站点资源分享,属于跨域问题.同个IP的不同端口间的访问与属于跨域.前后端分离必然有跨域问题.package com.course.server.config;import org.springframework.context.annotation.Configuration;im
2020-06-14 22:52:41
2184
原创 String类和常量池
String类和常量池public class TestString { public static void main(String[] args) { String str1 = "abc"; String str2 = "a" +"b"+"c"; String str3 = new String("abc"); String str4 = str3 +""; String str5 = new String("abc"); System.out.println("str1=
2020-06-14 22:52:14
112
原创 解决:To display the conditions report re-run your application
Error starting ApplicationContext. To display the conditions report re-run your application with ‘debug’ enabled.问题启动类代码package com.course.system;import org.mybatis.spring.annotation.MapperScan;import org.slf4j.Logger;import org.slf4j.LoggerFacto
2020-05-26 22:46:43
1761
原创 给IT从业者的一些建议。
给IT从业者的一些建议。如果你还没有选择成为一名IT从业者,那么你先看完我这篇文章再决定。如果你决定要成为一名IT从业者,你需要承受以下的东西。什么东西都是有得必有失,你得到什么的同时你必定会失去一些什么。有些人认为互联网是很吃香的一个行业,如果一个聪明的人在互联网确实是很吃香,但是有一些东西需要根据你自身的本质,比如耐心,比如敏捷能力,可以很敏锐的感觉到商机的到来。有一些行业你看似很有前景,但是不是每一个人都能做到的,选择自己感兴趣的行业才是最重要的。如果你选择互联网行业:你必须熬得住寂寞。
2020-05-15 20:37:30
252
原创 Python之pip下载方便又快捷
pip install --default-timeout=100 -i https://pypi.tuna.tsinghua.edu.cn/simple
2020-05-04 20:10:04
277
原创 springboot 佛祖保佑,永无bug
//////////////////////////////////////////////////////////////////// _ooOoo_ o8888888o 88" . "88 ...
2020-05-02 15:13:29
975
原创 Java游戏之简单版雷霆战机
GameObjectpackage cn.sxt.game;import java.awt.Graphics;import java.awt.Image;import java.awt.Rectangle;public class GameObject { Image img; double x,y; int speed; ...
2020-04-15 12:01:20
617
原创 Java中的多态的自己深刻理解
多态指的是同一个方法调用,由于对象不同可能会有不同的行为.现实生活中,同一个方法,具体实现会完全不同.多态的要点:多态是方法的多态,不是属性的多态(多态与属性无关)多态的存在要有三个必要条件:继承,方法重写,父类引用指向子类对象.父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了public class TestPolym {public static void...
2020-04-15 10:07:06
165
原创 《Web前端开发高级工程师就业班》目前 最新
引用是无条件的引用是无路径的var http=require(“http”);var qs=require(“querystring”);…123常用方法和属性url.parse();querystring.parse();path.extname();123自定义模块每一个js文件就是一个模块,Node.js,webback、 seajs使用CMD(通用模块定义...
2020-04-14 18:08:34
660
原创 贝尔曼方程(Bellman Equation)的解读
这个算法只适用于没有变化的环境在解释下面几个专业术语前我先来说一下这个Agent,中文的意思是 代理,代理人但是实际上他大概表示的意思就相当于变量,就给你某一个状态贴上了一个标签一样**状态(State) :**用一个数值来作为代理(Agent),描述在环境中某一特定时间点的状态**行为(Action)* *:代理(Agent)向环境提供的输入,通过对当前状态经行策略计算,然后采取行...
2020-03-14 23:15:57
11853
原创 循环队列和队列的性能比较
循环队列package com.company;public class LoopQueue<E> implements Queue<E>{ private E[] data; private int front, tail; private int size; public LoopQueue(int capacity){ ...
2020-03-05 20:04:58
291
原创 泛型数组
让我们的数据结构可以放置"任何"数据类型不可以是基本数据类型,只能是类对象boolean,byte,char,short,int,long,float,double每个基本数据类型都有对应的包装类Boolean,Byte ,Char,Short,Int,Long,Float,DoubleArray类package com.company;public class ...
2020-03-04 17:47:31
131
原创 手写简单的数组
手写简单的数组实现查找,添加,删除操作Array类package com.company;public class Array { private int[] data; private int size; //构造函数,传入数组的容量capacity构造Array public Array(int capacity){ data =...
2020-03-04 15:13:40
108
原创 第二章 不要小瞧数组
数组package com.company;public class Main { public static void main(String[] args) { int[] arr = new int[10]; for (int i = 0;i<arr.length;i++) arr[i]= i; int[] scores =...
2020-03-04 12:10:04
93
原创 方法的重写、覆盖、重载的概念和区别
方法的重写、覆盖、重载的概念和区别方法的重写也就是方法的覆盖:在不同的类中,指子类和父类的关系,子类继承其父类的方法,方法名、参数类型、参数个数必须相同(各个地方跟父类一模一样所以也叫做覆盖)特别注意子类的方法修饰符的访问权限必须大于等于其父类中被重写的方法的修饰符的权限(public>protect>default>priavte)。方法的重载:在同一个类中,方法名相同,...
2020-03-04 11:42:55
667
原创 Java中的几种集合的区别及适用场景
概述:list,set,map都是接口,前两个继承至Collection接口,Map为独立接口Set下有HashSet,LinkedHashSet,TreeSetList下有ArrayList,Vector,LinkedListMap下有Hashtable,LinkedHashMap,HashMap,TreeMapCollection接口下有个Queue接口,有PriorityQueu...
2020-02-20 23:19:04
427
SpringBoot项目实战-高校宿舍管理系统-前后端分离项目
2021-06-20
lay-3.0:layui社区源码3.0-源码
2021-06-17
最新全国高校数据库信息(包含2854所高校)+全国地区数据表
2021-05-26
基于卷积神经网络的人脸识别系统.rar
2021-04-28
数字经济是以数字化的知识和信息作为关键生产要素.rar
2021-04-12
3.10电视监控设备-cad图块.dwg.rar
2021-03-02
智慧项目app操作手册1.docx
2020-12-19
龙杰ACR122U NFC读写器驱动及程序
2020-04-23
com-sun-tools-visualvm-modules-visualgc-2.1.2
2020-04-19
mysql8.x_java_c3p0_jar.rar
2020-03-22
htm+css网页设计课程作业
2019-12-16
Android应用源码基于安卓的校园二手交易系统客户端+服务端+数据库.rar
2019-11-23
签到程序App-Android练手
2019-04-26
javaweb课程设计学生管理系统
2018-12-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人