自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 MVC架构(详细解析)

模型,承载数据,并对用户提交请求进行计算的模块。其分为两类: 一类称为数据承载 Bean:实体类,专门用户承载业务数据的,如 Student、User 等 一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理用户提交请求的。(2)服务端 Controller 控制器接收到请求后对请求进行解析,找到相应的 Model 对用户请求进行处理。:控制器,用于将用户请求转发给相应的 Model 进行处理,并根据 Model 的计算结果向用户提供相应响应。

2023-11-02 01:35:20 204

原创 JVM的相关内容

2、永久代是 JDK 1.8 之前的方法区实现,JDK 1.8 及以后方法区的实现变成了元空间。-XX:MetaspaceSize=N //设置 Metaspace 的初始(和最小大小)-XX:MaxMetaspaceSize=N //设置 Metaspace 的最大大小。为什么要将永久代 (PermGen) 替换为元空间 (MetaSpace) 呢?2.内存溢出和堆溢出的示例及原因、如何排查和解决。1、永久代、元空间是方法区的两种实现方式。方法区和永久代以及元空间?2、元空间使用的是本地内存。

2023-10-31 13:52:04 41

原创 CAS机制

如果一个线程t1正修改共享变量的值A,但还没修改,此时另一个线程t2获取到CPU时间片,将共享变量的值A修改为B,然后又修改为A,此时线程t1检查发现共享变量的值没有发生变化,但是实际上却变化了。(2)比较从指定偏移位置读取到缓存的值与指定内存偏移位置的值是否相等,如果相等则修改指定内存偏移位置的值,这个操作是操作系统底层汇编的一个原子指令实现的,保证了原子性。(2)如果内存中的值和预期原始值不相等,说明共享数据已经被修改,放弃已经所做的操作,然后重新执行刚才的操作,直到重试成功。

2023-10-26 05:36:44 57

原创 Java线程的生命周期

见之前写的。当线程启动后(线程对象调用start方法),它不能一直"独占"着CPU独自运行,所以CPU需要在多条线程之间切换,于是线程状态也会多次在运行、阻塞之间切换。

2023-10-26 05:09:29 40

原创 线程和进程的概念 并行和并发的概念

进程就是一个程序的执行实例,也就是正在执行的程序,在系统的眼里,进程就是一个分配系统资源、cpu时间内存的实体。在不特意实现多进程的情况下,一个程序一般只有一个进程。进程的创建,销毁,切换需要大量的空间消耗,线程是进程的一个执行路劲,同一个进程中,线程共享进程资源。并发:多个线程同时竞争一个位置,竞争到的才可以执行,每一个时间段只有一个线程在执行。并行:多个线程可以同时执行,每一个时间段,可以有多个线程同时执行。

2023-10-26 00:42:26 26

原创 Http1.0 2.0 3.0的区别

HTTP( Hyper Text Transfer Protocol 超文本传输协议),是一个用于传输超文本文档的应用层协议,基于TCP协议,它是为Web浏览器与Web服务器之间的通信而设计的。

2023-10-25 15:36:42 123

原创 Spring中用到了哪些设计模式

Spring使用工厂模式可以通过BeanFactory或ApplicationContext创建bean对象。两者对比:BeanFactory :延迟注入(使用到某个 bean 的时候才会注入),相比于BeanFactory来说会占用更少的内存,程序启动速度更快。ApplicationContext :容器启动的时候,不管你用没用到,一次性创建所有 bean。

2023-10-25 15:25:54 23

原创 线程池的原理和实现

3、如果满了,则判断当前线程数量是否达到最大线程数,如果没达到,则创建新线程来执行任务,注意,如果线程池中线程数量大于核心线程数,每当有线程超过了空闲时间,就会被销毁,直到线程数量不大于核心线程数;1、一个任务提交到线程池后,如果当前的线程数没达到核心线程数,则新建一个线程并且执行新任务,注意一点,这个新任务执行完后,该线程不会被销毁;特点:无核心线程,非核心线程数量无限,执行完闲置60s后回收,任务队列为不存储元素的阻塞队列。2、如果达到了,则判断任务队列满了没,如果没满,则将任务放入任务队列;

