读书笔记(一)《码农翻身》

好久都没有写技术博客了,大概有一年左右没有开始写了,原因是自己弄了一个日志博文,当然这不是重点,重点是心态发生了改变,从心里上感觉技术兴趣不大了,后来又发现,并不是对技术失去了兴趣,而是被2018年的各种变故打击掉了自信心,从M家离开以后那种自信就消失了,机缘巧合之下又来到了T家,心态上这才开始慢慢好转起来了。

今天来写一写《码农翻身》这本书的读书笔记,感觉很不错,适合技术上的深究和归纳

计算机的世界

线程、线程池、TCP/IP:三次握手、
CPU运行速度比内存快百倍、比硬盘快百万倍,工作内容:
1、运行指令
2、不能保存指令,指令都在内存里
3、第一条指令的存放地址是 0xFFFFFFF0

程序:都是由顺序、分支、循环组成的
程序的局部性原理: 时间局部性和空间局部性,近期访问的东西将来很大概率也会访问。

批处理系统: 一次只能运行一个程序
进程: 一个正在运行的程序,由操作系统为硬盘上的程序在内存中创建的任务,当切换进程时,需要保存当前时间记录,运行指令,寄存器的值等现场环境,简称PCB(进程控制块:Processing Control Block)
一个进程分配到的内存是有限的,如果该进程递归调用消耗殆尽了当前内存,则栈溢出。

分时系统: 将一个程序运行时间分成若干个时间片,当前CPU运行完一个时间片后就切换到下一个程序,因为CPU的运行速度十分快,所以给人的错觉就是程序是并行的。

分块装入内存: 程序一开始都在硬盘上,只有进入内存才有机会被CPU执行,但是内存大小会限制进入的程序个数,由于程序的局部性原理 所以可以将程序的数据分成若干小块,分批装入内存,在内存中对应的块称为页框 ,这样内存就能够尽可能多的装载程序了。
虚拟内存: 操作系统可以设置虚拟内存,比真实内存大的多,同样分成若干块,取名: , 这样程序可以装载进虚拟内存中,通过MMU(内存管理单元) 映射到真实的内存中,参与CPU的运行,但是需要维护一个页表 来映射虚拟页面和物理页面。
如果访问虚拟内存中一个没有映射到物理内存的页面,则产生缺页中断 ,如果中断次数过多,则产生系统颠簸,发生缺页中断一般会进行内存页框置换算法
内存页框置换算法: 当真实内存已满,需要算法将内存中页框里的数据置换到空闲的硬盘上去,一般算法有:先入先出(FIFO)、最近最久未使用置换算法(Least Recently Used, LRU)等

虚拟内存详细介绍:

首先,操作系统会仅仅加载程序当前运行所需的内容到内存中,并使用swap等交换文件暂时对程序用到的数据进行保存,并在合适的时机写入硬盘和闪存等存储设备。某些操作系统上,swap等缓存文件也被称之为虚拟内存。
但这样只能解决单个程序过大的问题,如果程序很多时,内存仍然不够。因此,操作系统为每个进程提供一套独立的虚拟地址空间,从而使得同一块物理内存在不同的进程中可以对应到不同或相同的虚拟地址,变相的增加了程序可以使用的内存。在处理器上,负责管理虚拟地址和物理地址翻译的模块被称之为MMU,即虚拟内存管理单元,因此虚拟内存从处理器角度看,也是虚拟地址。

CPU、三级缓存、内存、硬盘(机械硬盘的盘片、磁道、扇区)、目录和文件由操作系统生成。

文件在硬盘上需要记录信息,涉及磁盘分配算法:连续组织方式、链接组织方式、索引组织方式。

文件系统,由操作系统来实现:主要有:NTFS、FAT、Ext2、Ext3

总线和端口:I/O端口,通过内存映射I/O,CPU这样访问I/O就像访问内存一样。

访问数据的方式:DMA(内存硬盘直接存储方式)轮询、中断,中断其实是一种异步的、事件驱动的处理思想,Node.js和AJAX有广泛应用。

数据库: 并发访问、原子性、基于操作幕等性的事务管理。

基于TCP协议实现通信:Socket, 端口就是Socket, TCP是两个进程之间的通信所以需要Socket

1957年,第一个高级语言的编译器在IBM 704机器上成功运行,
在这里插入图片描述
共享变量,竞争锁,一般称之为自旋锁。但无法解决递归调用自旋锁,容易自己造成死锁,这种情况称之为不可重入 ,改进点:用计数器,记录申请者和重入次数;如果长时间抢不到锁,则进入等待队列。

信号量,由操作系统实现的原子操作。

在计算机内部,是使用补码来表示二进制数的。如果是一个正数,补码就是它本身,如果是一个负数,则需要把除符号位之外的二进制取反加1操作。

