环境设置 c程序的源文件通常使用扩展名.c c程序需要编译成机器语言,这样cpu可以按给定指令执行程序。 最常用的编译器是gcc(mac上xcode就可以) 程序结构 #include 预处理器指令,类似于import,主要用于告诉编译器,我们要引入什么。 .h 结尾的是头文件,头文件中一般是定义的结构体和变量 #include 引入头文件,告诉c编译器编译之前要引入stdio.h文件,在linux中去/usr/include目录中寻找 函数 变量 语句&表达式 注释 以/.../包裹的会被编译器忽略 #i…

2021/11/17 0条评论 368点热度 0人点赞 阅读全文

机器数 一个数在计算机中的二进制表示形式,就是这个数的机器数。 二进制显示 高位存放符号,正数是0,负数是1 位运算法符 与运算符 & 两个位都为1则为1,否则为0 printFormat(101); printFormat(-101); printFormat(101&101); 结果: 0000 0000 0000 0000 0000 0000 0110 0101 1111 1111 1111 1111 1111 1111 1001 1011 0000 0000 0000 0000 0000 0…

2021/11/16 0条评论 212点热度 0人点赞 阅读全文

java代码是怎么运行的? jvm具体是怎么运行java字节码的? 在HotSpot里,有两种编译形式, 一种是解释执行,逐条将字节码翻译成机器码并执行。(无需等待编译) 一种是即时编译(Just in Time compilation)JIT ,将一个方法中包含的字节码编译成机器码再执行。(运行速度快) HotSpot 默认采用混合模式,综合了两者的优点。先解释执行字节码,将其中反复执行的热点代码,以方法为单位进行即时编译。 即时编译器: C1 又叫Client编译器,面向的是对启动性能有要求的或执行时间较短的,…

2021/10/25 0条评论 300点热度 0人点赞 阅读全文

这可能是最简短的线程池分析文章了。 顶层设计,定义执行接口 Interface Executor(){ void execute(Runnable command); } ExecutorService,定义控制接口 interface ExecutorService extends Executor{ } 抽象实现ExecutorService中的大部分方法 abstract class AbstractExecutorService implements ExecutorService{ //此处把Execut…

2021/10/24 0条评论 263点热度 0人点赞 阅读全文

之前一直用kafka,也了解了kafka的本身的一些机制,包括顺序读、顺序写、零拷贝、分治、水位等。但一直没详细的了解下kafka消费端是如何工作的。 趁着假期分析下,环境如下: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.12.RELEASE</v…

2021/09/20 0条评论 371点热度 0人点赞 阅读全文

没错,又来了,一个项目的结束,就会复盘并完善下。 传统开发的弊病: 通过事务脚本模式来开发需求; 开发人员热衷于技术并通过技术手段解决问题,而不是深入思考和设计业务的走向; 过于重视数据库,围绕数据库和数据模型进行建模,按数据流程进行建模; 按技术视角进行业务命名,导致后续迭代以及人员更替时,产品和技术无法对齐; 随着业务的发展,到后续业务、技术无法沟通,各种不理解; 业务希望技术出排期,技术得撸代码,耗费精力; 代码开发的过程中技术和业务耦合,一个场景一个服务,代码流水线; 因为技术的问题会导致业务流程的中断,导…

2021/09/20 0条评论 347点热度 0人点赞 阅读全文

引入消息中间件以后,系统交互的复杂性提升,一旦出了问题以后,要想各种各样的解决方案。 如果用消息中间件是为了削峰填谷,那在高峰期积压了慢慢处理即可。 如果用消息中间件只是为了解耦、异步处理,业务对时效性有一定的要求,那么就要求必须尽快处理。 消息积压,一般分为两大类: 生产者生产消息过快 消费者消费过慢 这两个问题,又可能引出别的问题,如中间件的磁盘有限,无法导致 这两大类又可以细分为三种: 生产者消费过快 运营活动(导致单位时间内流量激增) 微信推文 push营销 短信触达 跑批处理,一下子导入过多的数据到消费者…

2021/09/15 0条评论 326点热度 0人点赞 阅读全文

基于springcloud的灰度实现方案(一) 基于springcloud的灰度实现方案(二) @Configuration配置加载分析 之前介绍了灰度方案以及实现,分析feign调用的时候,有点不太尽兴,这次再丰富一下。 首先,我们在feign调用时,使用了FeignClient注解。 #接口调用 @FeignClient("demo-service") public interface DemoServiceFeginClient { } # 开启feign @EnableFeignClie…

2021/09/14 0条评论 433点热度 0人点赞 阅读全文

本来只想分析下@import是如何装载的,一下子没刹住车,整了一个Configuration 配置加载分析。 背景 周五在给大家分享sleuth的时候在ZipkinAutoConfiguration中关于程序如何选择Reporter一下子没找到具体的实现。两周之前刚翻过源码,当时理的清清楚楚,两周就忘了。 再次翻看源码后,记录一下 //关键点在ZipkinSenderConfigurationImportSelector,这是一个ImportSelector,先不说为啥 @Import(ZipkinSenderCo…

2021/08/22 0条评论 369点热度 0人点赞 阅读全文

设计模式是软件设计中常见问题的典型解决方案。它们就像能根据需求进行调整的预制蓝图, 可用于解决代码中反复出现的设计问题。 设计模式相对比较软性,是对解决某类场景问题的高层描述; 根据使用人的不同应用的也不同 只是一种思想,没有好坏之分,只有更适合; 我们应该关注要达到什么样的目的,怎么更加灵活的做到; 软件中唯一不变的是变化,设计模式让我们想各种方法屏蔽这种变化; 设计模式包含: 意图:简单描述问题和解决方案 动机:进一步解释问题并说明模式会如何提供解决方案; 结构:如何将软件结构组装起来并形成关系 设计原则: S…

2021/08/19 0条评论 258点热度 0人点赞 阅读全文
1234532
los movie los movie Watch Squid Game 2021 Free Online Watch Brand New Cherry Flavor 2021 Free Online Watch Inventing Anna 2022 Free Online