2023-10-25 15:03:02 16

原创 hashcode与equals的区别和联系

equals相等的两个对象,hashCode一定相等;hashCode不相等,一定能推出equals也不相等;hashCode相等,equals可能相等,也可能不等。

2023-10-24 16:31:39 26

原创 C++STL容器

STL(Standard Template Library)是C++标准库中的一个重要组成部分,它提供了一组通用的模板类和函数,用于实现常用的数据结构和算法。你可以阅读C++标准库的官方文档,或者查找一些经典的书籍(如《Effective STL》和《C++ Primer》),这些资源将提供详细的解释、示例代码和实际应用场景。总而言之,STL是C++开发中非常重要的工具之一,它提供了高效的数据结构和算法,能够提高程序的性能、减少开发时间,并提高代码的重用性和可维护性。这将有助于理解STL的设计和使用方式。

2023-10-24 14:25:12 17

原创 List和Set区别

3. List通常用于存储需要按照顺序访问的元素,如日志记录、历史记录等;而Set通常用于去重和判重操作,如过滤重复的IP地址、手机号码等。1. List是有序的集合,可以存储重复的元素,可以根据索引访问元素;而Set是无序的集合,不允许存储重复的元素,不能根据索引访问元素。综上所述,List适合存储有序、可重复的元素;而Set适合存储无序、不重复的元素。4. List支持添加、删除和修改操作,但这些操作可能会影响到其他元素的位置;而Set不支持修改操作,只能添加和删除元素。

2023-10-24 14:13:42 23

原创 Java基础面试题02

IO异常(IOException)下标越界异常()空指针异常String转换为指定数字类型算术运算异常安全异常文件未找到异常文件已结束异常操作输入流和输出流可能出现的异常向数组存放与申明类型不兼容。

2023-10-24 14:02:44 18

原创 Java基础面试题

1.Java面向对象的特征继承、封装、多态继承:子类对父类的继承,Java中只允许单继承,子类继承父类之后可以使用父类的全部功能,同时可以对父类的方法进行重写或者拓展。封装:将自己不愿意暴露给其他方法调用进行封装保护,用权限修饰符就行。public>protected>缺省>private多态:三个条件(继承,父类对子类的引用,子类方法重写)。2.final、finally、finalize的区别这三个本身没有什么联系,可能是里面都有final吧,我也不知道这些出题的人怎么想的。

2023-10-21 22:46:30 26 1

原创 String,StringBuilder,StringBuffer的区别

2)String使用“+”作为数据的连接操作,StringBuffer/StringBuilder使用append()方法进行数据连接。StringBuffer和StringBuilder类型是字符串变量,当使用append()等操作时,内存地址不发生改变。StringBuilder适用于单线程下在字符串缓冲区进行大量操作。String类型是字符串常量,当进行字符串操作时,地址发生改变。StringBuffer适用于多线程下在字符串缓冲区进行大量操作。String适用于少量的字符串操作。

2023-10-18 22:51:48 29 1

原创 final,finalize,finally的区别

finally:和try/catch搭配使用的,Java的异常处理机制,finally结构使代码总会执行,而不管无异常发生。使用finally可以维护对象的内部状态,并可以清理非内存资源。System.exit(0)可以中断finally的执行。final:一种关键字,修饰符,用来修饰属性,方法和类,分别表示属性不可改变(常量),方法不可覆盖,类不可继承。finalize:是Object类中定义的方法,每个对象都有,在gc回收启动的时候会调用该方法。首先,这是三个是没有联系的三个方法。

2023-10-18 22:45:13 27 1

