Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
Java面试八股文-框架篇
Java面试八股文-框架篇1. Spring框架1.1 什么是Spring框架?它的核心功能是什么?Spring框架是一个轻量级的Java企业级应用开发框架,它为Java应用提供了全面的基础设施和编程模型,使开发者能够更加专注于业务逻辑的实现。
核心功能:
功能
描述
作用
控制反转(IoC)
将对象的创建和依赖关系的管理交给Spring容器,而不是由对象自己创建和管理依赖
实现对象之间的解耦,提高代码的可维护性和可测试性
依赖注入(DI)
容器将依赖的对象注入到需要的对象中
简化对象的创建和管理,减少代码耦合
面向切面编程(AOP)
将横切关注点(如日志、事务、安全等)与业务逻辑分离
提高代码的可维护性和可重用性
事务管理
提供声明式事务管理,简化事务处理代码
确保数据的一致性和完整性
数据访问
整合各种数据访问技术(如JDBC、ORM框架等)
简化数据访问代码,提高开发效率
Web MVC
提供Web应用开发框架,支持RESTful风格的Web服务
简化Web应用的开发
测试支持
提供强大的测试框架,支持单元测试和集成测试
提高代码的质量和可靠性 ...
Java面试八股文-JVM篇
Java面试八股文-JVM篇1. JVM内存结构1.1 JVM内存结构包括哪些部分?JVM内存结构是Java虚拟机在运行时使用的内存区域,不同的内存区域承担不同的职责。JVM内存结构主要包括以下几个部分:
内存区域
作用
线程共享
异常类型
特点
程序计数器
存储当前线程执行的字节码指令地址
否
无
线程私有,生命周期与线程相同
虚拟机栈
存储局部变量、操作数栈、方法返回地址等
否
StackOverflowError、OutOfMemoryError
线程私有,生命周期与线程相同
本地方法栈
存储本地方法的执行状态
否
StackOverflowError、OutOfMemoryError
为Native方法服务
堆
存储对象实例和数组
是
OutOfMemoryError
JVM中最大的内存区域
方法区
存储类信息、常量、静态变量、即时编译后的代码等
是
OutOfMemoryError
线程共享,生命周期与JVM相同
详细说明:
1. 程序计数器(Program Counter Register):
作用:存储当前线程执行的字节码指令地址,是线程 ...
Java面试八股文-集合篇
Java面试八股文-集合篇1. 集合框架概览1.1 Java集合框架的结构?Java集合框架主要分为三大类:
Collection:存储单个元素的集合
List:有序、可重复的集合
Set:无序、不可重复的集合
Queue:队列,先进先出
Map:存储键值对的集合
Tools:工具类,如Collections、Arrays等
1.2 Collection和Collections的区别?
Collection是一个接口,是所有集合类的父接口
Collections是一个工具类,提供了操作集合的静态方法
1.3 集合框架中的线程安全集合有哪些?线程安全的集合包括:
Vector
Hashtable
Collections.synchronizedList()
Collections.synchronizedSet()
Collections.synchronizedMap()
ConcurrentHashMap
CopyOnWriteArrayList
CopyOnWriteArraySet
BlockingQueue的实现类
2. List接口2.1 ArrayList和L ...
Java面试八股文-并发篇
Java面试八股文-并发篇1. 线程基础1.1 什么是线程?线程和进程的区别?线程(Thread)是进程中的一个执行单元,是操作系统进行CPU调度的基本单位。一个进程可以包含多个线程,这些线程共享进程的资源,但各自拥有独立的执行栈和程序计数器。
进程(Process)是操作系统进行资源分配的基本单位,每个进程拥有独立的内存空间、文件描述符等资源。
线程和进程的区别:
特性
进程
线程
资源分配
独立的内存空间、文件描述符等
共享进程的资源
调度单位
不是CPU调度的基本单位
CPU调度的基本单位
创建开销
较大,需要分配资源
较小,共享进程资源
切换开销
较大,需要保存和恢复整个进程的状态
较小,只需要保存和恢复线程的状态
通信方式
复杂,需要使用IPC机制(如管道、共享内存等)
简单,可以直接共享进程内的变量
安全性
一个进程崩溃不会影响其他进程
一个线程崩溃可能会影响整个进程
数量限制
系统能运行的进程数量较少
系统能运行的线程数量较多
示例:
1234567891011121314151617181920212223242526272829 ...
Java面试八股文-基础篇
Java面试八股文-基础篇1. Java语言特性1.1 Java的跨平台特性是如何实现的?Java的跨平台特性主要通过JVM(Java虚拟机)实现,具体过程如下:
编译阶段:Java源代码(.java文件)通过javac编译器编译成字节码(.class文件),字节码是一种与平台无关的中间代码。
运行阶段:不同平台(如Windows、Linux、macOS)都有对应的JVM实现,JVM负责将字节码解释或编译为本地机器码执行。
JVM的作用:JVM作为中间层,屏蔽了不同平台的硬件和操作系统差异,使得相同的字节码能够在不同平台上运行。
这种”一次编写,到处运行”的特性是Java的核心优势之一,也是Java能够在企业级应用中广泛应用的重要原因。
示例:
123456// 编写一个简单的Java程序public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); }} ...
spark基本介绍及使用
一.Spark基本介绍Apache Spark是一个快速、通用的大规模数据处理引擎,它提供了高效的分布式计算能力,支持批处理、流处理、机器学习、图计算等多种数据处理模式。Spark的设计理念是”速度、易用性和通用性”,它通过内存计算和优化的执行计划,大大提高了数据处理的效率。
Spark的核心特性
速度:Spark的内存计算能力使得它比传统的MapReduce快100倍以上,即使在磁盘上也能快10倍以上。
易用性:Spark提供了丰富的API,支持Java、Scala、Python和R等多种编程语言,同时还提供了Spark SQL、MLlib、GraphX和Spark Streaming等高级库。
通用性:Spark支持多种数据处理模式,包括批处理、流处理、机器学习、图计算等,可以在同一个应用中组合使用这些模式。
可扩展性:Spark可以扩展到数千个节点,处理PB级的数据。
容错性:Spark通过RDD(弹性分布式数据集)的设计,提供了内置的容错机制。
Spark的实际应用场景Spark作为一个通用的大数据处理引擎,在企业级应用中有着广泛的应用场景:
数据仓库:使用Spa ...
nacos安装及使用
一.Nacos基本介绍Nacos是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它提供了服务注册发现、配置管理和服务管理三大功能,为微服务架构提供了完整的解决方案。
Nacos的核心功能
服务发现与服务健康检查:支持基于DNS和基于RPC的服务发现,提供实时的服务健康检查,防止向不健康的服务实例发送请求。
动态配置服务:集中管理所有环境的应用配置,支持配置的版本管理、灰度发布、一键回滚等功能。
动态DNS服务:支持权重路由,实现更灵活的流量控制。
服务及其元数据管理:支持服务的CRUD操作,管理服务的元数据,如服务版本、服务所属团队等。
Nacos的实际应用场景Nacos作为微服务架构的核心组件,在企业级应用中有着广泛的应用场景:
微服务注册与发现:作为服务注册中心,管理微服务实例的注册和发现。
配置中心:集中管理微服务的配置信息,实现配置的动态更新。
服务治理:通过服务健康检查、流量控制等功能,实现服务的治理。
多环境管理:支持多环境配置的管理,如开发、测试、生产环境。
灰度发布:支持配置的灰度发布,降低发布风险。
个人见解:N ...
springcloud+spring security oauth2+jwt实现单点登录
一、SSO基本介绍 SSO(Single Sign-On,单点登录)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。 相关技术主要有:spring security ,shiro
SSO的实际应用场景SSO作为一种身份认证机制,在企业级应用中有着广泛的应用场景:
企业内部系统:企业内部通常有多个系统,如ERP、CRM、OA等,使用SSO可以让员工只需要登录一次就可以访问所有系统。
多应用集成:当企业需要集成多个第三方应用时,SSO可以提供统一的身份认证机制。
SaaS应用:SaaS提供商通常需要为多个客户提供服务,SSO可以让客户使用自己的企业账号登录。
移动应用:移动应用需要与后端系统进行交互,SSO可以提供统一的身份认证机制。
个人见解:SSO的技术价值SSO的出现为企业级应用提供了一种统一的身份认证机制,其技术价值主要体现在:
提高用户体验:用户只需要登录一次就可以访问所 ...
阿里微服务开发相关介绍
一、微服务基本介绍微服务 - 也被称为微服务架构 - 是一种架构风格,它是使一个整合了业务功能的程序成为一个松耦合服务的架构。微服务架构使大型的,复杂的应用程序,可以连续快速的实现和部署。另外,它也使得企业可以发展自己的技术栈体系。
微服务不是银弹微服务架构不是银弹,它有几个缺点。此外,采用这种架构的时候,你必须解决许多问题。微服务架构模式语言是一系列实现微服务架构模式的集合。 它有两个目标:1,模式语言使您能够决定微服务是否一个非常适合你的应用程序。2,模式语言使您能够成功使用微服务架构。
阿里微服务生态系统阿里巴巴作为国内领先的互联网公司,在微服务领域有着丰富的实践经验和完整的技术生态。阿里微服务生态系统主要包括以下组件:
Nacos:服务注册发现和配置中心,提供了服务管理、配置管理和动态DNS服务。
Sentinel:流量控制、熔断降级和系统保护,提供了实时监控和规则配置。
Seata:分布式事务解决方案,支持AT、TCC、SAGA等多种事务模式。
Dubbo:高性能RPC框架,支持服务治理、负载均衡等功能。
RocketMQ:分布式消息队列,提供了高可靠、高吞吐量的消息服务。 ...
