- 博客(35)
- 收藏
- 关注
原创 操作系统——处理机调度
文章目录处理机调度背景CPU调度进程调度方式非抢占方式抢占方式CPU调度过程CPU调度时机调度准则面向系统的调度性能准则面向用户的性能调度准则调度算法本身的调度性能准则调度算法先来先服务算法短作业优先优先级调度算法高响应比优先算法时间片轮转算法多级反馈队列实时调度优先级反转处理机调度背景处理机调度,又可以叫做进程调度。CPU是计算机中最重要的资源,如何提高CPU的利用率及改善系统性能,很大...
2019-12-06 23:15:16
663
原创 操作系统——线程
文章目录线程为什么要使用线程什么是线程线程优缺点优点缺点进程和线程的比较线程实现用户线程:在用户空间实现简介优点特点内核线程:在内核中实现简介特点轻量级进程:在内核中实现,支持用户线程简介用户线程与内核线程的对应关系多对一一对一多对多上下文切换参考资料线程60年代出现了进程。80年代中期开始出现了线程。为什么要使用线程解决进程并行遇到的问题:进程之间如何通信以及共享数据维护进程的系统...
2019-11-17 10:50:33
295
原创 计算机网络——HTTPS协议
文章目录HTTPS协议HTTP通信的问题说明以及处理加密技术对称密钥加密和非对称密钥加密公开密钥加密的问题混合加密RSA加密算法几个数学概念互质欧拉函数模反函数密钥的生成步骤加密解密DH算法数字签名和数字证书HTTPS通信一次Wireshark的抓包分析Session的恢复参考资料HTTPS协议HTTP通信的问题说明以及处理HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协...
2019-10-24 21:56:29
604
原创 计算机网络——传输层
文章目录计算机网络——运输层概述和运输层服务运输层和网络层的关系运输层概述端口号定义通过IP地址、端口号、协议号进行通信识别端口号的确定端口号与协议多路复用和多路分解UDP简介典型应用:UDP报文TCP特点TCP报文通过序列号和应答机制提高可靠性TCP如何保证可靠性重发超时时间(RTO)的确定连接管理(三次握手四次挥手)三次握手四次挥手TCP以段为单位发送数据利用窗口控制提高速度窗口控制与重发控制...
2019-10-21 22:49:42
583
原创 操作系统——信号量和管程
文章目录信号量和管程信号量介绍信号量的实现信号量的使用互斥访问:实现临界区的互斥访问控制条件同步:实现线程间的事件等待。生产者—消费者问题使用信号量的困难管程介绍使用组成条件变量条件变量的实现管程条件变量的释放处理方式Hansen管程Hoare管程用管程实现生产者-消费者问题信号量和管程信号量和管程都是用来解决进程同步问题的。信号量介绍此种方式由迪杰斯特拉在20世纪60年代提出的。信号量...
2019-10-21 22:17:53
574
原创 操作系统——进程同步与互斥
文章目录进程同步与互斥简介进程间合作进程间合作的问题竞争条件原子操作临界区相关的几个概念忙等待的互斥基于硬件的同步解决办法:屏蔽中断基于软件的同步解决方法严格轮换法Peterson解法N线程的软件方法基于软件解决办法的分析更高级的抽象方法简介原子操作指令锁变量使用TS指令实现自旋锁基于原子操作指令锁的特征参考资料进程同步与互斥简介多线程并发会导致资源竞争。同步即协调多线程对共享数据的访问,...
2019-10-21 22:16:18
3199
原创 JVM系列-GC机制
文章目录GC机制判断对象是否存活的方法引用计数法可达性分析法四大引用强引用(“strong” Reference)软引用(SoftReference)弱引用(WeakReference)虚引用(PhantomReference)不可达对象是否回收(两次标记)回收方法区垃圾收集算法标记-清除算法复制算法标记-整理算法分代收集算法GC机制GC机制,即垃圾回收机制,主要针对虚拟机中的堆区域,方法区有...
2019-10-15 22:35:09
391
原创 JVM系列——Java内存区域
文章目录Java内存区域运行时数据区域程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池直接内存HotSpot虚拟机对象对象的创建对象的内存布局对象头实例数据对其填充对象的访问方式直接指针句柄访问参考资料Java内存区域运行时数据区域运行时数据区域主要分为五大部分:程序计数器、虚拟机栈、本地方法栈、堆、方法区。其中堆和方法区是所有线程共享的区域,其他三个是线程私有的区域。...
2019-10-15 22:14:57
265
原创 计算机网络——DNS协议
文章目录DNS协议DNS提供的服务DNS简介服务DNS工作原理概述DNS服务器分类根DNS服务器顶级域(TLD)DNS服务器权威DNS服务器本地DNS服务器一趟DNS查询过程解析递归查询迭代查询实际中遵循的查询模式DNS缓存DNS记录和报文DNS记录DNS报文DNS报文解析DNS协议DNS提供的服务DNS简介由于IP地址较为难记,因此引入了DNS协议DNS(Domain Name Sy...
2019-09-25 20:00:19
1094
原创 Linux下安装MySQL及解决安装时无密码问题
安装:sudo apt-get install mysql-server mysql-client重启/打开/关闭:sudo service mysql restart/start/stop查看默认账号密码:在这个文件中有两个账号和密码。可以使用此账号和密码进行登录,然后修改root用户的密码,也可以采用下述方式进行mysql登录,下述方式更简便!!!sudo gedit...
2019-09-24 15:33:29
1021
原创 操作系统——进程简述
文章目录进程概念进程出现的原因进程的特征动态性并发性独立性异步性进程映像进程调度队列,动态反应操作系统全貌:进程状态:进程控制块(PCB)上下文切换(Context Switch)进程概念进程:一个在运行当中的程序。进程是一个动态的概念,有它的生命周期。进程是程序的一次运行进程是一个程序及其数据在处理机上顺序执行时所发生的活动进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统...
2019-09-23 17:19:38
651
原创 操作系统——操作系统概述
文章目录操作系统概述操作系统是什么操作系统的定义中断分类两组概念的区别特权指令和非特权指令用户态和内核态操作系统的主要特征并发性共享性虚拟性异步操作系统的主要功能进程管理进程控制进程同步进程通信调度作业调度进程调度主存(内存)管理文件管理I/O设备管理什么是Linux虚拟机操作系统概述操作系统是什么操作系统是一个系统软件(计算机系统之必不可少的软件)2. 操作系统是系统资源的管理者...
2019-09-21 20:57:29
676
原创 计算机网络——HTTP协议
文章目录计算机网络——HTTP协议HTTP概况非持续连接和持续连接采用非持续连接的HTTP采用持续连接的HTTPHTTP报文格式Cookie传输MIME机制内容协商机制Web缓存条件GETGET和POST方法的区别URI和URL从输入网址到获得页面的过程状态码及其原因短语1XX2XX成功3XX重定向4XX客户端错误5XX服务器错误HTTP和HTTPSHTTP通信的问题说明以及处理加密技术公开密钥加...
2019-08-14 11:54:59
695
原创 计算机网络开篇——五层模型概述
文章目录计算机网络开篇——五层模型概述物理层数据链路层网络层传输层应用层参考文章计算机网络开篇——五层模型概述每一层的数据包都由本层的标头和上一层的传递的数据包构成。OSI参考模型将计算机网络分为七层模型,此处的五层模型是基于TCP/IP协议族而言的体系结构。物理层物理层就是将端系统连接起来,如光缆、电缆、双绞线、无线电波等方式。它主要规定了网络的一些电器特性,主要负责传送0和1的电信号...
2019-08-12 17:35:30
1176
原创 OkHttp简单使用及源码分析
文章目录简单使用源码分析整体架构简介Interface——接口层Protocol——协议层Connection——连接层Cache——缓存层:管理本地缓存I/O——I/O层:实际数据读写实现Inteceptor——拦截器层:拦截网络访问,插入拦截逻辑Interface——接口层OkHttpClientRequestCallcall.execute()call.enqueue(callback)ca...
2019-08-12 17:24:16
619
原创 android studio安卓项目出现Error: Default Activity Not Found错误无法编译的解决方案
android studio安卓项目出现Error: Default Activity Not Found错误无法编译的解决方案这个问题困惑了我好久,莫名其妙项目就运行不了了,而且是所有原项目都运行不了,在网上搜了各种解决办法,前几个都没有解决我的问题,最后一个解决了我的问题(经测试,有时可以有事不行。。。),原因未知,在此仅做总结解决方案清除缓存,File->Invalidate ...
2019-02-15 12:57:06
1235
原创 android SQLite数据库操作
SQlite存储简介SQLite是android内置的数据库,SQLite是一款轻量级的***关系型***数据库,因占用资源少,运算速度快,因此很适合在移动设备上使用。内容创建数据库android提供了一个SQLiteOpenHelper(抽象类)帮助类来更方便的管理数据库。创建一个类继承自SQLiteOpenHelper类。并重写两个抽象方法:onCreate()和onUpgrad...
2019-02-02 16:57:49
248
原创 android第一行代码学习笔记——数据存储(文件存储和SharedPreferences存储)
持久化技术数据持久化就是指将内存中的瞬时数据保存到存储设备中,android中主要提供了三种方式:文件存储,SharedPrefences存储以及数据库存储文件存储将数据存储到文件中:使用Context类的openFileOutput()方法获得一个FileOutputStream对象,然后使用java的IO流将数据存储到指定的文件中该方法接收两个参数:第一个参数是文件名,第二...
2018-09-09 21:22:57
382
原创 android第一行代码学习笔记——Broadcast Receiver
android中的广播分为两种:标准广播和有序广播。有序广播:一种完全异步执行的广播,在广播发出后,所有的广播接受器几乎都会在同一时刻接收到这条广播消息。执行效率高,无法被截断。有序广播:同步执行的广播,广播发出后,同一时刻只会有一个广播接收器能够收到这条广播消息。优先级高的广播接受器先收到广播消息,并且前面的广播接收器还可以截断正在传递的广播。接收系统广播:可以使用广播接收器通过监听系...
2018-09-06 20:55:37
297
原创 android第一行代码学习笔记——fragment
1.fragment是一种可以嵌入在活动中当中的UI片段,可以合理地利用大屏幕的空间,类似于一个迷你的活动。 2.碎片的命名规范:模块名+Fragment 碎片的layout文件命名规则:fragment_功能名 3.直接添加添加碎片,可以在布局中当基本控件添加使用,在layout文件夹new一个资源文件,跟普通layout一样。接着新建一个XxxFragment类继承自Fragmen...
2018-08-31 20:48:53
316
原创 android第一行代码学习笔记——activity
1.活动(activity):是一种可以包含用户界面的组件,主要用于和用户进行交互2.每个活动都必须在AndroidManifest文件中注册,活动注册声明要放在标签内,通过标签来对活动进行注册3.在标签内加入标签指定响应 < intent-filter> < action android:name="android.intent...
2018-08-31 18:11:48
253
原创 android开发——华为手机不能打印log信息
android开发中遇到的小问题——不能打印log信息在最近的android开发中,发现手机不能打印log信息,然后发现华为手机普遍出现这个问题,以下是解决办法: 打开手机拨号盘,输入*#*#2846579#*#*进入工程菜单,在打开后台设置 里面有一个AP LOG设置,点击后选择打开;还有一种情况是LOG设置,点开后把AP日志选项勾选 另外,机子每次关机之后都得重新打开...
2018-08-10 17:25:42
336
原创 Android小项目——多人聊天室
Android小项目——多人聊天室前言在学习完了java的IO流,多线程,网络编程后,编写了一个简单的聊天室,但是很多功能还没有实现。如:注册功能未实现,因为不清楚怎么将账号密码信息存储到远程,学习了Android的数据存储方案(文件存储,SharedPreferences存储和数据库存储),但是发现这个存储只是本地的存储,因此登录和注册部分还存在问题,登录账号和密码都设置为admin...
2018-08-10 17:11:14
2729
4
原创 Android小项目——简单计算器的实现
Android实现简单计算器前言在学习了Android第一行代码的前三章后开始了自己的第一个android小项目,由于接触android时间不长,再加上个人审美能力较差,因此界面做的不是很好,大致可以体现出来一个计算器的界面。。。实现简单的计算器并不难,只要掌握了活动,布局以及控件的基本使用就可以开发出一个简单的android版计算器了界面部分我外层用的是外层相对布局,然后内层...
2018-08-10 16:14:54
7301
3
原创 Java学习——List集合
List集合List集合是一个元素有序,可重复的集合,集合中每个元素都有其对应的顺序索引List集合允许重复使用元素,可以通过索引来访问指定位置的集合元素List集合默认按照元素的添加顺序设置元素的索引,索引从0开始以下是List接口的一些特殊方法体现import java.util.ArrayList;import java.util.List;public class ...
2018-07-03 23:09:27
187
原创 Java学习笔记——Set集合
Set集合Set集合概述Set集合类似于一个罐子,他只管把对象放进罐子中,而不管放入的次序Set集合与Collection集合基本相同,没有提供任何额外的方法Set集合不允许添加重复元素,若试图添加两个相同元素进入同一个Set集合中,则添加失败,add()方法返回false, 且新元素不会被加入Set集合的实现类——HashSet类HashSet是Set接口的典型实现H...
2018-07-01 18:26:22
231
原创 java学习——集合
java集合集合概述集合类位于java.util包下Java集合类时非常实用,可以用于存储数量不等的对象,并可以实现常用的数据结构,如栈,队列等。 注意: Java集合类只能用于存放对象(实际是对象的引用)Java集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的跟接口,这两个接口又包含了一些子接口和实现类Java...
2018-07-01 12:07:50
208
1
原创 四种权限修饰符
修饰符权限修饰符:public protected默认private状态修饰符:static 静态的意思,可以修饰成员变量,成员方法,不能修饰类,不能修饰构造方法 被修饰的变量,方法可以通过类名进行调用final 最终的意思,可以修饰类,成员变量,成员方法,不能修饰构造方法 修饰的类不能被继承,被修饰的变量是常...
2018-06-09 13:54:30
15714
1
原创 形式参数和返回值问题
形参和返回值问题类名作为方法参数和返回值类名作为参数:需要的是该类的对象作为实际参数类名作为返回值:返回的是该类的对象public class A { public A(){} public void show(){ System.out.println("A"); }}public class B { public ...
2018-06-04 21:24:41
373
原创 java学习——抽象类与接口
抽象类在面向对象的概念中,所有的对象都是通过类来描绘的, 但是反过来,并不是所有的类都是用来描绘对象的, 如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类抽象类的声明格式:public abstract class 类名{}public abstract class Animal { //这是一个抽象类 public ...
2018-06-04 20:03:35
208
原创 java学习——多态
final关键字最终的意思,可以修饰类,方法,变量修饰变量: 该变量只能被赋值一次,即用final修饰的变量为常量修饰方法 该方法不能被重写修饰类 该类不能被继承多态定义多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该...
2018-06-04 17:43:19
218
原创 java学习——继承
java学习——继承前言继承是面向对象语言的一种特性,利用继承,人们可以基于一个已存在的类构造一个新类。继承已存在的类就是复用(继承)这些类的方法和域。在此基础上,还可以添加一些新的方法和域,以满足需求。继承是java程序设计中的一项核心技术关键字extends表示继承继承的格式public class Animals {}public class Cat ente...
2018-05-28 18:07:50
221
原创 java学习笔记(1)
java学习笔记(1)java是一门面向对象编程语言,对象可以代表现实世界中可以明确标识的一个实体,如,一个学生,一张桌子,一个圆……,每个对象都有自己独特的标识、状态和行为。对象的特性: 一个对象的状态(也称之为体征)或属性是指那些具有当前值的数据域。例如,一个圆对象具有数据域radius,他是标识圆的属性。一个对象的行为(也称之为动作)是由方法定义的。调用对象的一个方法就是要求对象...
2018-05-28 15:40:33
262
原创 链表的常见操作
链表的常见操作链表分为单向链表,双向链表,循环链表,双向循环链表其中常见操作有:创建,增加,删除,修改,查找,以及单向链表的逆置链表的定义链表是一种常见的数据结构链表的存储元素的个数是不受限定的,当要添加更多元素时,存储的个数会随之增加,这种方式就是链表。链表结点内容分为指针域和数据域,链表就是由这样的一个个结点通过指针域指向连接而成。单向链表首先定义一个链表...
2018-05-27 21:25:21
923
原创 第一篇博客——C语言实现简单的学生成绩管理系统
C语言简单实现学生成绩管理系统一、前言首先,要写一个管理系统必须要先搭出一个框架来,即明确自己要实现哪些功能,将每个功能都写陈一个函数,然后再去编写实现各个功能的函数,最后再思考各个函数之间的相互调用。如果没有先搭好框架,而是直接一上手就去写代码的话,写着写着就会有种无从下手的感觉,就像你要做一道编程题目一样,首先要做的肯定是去读题目,看题目想要让我们干什么,然后才会去写代码。其次,最...
2018-05-27 14:07:46
27071
12
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人