游向大厂的咸鱼
码龄2年
关注
提问 私信
  • 博客:66,553
    社区:45
    问答:149
    动态:86
    66,833
    总访问量
  • 81
    原创
  • 20,549
    排名
  • 840
    粉丝
  • 4
    铁粉
  • 学习成就

个人简介:v:Zzz1024210

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖北省
  • 毕业院校: 湖北文理学院理工学院
  • 加入CSDN时间: 2023-03-01
博客简介:

2301_76762420的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    5
    当前总分
    1,107
    当月
    3
个人成就
  • 获得1,205次点赞
  • 内容获得313次评论
  • 获得1,026次收藏
  • 代码片获得1,841次分享
创作历程
  • 70篇
    2024年
  • 11篇
    2023年
成就勋章
TA的专栏
  • 浅谈C++
    49篇
创作活动更多

仓颉编程语言体验有奖征文

仓颉编程语言官网已上线,提供版本下载、在线运行、文档体验等功能。为鼓励更多开发者探索仓颉编程语言,现诚邀各位开发者通过官网在线体验/下载使用,参与仓颉体验有奖征文活动。

368人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

【JavaSE】初识Java

Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义。不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。
原创
发布博客 2024.10.23 ·
938 阅读 ·
27 点赞 ·
0 评论 ·
14 收藏

IPv4 地址枯竭多年,IPv6 何时才能全面接棒?

IPv4地址的枯竭对互联网的未来构成了威胁,而IPv6的引入则为这一问题提供了解决方案。虽然目前IPv6的全面推广面临着诸多挑战,但随着技术的发展和政策的推动,其采用率正在逐步提高。最终,IPv6有望取代IPv4,成为互联网的主流协议,满足未来数十年对IP地址的巨大需求。早期采取行动的企业将能在竞争中占据优势。:IPv6的地址数量是IPv4的约340万倍,这意味着几乎可以为每个设备分配一个独特的地址,极大地扩展了互联网的可用性。:IPv6的路由机制经过优化,减少了路由表的复杂性,提升了数据包传输的效率。
原创
发布博客 2024.10.23 ·
708 阅读 ·
18 点赞 ·
0 评论 ·
18 收藏

【Java EE】线程安全问题的原因与解决方案

线程安全问题的根本原因在于多个线程同时访问共享资源而不进行适当的同步操作。Java 提供了多种方式来解决线程安全问题,包括使用关键字、volatile关键字、Atomic类、以及Lock等高级机制。每种方法都有其优缺点,开发者应根据具体场景选择合适的解决方案。是最常见的同步机制,适合简单的线程同步问题。volatile用于解决内存可见性问题,但不保证操作的原子性。Atomic类适合在高并发的情况下处理简单的原子操作。Lock提供了更灵活的锁机制,适用于复杂的多线程环境。
原创
发布博客 2024.09.16 ·
1339 阅读 ·
22 点赞 ·
0 评论 ·
20 收藏

【Java EE】冯·诺依曼体系结构及其在 JavaEE 中的应用

冯·诺依曼体系结构奠定了现代计算机系统的基础,JavaEE 作为企业级开发框架,充分利用了这种架构来管理内存、处理器、I/O 和存储设备的资源。通过示例代码,我们可以看到冯·诺依曼架构的概念在 JavaEE 应用中的具体表现,尤其是在线程调度、内存管理和输入输出操作上。尽管冯·诺依曼架构是底层硬件的设计原则,但其影响深远,体现在每个高级编程语言和框架中。JavaEE 是面向企业级应用的解决方案,在其核心中,仍然依赖于冯·诺依曼架构定义的基本概念。
原创
发布博客 2024.09.16 ·
1204 阅读 ·
7 点赞 ·
0 评论 ·
12 收藏

【Java EE】深入理解 Java 线程的生命周期与状态转换

多线程编程在 Java 中是实现高效并发的核心技术之一。每个线程在其生命周期内会经历多个状态,这些状态反映了线程在特定时间点的行为与系统资源的使用情况。了解线程的状态及其转换机制,对于编写健壮的并发程序尤为重要。本文将深入探讨 Java 线程的六种状态、每种状态的含义、状态之间的转换条件以及线程状态在实际应用中的意义。
原创
发布博客 2024.08.25 ·
1415 阅读 ·
31 点赞 ·
0 评论 ·
18 收藏

