学习笔记

一个实例搞懂二重指针

最近在编写一个链表的时候遇到了关于指针的一些问题,在研究的过程中终于弄懂了在函数形参中使用二重指针的意义和用法。 我们先从编写一个函数说起。这个函数要求在一个链表的头部插入一个节点,这个链表没有头结点,并且要求返回值是void。也就是说在函数里要完成对链表头指针的修改。 一开始我的写法是这样的: typedef struct ListNode{ int val; struct ListNode* next; }ListNode; void myLinkedListAddAtHead(ListNode* obj,int val){ ...

C# 缓存的实现

缓存的实现 我们不是做第三方比如Redis等的缓存实现,而是根据实际情况,基于C#上做一些环境变量的保存,方便项目使用。 1、系统全局变量 很多时候,在系统运行开始,需要对系统的运行参数进行保存,以便供全局使用。 代码如下: 复制代码 public class PFTCacheObject { /// /// 字典 /// private static Dictionary _dataDic = new Dictionary(); ...

2019计算机保研记

 本人本科哈工大,方向是计算机科学与技术下的视听觉信号处理。了解到保研的各种事情是在大三寒假,那个时候看了朋友圈同学转的一篇文章,才发现原来保研还真不是那么简单的事情。有夏令营,预推免和九推最终一搏等等各种机会需要把握。现在自己的保研历程告一段落,回想起来感觉前人的博客帮了我很大的忙,于是就想记录下自己的保研历程,传承一下,帮助一下后来的同学们。...

构建企业级数据湖?Azure Data Lake Storage Gen2实战体验(中)

引言 相较传统的重量级OLAP数据仓库,“数据湖”以其数据体量大、综合成本低、支持非结构化数据、查询灵活多变等特点,受到越来越多企业的青睐,逐渐成为了现代数据平台的核心和架构范式。 因此数据湖相关服务成为了云计算的发展重点之一。Azure平台早年就曾发布第一代Data Lake Storage,随后微软将它与Azure Storage进行了大力整合,于今年初正式对外发布了其第二代产品:Azure Data Lake Storage Gen2 (下称ADLS Gen2)。ADLS Gen2的口号是“不妥协的数据湖平台,它结合了丰富的高级数据湖解决方案功能集以及 Azure Blob 存储的经济性、全球规模和企业级安全性”。 ...

Java NIO之理解I/O模型(二)

前言 上一篇文章讲解了I/O模型的一些基本概念,包括同步与异步,阻塞与非阻塞,同步IO与异步IO,阻塞IO与非阻塞IO。这次一起来了解一下现有的几种IO模型,以及高效IO的两种设计模式,也都是属于IO模型的基础知识。 UNIX下可用的五种I/O模型 根据UNIX网络编程对IO模型的分类,UNIX提供了5种IO模型,下面分别来介绍一下。 阻塞I/O模型 最常见的一种IO模型,之前介绍过,一个read操作是分两个阶段的,第一个阶段是,等待数据准备就绪,第二个阶段是将数据拷贝到调用这个IO的线程中。阻塞是发生在第一个阶段的,当数据没有准备好时,会一直阻塞用户线程,当数据就绪后再将数据拷贝到线程中,并返回结果给用户线程。 ...

从Hybrid到React-Native: JS在移动端的南征北战史

目录 Hybrid Q1: JS怎么调用Android代码 Q2: Android怎么调JS代码? Q3: IOS代码怎么调用JS Q4: JS怎么调用IOS代码 Hybird的实现方式 React-Native 参考文章 正文 注:因为不了解Dart,所以本文不对flutter相关内容进行阐述, 实在抱歉 其实写这篇文章的时候,我就知道,肯定有人问我:为什么不写flutter?抱歉了,flutter的大名我当然知道,可我只是一个写JS的,同时了解一些Java的知识,而flutter采用的编程语言,我暂时没有碰过,所以自然不敢妄加猜度,还请谅解 ...

1小时让你掌握响应式编程,并入门Reactor

“你知道什么是同步阻塞吗”,当然知道了。“那你怎么看它呢”,这个。。。 在同步阻塞的世界里,代码执行到哪里,数据就跟到哪里。如果数据很慢跟不上来,代码就停在那里等待数据的到来,然后再带着数据一起往下执行。 可以说是,代码执行和数据是结伴而行,不离不弃。执子之手与子偕老。让人老感动了。 如果还不太理解的话,可以认为代码执行其实就是一些行为动作,这些行为动作的目的就是为了获取/操作数据。 例如加法,这里的行为动作就是执行相加,数据就是加数和被加数。操作结果就是得到了另一个数据,即两个数的和。 ...

基于 HTML5 WebGL 的医疗物流系统 前言

 前言物联网( IoT ),简单的理解就是物体之间通过互联网进行链接。世界上的万事万物,都可以通过数据的改变进行智能化管理。ioT 的兴起在医疗行业中具有拯救生命的潜在作用。...

Bean 装配:从 Spring 到 Spring Boot

目录 从SSM的集成谈到Bean的装配 Bean的装配 由XML到Java Config 自动扫描 Bean的注入 SSM集成的Java版 Spring Boot Magic Auto Configuration Syntactic sugar 总结 参考文献 附录 SpringUtils.java 非Spring Bean中获取Spring Bean的方法 本文首发于我的个人博客,Bean装配,从Spring到Spring Boot ,欢迎访问! 本文旨在厘清从Spring 到Spring Boot过程中,Bean装配的过程。 ...

Android MediaPlayer 播放音频

本文链接: Android MediaPlayer 播放音频 主要介绍使用MediaPlayer播放音频的方式。关于MediaPlayer的基础知识,比如状态,可以参考Android MediaPlayer 基础简介。 为了方便表达,定义变量名为mediaPlayer。 MediaPlayer的使用方式 创建MediaPlayer 可以直接 new MediaPlayer,也可以用MediaPlayer提供的create方法创建。 mediaPlayer = new MediaPlayer(); ...

Docker笔记(十一):Dockerfile详解与最佳实践

 Dockerfile是一个文本文件,包含了一条条指令,每条指令对应构建一层镜像,Docker基于它来构建一个完整镜像。本文介绍Dockerfile的常用指令及相应的最佳实践建议。1. 理解构建上下文(build context)...

设计模式-结构型-桥接模式

桥接模式(Bridge):   桥接是用于把抽象化与实现化解耦,使得两者可以独立变化。 桥接模式的角色:      1)抽象化角色(Abstraction):它是用于定义抽象接口,通常是抽象类而不是接口,其中定义了一个Implementor(实现接口)类型的对象并可以维护该对象,它与Implementor之间具有关联关系。   2)改善后的抽象化角色(RefinedAbstraction):通常是具体类,实现了Abstraction中的抽象方法,在RefinedAbstraction中可以调用Implementor中定义的方法。 ...
青岛软件培训

可能你正在寻找一家靠谱的IT培训机构,学习一些专业的软件开发技术,找一份得体的工作。恰巧我们就是一家踏踏实实做教育的IT人才培养机构,我们咨询电话是 0532-85025005,如果你确实对IT感兴趣,我们不妨交流一下。

申请免费试听课程