数据结构
1. 数组 (Array)特点:连续内存,随机访问 O(1),插入/删除 O(n)。 常见操作12345678910111213141516171819202122232425262728293031323334353637383940// 遍历int[] arr = {1, 2, 3, 4, 5};for (int i = 0; i < arr.length; i++) System.out.print(arr[i] + " ");// 查找(线性查找)public static int find(int[] arr, int target) { for (int i = 0; i < arr.length; i++) { if (arr[i] == target) return i; } return -1;}// 插入(指定位置)public static int[] insert(int[] arr, int pos, int val) ...
算法
🔥 常见算法分类 + Java实现 1. 排序算法 (Sorting)1.1 冒泡排序 (Bubble Sort)1234567891011public static void bubbleSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j+1]) { int tmp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = tmp; } } }} 1.2 选择排序 (Selection Sort)123456789public static void selectionSort(int...
题单
🔹 数组(Array)1. 两数之和1234567891011public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < nums.length; i++) { int diff = target - nums[i]; if (map.containsKey(diff)) { return new int[]{map.get(diff), i}; } map.put(nums[i], i); } return new int[0];} 2. 最大子数组和(Kadane 算法)12345678public int maxSubArray(int[] nums) { int max = nums...
web
WebHTTP一、HTTP 协议概述HTTP(Hypertext Transfer Protocol,超文本传输协议)是应用层协议,它定义了 Web 客户端(如浏览器)和 Web 服务器之间交换数据的规则。它的核心特点是无状态(Stateless),这意味着服务器不会保存客户端的任何信息,每次请求都是独立的。 二、HTTP 请求(Request)一个完整的 HTTP 请求由四部分组成: 1. 请求行(Request Line)这是请求的第一行,它定义了请求的基本信息。 请求方法(Method):如 GET, POST, PUT, DELETE 等,表示对资源的操作类型。 请求 URL (URI):资源的地址。 HTTP 协议版本:如 HTTP/1.1, HTTP/2.0。 示例: GET /index.html HTTP/1.1 2. 请求头(Request Headers)请求头提供了关于客户端、请求体和一些其他元数据的信息。它们以键值对的形式存在。 Host:指定请求的目标服务器的域名和端口号。 User-Agent:客户端的软件类型和版本,如浏...
分布式
1. Spring Cloud 体系核心思想Spring Cloud 并非一个全新的框架,而是一套用于构建微服务架构的规范和解决方案的集合。它巧妙地利用了 Spring Boot 的自动配置和快速开发特性,将业界经过广泛验证的优秀微服务组件(如 Netflix OSS、Alibaba Nacos、HashiCorp Consul 等)进行封装和集成,为开发者提供了一站式的分布式系统开发工具箱,涵盖了服务治理、配置管理、熔断降级、智能路由、服务调用等方方面面。 Netflix OSS 常用组件(部分进入维护模式) 服务注册与发现 (Service Discovery): Eureka 作用: 提供一个服务注册中心。每个微服务启动时,将自己的网络地址等信息“注册”到 Eureka Server。其他服务(消费者)则从 Eureka Server “发现”并拉取所需服务提供者的地址列表,从而实现服务间的动态寻址和调用。 使用: 服务端添加 spring-cloud-starter-netflix-eureka-server 依赖,并使用 @EnableEurekaServer 注解。客...
手写答案
1.实现单例模式 (Singleton Pattern)懒汉式:使用双重检查锁定 (DCL) 实现线程安全的懒汉式单例模式。这种模式在第一次调用时才创建实例,并且通过两次检查和同步块确保了线程安全和性能。 1234567891011121314151617181920212223242526272829class Singleton { // 1. volatile 关键字确保多线程环境下,instance 变量的修改能够立即被其他线程看到 private static volatile Singleton instance; // 2. 私有化构造器,防止外部直接 new 实例 private Singleton() {} // 3. 提供一个全局访问点,使用 DCL 确保线程安全 public static Singleton getInstance() { // 第一次检查:如果实例已经存在,直接返回,避免不必要的同步 if (instance == null) ...