【Java EE】深入探讨 Java 中 Thread 类的使用

在现代软件开发中,随着硬件性能的提升,多线程编程已成为提升应用程序性能的关键手段之一。Java 提供了多种处理并发任务的工具,其中Thread类是基础。本文将详细探讨Thread类的使用,包括线程的创建与启动、线程的中断、线程的等待、线程的休眠以及如何获取当前线程的实例。
原创
发布博客 2024.08.25 ·
380 阅读 ·
4 点赞 ·
0 评论 ·
8 收藏

【Java EE】进程调度的基本过程

进程调度是操作系统管理多任务执行的核心功能之一,它决定了在任意时刻哪个进程应该运行,以便有效地利用系统资源,提高计算机性能。本文将深入介绍进程调度的基本概念、主要调度算法、调度的工作流程、以及如何优化进程调度。
原创
发布博客 2024.08.04 ·
902 阅读 ·
18 点赞 ·
1 评论 ·
15 收藏

【Java EE】进程和线程的区别和联系

通过对进程和线程的区别与联系的探讨,我们可以更好地理解它们在操作系统中的角色和作用。进程提供了一个独立的执行环境,保证了不同程序之间的隔离性,而线程则利用共享资源的优势,实现了更高效的并发执行。在编程实践中,合理使用进程和线程可以显著提高程序的性能和响应能力。
原创
发布博客 2024.08.04 ·
531 阅读 ·
7 点赞 ·
0 评论 ·
7 收藏

【C++语言】RTTI

运行时类型识别(RTTI)是C++中的一种机制,用于在运行时确定对象的实际类型。C++通过两个关键字和typeid来实现RTTI。用于在运行时执行安全的向下转型,检查对象的实际类型是否与目标类型兼容。用于获取对象的类型信息,返回一个type_info对象,可以比较两个类型是否相同。RTTI是C++中的一个重要特性,它允许在运行时确定对象的实际类型。通过使用和typeid,我们可以执行安全的向下转型并获取对象的类型信息。RTTI在多态、工厂模式等场景下有着广泛的应用,但需要注意可能带来的运行时开销。
原创
发布博客 2024.05.26 ·
622 阅读 ·
7 点赞 ·
0 评论 ·
8 收藏

【C++语言】RAII

RAII是资源获取即初始化(Resource Acquisition Is Initialization)的缩写。它的基本思想是,将资源(如内存、文件句柄、数据库连接等)的生命周期与对象的生命周期绑定在一起。当对象被创建时,资源被分配;当对象被销毁时,资源被释放。这样可以确保资源在对象不再需要时被及时释放,从而避免了资源泄漏的问题。RAII是C++中一种重要的编程习惯和设计模式,它利用了对象的生命周期来管理资源的获取和释放。
原创
发布博客 2024.05.17 ·
524 阅读 ·
8 点赞 ·
1 评论 ·
12 收藏

【C++语言】类型转化

类型转换是C++中的一个重要概念,它允许在不同类型之间进行数据转换。C++提供了隐式类型转换、显式类型转换和C风格的类型转换等多种方式。在进行类型转换时,务必谨慎,确保转换是安全的,并尽量避免使用C风格的转换。通过熟练掌握各种类型转换方式,可以编写出更加安全、可靠和易于维护的代码。
原创
发布博客 2024.05.17 ·
405 阅读 ·
4 点赞 ·
0 评论 ·
7 收藏

【C++语言】IO流

I/O流是一个抽象概念,用于描述数据在程序和外部设备之间的流动。它分为输入流(istream)和输出流(ostream)。istream用于从外部设备读取数据,而ostream用于向外部设备写入数据。这种模式使得数据的读取和写入变得统一且易于理解。C++的I/O流提供了一种强大而灵活的方式来处理数据的输入和输出。通过cin和cout对象,您可以与控制台进行交互,而通过ifstream和ofstream对象,您可以与文件进行交互。通过熟练掌握这些基本的I/O流操作,您可以编写出高效、可靠且易于理解的程序。
原创
发布博客 2024.05.16 ·
523 阅读 ·
10 点赞 ·
0 评论 ·
6 收藏

IT行业的风云变幻:探索无限可能

