建站感言
前言历时两个月,我的博客终于在今天基本完成了,此时此刻,我,除了激动还是激动,现网站有了评论点赞第三方登录这些基本的功能,美化和优化都还存在很多问题,等后期一步一步来吧,对于网站搭建,我后面会写几篇文章,专门讲解。
本站历程
2020.3.4 首次搭建个人网站成功,采用阿里云学生机(ContOS系统)+wordpress框架搭建
2020.9.12 网站搬迁,现目前网站采用Gitee+Hexo框架搭建
因为服务器要花上一笔不少的费用,所以才花了大量时间搭建了现在这个免费博客,在这里也十分感谢网络上默默奉献的大佬,成熟的框架体系和已完善的功能让我们这些小白搭站的过程变得更加方便。
建站初衷我为什么会搭建网站呢?这个…说来话长…
刚转专业的我,在班级群看见老师叫每人租一个云服务器,把他们上学期的静态网页通上网,于是,什么都不懂的我,就跟个憨憨一样,买了一年的服务器,打开了B站,搜索了网站搭建,后来我才知道,网站搭建跟静态网页通网,那是两个概念。
总之,在历经九九八十一难之后,我的小站还是搭建起来了,也是在搭建过程中,我了解到了技术博客这个东西,据说,每一个优秀的程序员都应该拥有一个自己 ...
从零开始:JVM原理解析
JVM是什么JVM 是 Java Virtual Machine 的缩写,是 Java 程序的运行环境。它是一个虚拟的计算机,在实际的计算机上运行,它通过将 Java 字节码解释或编译为机器码来执行 Java 程序。
JVM 有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统,它屏蔽了与具体操作系统平台相关的信息。
Java的跨平台实现Java 语言的跨平台特性就是依靠 JVM 来实现的。就像我们日常所使用的一些应用程序一样,针对不同的操作系统,有不同版本的 JVM ,我们只需要进行相应的安装配置即可
Java 源代码文件通过编译之后,产生的以 .class 结尾的字节码文件可以直接运行在 JVM 上面,从而实现跨平台,同一份字节码文件通过 JVM,可以不加修改就运行在不同操作系统上,也就是所说的 一次编译,处处运行。
JVM内存结构JVM 的运行时数据区分为:方法区、堆、栈、本地方法栈、程序计数器
方法区方法区只是一个逻辑上的概念,随着 JDK 的更新,具体实现如下,参考:方法区、永久代、元空间的区别
JDK 版本
方法区的实现
运行时常量池的位置
...
2022年终总结
前言新的一年又到来了,还是像以往一样,给这魔幻的2022年做个小结吧。2022不长,在封控、摆烂以及无意义的忙碌中匆忙度过了。
2022目标回顾
深入学习SSM,源码分析
深入学习SpringBoot,源码分析
学习Spring Cloud,接触微服务
学习JVM课程
学习Vue课程
系统学习计网知识
学习RabbitMQ
看了看,也就完成了前三项吧,说是源码分析,其实也只是学习了它们的启动流程、一些加载机制而已。
虽然剩下的四项没有完成,但是接触学习了一些别的东西,比如MybatisPlus、Redis、Docker,由于简单的学习笔记我认为不是很有价值,故没有再单独整理成博客文章,可能之后进行进阶学习的时候,会写一些文章。
简单来说,就是2022学习目标没有达成。。。
上岸&感受在经历了长达半年时间的备考后,我终于如愿考上了我们专业对口的公办本科院校,得以继续我的学习生涯。
但通过这一学期本科课程的学习,我还是挺失望的,学校开设的课程千奇百怪,每天都忙碌于没意义的实验作业,对,就是没意义,我不能理解为什么软件工程专业要把PS当做主修课程来学习。
但是我能够很好地分清主 ...
二分查找算法
定义二分查找(Binary Search)也叫作折半查找。是一种时间复杂度为O(logN)的查找算法
力扣
视频讲解
前提&场景二分查找有两个要求,一个是数列有序(一般为升序排列),另一个是数列使用顺序存储结构(比如数组)
算法分析最开始以整个数组为区间,找到区间的中间元素,与目标元素进行比对。根据比对结果调整区间边界,再次找到区间的中间元素,与目标元素进行比对,如此循环,直至找到目标元素为止。
动画演示
注意点
区间的划分要清晰
在编码时根据区间的定义来设置边界值
编码实现左闭右闭区间思路
[left,right]
123456789101112131415161718192021222324class Solution { public int search(int[] nums, int target) { //避免当target小于nums[0]或大于nums[nums.length - 1]时多次循环运算 if (target < nums[0] || target > nums[nu ...
写给五年后的自己的一封信
66b46b7b58be19db62a6a8f28aae2f8a9259bd66cb3800c0d05a08a177e1dd20dc7f2c6b600ebd348401af779e147ffc72d3564a182250a8afd2dc45f93cd1d80f4e4a18a9560ed2d0600d699589ca8858ab4948a343a4be1fae4f8426faf80f7d10abc8332dad0039c94249ea9d51b3448b77712ac8cf3dd60b4376a1a812d0e15ff12daf62da4b403940f389521c9e2ec7b62f77e89fa0e5d94a079084824001113c6aba2c70ece226f1d6d0d13cb37c26d2d3a0bc4e84387f4ca76618df97e83f8853eebce48de38e265b91da7c965ebd79396a1090ed0731d3c54589daf42487ba308a2c95b85fc76df9921710889474c34a9a24b1ba1 ...
专升本经验分享
前言
这篇文章是本人的专升本考试经验分享,我将会从我的角度出发尽可能详细地讲述我的专升本备考过程以及升本注意事项。这是对我人生经历的记录,同时也希望能帮助到后面有想要专升本的学弟学妹们,让你们少走一些弯路。
适用省份:四川省
个人简介四川信息职业技术学院2019级学生,高考调剂录取到新能源汽车专业,大一下期转专业到软件技术,在校期间专业成绩排名年级前二十的样子。
2022年参加专升本考试,考入成都工业学院软件工程专业,笔试总分195,总成绩70.75
关于备考关于专升本的备考,我觉得主要有以下几方面要注意:
报班or不报班这是在有专升本的想法之后第一个就应该考虑的问题,这个取决于个人。如果你的家庭根本不缺钱,那么请你直接报vip班,跟着老师学就好了,你甚至不需要浪费时间来看我这篇文章了;如果你的家庭条件一般,能够支付起几千到一万多不等的培训费用,你可以考虑报个班,培训班的老师会带着你系统地进行学习,人家老师的工作就是研究专升本考试的,所以请你不要质疑他们的专业性,当然也不是说报个班就能高枕无忧了,专升本考试决定因素还是个人的努力程度,如果你只是每天去培训班吹吹空调,那么还是别 ...
2021年终总结
前言2021走到年末,年终总结也就如约而至了,2021是短暂却又丰富多彩的一年,我呢,过得不算精彩,却也不赖。
今年参加了2次比赛,发表了10篇博客文章,29条博客说说,13条空间动态,9条朋友圈。
今年博客文章的数量和质量都不高,明年我一定会加倍努力,会用心地输出更加优质的博客文章。
空间动态明显减少,博客说说明显增加,渐渐学会了自己消化不良情绪。
历程第一名
在寒假期间举办的一个小型比赛取得了第一名的成绩,这个首先感谢晖哥给了我参加这次比赛的机会,其次感谢自己半个月的努力付出,最终还是有所收获。虽是小比赛,但是也足以在我空荡荡的简历上添上浓墨重彩的一笔了。
驾照
个人是挺不喜欢开车的,但是驾驶的确是当下每个年轻人都应该学习掌握的基础技能。磕磕绊绊、断断续续学了一个多学期,今年3月份终于把驾照拿到手了。
软件杯
4月底到6月底,停课两个月备赛“第十届中国软件杯”,遗憾的是,我们团队的能力欠缺太多,到最后也没有拿出一个像样的作品,这一仗,被打得稀碎。收获就是,提前接触、学习到了框架技术还有建模技术,培养了自学能力。
剑门关
在广元上学待了两年,周围全是景点,我都没去过,主要还是太 ...
近况
上个月20号那天我参加了人生的第二个面试,boos直聘上面找到的,招一个全栈开发实习生,因为在学校写过几个项目,前后端我都写得还可以,我觉得应该能够胜任。收到面试邀请之后,我就过去了,去之前还花了整整一天时间,巩固复习了我的前端技术,就是为了到时候能和面试官侃侃而谈。到之后,我人蒙了,老板下楼接的我,我们来到一个办公室,有一张办公桌上摆了文件和电脑,那是他的办公桌,除此之外,还有四张空桌子,老板拿过我的简历,简单看了不到1分钟,开始跟我聊他的宏图大志,大概意思就是,需要开发一个款软件,所以他现在要招4个员工,嗯,后面就不用多说了吧,这是一家还在创业阶段的公司。
我的第二次面试就这样草草结束了,说实话,两次面试,我认为自己没有太多的收获,但我至少清楚了一点,像软件开发这个技术性很强的岗位,只要你技术足够到位,面试就会很轻松。从20号回来之后,我开始卷起来了了,早上7点我就起床去教室,每天下课后,在教室学到8点左右才回宿舍吃饭,吃完饭又开始学,学到十一二点的样子睡觉,第二天又重复,周末也是如此。就这样卷了5天,这5天我学完了一套springboot的课程,还顺带把ssm框架的课程又复习了一 ...
PageHelper的简单使用
简介
PageHelper是一款好用的开源免费的Mybatis第三方分页插件,点击访问
后端(SSM项目)注:这里只给出了关键部分代码,分页操作是通过对获取到的List集合进行二次封装实现的,具体请注意看Service层与Contoller层代码,其他代码未变动,按照业务逻辑正常编写即可
导入依赖1234567891011121314151617181920212223242526272829<!-- Mybatis --><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version></dependency><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</ ...
Java注解与反射
反射概念:类加载之后,在堆内存的方法区中就生产了一个Class类型的对象,一个类只有一个Class对象,这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构,这个对象就像是一面镜子,透过这个镜子看到类的结构,称之为反射
正常方式:引入需要的”包类”名称 ==> 通过new实例化 ==>获取实例化对象反射方式:实例化对象 ==> getClass()方法 ==> 取得完整的”包类”名称
优点:可以实现动态创建对象和编译,体现出很大的灵活性
缺点:对性能有影响。使用反射基本上是一种解释操作,我们告诉JVM要做什么,这类操作总是慢于直接执行相同的操作一个类只有一个Class对象
获取Class对象的几种方式123456789101112131415161718192021222324252627282930// 测试类public class Test02 { public static void main(String[] args) thro ...