- 博客(50)
- 资源 (6)
- 收藏
- 关注
原创 小白的成长轨迹(二):披荆斩棘,未来可期
大家好,我是孤焰,一名双非本科的大四学生。又是一年的1024,我坚持撰写博客已经为期一年,很感谢大家一直以来的支持,在这一年期间这位名为"孤焰"的少年又有哪些成长呢,下面便请细听分说,希望这些成长经历可以对正在看这篇文章的小可爱们有一些帮助。
2021-10-24 14:02:01
364
1
原创 日志审计功能实现
日志审计功能就是将用户进行的增加、修改和删除操作内容、操作方法、操作人以及操作时间等统一格式后集中放入数据库存储,这样做是为了提高系统的安全性,方便系统发生事故后的溯源和恢复。
2021-08-30 22:53:31
5548
1
原创 Springboot获取IOC容器的方式
在Springboot项目中如果要获取IOC容器目前有两种方法。方法一(不实用,不推荐): 在Springboot项目中都会存在一个SpringApplication的启动类,我们通过以下代码启动IOC容器。 其实run方法会将创建的IOC容器作为返回值返回,那么我们就可以通过声明一个ApplicationContext对象来接收run方法的返回值。 但是,使用这种方法会遇到各种各样的问题,所以我们通常使用第二种方法。
2021-08-13 22:35:21
5638
2
原创 【项目分享】期末大作业——电商后台管理系统
1. 前言 大家好,我是孤焰。今天我给大家分享一下近日制作的期末大作业——电商后台管理系统。 有需要源代码的小伙伴可以到此篇文章末尾获取!!2. 这是一个什么项目? 项目涉及技术栈: layui框架 ssm框架(spring + spring mvc + mybatis) mysql数据库 按照老师要求主要完成以下几个模块: 用户模块(用户的增删改查) 收货地址模块(收货地址信息的增删改查) 订单模块(订单信息的增删改查)
2021-07-06 20:30:59
3293
1
原创 在Linux下安装Redis
Redis安装笔记。1.将redis放在/opt目录下解压tar -zxvf redis-6.2.3.tar.gz2.安装gcc-c++编译环境yum -y install gcc-c++3.make命令编辑(在/opt/redis-6.2.3目录下执行)makemake install4.将redis.conf目录拷贝至/usr/local/bin/自定义目录下cp /opt/redis-6.2.3/redis.conf gconfig5.修改redis.conf文件配
2021-05-22 21:20:38
94
原创 Linux基本命令(常用命令)
1.开机关机sync :将数据由内存同步到硬盘shutdown:关机reboot:重启halt:关闭系统2.目录操作相关命令ls:-a:查看全部的文件,包括隐藏文件-l:列出所有非隐藏文件,包括文件的属性和权限pwd:查看当前所在目录mkdir:创建目录-p:递归创建目录,例如:mkdir -p test1/test2/test3rmdir:移除一个空目录-p:递归移除目录,例如:rmdir -p test1/test2/test3cp:复制文件或目录, cp 原来的
2021-05-05 15:46:21
554
12
原创 如何完美解答面试问题——请简述一下垃圾回收机制?
垃圾回收(Garbage Collection,GC),顾名思义就是释放垃圾占用的空间,防止内存泄露。有效的使用可以使用的内存,对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收。
2021-03-27 10:38:18
499
1
原创 【读书笔记】《深入理解Java虚拟机》对象的访问定位
建立对象就是为了使用对象,我们的 Java 程序通过栈上的 reference 数据来操作堆上的具体对象。对象的访问方式由虚拟机实现而定,目前主流的访问方式有①**使用句柄**和②**直接指针**两种:1. 句柄: 如果使用句柄的话,那么 Java 堆中将会划分出一块内存来作为句柄池,reference 中存储的就是对象的句柄地址,而句柄中包含了对象实例数据与类型数据各自的具体地址信息;
2021-02-26 23:20:55
116
1
原创 Java并发面试题总结
前言大家好,我是孤焰。我是一名大三在校大学生,目前也在准备春招实习的事情,在复习的过程中整理出一些笔记,现在分享给大家,希望大家可以一起进步,哪里还有不足的地方希望大家指出,我会积极改进的。简述线程、程序、进程的基本概念。以及他们之间关系是什么?线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是同类的多个线程共享同一块内存空间和一组系统资源,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多,也正因为如此,线程也
2021-02-02 21:12:02
240
3
原创 【读书笔记】《深入理解Java虚拟机》对象的内存布局
在 Hotspot 虚拟机中,对象在内存中的布局可以分为 3 块区域:对象头、实例数据和对齐填充。 Hotspot 虚拟机的对象头包括两部分信息,第一部分用于存储对象自身的运行时数据(哈希码、GC 分代年龄、锁状态标志等等),另一部分是类型指针,即对象指向它的类元数据的指针,虚拟机通过这个指针来确定这个对象是那个类的实例。 实例数据部分是对象真正存储的有效信息,也是在程序中所定义的各种类型的字段内容。
2021-01-25 11:10:03
163
原创 【读书笔记】《深入理解Java虚拟机》类加载机制
在上一篇博文中介绍到了创建对象的5个步骤(①类加载、②分配内存、③初始化零值、④设置对象头、⑤执行<init>方法),其中便包括了类加载,这次我们来深入类加载机制,详细看看类如何被加载。
2021-01-18 09:26:31
164
原创 【读书笔记】《深入理解Java虚拟机》对象创建的五个步骤
在面试过程中,面试官在问Java内存区域相关问题的时候常常会问到Java创建对象的过程是什么(5个步骤)?此文为博主阅读《深入理解Java虚拟机》后的整理总结,如果喜欢此文的话希望小伙伴们多多支持。
2021-01-11 10:17:49
244
原创 IntelliJ IDEA 修改 idea64.exe.vmoptions文件修改错误导致软件打不开
如果修改了idea64.exe.vmoptions文件中的参数,然后导致idea打不开,那么此文一定能帮你解决问题。 有的小伙伴出现此类问题之后,可能尝试的重装IntelliJ IDEA的方法,但是重装之后发现还是解决不了问题,还是会弹出如下错误提示框。错误文本: Improperly specified VM option. To fix the problem,edit your JVM options and remove the options that are obsolete or not
2021-01-06 15:42:02
13877
22
转载 IntelliJ IDEA 开启很慢,运行不流畅,大项目卡顿?一招配置解决!
IntelliJ IDEA 开启很慢,运行不流畅,大项目卡顿?一招配置解决!一、前言IDEA默认启动配置主要考虑低配置用户,参数不高(默认最低128m,最高512m),导致启动慢,然后运行也不流畅,这里我们需要优化下启动和运行配置;但是在工作中的电脑一般都是8G或者16G的运行内存,所以我们需要手动去修改默认的IDEA配置。二、手动修改IDEA配置配置查看IDEA内存使用情况在 Settings -> Appearance & Behavior 设置窗口中,勾选 Show memory
2020-12-30 15:54:57
1679
原创 JVM运行时数据区详解(13张图助你理解运行时数据区)
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。下图展示了Java虚拟机所管理的内存包括的运行时数据区域:
2020-12-27 15:13:45
2450
原创 【读书笔记】《深入理解Java虚拟机》Java虚拟机发展史
Java虚拟机发展史1.Sun Classic VM2.Exact VM3.HotSpot VM4.JRockit VM5.J9 VM1.Sun Classic VM 早在1996Java1.0版本的时候,Sun公司发布了一款名为Sun Classic VM的Java虚拟机,它同时也是世界上第一款商用Java虚拟机,JDK1.4时完全被淘汰。 这款虚拟机内部只提供解释器。(解释器是一行一行执行代码,编译器是将字节码中的热点代码编译成机器码,并且将机器码缓存到方法区的代码缓存区) 解释器和编译器工作
2020-12-15 20:44:28
236
原创 如何完美解答面试问题——深拷贝和浅拷贝的区别
大家好,我是孤焰。今天要谈一谈在面试过程中可能被面试官提到的一个问题——深拷贝和浅拷贝的区别?由于我也是刚刚学习编程的小白,所以此篇博文将参考了多篇博文,最后总结而成。最近由于多门考试临近,所以博文更新速度可能会慢一些,希望大家谅解。 在 Java 中,除了基本数据类型(元类型)之外,还存在 类的实例对象 这个引用数据类型。而一般使用 = 号做赋值操作的时候。对于基本数据类型,实际上是拷贝的它的值,但是对于对象而言,其实赋值的只是这个对象的引用,将原对象的引用传递过去,他们实际上还是指向的同一个对.
2020-11-29 14:47:14
912
原创 如何完美解答面试问题——Java的自动拆箱装箱与缓存机制
大家好,我是孤焰。今天要谈一谈在面试过程中可能被面试官提到的一个问题——Java的自动拆箱装箱与缓存机制?由于我也是刚刚学习编程的小白,所以此篇博文将参考了多篇博文,最后总结而成。最近由于多门考试临近,所以博文更新速度可能会慢一些,希望大家谅解。1.基本类型与包装类型 我们知道,Java有8大基本数据类型,分别为byte 、short、int、long、float、double、char、boolean。 我们在实际开发中,除了使用到数据的值之外,还会涉及到对数据的操作。根据“面向对象”编程的.
2020-11-19 16:16:11
475
2
原创 如何完美解答面试问题——一文搞懂Java中的intern()函数
大家好,我是孤焰。今天这篇文章仍然算在面试问题解答的系列中,但是要谈一道笔试难题——Java中intern()函数?1.intern()函数是做什么的? intern()函数:intern()函数是String对象的一个成员方法,调用intern()函数会返回该字符串在字符串常量池(StringTable)中的地址引用。2.intern()详细介绍 intern()函数的功能:s.intern()调用时(s为String类型,例如String s = new String(“1”)),inte.
2020-11-07 19:57:38
2019
2
原创 如何完美解答面试问题——双亲委派机制及作用
大家好,我是孤焰。今天要谈一谈在面试过程中几乎被每个面试官都会提到的一个问题——java中双亲委派机制及作用? 由于我也是刚刚学习编程的小白,所以此篇博文将参考了多篇博文,最后总结而成。1.什么是双亲委派机制 当某个类加载器需要加载某个.class文件时,它首先把这个任务委托给他的上级类加载器,递归这个操作,如果上级的类加载器没有加载,自己才会去加载这个类。2.类加载器2.1 什么是类加载器 类加载器是jre的一部分,负责动态将类添加到Java虚拟机。2.2 类加载器的分类 类加载器分.
2020-10-28 11:52:20
2451
2
原创 小白的成长轨迹:我的两年大学过往,写给刚入学的你
大家好,我是孤焰,一名双非本科的大三学生。今天在刷csdn的时候刷到一些博主们分享的大学就读经历以及在校期间的学习路线,看过之后得到一些感悟,所以也来分享一下自己的两年大学经历。很多人进入大学都是同一个起点,但是大学四年过后,却是完全不同的人生轨迹。我这大学两年说勤奋不算勤奋,说怠惰不算怠惰,水平一般,成绩在班里也是中等水平,或许我的经历相对各种牛逼的大学经历来说更有代表性呢,哈哈哈哈。这篇文章就以时间的顺序来记录我两年大学生活中的学习、比赛、假期等等经历。一、站稳脚跟的第一学期入学、ios社团、图
2020-10-24 09:36:38
1173
2
原创 【项目分享】空虚寂寞?它可以生成小精灵陪伴你!!
“去吧,皮卡丘!”大家好,我是孤焰。小时候梦想拥有一只宠物小精灵,一起开心,一起难过,一起去冒险!长大后依然想拥有一只宠物小精灵,为了找回自己的初心。我们一起做一个宠物小精灵生成器吧!一、确定任务目标 任务要求:基础:一次生成一个宠物进阶:一次生成多个宠物进阶+:根据输入的关键信息不同,生成定制化宠物进阶++:将多个宠物融合进化成一个宠物 最终效果图如下:二、思路分享 简单来说,此项目实现分为以下五点:爬取小精灵图片编写小精灵随机生成代码编写融合精灵名称随..
2020-10-23 08:25:29
657
原创 【读书笔记】《大话设计模式》代理模式
1.什么是代理模式 代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。 举个例子来说明:假如说我现在想买一辆二手车,虽然我可以自己去找车源,做质量检测等一系列的车辆过户流程,但是这确实太浪费我得时间和精力了。我只是想买一辆车而已为什么我还要额外做这么多事呢?于是我就通过中介公司来买车,他们来给我找车源,帮我办理车辆过户流程,我只是负责选择自己喜欢的车,然后付钱就可以了。用图表示如下:2.代理模式的特点中介隔离作用:在某些情况下,一个
2020-10-22 22:12:08
192
4
原创 【项目分享】还有谁不服??这款随机表情包生成器征服你!!
在聊天中,你是否认为自己图库太小?你是否经常斗图?你斗图水平还是青铜水平?有了它,你就是斗图界王者!!!大家好,我是孤焰。今天在学校里学到了一个比较有趣的项目——随机表情包生成器,在这里分享给大家。一、思路分享 简单来说,表情包随机生成器功能实现分为以下两点:随机爬取表情包随机显示表情包 此项目整体结构如下图:二、源码实现三、效果截图都看到最后了,求求大家点个赞再走吧!你的支持是我创作的最大动力。...
2020-10-12 16:13:33
1543
原创 【读书笔记】《大话设计模式》工厂方法模式
1.什么是工厂方法模式? 工厂方法模式,又称工厂模式、多态工厂模式和虚拟构造器模式,通过定义工厂父类负责定义创建对象的公共接口,而子类则负责生成具体的对象。2.工厂方法模式的作用? 工厂方法模式,定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。3.UML图4.工厂方法模式实现5.简单工厂vs工厂方法...
2020-10-04 21:10:34
183
转载 【读书笔记】《大话设计模式》简单工厂模式
1 工厂模式简介1.1 定义 简单工厂模式属于创建型模式又叫做静态工厂方法模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。 简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。1.2 简单工厂模式结构图Factory:工厂类,简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。IProduct:抽象产品类,简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共
2020-09-24 22:43:21
182
原创 如何完美解答面试问题——HashMap的扩容机制(JDK1.7)
大家好,我是孤焰。今天要谈一谈在面试过程中几乎被每个面试官都会提到的一个问题——HashMap的扩容机制是什么? 由于我也是刚刚学习编程的小白,所以此篇博文将参考了多篇博文,最后总结而成。HashMap的扩容机制什么是扩容(resize)?什么时候扩容?扩容的过程!...
2020-09-21 23:02:37
3394
2
原创 如何完美解答面试问题——hashCode()如何设计
大家好,我是孤焰。今天要谈一谈在面试过程中几乎被每个面试官都会提到的一个问题——hashCode()如何设计?由于我也是刚刚学习编程的小白,所以此篇博文将参考了多篇博文,最后总结而成。哈希函数的设计1.什么是哈希函数? 哈希函数(Hash Function),也称为散列函数,给定一个输入x,它会算出相应的输出H(x)。 这个H(x)相当于哈希表中的“键“,是哈希表中数组的索引值。2.哈希函数的普遍设计方法 “键”通过哈希函数得到的“索引”分布的越均匀越好,这样发生的哈希冲突的几率越低。2..
2020-09-20 23:14:43
761
原创 如何完美解答面试问题——HashMap和HashSet的区别
大家好,我是孤焰。今天要谈一谈在面试过程中几乎被每个面试官都会提到的一个问题——HashMap和HashSet的区别是什么? 由于我也是刚刚学习编程的小白,所以此篇博文将参考了多篇博文,最后总结而成。1.什么是HashMap?1.1什么是HashMap? HashMap是存储Key-Value键值对的集合,每个键值对也叫做Entry,这些Entry分散存储在一个数组中,这个数组可以称是HashMap的主干。 HashMap中的每一个元素的初始值都是NULL,且默认数组长度是16HashM.
2020-09-07 22:27:04
1306
原创 【读书笔记】《Java并发编程的艺术》Java内存模型——happens-before
一、JMM的设计从JMM设计者的角度,在设计JMM时,需要考虑两个关键因素:程序员对内存模型的使用。程序员希望内存模型易于理解、易于编程。程序员希望基于一个强内存模型来编写代码。编译器和处理器对内存模型的实现。编译器和处理器希望内存模型对它们的束缚越少越好,这样它们就可以做尽可能多的优化来提高性能。编译器和处理器希望实现一个弱内存模型。由于这两个因素互相矛盾,所以JSR-133专家组在设计JMM时的核心目标就是找到一个好的平衡点:一方面,要为程序员提供足够强的内存可见性保证;另一方面,对编译器和
2020-08-30 11:50:36
145
原创 【读书笔记】《Java并发编程的艺术》Java内存模型——volatile的内存语义
一、volatile的特性理解volatile特性的一个好方法是把对volatile变量的单个读/写,看成是使用同一个锁对这些单个读/写操作做了同步。下面通过具体的示例来说明,示例代码如下:class VolatileFeaturesExample { volatile long vl = 0L; // 使用volatile声明64位的long型变量 public void set(long l) { vl = l; // 单个volatile变量的写 } public void
2020-08-27 20:58:52
184
原创 【读书笔记】《Java并发编程的艺术》Java内存模型——顺序一致性
顺序一致性内存模型是一个理论参考模型,在设计的时候,处理器的内存模型和编程语言的内存模型都会以顺序一致性内存模型作为参照。一、数据竞争与顺序一致性当程序未正确同步时,就可能会存在数据竞争。Java内存模型规范对数据竞争的定义如下:在一个线程中写一个变量,在另一个线程读同一个变量,而且写和读没有通过同步来排序。JMM对正确同步的多线程程序的内存一致性做了如下保证:如果程序是正确同步的,程序的执行将具有顺序一致性(Sequentially Consistent)——即程序的执行结果与该程序
2020-08-27 13:48:53
212
原创 【读书笔记】《Java并发编程的艺术》Java内存模型——Java内存模型的基础
一、并发编程模型的两个关键问题在并发编程中,需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。 共享内存的并发模型:线程之间共享程序的公共状态,通过写-读内存中的公共状态进行隐式通信。但是,同步是显式进行的,程序员必须显式指定某个方法或某段代码需要在线程之间互斥执行。 消息传递的并发模型:线程之间没有公共状态,线程之间必须通过发送消息来显式
2020-08-25 13:33:58
167
原创 【读书笔记】《Java并发编程实战》第十四章 构建自定义的同步工具——AQS介绍
AbstractQueuedSynchronizer知识梳理1.AbstractQueuedSynchronizer1.AbstractQueuedSynchronizer在基于AQS构建的同步器类中,最基本的操作包括各种形式的获取操作和释放操作。获取操作是一种依赖状态的操作,并且通常会阻塞。释放操作并不是一个可阻塞的操作,当执行释放操作时,所有在请求时被阻塞的线程都会开始执行。AQS负责管理同步器类中的状态,它管理了一个整数状态信息,可以通过getState、setState以及compareAnd
2020-08-24 13:10:31
183
宠物小精灵生成器.zip
2020-10-26
随机表情包生成器(RandomFacePicture_Maven)
2020-10-26
JDK1.6 API中文帮助文档.zip
2020-07-26
android反编译三件套.zip
2020-07-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人