师兄留下了《编程之美》,今天翻开之后,打算开始学习,为下步工作准备:

先记下几句话吧:

1.题目关键不在于答案,在于思考问题的方法。

2.微软职位:1AR 协助研究员2,DEV 软件开发工程师3,TEST 测试工程师 4,RSDE 我认为就是在AR和DEV之间的一类职位吧,兼具有之。

3.较为看重同学的程序设计思路如何,编程风格,细节考虑,有无内存泄露,是否采用最优算法,程序能够根据需求修改,能否举一反三。

4.药灵丸不大,棋妙子不多。意思是说,程序小巧灵活,能体现出编程之美。

5.纸上得来终觉浅,绝知此事要躬行,一定要践行代码,纸上写代码。

6.画意能达万言,意思就是说图比文字更有说服力,我们老师常说的一句话就是有图有真相。意思类似。

7.面试时,一般是先提供一个简单的方法,然后,再根据此试图找到一个更好的解决方法。

第一个问题 如何指挥CPU的占有率

基本思路是首先分析出什么样的代码会完全占用CPU,答案是死循环。其次,什么样的代码会不占用CPU,答案是睡眠。 这样通过控制睡眠和死循环代码的执行时间,就可以控制CPU的占有率。甚至能够动态地画出正玹曲线。

#include"stdio.h"
#include"windows.h"//sleep 所在头文件
#include"math.h"
#include"stdlib.h"
#include"windef.h"
int main()
{//for(;;);/*---------1-1--------------for(;;)//死循环 一半的时间{for(int i=0;i<9600000;i++) ;Sleep(10);}return 0;--------------------------------*//**************通过busyTime和idleTime调节*********const DWORD busyTime=10;const DWORD idleTime=busyTime;_int64 startTime=0;while(1){DWORD startTime=GetTickCount();//获取系统启动到现在的时间//busywhile(GetTickCount()-startTime<busyTime) ;//记录时间//idleSleep(idleTime);}return 0;************************//************************正宣曲线****************   const double PI=3.1415926;const int Sincount=200;//一个2 PI周期进行200次采样const DWORD SinTime=300;//每300ms进行一次采样,即1分钟为一个正周期DWORD busyTime[Sincount];//记录每一次采样的忙碌时间 SinTime-busyTime即是休闲时间//依次200次采样的计算忙碌时间for(int i=0;i<Sincount;i++){busyTime[i]=(DWORD)(SinTime/2+SinTime/2*sin(2*PI*i/Sincount));}//循环正玄曲线for(int j=0;;j=(j+1)%Sincount){DWORD startTime=GetTickCount();while(GetTickCount()-startTime<busyTime[j]) ;Sleep(SinTime-busyTime[j]);}return 0;
************************************************/
}

