- 博客(44)
- 资源 (40)
- 收藏
- 关注

原创 编译原理期末复习考点总结(一) 通俗易懂的方式解释概念(纯手打)
编译原理总结基础概念编译程序是什么? 能把源语言程序转换成目标语言程序的程序。编译过程 词法分析: 扫描源程序,将其分解为词法单元后输出。 方法:正规式,有限自动机。语法分析: 根据语法规则,对词法单元进行推导或规约,识别出各类语法单元,最终判断输入串语法是否正确。 方法:上下文无关文法。语义分析与中间代码生成: 使用语法树和符号表对语法单元
2017-12-29 16:11:37
13712
3

原创 编译报#error This file requires compiler and library support......
[error] This file requires compiler and library support for the upcoming ISO C++ standard, C++0x. This support is currently experimental, and must be enabled with the -std=c++0x or -std=gnu++0x
2017-11-24 15:02:51
14778
6

原创 编译原理 First集 Follow集 select集 通俗易懂的讲解 + 实例
First集Follow集通俗易懂的讲解加实例First 如A->aB | CD这里面包含了组成First(A)的两种情况: 以终结符开头,当然要把这个终结符(a)放到A的First里 以非终结符开头,先把C的First放到A的First里再看如果C的First中有空(∈)的话就把D的First放到A的First里(因为如果C的First为空,那么D的First就有可能紧挨
2017-11-13 20:59:41
36747
18

原创 数据结构 严蔚敏 清华大学出版社 第一章 抽象数据类型 三元组的实现 成功编译并运行
课本上的算法实现!/* main.cpp 检验基本操作Functions.cpp的主函数 */#include"MacroDef.h" /* 要将程序中所有#include命令所包含的文件拷贝到当前目录下 *//* 以下2行可根据需要选用一个(且只能选用一个),而不需改变基本操作Functions.cpp */#include"ElemType.h" /* 在此命令之前要定
2016-10-21 21:26:33
2281
原创 JVM基础和问题分析入门笔记
1.1 JDK、JRE、JVM的关系JDK是java开发工具集合,JRE是java运行环境,JVM是Java虚拟机JDK > JRE > JVMJDK = JRE + 开发工具JRE = JVM + 类库三者在开发运行Java程序时的交互关系:通过JDK开发的程序,编译以后,可以打包发给装有JRE的机器上去运行。而运行的程序,则是通过Java命令启动的一个JVM实例,代码逻辑的执行都运行在这个JVM实例上。Java程序的开发运行过程:利用JDK开发Java程序,编译成字节码或.
2022-07-23 10:10:06
361
原创 一文学会设计模式
六大设计原则单一职责原则SRP定义是:应该有且仅有一个原因引起类的变更。”比如我们可以把用户相关的类抽取成一个用户信息BO(Business Object,业务对象),把行为抽取成一个用户信息修改Biz(Business Logic,业务逻辑)我们也可以把电话的接口抽象为连接管理接口和数据传输接口但是职责”或变化原因”都是不可度量的。所以实际上受很多因素制约。接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化。”里式替换子类必须完全实现父类的方法,即父类出现的地方子类就可以出现。
2022-07-20 10:14:12
318
原创 人一旦开窍后,会产生哪些改变?
人一旦开窍后,会产生哪些改变?1、问:老师,我们领导今天请我吃坂,我送了两瓶梦之蓝,一条中华,临走他问了我一下这酒多少钱,有点奇怪,他问酒多少钱是什么意思?另外走的时候非要给我一箱枣,我感觉去了人家家里提东西很 正常,拿人家的枣是不礼貌的,何况不值两个钱,有点奇怪。答:领导问你这两瓶酒多少钱?他想听到的答案是:这两瓶酒是朋友送的,我也不喜欢喝酒,麻烦你帮我消化一下吧。领导想听这句话,醉翁之意不在酒嘛。临走的时候他把这个大枣送给你,这个枣肯定是别人送给他的,这个大枣他不想要,他想让你帮他消化一 下,那这个
2022-04-07 20:42:31
1006
原创 JVM性能优化.md
内存计算操作系统中的最大可用内存除去操作系统本身使用的部分,剩下的都可以为某一个进程服务,在JVM进程中,内存又被分为堆、本地内存和栈等三大块,Java堆是JVM自动管理的内存,应用的对象的创建和销毁、类的装载等都发生在这里,本地内存是Java应用使用的一种特殊内存,JVM并不直接管理其生命周期,每个线程也会有一个栈,是用来存储线程工作过程中产生的方法局部变量、方法参数和返回值的,每个线程对应的栈的默认大小为1M。从内存角度来看创建线程需要内存空间,如果JVM进程正当一个应用创建线程,而操作系统没有剩.
2022-04-07 20:35:44
239
原创 研究生复试英文自我介绍.md
Dear teachers,good Afternoon。I am so pleased to be here. My name is ***, twenty five years old.I am graduated from *** University, and my major is Computing Science.In my college years, my grade is in the first 15 percent of the whole class. And I got t
2022-04-07 20:34:15
332
原创 缓存
缓存缓存的本质缓存针对的是“资源”缓存数据必须是“重复”获取的:空间换时间缓存为了解决“开销”问题:包括时间、CPU、网络、I/O开销缓存的存取不一定“更快”:降低延迟(latency)、增大吞吐量(throughput)缓存应用模式Cache-Aside数据更新策略:应用先更新数据库;应用再令缓存失效。一、必须先更新数据库,而不是先令缓存失效,即这个顺序不能倒过来。原因在于,如果先令缓存失效,那么在数据库更新成功前,如果有另外一个请求访问了缓存,发现缓存数据库已经失效,于是就会
2021-05-10 18:17:20
158
原创 数据持久化和一致性
数据持久化和一致性可以预期和符合规则,不一定是一致、准确、最新的,因为不同一致性模型的程度和规则不一样。一致性判断的视角要从客户端来看,也就是说,存储系统实际存储的数据可以在某些时候不遵从我们所要求的一致性,而只需要保证存储系统的客户端能读取到一致的数据就可以了。举例来说,某一个数据更新的过程中,对于存储系统来说,新数据其实已经写入,但由于事务还未提交,这时客户端读到的还是老数据。为了服务高可用,就要部署多节点;为了数据高可用,就要存放多个备份。如数据只有一份,就不存在一致性问题,因为有了数据副本,
2021-05-10 18:16:47
349
3
原创 分布式系统——CAP理论
分布式系统——CAP理论CAP的概念CAP理论又叫布鲁尔理论,指的是在一个共享数据的分布式存储系统中,下面三者最多只能同时保证二者:一致性(Consistency):读操作得到最近一次写入的数据可用性(Availability):请求在限定时间内从非失败节点得到非失败的响应分区容忍性(Partition Tolerance):系统允许节点间网络消息的丢失或延迟(出现分区)CAP理论不是三选二,而是二选一,即从一致性CP和可用性AP中选择合适的一个传统关系型数据库——一致性CA云上的No
2021-05-10 18:15:45
203
原创 Ops之集群部署
集群部署策略算法随机选择轮询(Round Robin)最小连接:检测当前和负载均衡器连接的所有Server中,连接数最小的一个其他寻找最小资源占用的方法:例如根据服务器的CPU使用率来分配指定的哈希算法:如Session Stickiness、IP Stickiness服务器Session和浏览器CookieHTTP协议本身无法保持状态,所以需要Session和Cookie来保持状态,存放特定客户的具体信息,如果用户再一次请求,就会去Session中查看,而非再次鉴权、获取信息等,从而节
2021-05-10 18:15:05
549
原创 数据库索引并不是万能的
InnoDB 是如何存储数据的?MySQL 把数据存储和查询操作抽象成了存储引擎,不同的存储引擎,对数据的存储和读取方式各不相同。MySQL 支持多种存储引擎,并且可以以表为粒度设置存储引擎。因为支持事务,我们最常使用的是 InnoDB。虽然数据保存在磁盘中,但其处理是在内存中进行的。为了减少磁盘随机读取次数,InnoDB 采用页而不是行的粒度来保存数据,即数据被分成若干页,以页为单位保存在磁盘中。InnoDB 的页大小,一般是 16KB。各个数据页组成一个双向链表,每个数据页中的记录按照主键顺序组成单
2021-05-10 18:14:12
179
原创 List列表的坑
List列表的坑Arrays.asList把数据转换为List的3个坑:不能直接使用 Arrays.asList 来转换基本类型数组。 Arrays.asList方法返回的元素类型为泛型,直接遍历会报错,需要使用Arrays.stream方法来转换,或者把int数组声明为包装类型Integer数组Arrays.asList 返回的 List 不支持增删操作。Arrays.asList 返回的 List 并不是我们期望的 java.util.ArrayList,而是 Arrays 的内部类 ArrayL
2021-05-10 14:53:26
184
原创 Java的判等问题
equals和==的区别基本类型,如int,long,只能使用==,比较的是直接值即其数值引用类型,如Integer,Long和String,使用equals,因为引用类型的直接值是指针,使用==的话,比较的是指针。结论:比较值的内容,除了基本内容使用==外,其余都使用equalsJava的字符串常量池机制:为了节省内存,当代码中出现双引号形式的字符串对象时,JVM会检查字符串常量池中是否存在相同内容的字符串对象的引用,如果存在则将这个引用返回;否则,创建新的字符串对象,然后将这个引用放入字符
2021-05-10 14:50:47
140
原创 Java数值计算:注意精度、舍入和溢出问题
数值计算:注意精度、舍入和溢出问题精度损失的根源对于计算机而言,0.1 的二进制表示为 0.0 0011 0011 0011… (0011 无限循环),再转换为十进制就是 0.1000000000000000055511151231257827021181583404541015625。0.1 无法精确表达,这是浮点数计算造成精度损失的根源。注意事项第一,切记,要精确表示浮点数应该使用 BigDecimal。并且,使用 BigDecimal 的 Double 入参的构造方法同样存在精度丢失问题,应
2021-05-10 14:49:23
678
原创 Java空值处理:如何避免空指针异常?
空值处理:如何避免空指针异常?常见的5种空指针异常场景参数值是Integer等包装类型时,因为自动拆箱出现了空指针异常字符串比较出现空指针异常诸如ConcurrentHashMap这样的容器不支持Key和Value为null,强行put null的Key或Value会出现空指针异常A对象包含了B,在通过A对象的字段获得B之后,没有对字段判空就级联调用B的方法方法或远程服务返回的List不是空而是null,没有判空就直接调用List的方法出现空指针异常解决方法使用Optional.ofNu
2021-05-10 14:46:39
631
原创 Java异常的捕获和处理
捕获和处理异常在业务代码层面考虑异常处理,框架层面的粗犷捕获仅做兜底对于自定义的业务异常, 以warn级别的日志记录当前URL、执行方法等信息后,提取异常中的错误码和消息到合适的API包装体返回给API调用方。对于无法处理的系统异常,以Error级别的日志记录上下文信息(URL、参数、用户ID)后,转换为“服务器忙,请稍后再试”,同样以API包装体返回给调用方。不准生吞异常捕获异常后可以不抛出,但至少要记录日志不准丢弃异常的原始信息可以使用如下方法来保留异常的原始信息
2021-05-10 14:42:11
456
原创 MacBook Pro 安装Jupyter后找不到命令和编码异常的终极解决方法
首先在Terminal中使用下面代码找到jupyter的位置pip show jupyter 找到jupyter的位置根据location,我们可以找到jupyter的位置/Library/Frameworks/Python.framework/Versions/3.7/bin/然后将这个位置添加到命令搜索的路径中。(要注意赋值的时候等号两边不要加空格)vim ~/.zshrc (如果是bash,那就是.bashrc)添加如下语句export PATH=/Library/Framewor
2020-11-10 19:53:05
1026
原创 程序员听音乐——古典音乐
法国大文豪罗曼·罗兰说:“艺术中没有进步的概念,因为不管我们回头看多远,都会发现前人已经达到了完美的境界……。交响乐最早出现于十八世纪上半叶,为歌剧的管弦序曲。现代意义的交响曲是指一种用大型管弦乐队演奏的器乐套曲,是音乐表现的最高形式,它能表现重大的题材,丰富的感情和深刻的思想。 其实交响的美妙之处除了音乐本身,还有交响乐团无穷的演奏魅力。本辑与大家一起品鉴世界十大顶级交响乐团的音乐魅力。(每个乐团
2017-12-14 14:55:29
1181
转载 算法学习建议
标签:算法 /源码 /C++ /趣学算法 /计算机知识在于积累,学习需要耐力。学习就像挖金矿,或许一开始毫无头绪,一头雾水,但转个角度,换换工具,时间久了总会找到一个缝隙。成功就是你比别人多走了一段路,或许恰恰是那么一小步。第一个建议:多角度,对比学习学习算法,可以先阅读一本简单的入门书,然后综合几本书横向多角度看,例如学习动态规划,拿几本算法书,把动态规划这章找出来,比较学习,多角度对比分析更清晰
2017-12-01 19:38:15
555
转载 ACM 比赛如何正确开局、队员如何分工、如何把状态调整到最佳?
正确的开局:三人分读题目,切记每开始阅读一个新的题目时一定告诉队友,作上标记,以防重复阅读,浪费资源;开局并非需要一个队员负责调整 IDE,打开 PC^2,写好头文件甚至一些常用模板。切记打开 BOARD,并且定期刷新,随时准备跟风。比赛中的状态:有队伍过了 X 题: 将被过掉的题目(通常很快就被 AC 的题目为水题,但也有意外情况)交由团队中发挥最为稳定的选手阅读并尝试 Coding。若
2017-12-01 18:48:41
9229
1
原创 linux基础简介 系统安装 常用命令 系统命令 软件管理 搭建Java服务器并进行远程管理
第一部分:1:linux基础简介1:操作系统(Operating System)1:操作系统是管理计算机硬件与软件资源的程序2:典型操作系统1:UNIX、LINUX、Mac OS X、Windows iOS、Android、MS-DOS3:操作方式1:命令行界面(Command Line Interface CLI)1:用户通过键盘输入指令,计算机接收到指令后,予以
2017-11-24 15:51:41
789
原创 Linux Ubuntu 学习指南 完整版 精华版 shell操作命令 安装软件
第一部分:1:linux基础简介1:操作系统(Operating System)1:操作系统是管理计算机硬件与软件资源的程序2:典型操作系统1:UNIX、LINUX、Mac OS X、Windows iOS、Android、MS-DOS3:操作方式1:命令行界面(Command Line Interface CLI)1:用户通过键盘输入指令,计算机接收到指令后,予以
2017-11-24 15:43:16
1761
原创 ACM 输入输出方法总结 完整版 已调试通过 可运行
ACM 输入输出标准大全 总结 完整版 已验证通过#include<iostream>#include<stdio.h>#include<stdlib.h>//#define RE //如果要重定向输入输出流就取消注释此行代码using namespace std;int main(){//1. 大量数据时候用scanf和printf ,而不用cin,cout,因为后者速度太慢,可能会超时。/
2017-11-24 15:38:54
2129
原创 实验二 预测分析算法的设计与实现
实验二 预测分析算法的设计与实现 (8学时) 一、实验目的 通过预测分析算法的设计与实现,加深对自上而下语法分析方法的理解,尤其是对自上而下分析条件的理解。 二、实验要求 输入文法及待分析的输入串,输出其预测分析过程及结果。 三、实验步骤 1. 参考数据结构 (1)/定义产生式的语法集结构/ typedef struct{ char formula[200];//产
2017-11-17 14:46:04
8856
3
原创 C++ MOOC 西安交通大学 中国大学生MOOC网 期末考试
C++MOOC 期末考试 西安交通大学 1. 行程编码(20分) 题目内容: 输入一段由英文字母组成的文字,将这段文字的前面一半逆序(当文字长度为奇数时,前一半的长度是stringlength/2取整),然后写出其行程编码。编码方法是:将字符串中k个连续相同的字母X记为kX。当k=1时,省略。输入格式: 一段由英文字母组成的文字,长度小于200.输出格式: 编码字符串,一行,无空格输入
2017-06-04 10:34:20
5480
原创 编写函数计算一个英文字符串中的单词个数。
题目内容:编写函数计算一个英文字符串中的单词个数。输入格式:一个最长500个字母的英文字符串,不包含数字和特殊字符,但可能包含一些英文标点符号(逗号、句点、问号)。标点符号独立出现时不视为一个单词。 单词间可能包含一个或多个空格。输出格式:该句子的单词个数输入样例:We hope everyone watches them with warmth.输出样例:
2017-04-01 22:14:41
9814
3
原创 2586ac代码
// 2586#include<stdio.h>int main(){ int s, d, t; while(scanf("%d%d", &s, &d) != EOF) { if(4*s <= d) t=10*s - 2*d; else if(3*s <= 2*d) t=8*s-4*d;
2017-04-01 16:53:47
575
原创 算法学习初步
输出三角形的各种方法,难度递增,思路越接近计算机结构化编程,有助于锻炼算法思维!穷举,分治法,构造函数,简化算法,锻炼思维,逐步提高算法能力!
2017-03-26 20:54:54
447
原创 整数划分问题——POJ放苹果问题
放苹果Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 32121 Accepted: 20178 Description把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。Input第一行是测试数据的数目t(0 <= t
2017-02-20 14:18:04
839
转载 POJ刷题指南
初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj3295) (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996) 二.图算法:
2017-02-20 14:08:11
1039
转载 POJ题目分类
初期:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj3295) (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:
2017-02-13 21:56:30
787
1
转载 介绍vs解决方案,并理清解决方案与项目的区别和联系
在使用VS开发应用程序时,可以通过创建解决方案来完成,在VS术语中,解决方案不仅仅是一个应用程序,它还包含项目,可以是Windows Forms项目,Web Form项目等,但是,解决方案可以包含多个项目,这样即使相关代码最终在硬盘上的多个位置编译为多个程序集,也可以把它们组合到一个地方. 这是非常有用的,因为它可以处理”共享”代码(这些代码放在GAC中),同时,应用程序也使用这段共享代码,
2017-01-24 11:51:05
2949
1
原创 寒假读书
书籍是人类进步的阶梯先列出书单 《人类简史》(A brief history of humankind) 《未来简史》(A short history of future) 《Accelerated C++》 《数学之美》(Mathematical Beauty) 《编程珠玑》(Programming Pearls)逐一介绍 《A Brief History of Humankind
2017-01-24 11:07:54
581
1
原创 数据结构 清华大学 队列 实现
//main.cpp#include using namespace std;#include "Queue.h"int main() { int n; ElemType e; SqQueue Q; while (1) {// 实现多次测试 cout << "Please input a number to choose:";
2016-11-01 21:48:50
388
1
原创 栈的实现 (数据结构 严蔚敏 清华大学出版社 第三章 抽象数据类型 成功编译并运行)
栈的实现 (数据结构 严蔚敏 清华大学出版社 第三章 抽象数据类型 成功编译并运行)
2016-10-27 16:40:56
743
移动编程 拼车软件 源码 计划书 需求分析 Android
2017-12-04
Accelerated C++
2017-01-24
动态鼠标指针
2018-12-28
汇编语言学习资料集锦 汇编语言程序 注释详解 期末复习资料 练习程序 课件 试题答案
2018-01-27
各种管理信息系统 vb java 数据库都有 可运行.zip
2018-01-05
数字逻辑-数电资料集锦-数字电子技术基础高清版 课件
2017-12-30
图解HTTP azw mobi kindle版 高清
2017-12-25
算法图解 mobi kindle
2017-12-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人