自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 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 1366

原创 数据库系统 ##并发控制

数据库系统并发控制基本概念三种不一致现象丢失修改:非互斥的修改不能重复读:两次读结果不一致脏读:读到错误的值数据一致性对共享事务应该反映出一致的状态事务一系列操作作为一个整体进行操作和控制 应用程序员控制事务起始和结束 一系列sql语句,直到commit或rollback才标志一个事务结束 DBMS保证事务全部执行或不执行并发控制逻辑上对多个事务进行切换执行 通过事务微观交错执行次序

2018-01-04 22:39:45 651

原创 数据库系统 ##查询优化技术

数据库系统查询优化技术基本概念语义优化:利用模型的语义及完整性规则,优化查询(相同意义的不同sql表达)语法优化:利用语法结构,优化操作的执行顺序(逻辑层优化)执行优化:存取路径和执行算法的选择和执行次序优化(物理层优化)总体思路语义优化:内容等价性 如去掉无关表,去掉无关属性语法优化:语法等价性 改变次序,尽可能早做选择,投影运算同时保证等价性执行优化:物理等价性

2018-01-04 22:38:59 377

原创 OS ##文件管理

南大OS文件管理概念OS引入的重要概念,进程和文件通过文件目录数据结构管理文件文件系统OS中负责文件操作的模块文件的物理存储卷:存储介质的物理单位,硬盘分区等块:存储介质上连续信息的区域交换单位:按块交换顺序存取设备:磁带,光盘直接存取设备:磁盘逻辑结构逻辑文件:抽象概念流式文件:一串信息流记录式文件:由一条一条记录构成,不支持基于联系的数据 查询(不是数据库)物理结构

2018-01-03 00:54:53 281

原创 OS ##设备管理

南大OS设备管理概述解决目标:与cpu速度不匹配问题屏蔽设备物理细节IO控制方式设备控制器:与系统交互的接口轮询方式:处理器向控制器轮询结果,等待控制器就绪中断方式:控制器向处理发出中断DMA直接存储器访问方式:DMA负责传送全部数据,处理器只在开始和结束时 参与IO通道:通道处理器,CPU让通道程序控制IO设备,通道执行完后发出中断总线和IO:总线极大影响计算机价格单总线模型

2018-01-03 00:54:29 300

原创 OS ##处理器管理

南大OS处理器管理1.处理器与寄存器用户可见寄存器: 数据的(ax,bx),地址的(),控制与状态(pc)寄存器2.指令与处理器模式机器指令:操作码+操作数指令执行过程:CPU根据PC取出指令,放入IR(指令暂存器),译码, 发出各种控制命令,执行微操作,完成一条指令指令执行周期与指令流水线:特权指令:只能被操作系统使用的,与计算机核心资源相关的指令。处理器模式位:比如0状

2018-01-03 00:53:15 428

原创 数据库系统 ##两趟扫描算法

数据库系统两趟扫描算法概述整个关系的一元操作:去重复/分组/排序内存不够保存所有数据块时需要两趟/多趟算法第一趟:划分子集,每一个子集具有某种特性第二趟:多个子集间的归并等全集上的操作到子集上的操作:基于散列/基于排序两阶段多路归并排序算法TPMMS内排序:待排数据能够一次装入内存,常用外排序:内存不够用时 1划分成多个可以载入内存的子集块,处理子集块后写回磁盘 2子集块

2018-01-01 14:30:40 1308

原创 数据库系统 ##一趟扫描算法

数据库系统一趟扫描算法查询算法概述sql语句->关系代数表达式->基本操作(交并差乘投影)优化:合适的基本操作执行顺序(逻辑顺序优化), 合适的基本操作实现(物理查询计划)三大类操作:一次单一元组(记录)的一元操作:投影选择 迭代器算法 整个关系(表)的一元操作:分组排序去重复等 一/两/多趟扫描 整个关系的二元操作:交并连接连接操作