《编程之美》学习笔记相关推荐

  1. 第二行代码学习笔记——第六章:数据储存全方案——详解持久化技术

    本章要点 任何一个应用程序,总是不停的和数据打交道. 瞬时数据:指储存在内存当中,有可能因为程序关闭或其他原因导致内存被回收而丢失的数据. 数据持久化技术,为了解决关键性数据的丢失. 6.1 持久化技 ...

  2. 第一行代码学习笔记第二章——探究活动

    知识点目录 2.1 活动是什么 2.2 活动的基本用法 2.2.1 手动创建活动 2.2.2 创建和加载布局 2.2.3 在AndroidManifest文件中注册 2.2.4 在活动中使用Toast ...

  3. 第一行代码学习笔记第八章——运用手机多媒体

    知识点目录 8.1 将程序运行到手机上 8.2 使用通知 * 8.2.1 通知的基本使用 * 8.2.2 通知的进阶技巧 * 8.2.3 通知的高级功能 8.3 调用摄像头和相册 * 8.3.1 调用 ...

  4. 第一行代码学习笔记第六章——详解持久化技术

    知识点目录 6.1 持久化技术简介 6.2 文件存储 * 6.2.1 将数据存储到文件中 * 6.2.2 从文件中读取数据 6.3 SharedPreferences存储 * 6.3.1 将数据存储到 ...

  5. 第一行代码学习笔记第三章——UI开发的点点滴滴

    知识点目录 3.1 如何编写程序界面 3.2 常用控件的使用方法 * 3.2.1 TextView * 3.2.2 Button * 3.2.3 EditText * 3.2.4 ImageView ...

  6. 第一行代码学习笔记第十章——探究服务

    知识点目录 10.1 服务是什么 10.2 Android多线程编程 * 10.2.1 线程的基本用法 * 10.2.2 在子线程中更新UI * 10.2.3 解析异步消息处理机制 * 10.2.4 ...

  7. 第一行代码学习笔记第七章——探究内容提供器

    知识点目录 7.1 内容提供器简介 7.2 运行权限 * 7.2.1 Android权限机制详解 * 7.2.2 在程序运行时申请权限 7.3 访问其他程序中的数据 * 7.3.1 ContentRe ...

  8. 第一行代码学习笔记第五章——详解广播机制

    知识点目录 5.1 广播机制 5.2 接收系统广播 * 5.2.1 动态注册监听网络变化 * 5.2.2 静态注册实现开机广播 5.3 发送自定义广播 * 5.3.1 发送标准广播 * 5.3.2 发 ...

  9. 第一行代码学习笔记第九章——使用网络技术

    知识点目录 9.1 WebView的用法 9.2 使用HTTP协议访问网络 * 9.2.1 使用HttpURLConnection * 9.2.2 使用OkHttp 9.3 解析XML格式数据 * 9 ...

  10. 安卓教程----第一行代码学习笔记

    安卓概述 系统架构 Linux内核层,还包括各种底层驱动,如相机驱动.电源驱动等 系统运行库层,包含一些c/c++的库,如浏览器内核webkit.SQLlite.3D绘图openGL.用于java运行 ...

最新文章

  1. aop point 只能获取到map嘛_面试被问了几百遍的 IoC 和 AOP ,还在傻傻搞不清楚?...
  2. FCN全连接卷积网络(5)--Fully Convolutional Networks for Semantic Segmentation阅读(相关工作部分)
  3. 试从微型计算机的硬件组成角度谈谈单片机,单片机原理及应用课后习题参考答案1~6章...
  4. Oracle 原理:UNDO表空间
  5. CF1034E Little C Loves 3 III(神仙构造+FWT_OR卷积)
  6. 转载一篇关于curl的文章
  7. servlet3.0注解loadOnStartup不起作用解决方案
  8. mobaxterm用alt键作为meta键的方法
  9. 计算机网络之数据链路层:11、CSMA/CD协议-随机访问介质访问控制
  10. 【Hive】命令行提示符中显示当前所在数据库
  11. Streams AQ: qmn coordinator waiting for slave to start等待事件
  12. 电子元器件选型——MOSFET
  13. python抽奖教程_python实现抽奖小程序
  14. java pointer_Java Pointer.pointerToCString方法代码示例
  15. 华为轮值CEO徐直军:应对快速变化的世界
  16. 高斯图、高斯球、高斯映射
  17. 数据库-mysql的配置
  18. Seq2Seq Attention模型
  19. 我爱Java系列之---【Git的使用教程】
  20. python计算负数的平方根将产生_pow(x,0.5)能够计算x的平方根,计算负数的平方根将产生:_学小易找答案...

热门文章

  1. md5sum命令的灵活运用
  2. 如何轻松代理您的Android设备
  3. 2020 icpc 沈阳
  4. 限流的方式,为什么要限流,怎么实现限流
  5. shell脚本-创建用户的4种思路
  6. Django的列表分页
  7. MySQL如何同时删除主外键关联的两张表中的数据
  8. c语言 以时间做种子的随机数,为什么用时间做种子,随机数还是一样的?
  9. java边缘检测算子代码_图像边缘检测(Canny 算法)的Java实现
  10. 在windows平台搭建基于nginx的直播服务器