原创 给你一串字符串,输入的长度大于50直接输出0,如果是字母的话,字母变成它字母的前一个字母的大小写切换例如 Z->y B->b,数字的话直接减去1.

这是当时笔试的时候遇到的算法题,但是当时是手写,而且没有多少时间了,虽然写了大概但是感觉写的不好,一些特殊情况没写了,确实是没有时间了,现在重新写一下。然后后续很明显需要一个个字符的进行变化,那么我声明一个char[50]然后变化完成的替换到另外一个新的char[50]。输入是一个字符串,准备用string直接接收。

2023-10-18 02:55:50 74 1

原创 并行和并发

在多处理器系统中,不同的处理器可以同时执行不同的任务,因此表现出来的是并行执行的状态。这种情况下,不同的处理器可以同时执行不同的任务,从而提高系统的性能和效率。但是,在并发执行中,由于CPU时间片的切换和任务间的上下文切换等开销,会降低系统的效率,增加系统的负担。并行可以提高系统的吞吐量和资源利用率,因为在同一时间段内,多个任务可以同时执行,从而提高CPU的利用率和系统的响应速度。个人愚见:单个CPU同时执行多个任务,实现多任务,在一个时间段内执行多个任务,但是在某一个时刻,只执行一个任务。

2023-10-16 21:19:29 21 1

原创 进程和线程

进程的创建、销毁与切换存在着较大的时空开销,因此人们急需一种轻型的进程技术来减少开销。在80年代,线程的概念开始出现,线程被设计成进程的一个执行路径,同一个进程中的线程共享进程的资源,因此系统对线程的调度所需的成本远远小于进程。

2023-10-16 21:11:49 26 1

原创 OSI七层模型 和 TCP/IP协议的体系结构

包括:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。TCP/IP协议:数据链路层,网络层,传输层,应用层。

2023-10-16 00:14:06 60 1

原创 给定一个长度为 n 的可能有重复值的数组,找出其中不去重的最小的 k 个数。

这没什么好说的,先排除其他特殊情况输出空数组的情况之外;一个冒泡排序,然后按照k输出就行,零难度,

2023-10-13 15:58:14 187

原创 Java基础

一个Java的程序可以认为一系列对象的集合,而对象之间通过相互调用的方法实现协同工作。内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量来决定。Java提供了八种数据类型、六种数据类型,一种布尔型,一种字符类型。因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。也就是说,当创建变量的时候,需要在内存中申请空间。类:类是一个模板,他描述一类对象的行为和状态。对象:对象和类的一个实例,有状态和行为。

2023-10-12 01:58:44 21

原创 Java面试题-抽象和接口有什么区别

我个人认为抽象类是描述一种类似概念情况下使用:比如动物,植物等抽象的一种概念的时候使用。7> 抽象类A继承抽象类B后不需要重写,但当普通类C再继承抽象类A后,要重写所有没被重写的抽象方法;抽象类和接口都是一种抽象的概念,他们都不能实例化他们的类,只能够通过子类的继承实现他们的方法。2> 接口中不能有实现的方法,但是静态方法和被default修饰的方法可以实现;12> 当一个类不想实现接口当中的方法时,这个类可以被定义为抽象类;3> 抽象类中不一定包含抽象方法,但包含抽象方法的类一定是抽象类;

2023-10-11 15:19:16 25

原创 JAVA如何入手学习?学习路线是什么?

我是一名软件工程本科生,双非,╮(╯▽╰)╭,很明显学校的竞争力很不足,但是作为一名这种专业的学生,其实学校学历只是一个敲门砖,重要的是你需要去学习,把知识学明白学好,只要你的简历可以过大厂的初次筛选,基本接下来就看你自己的实力了。我本人收到的大厂笔试面试有:美团,小米,百度,腾讯,腾讯云,中兴等等,基本大部分的大厂初步筛选都能过,但是笔试面试就看你自己的水平了,确实大厂是大厂,面试和笔试的难度很大,深度也很深,我没有这个能力,毕竟我是就业的时候才发现,目前准备找个中小厂过度一下。