2018-01-01 14:21:47 663

原创 数据库系统 ##索引技术

数据库系统索引技术索引的概念索引结构:索引字段+数据块指针索引文件:一种辅助存储结构,不改变主文件的物理存储结构索引文件的组织结构:排序、散列多个索引文件:根据一个或多个属性组合值建立多个索引文件检索效率高:索引文件小,可以全部载入到内存中,快速定位到物理存储位置同步更新:对主文件的任何更新都要同步更新索引文件缺点:增加了存储空间和维护代价合适的索引:经常出现在where和groupb

2018-01-01 14:19:14 268

原创 数据库系统 ##物理存储

数据库系统物理存储存储体系回顾存储体系磁盘结构盘号:磁道:扇区raid技术:(1)块级拆分(2)比特级拆分查询的基本原理查询操作算法文件管理/索引管理:数据逻辑结构内存-缓冲区管理磁盘-磁盘管理:读/写块操作表在磁盘上的存储定长记录:按长度变长记录:按结束标志或者块头指针区分跨块还是非跨块所占磁盘块的分配: 连续分配-扩展问题 链接分配-访问速度 按簇分配

2018-01-01 14:18:42 696

原创 数据库系统 ##关系范式基础

数据库系统建模和设计函数依赖本质上是对关系中属性取值的约束A->B:表示如果属性A的值相同,那么属性B的值一定相同 A/B可以输属性组合(a,b,c,...)例如:不允许同名的学生表 学生姓名->班级 但是在允许同名的表中,这个依赖不成立完全函数依赖和部分函数依赖如果A(a,b,..)->B,A中缺失一项就不成立,那么称这种依赖为完全函数依赖反之,如果A中的部分属性

2018-01-01 14:16:21 323

原创 数据库系统 ##工程化方法

数据库系统建模和设计工程化方法IDEF1x建模是ER图的细化,也是另一种ER表达方式实体:型 独立实体:属性唯一标识 从属实体:包含了其他实体的属性(外键)联系: 标定联系:从属实体需要外键来唯一区分,外键是其主关键字 非标定联系:外键不是主关键字,独立实体间的联系 非确定联系:引入相交实体,实现多对多联系 分类联系:子类的概念,拥有子类特有的属性

2018-01-01 14:15:28 282

原创 数据库系统 ##思想和方法

数据库系统建模和设计思想和方法需求的理解和表达现实世界:现实信息世界:逻辑概念计算机世界:逻辑上的数据模型-->计算实现数据建模就是抽象抽象就是理解-区分-命名-表达抽象的型与值抽象与还原概念模型 ER模型等独立于计算机的数据模型 关系型,OO型等独立于计算机实现的元模型 模型的模型,数据模型可以看成是元模型的一个实例ER模型实体:类属性:字段联系:类之

2018-01-01 14:14:26 182

原创 面向对象编程范式##第六章类可重用和可修改

面向对象编程范式 java第六章类可重用和可修改可修改尽量不要让用户修改代码继承和多态优势劣势:脆弱的继承接口,继承强制子类使用了父类的函数声明接口多继承的另一种形式继承和组合继承:父类的函数接口改动直接影响到了子类组合:可以保持提供给用户的接口,改变实现方式设计:综合考虑继承的优势和劣势按接口编程当子类需要重写父类所有的函数时,这个父类应该被抽象成接口而不是继承。接口保证了单一职

2018-01-01 14:10:54 218

原创 面向对象编程范式##第五章类的协作

面向对象编程范式 java第五章类的协作职责和角色角色:类的实现职责:类提供的一组相关的接口及其相关数据单一职责:每个类都保证单一职责协作协作:类的职责的分配分配方式:从大到小,从小到大,不断调整成最合理客户端-代理-服务端: 客户发出请求 代理或者服务端接受,处理,返回值错误: 客户端从服务端获取数据在自己计算(违背了单一职责) 此时服务端提供了数据职责