普通递归:这个程序在内存中会存在多个栈帧, 会有先进后出

int factorial(int n){if( n == 1){return 1;}else{return n* factorial(n-1);}
}

尾递归:在内存中只会存在一个栈帧,有结果直接返回,所以不怕栈溢出,

int factorial(int n, result){if(n==1){return result;}else{return factorial(n-1, n*result);}
}

程序运行:编译期和运行期

Java帝国

classLoader、文件验证器、类加载模式、class文件魔数:0xCAFEBABE

可达性分析 :GC roots直接引用的对象、
序列化内存中的对象到硬盘中保存下来、关系型数据库: JDBC 、Hibernate、MyBatis

2004年,spring集成jdbcTemplate

JDBC抽象: Connection、Statement、Result

事务4大特性: 原子性、一致性、隔离性、持久性,简称ACID

多个数据库之间的事务管理: 分布式事务协议,两阶段提交协议即阶段一让大家都准备好,阶段二让大家提交事务
JTA协议(Java Transaction API),JTA官方想保证强一致性,但是真实网络很难做到,达到最终一致性也可以,最终一致性,可以用事件表,结合定时程序+消息队列来做,接收方也需要添加状态值,符合幂等性(对一个事务进行操作,可以一直重复操作,该事务不受影响)。
消息队列: 基于JMS(Java Message Service)标准

声明式编程: Java动态代理,实现方式:JDK的动态代理(需要接口)、第三方的CGLib,业务类不能为final

Java 注解: JDK1.4内置了@Override、@Deprecated等,自定义注解:注解的注解 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) , @Target注解表示该注解的应用目标,可以是类、方法、方法参数等 @Retention表示这个注解要保留到什么时候,可以是在源码里,.class文件里,或者运行时。

Java范型: 编译器查不出问题,在运行时可能跑异常,Java范型在编译时擦除范型,加上自动转型。
Java日志: Log4j , JDK的java.uitl.logging和更快的Logback,然后上层抽象SLF4J, 目前Logback比较火

JPA,Java序列化 ,Protocol Buffers是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。现阶段支持C++、JAVA、Python等三种编程语言

CAS乐观锁、synchronized悲观锁,非阻塞算法的Atomic包,版本号解决ABA问题,ConcurrentLinkedQueue

Java单继承、多实现;Python可以多继承抽象类,原生不支持接口但可以使用第三方ABC模块实现接口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/253244.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

最担心的还是发生了,程序员失业来得太突然!

周末我在后台收到一条私信,事情很有代表性,这里分享一下。 这位老哥在一家互联网头部公司做了 6 年的技术,最好的年纪都留在了这家公司。上个月底,赶上所在的部门重组。 公司动作很快,开完年中回顾会就裁掉了一批人&am…

《码农翻身》之技术之路

《码农翻身》读书笔记之技术之路 这是我的后端读书笔记系列文章的第四三篇,选取的是最近刚刚圈粉的知名博主刘欣创作的《码农翻身》。这篇文章只是最后一部分内容。 本文内容主要根据知名博主刘欣一作《码农翻身》的内容总结而来,本书的内容风趣幽默&a…

码农翻身 各章节链接

大话编程 我是一个线程 我是一个Java class Javascript: 一个屌丝的逆袭 Java:一个帝国的诞生 JSP:一个装配工的没落 TCP/IP 之 大明王朝的邮差 TCP/IP 之 大明内阁 TCP/IP 之 蓟辽督师 CPU 阿甘 CPU 阿甘之烦恼 CPU 阿甘:函数调用的秘密 我是一个网卡 …

码农翻身全年文章精华

在码农翻身公众号写了一年多, 最大的体会就是:原创真心不易! 每天思考的最大问题就是: 下一篇文章写啥? 在大家的支持和鼓励下,还是坚持了下来, 回头看看走过的路,这一年过得还算…

python笔记16_实例练习_二手车折旧分析p1

python数据分析练习,具体数据不放出。 分析实践很简单。目的不是做完,而是讲清楚每一步的目的和连带的知识点(所以才叫学习笔记) 0.数据准备 原始数据格式:csv文件 原始数据结构: 数据格式 字段名 int…

MySQL第二章、数据库基础

回顾: 目录 一、数据库的操作 1.1创建数据库 1.2显示当前数据库 1.3使用数据库 1.4删除数据库 二、常用数据类型 2.1数值类型(分为整型和浮点型) 2.2字符串类型 2.3 日期类型 三、表的操作 ​编辑 3.1创建表 3.2查看表结构 ​编…

苹果手机如何实现微信多开分身

微信现在是生活中使用最多的聊天软件,而且很多人的微信都不止一个,一般都是一个用来工作使用,一个用来日常使用。 安卓手机在很早之前就可以安装两个微信了,目前还有部分用苹果的朋友不知道微信怎么分身,接下来小编就…