首先,让我们审视当前IT行业的现状。物联网的发展让各种设备实现了互联互通,为我们的生活和工作带来了更大的便利和效率。区块链技术的出现,则为数字资产的交易和管理提供了全新的解决方案,同时也在金融、供应链管理等领域展现出巨大的潜力。在技术创新的驱动下,我们将看到更多颠覆性的技术和商业模式的出现,从而进一步推动数字化转型的进程。此外,技术发展的不平衡也可能导致数字鸿沟的加剧,使一些地区和人群无法充分享受到数字化带来的好处。同时,技术的快速迭代也带来了人才供给的挑战,需要培养更多具备相关技能的专业人才。
原创
发布博客 2024.05.16 ·
477 阅读 ·
4 点赞 ·
0 评论 ·
9 收藏

【C++语言】异常

异常是指在程序执行期间发生的意外或不正常的情况。内存分配失败试图访问不存在的数组元素文件操作失败非法操作符使用等在C++中,异常通常被抛出(throw)并由try-catch块捕获(catch)。当发生异常时,程序将跳转到与之匹配的catch块,以便进行适当的处理。异常处理是C++中一种强大的机制,可以使程序更加健壮和可靠。通过抛出和捕获异常,我们可以在程序运行时检测和处理各种错误情况,从而提高程序的容错性和可维护性。然而,在使用异常时要谨慎,并遵循最佳实践,以确保代码的清晰和可读性。
原创
发布博客 2024.05.12 ·
571 阅读 ·
4 点赞 ·
0 评论 ·
3 收藏

【C++语言】模板

模板是一种机制,它允许程序员编写通用的函数或类,而不必指定将要操作的确切数据类型。这使得编写可重用的代码变得更容易。它允许您编写一个通用函数,可以处理多种不同类型的参数。它允许您编写一个通用类,可以在不同类型的数据上操作。模板是C++中非常强大和灵活的特性,它们允许您编写通用的代码,适用于多种数据类型。通过函数模板和类模板,以及模板特化,您可以实现高度灵活和可重用的代码,这对于构建复杂的软件系统至关重要。然而,需要注意的是,模板有时会导致代码生成的大小增加,因此在使用时需要权衡利弊。
原创
发布博客 2024.05.12 ·
520 阅读 ·
10 点赞 ·
0 评论 ·
4 收藏

爬虫获取网易云歌曲数据

答:

你可以使用 Python 中的 Requests 库来发送 HTTP 请求,并使用 BeautifulSoup 库来解析 HTML 页面,从而爬取网易云音乐的 Billboard 榜单信息。下面是一个示例代码,演示如何爬取网易云音乐 Billboard 榜单上前 100 首歌曲的喜欢量、播放量、评论量和下载量:

import requests
from bs4 import BeautifulSoup

# 发送请求获取网页内容
url = 'https://music.163.com/discover/toplist?id=3778678'
response = requests.get(url)
html_content = response.text

# 使用 BeautifulSoup 解析网页内容
soup = BeautifulSoup(html_content, 'html.parser')

# 找到包含歌曲信息的元素
song_list = soup.find_all('tr', class_='even') + soup.find_all('tr', class_='odd')

# 循环遍历歌曲列表
for song in song_list[:100]:  # 获取前100首歌曲的信息
    # 解析歌曲信息
    song_name = song.find('span', class_='txt').text.strip()
    song_url = 'https://music.163.com' + song.find('a')['href']
    song_info = song.find_all('span', class_='s-fc7')
    
    # 获取歌曲的喜欢量、播放量、评论量和下载量
    likes = song_info[0].text.strip()
    plays = song_info[1].text.strip()
    comments = song_info[2].text.strip()
    downloads = song_info[3].text.strip()
    
    # 输出歌曲信息
    print(f"歌曲名称:{song_name}")
    print(f"歌曲链接:{song_url}")
    print(f"喜欢量:{likes}")
    print(f"播放量:{plays}")
    print(f"评论量:{comments}")
    print(f"下载量:{downloads}")
    print()

这个代码会向网易云音乐的 Billboard 榜单发送请求,然后解析 HTML 页面,提取前 100 首歌曲的相关信息,并输出到控制台。你可以根据需要进一步处理这些信息,比如保存到文件或者存储到数据库中。

回答问题 2024.05.11