2018-01-01 14:10:24 340

原创 面向对象编程范式##第四章类的封装

面向对象编程范式 java第四章类的封装属性和方法的封装1.数据和行为成为类的成员2.保证public接口不变,而改变实现方式3.方法的完备性,保证能提供所有public接口寻找类和对象1.从文本描述找到名词,根据需求和必要性识别概念类2.分析类之间的联系3.识别类的成员属性类图UML图规范防御使编程断言保卫语句处理非法的输入静态方法和变量静态方法和变量的加载时机 在类被装

2018-01-01 14:09:27 187

原创 个人知乎 ##基础九——爬虫入门PySpider

个人知乎基础九——爬虫入门PySpider爬虫基础框架安装:pip install pyspiderscheduler:调度器,调度一个url处理fetcher:下载网页器processor:处理网页器,并解析出新的urlclass Handler(BaseHandler): crawl_config = { } @every(minutes=24 * 60)

2017-11-26 00:12:03 1018

原创 个人知乎 ##基础八—python基础

个人知乎基础八——python基础类构造器 def __init__(self,xx,xx)toString def __repr__(self)继承 class Student(People)重写 同名成员函数随机数random.seed(1)random.randint(0,100)random.random()*100#抽取random.choi

2017-11-25 21:42:56 257

原创 个人知乎 ##功能九-timeline/新鲜事推送

个人知乎功能九-timeline/新鲜事推送基础知识不同用户不同的内容推: 事件触发后广播给所有粉丝,异步实现简单 粉丝量大时,后台压力大拉: 登录时主动拉取关注内容 读取压力大推拉: 活跃/在线用户推 其他/僵尸拉大型网站技术架构 按时间分表 异步处理 分库分表,比如按尾号 分级缓存,热门数据存在内存

2017-11-25 21:42:24 582

原创 个人知乎 ##基础七-排序显示

个人知乎基础七-排序显示业务分析让热门的信息排在前面排序公式用log来平滑比较大的值,如点赞、关注等正相关的值:浏览、点赞、回答负相关:发布时间长度hacknews:简单公式 Score=(p-1)/(T+2)^G p: 投票数 T:发布到现在时间,小时 G: 重力加速度,平衡Treddit的排序公式:时间最关键,适合大流量新闻网站 t:发布时间-固

2017-11-25 21:41:31 239

原创 个人知乎 ##功能八-关注服务

个人知乎功能八-关注服务业务分析概念 粉丝 被关注对象 可以是任意对象,人,问题,答案等存储结构 redis.set提供服务Service 关注接口 粉丝列表 关注对象的列表具体业务Controller 首页问题关注数 详情页问题关注列表 粉丝/关注人列表 关注异步事件 异步站内信

2017-11-25 21:41:05 236

原创 个人知乎 ##功能七-邮件发送

个人知乎功能七-邮件发送基本概念异步实现 handler引入依赖 javax.mail邮件协议设置 smtp使用模板引擎渲染出邮件正文支持多种邮件发送邮件类型的判断jdk1.8可能会报ssl错误

2017-11-25 21:40:12 702

原创 个人知乎 ##基础六/功能六-异步队列实现赞踩站内信

个人知乎基础六/功能六-异步队列实现赞踩站内信基本概念同步业务 request->controller->service 立即执行异步业务 service不立即处理,仅把它置入待处理事件缓冲池 比如:点赞同时异步发送站内信事件缓冲池 单向队列/优先队列结构package:asyncEventType 记录事件的类型EventModel

2017-11-24 21:01:56 642 1

原创 个人知乎 ##功能五-赞踩功能对评论

