自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 Java学习--提高代码水平与设计

提高代码质量1一些经验1.1单词有含义的名字:少用temp it do 等组件:匈牙利命名,btnCheck btnSayHello多次使用某个值就应该使用变量不要使用天上掉下来的常量:用final enum来定义常量1.2语句赋值语句:括号分支语句:括号循环语句:变量局部化保卫语句:写成独立的if return,不要与逻辑的if else交织1.3函数:写简单函数降低大括号层

2017-10-29 11:15:24 1425

原创 Java学习笔记--向上造型

首先以下是我对java和c++多态的一点小理解编译时多态:重载,参数不同的同名函数 (c++一致)运行时多态:覆盖,java默认所有可被继承的函数都是虚函数 (c++中声明为virtual才产生多态,相应的实例会有一张虚表)多态发生:当基类引用在执行时会动态调用实际类型的函数( c++必须是基类指针或者引用类型)现在来看问题题:父类中count初始化为100,子类中200;子类有特有的函数h

2017-10-29 12:08:09 476

原创 Java学习--网络,图形界面和数据库

深入理解java2:软件开发常用实用技术1文件及目录:java.io1.1基本操作File f;f=new File("a.txt");//当前目录下的文件f=new File("e:\\ex\\","a.txt");//目录+文件//目录也当做文件处理File path=new File("e:\\ex\\");File f=new File(path,"B.txt");1.2常用操作函

2017-10-29 11:14:02 2745 1

原创 Java学习--异常、多线程和输入输出流

