自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java多线程与并发-原理

目录9-1 synchronized9-2 synchronized底层实现原理9-3 Synchronized和ReentrantLock的区别9-4 Java内存模型JMM的内存可见性9-5 CAS9-6 Java线程池9-1 synchronized线程安全问题的主要诱因存在共享数据(临界资源) 存在多条线程共同操作这些共享数据解决问题的根本方法:同一时刻有且只有一个线程在操作共享数据,其他线程必须等待该线程处理完数据后再对共享数据进行操作。互斥锁

2022-05-03 10:42:36 149

原创 Java多线程与并发

8-1 进程与线程的区别进程是资源分配的最小单位,线程是CPU调度的最小单位线程不能看做是独立应用,而进程可看做独立应用 进程有独立的地址空间,相互不影响;线程只是进程的不同执行路径 线程没有独立的地址空间,一条线程结束,意味着进程的结束。多进程的程序比多线程程序健壮 进程的切换比线程的切换开销大进程和线程的关系Java堆操作系统提供的功能进行封装,包括线程和进程 运行一个程序会产生一个进程,进程包含至少一个线程 每个进程对应一个JVM实例,多个线程共享JVM里的堆 Java采用单

2022-05-02 15:40:10 523

原创 Java底层知识:GC相关

目录7-1 垃圾回收之判定对象是否为垃圾的方法7-2 垃圾回收算法7-3 新生代垃圾收集器7-4老年代垃圾收集器7-5 常见面试题7-1 垃圾回收之判定对象是否为垃圾的方法对象被判定为垃圾的标准没有被任何对象引用的情况下判定对象是否为垃圾引用计数算法 通过判断对象的引用数量来决定对象是否被回收 每个对象实例都有一个引用计数器,被引用则+1,完成引用(完成了一个线程后,栈内的变量消失)则+1 任何引用计算为0的对象实例可以被当作为垃圾收集 优点:执.

2022-05-01 10:36:04 134

原创 Java底层知识:JVM

6-1 谈谈你对Java的理解平台无关性,就是一次编译到处运行; 垃圾回收机制。正因为有了GC,我们在用Java程序开发的时候就不必像C++那样去手动的清理内存啦; Java语言特性。包括泛型、反射、lambda表达式; 面向对象。其中包括了封装,继承,还有多态; Java本身类库。包括集合、并发库、网络库以及IO流; 异常处理6-2 平台无关性如何实现编译时编译时用到javac指令,编译的是java的源码,将源码编译生成字节码,并存入到对应的class文件中此文件中还会添加一个共有

2022-04-29 21:28:47 387

原创 Linux知识考点

目录5-1 Linux的体系结构5-2 查找特定文件5-3 检索文件内容5-4 对日志内容做统计5-5 批量替换文件内容5-1 Linux的体系结构Shell:命令解释器,可编程必记内容-Linux基础命令ls查看目录 cat xxx.sql查看文件里的内容 less xxx.sql查看文件,可前后翻页(使用 [pageup] [pagedown] 等按键),查看之前不会加载全文 more xxx.sql 查看文件,仅能向前翻,加载全文 vi xx.sql

2022-04-26 15:39:48 838

原创 缓存数据库Redis

目录4-1 Redis简介4-2 Redis常用的数据类型4-3从海量的Key里面查询出某一固定前缀的Key4-4 如何实现分布式锁4-5 如何使用Redis来做异步队列4-6 持久化方式之RDB4-7 持久化方式---AOF以及混合模式4-10 Pipeline及主从同步4-11 Redis集群4-1 Redis简介常见的数据库Mysql,Oricle数据都是存放在磁盘中,虽然在数据库层做了对应的缓存,但是这种数据库层次的缓存,一般针对的是查询的内容..

2022-04-26 13:07:18 2614

原创 数据库MySQL