个人知乎功能五-赞踩功能对评论业务分析赞踩无关顺序需要及时更新redis set实现封装jedis–DAOutil.JedisAdapter封装jedis的连接池及操作生成reidsKeyjedis的key不能随便取依照一定规定统一生成不重复的(entity_id+entity_type)likeKeydislikeKeyLikeServicelike(userid ,entity_

2017-11-24 21:01:04 1412 1

原创 个人知乎 ##基础五-redis

个人知乎基础五-redis功能pv:立即增加浏览数点赞排行榜验证码缓存异步队列判题队列地理位置功能基础知识key-value数据库,缓存数据库内容安装配置文件<denpendencies>RDB:记录结果AOF:记录执行过程基本使用//连接6379端口,9号数据库Jedis jedis = new Jedis("redis://localhost:6379/9");je

2017-11-24 21:00:42 332

原创 个人知乎 ##功能四-站内信

个人知乎功能四-站内信业务分析消息中心,私信是相互的数据表Messageid:from_id:发to_id:收content:created_date:has_read:对方是否读过conversation_id:与某人的会话,小的排在前面收发一致Message和表对应的模型,get/set方法MessageDAOaddMessage(Message ):插入数据库表select

2017-11-24 21:00:05 434

原创 个人知乎 ##功能三-评论中心

个人知乎功能三-评论中心业务分析帖子的回复,回复的评论,问题的答案都是评论抽象成评论中心数据表comments字段id:content内容:entity_id:回复实体的id,表示是谁的评论entity_type:回复实体的类型,问题评论都能有评论, 无法靠id区分created_date:日期user_id:用户idstatus:状态内存模型comment与表一一匹配的m

2017-11-24 20:59:41 254

原创 个人知乎 ##基础四-多线程

个人知乎基础四-多线程ThreadLocal:线程本地变量,每个线程有一个副本线程安全变量: AtomicInteger=new AtomicInteger(0); BlockingQueue线程池:减少线程创建销毁开销//单线程excutorExecutorService service=Excutors.newSingleThreadExecutor();service

2017-11-24 20:58:58 493

原创 个人知乎 ##功能二-问题发布

个人知乎功能二-问题发布数据库:QuestionDAO内存模型:Question服务:QuestionService控制入口:QuestionControllerajaxjs请求urlcontroller直接返回json串js得到json返回值后不刷新页面直接渲染htmlHTML过滤,避免用户上传脚本//html语言成为转义,只是纯文本了question.setContent(HtmlUti

2017-11-24 20:58:31 230

原创 个人知乎 ##功能一-登录注册

个人知乎功能一-登录注册注册用户名合法性检测密码长度要求密码salt加密用户邮件/短信激活登录token登记关联userid,保存入数据库token有效期设置,下发给浏览器cookie是token的一种形式浏览浏览器访问时带上cookie,服务端查cookie判断用户状态,权限拦截器切面的思路:框架拦截器所有业务都需要先判断->用户登录判断完成后加入到上下文使能够渲染出用户信息

2017-11-24 20:57:57 721

原创 个人知乎 ##基础三-数据库基础

个人知乎基础三-数据库基础业务字段设计业务设计->数据表->表间关系做一些冗余来加快查询数据库创建MySQL Workbench:本地调试界面工具,复制SQL语句服务器上:拷贝SQL语句CRUD操作INSERT: insert into Table values(..); insert into Table select..SELECT: select .. fro

2017-11-24 20:57:13 821

原创 个人知乎 ##基础二-WEB知识

个人知乎基础二-WEB知识SpringBoot工程:类似Spring,但使用注解而不是配置文件框架学习:看官方文档样例,读个大概,具体问题具体查start.spring.io:自动配置好一个spring项目,下载解压即可pom.xml:IDEA通过打开pom文件导入到文件目录结构java:源代码目录java.controller:入口控制java.model:数据模型,与数据表匹配java

2017-11-24 20:56:02 252

原创 个人知乎 ##基础一-项目介绍

个人知乎基础一-项目介绍代码管理Githttps://www.nowcoder.com/courses/2github桌面版:一个方便的控制系统能够管理本地仓库并上传到githubgit gui:同样是一个本地仓库控制,能够push/pull任意网站南大TSS系统:一个类似gitHub的远程仓库IDEA的git:能够创建本地仓库,提交,并push到任意url,非常方便IDEAjava开发i

2017-11-23 23:39:27 409 1

原创 面向对象编程范式##第三章面向对象编程范式

面向对象编程范式 java第三章面向对象编程范式变更时不可避免的提高代码可重用性 设计时就要考虑到变更结构化设计的问题问题:大范围修改 全局量难以阅读 实现变更时产生大量改动 需求增加或更改时产生大量改动解决:有限范围 把相关操作合成一个模块 扩展,运行时动态连接面向对象设计类的数据和方法提供相应职责类与类相互组织调用类和对象对象是类的实例化

2017-11-23 23:37:09 328

原创 面向对象编程范式##第二章结构化编程范式

面向对象编程范式 java第二章结构化编程范式结构化使代码有序组织起来,易于理解和维护数据流图系统:数据的处理转换过程的集合过程:图的中间节点,数据的处理,连接输入和输出外部实体:图的边缘结点,数据生产者或者消费者数据流:图的边,视作输入或者输出数据的存储:暂存起来等待使用结构图模块的调用数据流图转变结构图:按照输入,事务处理,输出逐层分解成各个模块顺序循环和分支不要使用GOTO矩

2017-11-23 23:36:27 283

原创 面向对象编程范式##第一章编程之前

面向对象编程范式 java第一章编程之前1.软件开发生命周期模型分析需求:what,足够详细设计模型:how,足够精确构造实现:build,合理软件测试:right?,全面部署:install,用户文档和系统文档维护:revolution,不断完善2.分解和抽象分解:降低复杂度分解之后复杂度变小分解之后模块间尽量独立抽象:接口+实现面向接口编程能够让多人工作成为可能层次性:不断重

2017-11-23 23:35:44 187

原创 数据库系统 ##SQL语言复杂查询

数据库系统SQL语言复杂查询IN/NOT IN判断元素是否在某一个集合中select * from Student where Sname in('zhangsan','wangsi');//非相关子查询,内层select不依赖外侧select S#,Sname from Student where S# in (select S# from SC where C#='001');/

2017-11-23 23:34:06 230

原创 数据库系统 ##SQL语言简单查询

数据库系统SQL语言简单查询带分号字符串用单引号相等判断 =创建数据库//定义表ddlcreate table Student(S# char(8) not null,Sname char(10), Ssex char(2),Sage integer,D# char(2),Sclass char(6));//添加元组,行信息dmlinsert into Student(S#,Sn

2017-11-23 23:33:01 256

原创 OS ##文件管理

南大OS文件管理概念OS引入的重要概念,进程和文件通过文件目录数据结构管理文件文件系统OS中负责文件操作的模块文件的物理存储卷:存储介质的物理单位,硬盘分区等块:存储介质上连续信息的区域交换单位:按块交换顺序存取设备:磁带,光盘直接存取设备:磁盘逻辑结构逻辑文件:抽象概念流式文件:一串信息流记录式文件:由一条一条记录构成,不支持基于联系的数据 查询(不是数据库)物理结构

2017-11-23 23:31:17 350

原创 OS ##设备管理

南大OS设备管理概述解决目标:与cpu速度不匹配问题屏蔽设备物理细节IO控制方式设备控制器:与系统交互的接口轮询方式:处理器向控制器轮询结果,等待控制器就绪中断方式:控制器向处理发出中断DMA直接存储器访问方式:DMA负责传送全部数据,处理器只在开始和结束时 参与IO通道:通道处理器,CPU让通道程序控制IO设备,通道执行完后发出中断总线和IO:总线极大影响计算机价格单总线模型

2017-11-23 23:30:34 224

空空如也

空空如也

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

TA关注的人

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