- 博客(116)
- 收藏
- 关注
原创 SpringBoot配置文件和日志
SpringBoot配置文件(properties和yml),日志的使用,日志的级别,日志的持久化,更加方便的使用日志(注解)
2023-05-20 14:12:09
638
14
原创 Ubuntu本地快速搭建web小游戏网站,公网用户远程访问【内网穿透】
网:我们通常说的是互联网;站:可以理解成在互联网上的一个房子。把互联网看做一个城市,城市里面的每一个房子就是一个站点,房子里面放着你的资源,那如果有人想要访问你房子里面的东西怎么办?在现实生活中,去别人家首先要知道别人的地址,某某区某某街道,几号,在互联网中也有地址的概念,就是ip。通过ip我们就能找到在互联网上面的站点,端口可以看做是这个房子的入口,不同的入口所看到的东西也就不一样,如从大门(80端口)进是客厅,从窗户(8080端口)进是书房。
2023-05-16 18:11:56
5781
129
原创 SpringBoot的创建和使用
简单介绍了SpringBoot,同时介绍了怎么创建SpringBoot项目和一些注意事项。如何理解SpringBoot的约定大于配置和在实际需要与约定不符合时应该如何解决。
2023-05-12 10:56:48
211
2
原创 本地搭建wamp服务器并内网穿透实现无公网IP远程访问
软件技术的发展日新月异,各种能方便我们生活、工作和娱乐的新软件层出不穷,但也有一些经过时间和用户考验的老牌软件屹立不倒。就一我们熟悉的网站集成环境来说,全球就有很多种server软件。每个软件都有各自的特色(虽然同质化很严重),也拥有自己固定的适用群体。今天,我们就尝试安装一款经典集成环境软件Wamp,并使用cpolar内网穿透建立数据隧道,让我们能在公共互联网上访问到本地电脑上的Wamp。其实,wamp只是装载网页的容器,我们可以在wamp里安装上自己想要的网页内容,让这个网页成为我们对外发声的窗口。
2023-05-10 09:33:53
1441
87
原创 在外远程控制我的世界服务器 - MCSM面板【端口映射】
MCSManager 是一个开源,分布式,轻量级,一键开服,支持大部分游戏服务端和控制台程序的管理工具。支持中英语言,一直在为 Minecraft,Terraria,Steam 游戏服务器管理员,运维人员和企业提供健康的软件支持。下面介绍在windwos中安装Mcsmanager且通过cpolar内网穿透工具,实现远程访问Mcsmanager 面板,控制游戏的实例启动和停止。
2023-05-05 07:57:07
1426
51
原创 【Zblog搭建博客网站】windows环境搭建属于自己的博客并发布上线 - cpolar内网穿透
想要成为一个合格的技术宅或程序员,自己搭建网站制作网页是绕不开的项目。就以笔者自己的经历来说,就被自制网页网站卡过很久。不过随着电脑技术的发展,已经出现了很多便捷快速建站的工具软件。今天,笔者就为大家展示,如何快速上手Z-blog,建立自己的个人博客网站,并通过cpolar建立的内网穿透数据隧道,将这个个人博客软件发布到公互联网上。从上面介绍的步骤可以看出,想要快速发布一个网站,有必要选择一些简单趁手的辅助工具,虽然Z-blog搭建的网站但很简单,但却是我们熟悉cpolar发布本地网站很好的例子。
2023-04-23 19:14:41
430
36
原创 Spring更简单的读取和存储Bean(基于注解)
Spring更简单的读取和存储Bean(基于注解),详细介绍了基于注解进行开发的方式,包含了五大类注解和方法注解,以及获取Bean对象的三大注入方式
2023-04-22 18:14:49
397
15
原创 JVM的类加载的过程以及双亲委派模型
如果是自定义的类,也会经历上述过程,但是由于在BootSharpClassLoader目录中无法找到该自定义的类就会回到上一级ExtensionClassLoader中进行加载,如果还是找不到就会到上一级ApplicationClassLoader当中进行加载,然后再当前目录中找到了自定义的类进行加载。如果在最后没有成功加载就会抛出ClassNotFoundException。
2023-04-14 17:50:23
644
22
原创 JVM的内存区域划分
目录1、程序计数器(内存中最小的一块,里面保存了当前线程下一条执行的指令的地址)2、栈(保存局部变量和方法调用的信息) 3、堆 (成员变量和new出来的对象都在堆上)4、方法区(存储常量,静态变量,类对象等等) 总结:JVM内存区域划分 JVM的内存区域划分分为四个区域:程序计数器,栈,堆,方法区(现在也叫元数据区)。 每个线程只有一个程序计数器,所以每个程序计数器是线程私有的。操作系统是以线程为单位调度的,所以每个线程都需要记录自己当前执行到哪一步了,以便后续再次调用。 栈也是线程私有的,在我们调用方
2023-04-10 18:05:12
461
10
原创 了解Servlet及Servlet的使用
前面学习了然后使用Maven,在Maven的基础上我们可以通过七个步骤来实现一个servlet程序1、创建项目2、引入依赖3、创建目录结构4、编写servlet代码5、打包6、部署7、验证程序。
2023-04-02 12:38:29
327
7
原创 认识Maven及Maven下载和管理依赖
maven是Java中知名的一个远程管理工具/构建工具,它的核心功能是:管理依赖;构建/编译;打包等等。
2023-04-01 10:22:26
353
17
原创 Tomcat的下载使用及网页部署
Tomcat 是一个 HTTP 服务器。我们知道HTTP 协议就是 HTTP 客户端和 HTTP 服务器之间的交互数据的格式。同时也通过 ajax 和 Java Socket 分别构造了 HTTP 客户端。HTTP 服务器我们也同样可以通过 Java Socket 来实现。而 Tomcat 就是基于 Java 实现的一个开源免费,也是被广泛使用的 HTTP 服务器。
2023-03-30 15:42:13
140
4
原创 认识HTTPS以及了解HTTPS的加密过程
HTTPS 也是一个应用层协议。是在 HTTP 协议的基础上引入了一个加密层。加密层之前叫做SSL,现在叫TLS了,所以也叫SSL/TLS协议。我们知道HTTP是按照文本的明文方式进行传输的,这就使得传输过程中容易出现被篡改的情况。提到这些我们就不得不说一下“运营商劫持”。
2023-03-29 15:31:22
1658
14
原创 fiddler(抓包)的用法和HTTP 协议的基本格式
客户端这边会通过Cookie来记录当前浏览器的相关信息,保存其中间状态,客服端向服务器发送请求的时候会把Cookie夹带着发送给服务器,这样服务器就接受到了Cookie。比如如果你的网站申请了新的域名,然后域名就变成了新域名,但是很多用户并不知道你改变了域名,就可以通过配置重定向临时转移,当用户访问旧的域名的时候,就跳转到新的域名进行访问即可。有些是可以长期存在的,有些是短期的,有些是只限于登录,退出后就失效的等等。http请求是有一定的格式的,使用fiddler进行抓包可以查看一些相关的信息。
2023-03-27 21:00:41
1326
17
原创 JavaScript——WebAPI案例(猜数字,表白墙,待办事例)
在JavaScript中生成随机数使用的Math.random()是[0,1)之间的数(小数),所以为了生成1-100,我们需要用100*Math.random(),就变成了[0,100),然后使用parseInt使之变为整数,最后再加1,就是[1,100]。3、根据输入的数字的大小给出提示(高,低,猜对了)1、生成1-100的数字。2、让用户输入一个数字。
2023-03-25 11:10:16
115
10
原创 JavaScript——WebAPI(DOM)知识小结
WebAPI是浏览器给js提供的功能,同时如果浏览器不同,api的行为也会有所不同。WebAPI可以分为DOM API(操作页面结构)和BOM API(操作浏览器)
2023-03-23 23:16:12
379
18
原创 【JavaEE】多线程代码实例:定时器与线程池
定时器也是软件开发中的一个重要组件。类似于一个 "闹钟".。达到一个设定的时间之后, 就执行某个指定好的代码。这与我们平时说的闹钟很类似,但是它不仅可以起到提醒的作用,还可以真正的去做。并且定时器在网络编程中的用途还是比较多的。比如:在我们访问一个网页的时候,设置一个定时器,一旦访问的时间过久,就会触发定时器,并结束本次访问,及时断开连接,不再阻塞等待。提到线程池,我们应该可以想到了解过的很多类似的“池”,比如字符串常量池。
2023-03-08 23:29:57
402
26
原创 MySQL数据库(数据库约束)
也就是说张三class_id为2,也就是java1班,李四就是java2班的。确保某列(或两个列多个列的结合)有唯一标。对于整数类型的主键,常配搭自增长auto_increment来使用。插入数据对应字段不给值时,使用最大值+1。foreign key - 保证一个表中的数据匹配另一个表中的值的参照完整性。识,有助于更容易更快速地找到表中的一个特定的记录。default - 规定没有给列赋值时的默认值。就会出现报错了,无法插入,这就体现了外键的约束。unique- 保证某列的每行必须有唯一的值。
2023-02-16 20:43:23
2121
4
原创 【JavaEE】多线程代码实例:单例模式与阻塞队列BlockingQueue
单例模式能保证某个类只能存在唯一的实例,不能创建多个实例。这种设计模式是需要在特定业务场景进行使用的。
2023-02-15 17:23:15
6997
4
原创 【JavaEE】synchronized监视锁 volatile关键字wait和notify
由于我们在使用多线程的过程中会出现线程安全的问题的。然后我们可以通过这几个方案来进行解决线程安全问题。synchronized监视锁:方案一:监视锁synchronized关键字有以下几个特征:1、互斥性当程序进入synchronized关键字修饰的代码块时,这个时候就被加锁了。当执行出该代码块时就解锁了。当我们的一个线程对该对象加锁后,另外一个线程执行到该对象时,就会阻塞等待。我们可以简单的理解为:这里以上厕所为一个例子,当有人(一个线程)进入厕所(执行到监视的锁对象)进行解决的时候,就
2023-02-04 23:34:59
4436
37
原创 【JavaEE】并发编程(多线程)线程安全问题&内存可见性&指令重排序
线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。
2023-02-03 17:49:15
7521
5
原创 【JavaEE】认识线程&Thread类及常用方法&线程状态
比如我们之前一直写的程序都只是在main线程中写的代码,以前写的代码都是单个线程的。我们上面的t线程这样的说法注意这里的t是指Thread对象,不是我们线程的名字。那么我们如果的任务没有进行描述,但是我们启动了线程,就相当于老板没有给员工下达任务,员工此时就是可以执行任务的状态RUNNABLE(就是闲着)。2、进程和线程都可以解决并发编程问题,但是进程在频繁的创建和销毁的时候开销更大,线程更小。run方法描述了该线程要执行的任务内容,即要执行的代码,而调用start方法才是真正创建了线程,才会执行任务。
2023-01-24 15:21:37
5650
6
原创 【JavaEE】简单了解操作系统、进程&内存管理
由于最近忙于备考和学习新的知识以及疫情返乡政策等原因,博客的内容有一段时间没有更新了。不过从今天开始,依然是步入正轨了,继续我总结知识的过程。同时马上就是新年了,在这里预祝大家2023年新年快乐,在新的一年里更进一步,早日实现梦想,进入理想的企业哈!!!好了,那么书归正传。开始进行多线程的学习。今天主要总结的是初步对操作系统有个认识,外加对进程和内存管理的相关部分进行一个总结。进程是操作系统对正在运行的程序的一种抽象,换句话说就是,程序的一次运行过程可以称为进程。
2023-01-18 16:56:59
7845
36
原创 MySQL数据库(Java的数据库编程:JDBC)
JDBC,即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。这个API由 java.sql.*,javax.sql.* 包中的一些类和接口组成,它为Java开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问.说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。
2022-11-16 23:40:34
6633
10
原创 MySQL数据库(表的CRUD基础操作(最常用))
全列查询是把整个表中的所有数据都遍历了一边,这种用法在数据量比较大的时候不建议使用,MySQL数据库是基于客户端-服务器类型的,当我们发送指令的时候,服务器来接收指令,并给予服务。我们所需要的数据是存储在硬盘中的,所以服务器需要在硬盘中读取我们需要的数据,并加以解析,当全部都查询的时候,会增加数据传输时间和网络开销。注意:只可以就行单行插入,并且必须是全列的,否则就失败了。
2022-11-06 14:59:12
7058
15
原创 浅刷牛客链表题,逐步深入链表,理解链表
主要思想就是定义一个快指针,一个慢指针,快的一次走两步,慢的一次走一步,当快的走到链表的尾结点的时候,慢的就是中间结点的位置,然后把它后面的结点进行反转,上面说过怎么反转了,最后,从两端开始比较即可!思路描述:为了反转链表,简单一点说就是把结点的next值进行一个修改,如果我们用cur来记录当前的结点,那么在修改指向的时候,我们需要知道它的前一个结点(pre)和后一个结点(curNext),因为一旦指向修改完成后,后面的结点就找不到了,所以我们需要记录一下。要求:空间复杂度 O(1),时间复杂度O(n)
2022-11-04 23:36:54
908
1
原创 MySQL数据库基础操作
if not exists 就是说如果库中不存在你要创建的这个数据库的相同的名字的数据库时就会创建,否则会发出警告。可以使用comment增加字段说明(一般不用这种方式,只有在创建表的时候可以用)除了刚刚创建的数据库,还有数据库自己本来就存在的数据库。以上为数据库和表的基础的一些操作,多练练就会了。注意:SQL语言中不存在大小写,大小写均可)可以看到刚刚创建的数据库已经删除了。这个一个数据库就创建好了。[]中内容为非必须项目。
2022-11-01 00:06:01
1825
18
原创 Map&Set哈希桶(基础+常用方法总结)
Map和set是一种专门用来进行搜索的容器或者数据结构。Map和Set是一种适合动态查找的集合容器。
2022-10-22 22:11:01
9753
3
原创 练手小题(哈希表搜索树)
首先我们分析一下思路哈:简单理解一下题目:就是说要让我们输出字符串1没有在字符串2中的部分(也就是字符串1中多出来的那部分,同时每个字符(大写)按照字符串中出现的顺序只可以输出1次即可),所以我们可以写一个方法来实现这个功能:首先我们要把两个字符串都改为大写的字符数组,之后用一个HashSet把s2出现的字符存放起来,然后遍历s1所在的字符数组ch1,如果HashSet中不包含ch1中的元素就把它存放到一个List当中,最后打印List中的内容即可。2.返回链表中的第一个节点的指针。
2022-10-22 20:34:55
595
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人