苹果手机如何微信分身?

苹果微信分身,既是你的生活伴侣,又是你的工作好帮手。对于那些工作繁忙,生活节奏快的人来说,这款产品非常实用。让你随时切换身份,一种生活,一种工作,既避免了不必要的误会和困扰,也…

苹果手机微信分身

QQ慢慢退出历史舞台后,我们的生活与工作又重新与微信拾起了联系,并且无法离开。虽然安卓用户很多都有自带两个微信,但由于系统的限制,iPhone手机还不能正常安装两个微信。那这些想安装两个微信的iPhone用户怎么办?iPho…

苹果微信分身版ios_微信正式支持暗黑模式:iOS版已上线 安卓版随后就来

微信暗黑模式一直受到网友的极大期待,今天(22日),微信 iOS版 终于迎来了 7.0.12 更新,正式加入对深色模式的支持。 微信 7.0.12 更新日志显示可跟随系统的设置,切换为深色模式。 从目前网友的反馈来看,一方面对微信终于…

苹果微信分身版ios_苹果手机ios14系统微信分身地址安装教程

大家期待已久的苹果12终于也到来了。是否达到了你的预期?惊喜多还是失望多呢? 随着苹果12的到来,市面上百分之80的苹果手机用户的苹果手机系统版本都更新到了ios14版本了。ios14系统可以说在使用体验上给用户们有很大的视觉提升跟操作舒心。为…

微信分身服务器,苹果微信分身版

苹果微信分身版 定制技巧一、怎样去做做seo?出现seo,一看就知道。seo如同天上掉馅饼,做到专注优化,那么就是正确的seo,后面的会做出***好的seo。 打造微信中的自我推广、商业协同等。微信公众平台做业务流程也可以分为…

苹果微信分身版使用教程与注意事项

许多苹果手机用户都听说过:苹果微信分身版这一款手机软件,不过,什么是苹果微信分身版?微信分身版有什么功能?还有,苹果微信分身版怎么使用呢?相信这一些问题大家都不知道,在今天的教…

多开分身苹果版_苹果手机最新微信分身怎么下载?微信多开地址分享

哇 放假了 大家端午节快乐安康。简直不要太开心。 苹果用户们都知道苹果系统已经升级到IOS14了。喜欢升级的朋友们会发现微信分身都不能用了。怎么办呢?终归不会凉拌。我的出现就是来拯救你们的,对。 已经升级到ios14系统的朋友不要着急,船到桥头自然直,下面这款微信分身就…

苹果应用分身_苹果手机微信分身怎么下载?微信多开版地址

周一了,新的一周开始了,小伙伴们这周要加油啊。 小伙伴们这周的工作有没有有效率的完成呢??如果没有,那可能是因为你缺少一个稳定的微信分身。何为微信多开? 顾名思义就是在一个手机上安装两个乃至多个微信。对 ,就是这个意思了。如下图所示 很多人在苦恼,找了那么多年…

Vue3-devtools开发者工具正确安装方法

目录 前言:1、下载安装2、添加扩展 前言: 最近在学习Vue3,学习Vue3自然离不开调试工具Vue3-Devtools,所以我们需要来下载这个调试工具并放入谷歌浏览器里的扩展程序里面。帮助我们更好的调试vue3里的程序。 1、下载安装 Github下…

TYAN 于Computex2023 展示支持第四代英特尔至强可扩展处理器的新款服务器

【台北讯2023年5月30日】隶属神达集团,神雲科技旗下服务器通路领导品牌TYAN(泰安),于2023 台北国际计算机展(Computex 2023)5月30日至6月2日展览期间,在台北世贸南港展览1馆4楼 M0701a摊位展示最…

准备入门python的一些建议

提醒:一下内容只代表个人观点 从18年左右开始,python的广告就被打得满天飞,网上各种吹嘘python这门语言的广告五花八门,当然也有一些人看完这些广告后感觉python非常的高大上,然后就入门学习了python,我就…

Mac新手教程——修改苹果Mac电脑窗口上按钮与菜单颜色

**MAC电脑如何修改苹果Mac电脑窗口上按钮与菜单颜色?**可能新接触苹果macosx的用户不清楚该如何设置。今天小编就带来一篇文章,详细介绍Mac电脑窗口上按钮与菜单颜色的修改方法。 1、首先,打开系统偏好设置。找到通用,点击进入。…

iphone12有几种颜色?

iPhone12有黑、白、蓝、黄、金、橙共计六种颜色可以选择,增加了海军蓝新配色,不同的消费人群可以有多种选择 本人的iphone手机就是活动时8折入手的 :https://mall.jd.com/index-1000000127.html? 海军蓝 iPhone 12系列将有四款机型,…