JavaSE-08面向对象高级二
JavaSE-08面向对象高级二
[ 任务列表 ]
1.代码块
2.内部类
3.函数式编程
3.1.Lambda表达式
3.2.函数式接口
3.3.方法引用
4.常用API
4.1.String
4.2.ArrayList集合
5.GUI编程
6.其他
1.代码块
类中的五大成分:成员变量、构造器、成员方法、代码块、内部类。
JDK8开始,新增的代码编程:函数式编程。
代码块:是类 ...
从零开始手写redis(18)缓存淘汰算法 FIFO 优化
项目简介
大家好,我是老马。
Cache 用于实现一个可拓展的高性能本地缓存。
有人的地方,就有江湖。有高性能的地方,就有 cache。
v1.0.0 版本
以前的 FIFO 实现比较简单,但是 queue 循环一遍删除的话,性能实在是太差。
于是想到引入一个 Set 存储有哪些 key,改成下面的方式:
package com.github.houbb.cache.core.supp ...
hot100之动态规划上
爬楼梯(070)
class Solution {
int[] memo = new int[50];
public int climbStairs(int n) {
if (memo[n] != 0) return memo[n];
if (n == 0 || n ==1 ){
return 1;
}
if (n == 2){
return 2;
}
memo[n] = climbStairs(n-1) + climbSta ...
ERP 开源系统!中小企业管理的宝藏利器!
大家好,我是 Java陈序员。
今天,今天给大家介绍一款令人眼前一亮的国产开源 ERP 系统!
关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。
项目介绍
xingyun —— 一个基于 SpringBoot 框架,为中小企业提供完全开源、永久免费、用户体验好的进销存 ERP 系统。
功能模块: ...
BIO, NIO, AIO 大白话 - 澄澈大学生也能搞懂
最近天天吃沙县, 就拿沙县分析
BIO
Block I/O
沙县分析
相近时间来了4个顾客
顾客
菜品
时间
A
筒骨饭
5min
B
茄子肉丝盖饭
7min
C
猪脚饭
3min
D
茄子肉丝盖饭
7min
老板只能按照顺序 5+7+3+7 = 22分钟完工
每次做完一个菜, 还要问下一个顾客点的是什么(一心不能二用, 记不住<顾客, 菜品>键值对)
此 ...
Viggle Ai一篇吃透(AI视频创作)
1、Viggle Ai简介
Viggle Ai是一款创新的人工智能角色动态视频生成工具,基于可理解实际物理的视频-3D 基础模型 JST-1,从而实现对静态图像或视频中角色动作的精确控制。用户可以通过文本命令或视频素材,为角色添加各种动作和表情,如微笑、挥手等,使角色仿佛拥有生命般自然地动起来。
你是否想过让一张静态照片中的人物 ...
hot100之贪心
买卖股票的最佳时期(121)
class Solution {
public int maxProfit(int[] prices) {
int res = 0;
int min = Integer.MAX_VALUE;
for (int i = 0; i < prices.length; i++){
min = Math.min(min, prices);
res = Math.max(res,prices - min);
}
retur ...
3. Java JUC源码分析系列笔记-Synchronized
目录1. 是什么2. 什么时候使用2.1. 多线程访问共享资源时的并发问题2.1.1. 究其原因2.1.2. 解决的方法3. 如何使用3.1. 修饰 static 方法。使用的锁是当前类对象3.2. 修饰普通方法。使用的锁是当前实例对象3.3. 修饰代码块。使用的锁是()里指定的对象4. sychronized 代码块原理分析4.1. 字节码实验4.1.1. monitor 是个啥玩意 ...
设计模式-工厂模式
什么是工厂模式?
工厂模式(Factory Pattern)是一种创建型设计模式,它将对象的创建和使用分离,通过工厂类来负责创建对象。这种模式可以降低代码间的耦合度,提高可维护性和可扩展性。
一、核心思想
将对象创建逻辑封装在工厂类中,客户端无需直接实例化对象,而是通过工厂获取。
遵循依赖倒置原则:依赖抽象而非具体实 ...
设计模式-单例模式
什么是单例模式?
单例模式(Singleton Pattern)是一种创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。单例模式又分懒汉模式和饿汉模式,两种都属于单例模式,只不过在实例化的时机不一样。单例模式有几个特点
1. 全局唯一:在系统中只能存在一个实例
2. 自行实例化:类内部负责创建实例, ...
hot100之堆
虽然更多用的是桶
数组中的第k个最大元素(215)
桶排序
class Solution {
public int findKthLargest(int[] nums, int k) {
int[] buckets = new int[200001];
for (int i = 0; i < nums.length; i++){
buckets[nums+10000]++;
}
for (int i = 20000; i >= 0; i--){
...
Spring MVC详解
📌 摘要
Spring MVC 是 Spring Framework 提供的一个模块化 Web 框架,用于构建基于 MVC 架构的 Java Web 应用。它具备良好的解耦性、可扩展性和灵活性,是目前主流的 Java Web 开发框架之一。
本文将系统讲解 Spring MVC 的基本原理、核心组件、请求处理流程、常用注解以及实际开发中的常见配置和技巧,适合初学者快速上手 ...
hot100之栈
有效的括号(020)
跳过
最小栈(155)
class MinStack {
private final Deque<int[]> stack = new ArrayDeque<>();
public MinStack() {
stack.addLast(new int[]{0, Integer.MAX_VALUE});
}
public void push(int val) {
stack.addLast(new int[]{val, Math.min(stack.peekLast()[1], val)} ...
Countdownlatch和Cylibarrir
-CoderOilStation
Countdownlatch和Cylibarrir
分布式集群和多线程高并发会生成共享数据高性能的操作风险。使用安全的数据结构基于组件去模块开发。线程是一种程序调用单元。线程使用指针连接程序。程序运行资源调度提供应用逻辑单元服务。数据传输使用特殊数据结构transformer datastructure.
JavaE ...
用好 JUnit 5 的高级特性:提升单测效率和质量
写在前面
在当今的软件开发实践中,单元测试已成为保障代码质量的必备环节。许多团队已经积累了一定的单元测试经验,能够编写基本的测试用例来验证功能逻辑。然而,当我们面对复杂的业务场景时,仅靠基础的JUnit功能往往会导致测试代码冗长、结构混乱,甚至出现大量重复代码。
作为最新版本的Java测试框架,JUnit 5引入了 ...
几分钟了解下java虚拟机--04
方法内联
📖
它的基本思想是在调用某个方法时,不通过跳转指令去执行该方法的代码,而是直接将该方法的代码复制到调用点处。这样可以减少方法调用的开销,包括减少函数调用和返回的指令执行时间,以及减少堆栈操作
方法内联能够触发更多的优化。通常而言,内联越多,生成代码的执行效率越高。然而,对于即时编译器来说, ...
hot100之二分查找
搜索插入位置(035)
class Solution {
public int searchInsert(int[] nums, int target) {
int n = nums.length;
int lef = -1;
int rig = n;
while(lef+1 < rig){
int mid = (lef + rig) / 2;
if (nums[mid] < target){
lef = mid;
...
Spring Boot 启动优化实践
作者:vivo 互联网服务器团队- Liu Di
本文系统性分析并优化了一个Spring Boot项目启动耗时高达 280 秒的问题。通过识别瓶颈、优化分库分表加载逻辑、异步初始化耗时任务等手段,最终将启动耗时缩短至 159 秒,提升近 50%。文章涵盖启动流程分析、性能热点识别、异步初始化设计等关键技术细节,适用于大型Spring Bo ...
JVM内存结构33连问
JVM内存结构分为5大区域,程序计数器、虚拟机栈、本地方法栈、堆、方法区。
程序计数器是什么?
特点:
线程私有
CPU会为每个线程分配时间片,当当前线程的时间片使用完以后,CPU就会去执行另一个线程中的代码
程序计数器是每个线程所私有的,当另一个线程的时间片用完,又返回来执行当前线程的代码时,通过程序计数器可以 ...
好多分钟了解下java虚拟机--03
垃圾回收
引用计数法和可达性分析
引用计数法
即记录对象的 reference count 若≠0则保留
a, b对象相互引用, 不可回收, 造成内存泄露
可达性分析(JVM主流使用)
从GC Root出发的树状结构
若对象不可达则回收
💡
GC Roots 包括(但不限于)如下几种:
Java 方法栈桢中的局部变量;
已加载类的静态变量;
JNI handles;
...