自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (2)
  • 收藏
  • 关注

原创 9、最小覆盖子串

// 最小覆盖子串 public String minWindow(String s, String t) { // 把t中的字符全部放到map中去 Map<Character, Integer> map = new HashMap<>(); for(char ch: s.toCharArray()) { map.put(ch, map.getOrDefault(ch, 0) + 1); .

2022-03-12 22:14:58 120

原创 8、区间合并

public int[][] merge(int[][] intervals) { // 特殊情况处理 if (intervals == null || intervals.length <= 1) { return intervals; } Arrays.sort(intervals, (o1, o2) -> o1[0] - o2[0]); List<int[]> list .

2022-03-12 22:13:53 107

原创 7、翻转单链表

public ListNode1 reverse(ListNode1 head) { // 特殊情况处理 if (head == null) { return null; } ListNode1 pre = null; ListNode1 cur = head; while (cur != null) { ListNode1 temp = cur.

2022-03-12 22:12:48 416

原创 6、斐波那契数列

public int fib(int n) { if (n <= 1) return n; // 1、定义状态数组,dp[i]表示的是数字i的斐波那契数 int[] dp = new int[n + 1]; // 2、初始状态 dp[0] = 0; dp[1] = 1; // 3、状态转移 for (int i = 2; i < n; i++.

2022-03-12 22:11:49 171

原创 5、矩阵中的路径

题目:代码实现:public class Solutionm { // 矩阵中的路径 public boolean exist(char[][] board, String word) { char[] charArr = word.toCharArray(); for (int i = 0; i < board.length; i++) { for (int j = 0; j < board[0].lengt

2022-03-12 22:10:39 279

原创 4、用2个栈实现队列

/** * Your CQueue object will be instantiated and called as such: * CQueue obj = new CQueue(); * obj.appendTail(value); * int param_2 = obj.deleteHead(); */public class CQueue { Stack<Integer> stack1, stack2; public CQueue() { .

2022-03-12 22:07:50 64

原创 3、不含重复字符的最长子串

实现方案1:public int longestSubStr(String str) { int max = 0; Deque<Character> deque = new ArrayDeque<>(); for (int i = 0; i < str.length(); i++) { if (!deque.contains(str.charAt(i))) { deq

2022-03-12 22:04:23 291

原创 2、合并2个有序链表

class ListNode1 { int val; ListNode1 next; public ListNode1(int value) { this.val = value; }}public class Solution { public ListNode1 mergeTwoList(ListNode1 l1, ListNode1 l2) { ListNode1 preHead = new ListNode1(-1);.

2022-03-12 22:01:03 48

原创 1、快速排序 - 优化版

Javapublic static void main(String[] args) {}

2022-03-12 21:56:01 116

原创 HashMap解析

原理HashMap解析原理:

2022-03-12 21:40:43 363

原创 1、最小覆盖子串

滑动窗口技巧:// 不含重复字符的最大子串 public static int noRepeatStr(String s) { int maxLen = 0; int left = 0; Map<Character, Integer> map = new HashMap<>(); for (int i = 0; i < s.length(); i++) { if (map.cont

2022-03-09 23:09:08 90

原创 操作系统基础总结

一、操作系统概念二、操作系统特征三、操作系统的发展与分类四、操作系统的运行机制与体系结构五、中断六、系统调用七、进程1、进程概念2、进程组成3、进程组织4、进程特征5、进程状态6、进程控制7、进程通信8、线程概念和多线程模型八、处理机调度的概念与层次...

2022-02-05 16:15:43 400

原创 Java面试基础(中)

1、HashMap扩容机制、TreeMap2、集合框架理解3、反射原理4、动态代理实现5、进程与线程理解6、线程状态转换7、为什么需要线程池8、创建线程池方式9、ThreadLocal使用场景10、什么是死锁?怎么发生的?11、RentrantLock理解12、AQS理解13、CAS理解14、atomic理解...

2022-02-05 13:32:59 173

原创 Java面试基础(上)

1、接口和抽象类的区别?2、==和equals区别?3、String、StringBuilder、StringBuffer4、方法重载、方法重写5、泛型6、static、final7、volatitle与synchronized关键字意义8、currentHashMap实现

2022-02-05 13:31:18 62

原创 【Git操作】

git操作

2022-02-05 13:13:24 162

原创 Intelij Idea快捷键

intelij idea快捷键

2022-01-13 16:15:51 116

原创 View绘制流程

绘制优化一、绘制原理二、性能分析工具android需将自己的界面展示给用户,用户和界面进行交互,流畅度就非常重要!此处我们将学习绘制性能分析,首先学习绘制原理,接下来学习性能分析工具。一、绘制原理View的绘制流程有3个步骤:measurelayoutdraw它们主要运行在系统的应用框架层,而真正将数据渲染到屏幕上的则是系统Native层的SurfaceFlinger服务来完成的。绘制过程主要由CPU来进行Measure、Layout、Record、Execute的数据计算工作,GPU负

2021-12-28 01:53:16 1728

原创 android系统启动流程

android系统启动流程android系统启动流程分为以下几个部分:1、启动电源以及系统启动2、引导程序BootLoader3、Linux内核启动4、init进程启动5、Zygote进程启动6、SystemServer进程启动7、Launcher启动android系统启动流程图:android系统启动流程分为以下几个部分:1、启动电源以及系统启动当电源按下时,引导芯片代码从预定义的地方(固化在ROM中)开始执行。加载引导程序BootLoader到RAM,然后执行。2、引导程序BootLoa

2021-12-28 01:12:07 7108

原创 android系统架构

android系统架构整体架构图应用层(System Apps)应用框架层(Java Api Framework)系统运行库层(Native)硬件抽象层(HAL)Linux内核层(Linux Kernel)整体架构图应用层(System Apps)系统内置应用程序以及非系统级的应用程序都属于应用层,负责直接与用户进交互应用框架层(Java Api Framework)应用框架层为开发人员提供了开发应用程序所需的Api,我们平常开发应用程序都是调用这一层的API,这一层是由Java代码编写的

2021-12-28 00:36:09 2241

原创 《第一行代码-android 》目录

第一行代码-android第一章 了解android全貌1.1 android系统架构第二章 Activity2.1 activity是什么?2.2 activity基本用法2.3 Intent使用2.4 activity生命周期2.5 activity启动模式2.6 activity的最佳实践2.6.1 随时随地退出程序2.6.2 启动活动的最佳写法第三章 UI开发3.1 常见控件使用方法:3.1.1 TextView3.1.2 Button3.1.3 EditText3.1.4 ImageView3.1

2021-12-26 23:11:27 619

原创 帧动画基本实现

动画(上)帧动画基本概念代码实现代码实现1帧动画基本概念帧动画基本原理就是将一张张图片进行连续播放代码实现代码实现11、animation_list.xml:<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/p

2021-12-26 21:12:00 306

原创 android学习路线

android学习路线价值与意义第一阶段技术要求四大组件的基本使用基本UI组件资料推荐第二阶段技术要求其它第三阶段技术要求价值与意义要保持在android道路上的快速进步,首先要有明确的目标,然后必须要保持大量的知识摄入,最终构建起整个android体系,达到知识树的融会贯通第一阶段技术要求四大组件的基本使用 activity Service BroarcastReceiver ContentProvider Intent基本使用基本UI组件 Button TextView

2021-12-26 13:42:51 215

原创 Http基础

Http基础一、基本概念1.1 协议是什么?1.2 URI和URL区别1.3什么是Http协议?1.4 我们为什么要Http协议?没有它会怎么样?二、核心问题2.1 Http协议核心组成2.1.1 请求 (Request)2.1.2响应2.2 请求方法2.3 请求响应常见通用头2.4 常见媒体格式2.5 常见请求头2.6 常见响应头2.7 Http缺点三、Https3.1 什么是Https?3.2 SSL是什么?3.3 浏览器使用Https传输数据的流程?3.4 Http和Https区别一、基本概念1.

2021-09-15 14:00:19 95

原创 网络通信基础

网络通信一、网络通信基本概念二、网络编程要解决的问题三、通信要素四、OSI7层模型3.1数据链路层3.2网络层3.3 传输层五、TCP/IP协议5.1 历史背景5.2 特点一、网络通信基本概念网络就是用物理链路将各个孤立的主机连接在一起,组成数据链路,从而达到资源共享和通信的目的。网络通信是通过网络将各个孤立的设备进行连接,通过信息交换实现人与人,人与计算机,计算机与计算机之间的通信。网络通信中最重要的就是网络通信协议。二、网络编程要解决的问题网络编程要解决的2个问题:(1)如何准确定位网络上

2021-09-15 11:33:03 1993

原创 计算机基础

计算机基础一、计算机组成1.1 冯罗依曼计算机组成1.2 计算机层次结构1.3 计算机性能指标1.3.1 非时间指标1.3.2 时间指标1.4 数据表示二、 存储系统2.1 存储系统层次结构2.1.1 主存问题2.1.2存储体系的结构化层次2.2 主存中的数据组织2.2.1 存储字长2.2.2 数据存储与边界的关系2.2.3 大端与小端存储方式2.3 存储器分类2.4 主存容量扩展2.5 Cache基本原理2.5.1 cache的工作过程:2.5.2 写策略2.5.3 地址映射机制2.5.4 替换算法2.6

2021-09-13 15:58:55 1497

原创 设计模式概述

设计模式基础为什么要用设计模式设计模式分类设计模式七大原则为什么要用设计模式设计模式是设计模式分类设计模式七大原则

2021-06-08 15:13:33 50

数据结构与算法图谱学习

2022-05-11

android第一阶段复盘.md

android系统架构

2022-01-06

空空如也

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

TA关注的人

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