关系型数据库的考点思维图3-1 数据库架构如何设计一个关系型数据库?划分为两个部分存储部分:相当于文件系统,将数据持久化到存储设备上 程序实例:用逻辑结构映射物理结构,在程序中提供获取以及管理数据的方式,以及必要的问题追踪机制 存储管理 -- 将数据的逻辑关系转化为物理存储关系。(尽可能一次性读取多行,减少IO以提高效率。 缓存机制 -- 把取出来的数据块放到缓存里以便下次使用时直接从内存返回。优化执行效率。(缓存不宜过大,且应有淘汰机制) SQL解析 -- 解析SQL.

2022-04-25 16:52:36 348

原创 第二计算机网络面试的核心

计算机

2022-04-23 10:08:51 277

原创 数据结构与算法

一,快排快排的基本思想:快速排序使用分治的思想,通过一趟排序将待排序列分割成两部分,其中一部分记录的关键字均比另一部分记录的关键字小。之后分别对这两部分记录继续进行排序,以达到整个序列有序的目的。快速排序的三个步骤:选择基准:在待排序列中,按照某种方式挑出一个元素,作为 "基准"(pivot) 分割操作:以该基准在序列中的实际位置,把序列分成两个子序列。此时,在基准左边的元素都比该基准小,在基准右边的元素都比基准大 递归地对两个序列进行快速排序,直到序列为空或者只有一个元素。时间复杂度

2022-03-23 19:44:48 80

转载 Java-Mybatis

1.#{ } 和${ }的区别是什么?${ }是properties文件中的变量占位符。它可以用于标签属性值和sql内部,属于静态文本交换 #{ } 是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在sql执行前会使用PrepareStatement的参数设置方法,按序给sql的》号占位符设置参数,防止sql注入。2.Xml映射文件中,除了常见的selectlinsertlubdaelselete标签之外,还有哪些标签<resultMap>、<paramet

2022-01-24 13:27:34 268

原创 Java-Sping MVC

1.SpringMVC流程图解客户端发送请求,直接请求到DispatchServlet DispatcherServlet根据请求信息调用HandlerMapping,解析请求对应的Handler 解析到对应的Handler也即是我们常说的Controller控制器,开始由HandlerAdapter适配器处理 HandlerAdapter会根据Handler来调用真正的处理器处理请求,并处理相应的业务逻辑。 处理器处理完业务后,会返回一个ModelAndView对象,Model是返回的数.

2022-01-22 15:04:56 358

原创 Java-SSM-Spring

1.什么是SpringSpring是一个轻量级的IOC和AOP容器框架。常见的配置方式有三种:基于XML、基于注解、基于Java配置核心技术:依赖注入DI,AOP,事件、资源、验证、数据绑定、类型转换 测试:模拟对象,TestContext框架,SpringMVC测试, 数据访问:事务、DAO支持、JDBC、ORM、编组XML Web支持:Spring MVC框架 集成:远程处理,JMS,JCA,JMX,电子邮件,任务,调度,缓存 语言:kotlin,Groovy,动态语言2.Sprin

2022-01-21 16:59:54 402

原创 Java-Redis

1.简单介绍一下RedisRedis是一个使用C语言开发的数据库,不过与传统的数据库不同的是Reids的数据库是存在内存中的,也就是它是内存数据库,所以读写速度非常快,因此Redis被广泛应用于缓存方向。Redis除了做缓存之外,Redis也经常用来做分布式锁,甚至是消息队列。Redis提供了多种数据类型来支持不同的业务场景。Redis还支持事务、持久化、Lua脚本、多种集群方案。2.缓存数据的处理流程如果用户请求的数据在缓存中就直接返回 缓存中不存在的话就看数据中是否存在 数据库中

2022-01-13 20:58:45 3732

原创 Java-MySQL

1.什么是MySQLMySQL是一种关系型数据库,在Java企业级开发中非常常用,开源免费并且方便扩展。2.存储引擎MyISAM和InnoDB(事务性数据库引擎)MyISAM是MySQL的默认数据库引擎(5.5版之前)。虽然性能极佳,而且提供了大量的特性,包括全文索引、压缩、空间函数等,但MyISAM不支持事务和行级锁,而且最大的缺陷就是崩溃后无法安全修复。5.5之后,引入了InnoDB(事务性数据库引擎)两者的对比:是否支持行级锁:MyISAM只有表级锁,而InnoDB支持行级锁和

2022-01-11 20:47:53 580

原创 Java-JVM-GC

垃圾收集有哪些算法,各自的特点?1.标记-清除算法,首先标记出所有不需要回收的对象,在标记完成后统一回收掉所有没有被标记的对象。存在两个问题:效率问题和空间问题(标记清除后会产生大量不连续的碎片)2.复制算法为了解决效率问题,复制收集算法出现了。它可以将内存分为大小相同的两块,每次使用其中的一块。当这一块的内存使用完成后,就将还存活的对象复制到令一块去,然后再把使用的空间一次性清理掉。这样使每次的内存回收都是对内存空间的一半进行回收。3.标记-整理算法根据老年代的特点提出的一种标

2022-01-06 17:03:34 283

原创 Java-JVM-4

1。Java对象的创建过程类加载检查:遇到一条new指令的时候,首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,必须先执行相应的类加载过程。 分配内存:在类加载检查通过后,接下来虚拟机会为新生对象分配内存。分配方式有“指针碰撞”和“空闲列表”两种,选择哪种分配方式由Java堆是否规整决定。在创建对象的时候有一个很重要的问题,就是线程安全。虚拟机采用两种方式来保证线程安全:CAS+失败重试;TLAB 初始化零值:内存

2022-01-06 14:37:09 172

原创 Java-JVM-类加载子系统

1.类加载器子系统的作用加载阶段通过一个类的全限定名获取定义此类的二进制字节流 将这个字节流所代表的静态存储结构转换为方法区的运行时数据结构 在内存中生成一个代表这个类的Java.lang.Class对象,作为方法区这个类的各种数据的访问入口链接阶段验证:目的是确保Class文件的字节流中包含信息符合当前虚拟机要求,确保被加载类的正确性,不会危害虚拟机自身安全。四种验证:文件格式验证、元数据验证、字节码验证、符号引用验证。 准备:为类变量分配内存并且设置该变量的默认初始值,即零.

2022-01-04 15:58:52 263

原创 Java-JVM

1.介绍下Java的内存区域(运行时数据区)线程私有的:程序计数器;虚拟机栈;本地方法栈。线程共享的:堆;方法区;直接内存(非运行数据区的一部分)2.程序计数器

2022-01-03 14:45:55 339

原创 计算机基础-操作系统

1.什么是操作系统?操作系统,简称OS,是管理计算机软件和硬件资源的程序,是计算机的基石。 操作系统本质上是一个运行在计算机上的软件程序,用于管理计算机硬件和软件资源。 操作系统的存在屏蔽了硬件层的复杂性。 操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理。内核是连接应用程序和硬件的桥梁,决定这系统的性能和稳定性。2,什么是系统调用?根据进程访问资源的特点,把进程在系统上的运行可以分为两个级别:用户态:用户态运

2021-12-30 20:27:44 1383

原创 计算机基础-计算机网络

1.OSI与TCP/IP各层的结构与功能,都有用哪些协议应用层的任务是通过进程间的交互来完成特定网络应用。主要协议,HTTP协议 运输层的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。主要使用以下两种协议:传输控制协议TCP--提供面向连接的,可靠的数据传输服务。用户数据协议UDP--提供无连接的,尽最大努力的数据传输服务(不保证数据传输的可靠性) 网络层的任务就是选择合适的网间路由和交换结点,确保数据及时传送。---IP协议 数据链路层。两台主机之间的数据传输,总是在一段.

2021-12-28 16:05:32 1460

原创 Java-多线程2

1.使用线程池的好处

2021-12-26 18:11:45 221

原创 Java-多线程

1.什么是线程和进程?进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行的一个程序即是一个进程从创建,运行到消亡的过程。线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是同类的多个线程共享进程的堆和方法区的资源,但每个线程有自己的程序计数器、虚拟机栈和本地方法栈。2.并发与并行的区别并发:同一时间段,多个任务都在执行(单位时间内不一定同时执行) 并行:单位时间内,多个任务同时执行3.为什么要使用多线程呢?

2021-12-22 21:59:35 337

原创 nacos配置完成后,启动不成功,页面打不开

在配置nacos环境后,遇到启动失败这个情况,从而nacos页面也打不开:解决方法:如图所示将图1中的文件名改为图二,希望有所帮助

2021-12-21 15:02:32 3915 4

原创 Java-集合

1.说说List,Set,Map三者的区别List(对付顺序的好帮手):存储的元素是有序的、可重复的。 Set(注重独一无二的性质):存储的元素是无序的、不可重复的; Map(用Key来搜索的专家):使用key-value存储,,Key是无序的、不可重复的;value是无序的、可重复的。每个键最多映射到一个值。2.ArrayList与LinkedList区别是否保证线程安全:两者都是不同步的,也就是不保证线程安全;vector线程安全 底层数据结构:ArrayList底层使用的是Object

2021-12-17 19:58:36 714

原创 Java基础3

1.关于final关键字的总结对于一个final变量,如果是基本数据类型的变量,则其数组一旦在初始化之后便不能更改;如果是引用类型的变量,则再其初始化之后便不能在让其指向另一个对象。 当用final修饰一个类的时候,表明这个类不能被继承。final类中的所有成员方法都会被隐式地指定为final方法。 使用final方法的原因有两个。第一个原因是把方法锁定,以防止任何继承类修改它的含义;第二个原因是效率。2.介绍一下Synchronized锁,如果用这个关键字修饰一个静态方法,锁住了什么?如果修饰成

2021-12-15 21:56:00 514

原创 Java基础2

2021-12-14 16:44:39 1013

原创 JAVA基础

01 Java基础部分1.什么是JVM Java虚拟机是运行Java字节码的虚拟机。JVM有针对不同系统的特定实现,目的是使用相同的字节码,它们都会给出相同的结果。2.什么是字节码,使用字节码的好处是什么 字节码:JVM可以理解的代码就叫做字节码(.class文件)。 好处:只面向虚拟机,不面向任何的特定处理器。 可解释跨越平台且效率高:一定程度上解决了传荣解释型语言执行效率低的问题,同时又保存了解释型语言...

2021-12-13 16:52:06 343

空空如也

空空如也

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

TA关注的人

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