深入理解java:异常、多线程和输入流输出1 异常:不断抛出异常,直到有一对try..catch..捕捉到异常清晰区分了业务代码(正常情况下)和异常代码基本语法 try{ //<!-- 可能出异常的代码 --> //之后的代码不在执行}catch(<!-- 异常类型 e -->){ //<!-- 出异常时要执行的代码 --> e.printStackTrace();

2017-10-28 12:04:37 1425

原创 Java学习--基础类和容器

java实用类1java语言基础类1.1Object类的函数equals()和hashCode():getClass():final方法,获得运行时类类型toString():方便输出显示finalize():notify():notifyAll():1.2基本类型包装类8种Integer.MAX_VALUE等:类常数valueOf(string),toString():类和Str

2017-10-28 12:03:15 212

原创 Java学习--简单java语法

简单java语法application与applet: application:应用程序有main入口 applet:需要嵌在网页中,不可以单独执行javac和java: javac:编译器(汇编链接)->可执行文件 java:必须靠执行器执行可执行文件变量: char:2个字节,unicode编码 只有基本变量才是存值的,没有unsigned的修饰 引用变量都指向实体 jav

2017-10-28 11:59:02 319

原创 算法基础--穷举

穷举找到一个能够穷举的有限集合,适当的去掉一些没必要的项,完成穷举熄灯问题:找到一种开关组合使灯全部熄灭 分析: 有限集:一个开关只有01两态,循环n次即可 直接:穷举所有开关状态(0或1),量太大 优化:根据题意,当第一行(列)开关确定后,为了使最终符合结果,那么下一行的开关也就唯一确定了(为了使上一行全熄灭)。 因此只需要穷举第一行的所有状态,确定所有开关的状态后,判断最后一行灯的

2017-10-28 11:48:42 276

原创 算法基础--分治

分治分成两部分,分别处理之后,处理跨越两侧的归并排序:O(nlogn)快速排序:一般情况O(nlogn)最差情况下O(n2)输出前m大数:快排分区的应用O(n+mlogm) 利用快排分区思想,完成使m个数移动到右侧后O(n),对右侧数组排序即可求排列的逆序数:归并合并应用O(nlogn) 分治思想和递归类似,只是把问题更针对的分成了两个基本相当的问题,而递归一般是把问题逐层缩小,所以在

2017-10-28 11:47:30 159

原创 算法基础--动态规划

动态规划记忆型递归:在递归实现中用空间存储中间的计算结果,如果已经存在中间结果就直接取出使用。递归转成递推:递归符合自然直觉从上层不断化简成相似子问题。递推从最底层开始不断推得问题的解。空间优化:用最少的空间保存中间结果。(可以覆盖掉不需要的中间结果)。例:三角最大路径中可以把存储结果的二维数组优化成一位数组。甚至可以在优化用存放原始数据的地方来存储中间结果。例题1最长上升子序列:考虑以每个

2017-10-28 11:47:01 276

原创 算法基础--递归

递归:将问题分解成相似的子问题递归函数:内存中开辟了大量函数栈汉诺塔: 化简:将n个从a移动到c写成:Hanoi(n,a,b,c) 将n-1个从a移动到b:Hanoi(n-1,a,c,b)//子问题将第n个移动到c将n-1个从b移动到c:Hanoi(n-1,b,a,c)//子问题 其中第13步都与原问题相似,可以通过递归实现N皇后: 分析:8皇后能用8重循环接,N皇后?递归来实现

2017-10-28 11:46:30 329

原创 算法基础--C++OJ

tips:位与0异或是本身,与1异或是反一般输入都是合法的char op=cin.peek()//看第一个字符,不取走。char c=cin.get()//取走流里第一个字符浮点数比较要用减法oj重定向freopen(“filename”,”r/w”,stdin),注意提交时注释.不定多组数据:while(cin>>a)不定多行:cin.getline(s,len)

2017-10-28 11:46:00 335

原创 算法基础--dfs

dfsdfs:搜索和遍历算法:访问V(走了这一步后发生了什么),对所有邻接V的没访问过的U递归调用dfs(U)图的表示:邻接矩阵o(n2):简单,邻接表o(n+e):适合边少的图城堡问题:用遍历算法染色。图已经包含在城堡数组中,不需要额外表示踩方格:受步数n控制的dfs,因为是求所有路径而不是简单的遍历所以在回退时要把访问标记清空。例题:7-1红与黑:应用dfs,开数组check记录是否

2017-10-28 11:44:48 253

原创 算法基础--bfs

bfs借助一个队列将头结点放入队列,拿出队列头,循环放入与头相连接的结点。queue<Node> mq;while(!mq.empty()){ Node c=mq.front(); if(c是要找的点) 结束 <!-- 循环判断是否相连 --> <!-- visited判重 --> mq.pop()}判重时visited要记录所有的维度

2017-10-28 11:43:54 142

原创 南大Mooc计算机体系基础--IA_32地址转换

IA_32地址转换逻辑地址 –> 线性地址 –> 物理地址 |-虚拟地址的两种表示-| 分段:逻辑地址到线性地址逻辑地址=段选择符+有效地址 有效地址=基址+比例变址+位移量 段选择符:由指令显示或隐式给出,存在段寄存器中(CS,SS,DS,ES等) 段选择符=13位段表索引+全局/局部段标志+访问级别(0最高,3最低) 由段表索引去段表查到相应的段基址

2017-10-27 22:54:37 273

原创 南大Mooc计算机体系基础--虚拟存储器

虚拟存储器虚拟地址<–>实际地址引入:程序需要的地址空间很大,但是内存满足不了。页式:虚拟地址按页分(虚页),需要时载入主存空间(页架)。 页式管理:每一页比较大(2-64KB),页架与页全相联(缺页要从磁盘载入页,代价太大),写回方式(读写辅存代价太大),地址转换(硬件实现),缺页管理(软件OS实现)页表:反映虚页和页架关系的表。页表是一个结构数组,存在进程(可执行文件)的内核区。页表本

2017-10-27 22:48:15 245

原创 南大Mooc计算机体系基础--高速缓存cache

高速缓存cachecpu<–>cache<–>内存(主存)<–>外存(辅存)计算机存储层次结构:金字塔型空间、时间局部性:引入cache 例子:访问二维数组A[0][0]-A[0][1]。。。空间局部性好了解cache才能写出高效程序操作过程: cpu通过地址需要一块主存数据判断是否在cache中,hit直接从cache中取,miss加入到cache 疑问:如何从elf的虚存地址,转

2017-10-27 22:47:24 300

原创 南大Mooc计算机体系基础2--磁盘存储器

磁盘存储器结构:磁盘->磁道->扇区磁盘驱动器:磁头运动控制磁道号(柱面号), 磁头号控制磁盘号(每个盘有两个磁头) 转动磁盘控制扇区,确定读写位置平均存取时间:寻道时间(找磁道)+旋转时间(找扇面)+数据传输(可忽略) 旋转时间花费最大,转速直接影响响应时间。组成: 磁盘控制器 磁盘驱动器读一个磁盘扇区: CPU对磁盘控制器初始化:读命令(操作数),磁盘逻辑块号(数据源),

2017-10-27 22:46:19 195

原创 南大Mooc计算机体系基础2--主存组织

主存储器(内存)组织存储体(一组)->存储单元(按字节的)->记忆单元(一个物理器件)MAR(地址),MDR(数据)分类:RAM:直接通过地址译码得到数据,内存。随机(数组)SAM:按顺序读写,磁带。链表DAM:硬盘,直接定位到位置,读写时顺序的。相联存储器AM:按内容存取,快表。基本结构: 性能指标:半导体存储器组织: 字线和位线:内存条组织:内存条==多个位面(表示相同

2017-10-27 22:45:26 275

原创 程序执行概述

程序执行概述程序和指令的关系:根据pc的值确定下一条指令指令周期:CPU取出并执行一条指令的时间。指令长度:各条指令长度不一取指令->译指令->取操作数->运算->写:每个过程中进行异常和中断检查

2017-10-27 22:43:27 212

原创 南大Mooc计算机体系基础--x32-86指令系统

基本指令指令字q:表示操作数是64位,l:32位,w:16位,B:8位寄存器:64位寄存器可以分成32、16位等寄存器。乘除指令mul,div前面带i:表示是带符号数操作64位机器通过寄存器传递参数:32位用入栈的方式传参数lea 和 mov:lea是相加后直接传结果,mov是如果传递的一个地址(寄存器偏移表示)那么会取该地址的值(解引用)来传递参数传递:x64可以最多有6个参数直接用寄

2017-10-27 22:41:10 276

原创 南大Mooc计算机体系基础--重定位和动态链接

重定位和动态链接符号解析:得到E、D两个集合重定位: 合并相同的节:把E中所有相同的节合并成新节对D中定义符号确定位置:确定虚拟空间地址对引用符号重定位:修改.text和.data节对符号的引用(地址)重定位条目:记录在.reltext 和 .reldata节 重定位目标文件中对需要符号引用的描述(节中偏移,引用符号,重定位方式) PC相对地址:由偏移量和PC(由重定位前的值算出)确

2017-10-27 22:39:50 455

原创 南大Mooc计算机体系基础--符号及符号解析

符号及符号解析符号和符号表 符号的本质:ELF文件中存储的一块空间的首地址 定义的符号(函数,非局部变量)记录在符号表 将对符号的引用存在重定位节 分类:全局符号:不带static,本模块定义外部符号:其他模块定义的,在本模块extern 声明局部符号:带static 符号表: 描述该符号所在的位置(处于哪个节(索引),偏移多少,大小多少,符号类型等)链接规则 全局符号的类型(

2017-10-27 22:33:02 478

原创 南大Mooc计算机体系基础--链接概述和目标文件格式

链接概述和目标文件格式#include <stdio.h>int main(){ printf("hello world");}步骤:1. 源文件以ascll文本形式存在2. 预处理:hello.c->hello.i(预处理文本)3. 编译:hello.i->hello.s(汇编程序文本)4. 汇编:helo.s->hello.o(二进制可重定位目标代码)5. 链接:多个.o->

2017-10-27 22:28:04 284

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除