2023-10-11 14:28:06 12

原创 Java常用的设计模式

创建型模式:用来描述“如何创建对象”,它的主要特点是“将对象的创建和使用分离”。包括:单例模式、工厂方法模式,抽象工厂方法模式,建造者模式和原型模式5种设计模式。用来识别对象之间的常用交流模式以及如何分配职责。包括模板方法、策略、命令、职责链、状态、观察者、中介者、迭代器、访问者、备忘录和解释器11种设计模式。包括:代理模式,适配器模式、桥接模式、装饰模式、外观模式、享元模式和组合模式7种设计模式。常用的设计模式分为三个大类:创建型模式,行为型模式,结构型模式。

2023-10-11 13:57:53 15

原创 Java面向对象的特征

隐藏对象内部方法构造的复杂性,只对外开放比较简单的接口,方便外界的调用,从而提高了系统的可拓展性,可维护性。简单的来说,仅暴露该暴露的,其他的隐藏起来,这就是封装思想。通常来说,在一个类中定义的属性和方法被其他类继承或重写后,当把子类对象直接赋值给父类引用变量时,相同应用类的变量调用的同一个方法所呈现的方法具有不同的形态。继承,继承是指它可以使用现有类的所有的功能,并且无须编写原来的类的情况下可以对继承的类的功能进行重写或者拓展。作用:通过多态,消除了类之间的耦合关系,大大提高了程序的可用性和可维护性。

2023-10-11 01:36:09 18

原创 JVM&JDK&JRE的区别

JVM有针对不同系统的特定实现(Windows、Linux、macOS),目的是使用相同的字节码,它们都会给出相同的结果。JDK(Java Development Kit),它是功能齐全的Java SDK,是提供给开发者使用的,能够创建和编译Java的程序。它是运行已经编译好的Java程序所需要的所有内容的集合,其中包括JVM(Java虚拟级)、Java基础类库。总的来说:JDK包含了JRE,同时还包括javac,javadoc,jdb等工具,是能够创建java项目和调试的程序。

2023-10-10 22:48:00 130 1

原创 vscode 单个文件夹的时候会折叠,解决办法

准备面试很久了,发现确实需要创建一个博客,这样对于自己的程序员生涯和学习生涯都是一个很好的记录,很多大厂,比如我面试的小米的,我知道现在来补救已经晚了,我现在对于大厂我也不抱希望了,先找个中小厂进行打磨和磨练,以后在社招的时候发力吧0.0。接下来我会将自己准备的面试的相关题目和一些项目进行发布和编写,现在开始也不算太晚,加油吧!,当然我是没有进行发布,但是其实。

2023-10-10 22:16:23 84

原创 ‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

【代码】‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

2023-04-17 11:32:00 96 1

原创 VSCode超快速一键下载

准备安装一个VScode,发现官网上的链接下载的太慢了。查了很多资料,都是说把什么换成什么什么,就没有一个现成的链接供大家下载。下载即可用,几秒搞定,直接点Code.exe。下面这个链接是.zip格式的(64位电脑)

2023-04-17 09:26:39 75 1

原创 飞机大战Java实现制作

/:这是游戏的一个奖励模板,我这边的话只是简单的子弹加倍,当然具体你们想要什么效果,可以自己进行改写。链接:https://pan.baidu.com/s/1y1KelKg2hcuybWbQLWSfKg。大家好今天一时兴起做了一个java编译的的飞机大战模块,过多的就不给大家解释了,直接上代码。至此所有的代码已经上来了,对于第一次的萌新记得这个是需要图片模板的,我放在百度网盘里面。这是效果图,大家请多多理解,请勿盲目抄袭,也希望大家积极改进优化!:大飞机,生命值和血量大家可以自己导入。

2021-05-02 12:38:58 301

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除