如何在scanpy上做差异基因和通路富集?

答:

在 Scanpy 中进行差异基因分析和通路富集分析与在 Seurat 中的流程有些不同,但是可以达到相似的功能。下面我会给出一个示例代码,演示如何在 Python 中使用 Scanpy 进行差异基因分析和通路富集分析。

import scanpy as sc
from anndata import AnnData
import pandas as pd
from gprofiler import GProfiler

# 读取数据
adata = sc.read("your_expression_data.h5ad")

# 数据预处理
sc.pp.normalize_total(adata, target_sum=1e4)
sc.pp.log1p(adata)

# 进行差异基因分析
sc.tl.rank_genes_groups(adata, groupby='condition', method='wilcoxon')

# 提取差异基因
diff_genes_df = pd.DataFrame(adata.uns['rank_genes_groups']['names'])

# 提取通路富集所需的基因列表
gene_lists = diff_genes_df.iloc[:, :5]  # 取前5个基因作为每个组的差异基因列表

# 进行通路富集分析
gp = GProfiler(return_dataframe=True)
enrichment_results = pd.concat([gp.gprofile(gene_list=gene_list, organism='hsapiens') for gene_list in gene_lists])

# 打印通路富集结果
print(enrichment_results)

在这个示例中,首先读取了表达数据,并进行了预处理,包括归一化和对数转换。然后使用 sc.tl.rank_genes_groups() 进行差异基因分析,结果存储在 adata.uns['rank_genes_groups'] 中。接着从差异基因结果中提取了差异基因列表。

在通路富集分析部分,使用了 GProfiler 库进行通路富集分析。我们使用了每个组的前5个差异基因作为输入进行通路富集分析,你可以根据需要调整这个数量。

最后,将通路富集的结果存储在 enrichment_results 变量中,你可以根据需要进行进一步的处理或分析。

回答问题 2024.05.11

c语言压力大小控制电机

答:

你可以使用C语言编写一个简单的程序来实现这个功能。首先,你需要连接到压力传感器,并且有一个电机可以控制正反转。以下是一个简单的示例代码:

#include <stdio.h>
#include <stdbool.h>

// 假设1000N为标准压力
#define STANDARD_PRESSURE 1000

// 假设的电机控制函数
void motorControl(bool direction) {
    if (direction) {
        printf("Motor is rotating in the forward direction.\n");
    } else {
        printf("Motor is rotating in the reverse direction.\n");
    }
}

// 假设的压力传感器读取函数
int readPressure() {
    // 返回一个随机的压力值
    return rand() % 2000;
}

int main() {
    bool motorForward = false;
    int pressure;

    while (true) {
        // 读取当前压力值
        pressure = readPressure();

        // 如果压力大于标准值,则电机正转
        if (pressure > STANDARD_PRESSURE) {
            motorControl(true);
            motorForward = true;
        } else {
            // 如果电机之前是正转状态,且压力小于等于标准值,则电机反转
            if (motorForward) {
                motorControl(false);
                motorForward = false;
            }
        }
    }

    return 0;
}

这个程序中,我们假设了一些函数,如readPressure()用于读取压力传感器的值,motorControl()用于控制电机的正反转。在main()函数中,通过一个循环不断读取压力值,并根据压力值的变化控制电机的状态。当压力大于标准值1000N时,电机正转;当压力降低到1000N以下时,电机反转。

回答问题 2024.05.11

【C++语言】多态

多态性是面向对象编程中的一个重要概念,它通过虚函数和动态绑定实现。通过使用多态性,可以编写更加灵活和可扩展的代码,提高代码的可维护性和复用性。希望通过本文的介绍,读者能够更好地理解C++中多态性的概念和实现方式,并能够灵活运用它们进行程序设计和开发。
原创
发布博客 2024.05.08 ·
478 阅读 ·
11 点赞 ·
0 评论 ·
3 收藏

【C++语言】继承

继承是C++中的重要概念,它允许我们在现有类的基础上构建新的类,并且可以通过多态性实现代码的灵活性和可扩展性。通过本文的介绍,希望读者能够更好地理解C++中继承的概念和用法,并能够灵活运用它们进行程序设计和开发。
原创
发布博客 2024.05.08 ·
597 阅读 ·
4 点赞 ·
0 评论 ·
10 收藏
加载更多