首页 文章 精选 留言 我的

精选列表

搜索[知识管理],共10010篇文章
优秀的个人博客,低调大师

GCC知识

像C语言这样的静态语言,运行的步骤是先将C经过编译器转化成汇编语言,汇编语言再经过汇编器转化成机器语言模块,然后链接器将程序的机器语言模块和库程序的机器语言模块和起来,生成可执行文件,最后再由加载器加载这个可执行文件,产生输入输出。 在这个环节中,gcc就是扮演着编译器的角色。gcc原本只能编译C语言,但是后来,经过扩展之后也能处理JAVA/OC等语言了。GCC现在已经成为类Unix操作系统的标准编译器了。所以在linux上源码编译软件前大都要先安装gcc。 gcc只是编译器吗? gcc可以完成从高级语言C变为和执行文件.out的过程。它默认也是有编译链接的功能。gcc有个参数-c 是来控制是否要链接成可执行文件。编译C之后会生成.o的目标文件,链接之后会生成.out的可执行文件。 gcc在这个过程中虽然只是完成编译工作,但是它会调用汇编器(as),链接器(ld)来完成整个代码编译解释过程。 GNU其他工具? gdb(GNU除错器)也是GNU工程开发出来的调试工具。能对GCC编译链接出来的可执行文件进行定点调试。 gprof(GNU测量器)是测试程序中函数的性能的工具。 g++(C++编译器)和gcc差不多,只是目标语言是c++。 参数 网上的gcc参数的例子很多,比如:http://www.shanghai.ws/gnu/gcc_1.htm。我们直接拿一个例子看一下 比如go/src/make.bash中有一个gcc生成dist的例子: gccmflag−O2−Wall−Werror−ggdb−ocmd/dist/dist−Icmd/dist"mflag−O2−Wall−Werror−ggdb−ocmd/dist/dist−Icmd/dist"DEFGOROOT" cmd/dist/*.c 将其中的参数按照上下文转换后如下: gcc -m64 -O2 -Wall -Werror -ggdb -o cmd/dist/dist -Icmd/dist -DGOROOT_FINAL="$GOROOT_FINAL" cmd/dist/*.c gcc的参数很多,种类分为几种: 上图参考自http://www.shanghai.ws/gnu/gcc_1.htm 参考文章:http://tigcc.ticalc.org/doc/comopts.html -m64:配置相关选项,代表这个程序的宿主机器cpu架构是amd64 -O2: 优化选项,对程序进行O2级别的优化 -Wall: 警告选项,生成所有警告信息 -Werror: 警告选项,将所有warning当作error处理 -ggdb: 调试选项,编译过程生成调试信息,以便gdb进行调试。 -o: 总体选项,制定生成的可执行文件。如果不指定的话,就默认是xx.out -I: 目录选项,进行头文件查询的时候被指定的目录也需要进行搜索 -DGOROOT_FINAL="$GOROOT_FINAL" 这个是在预处理过程的时候设置GOROOT_FINAL 最后的cmd/dist/*.c就是源文件了,表示源文件是这个目录下的所有.c文件 本文转自轩脉刃博客园博客,原文链接:http://www.cnblogs.com/yjf512/archive/2013/01/17/2863903.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

AngularJs 知识

简介 1.通过指令扩展了 HTML,通过表达式绑定数据到 HTML; 2.一个 Js 框架; 3.指令: 通过被称为指令的新属性来扩展 HTML, 即为应用添加新功能 ng-directives扩展了 HTML ng-app指令定义一个 AngularJS 应用程序 ng-model指令把元素值(比如输入域的值)绑定到应用程序,一个作用域的变量。 ng-bind指令把应用程序数据绑定到 HTML 视图 ng-init指令初始化 AngularJS 应用程序变量 4.表达式: 把数据绑定到 HTML 表达式写在双大括号内:` expression ` 表达式把数据绑定到 HTML,这与ng-bind指令有异曲同工之妙 5. 模块(Module)定义了 AngularJS 应用。 控制器(Controller)用于控制 AngularJS 应用。 ng-app指令定义了应用,ng-controller定义了控制器。 指令 1.前缀 ng-; 2.ng-app:初始化一个 AngularJS 应用程序; 3.ng-init:初始化变量。 4.ng-model指令把元素值(比如输入域的值)绑定到应用程序。 5.ng-repeat:表示重复输出. 6.创建自定义的指令 6.重复 HTML 元素 7.创建自定义的指令 作用域($scope) 1.应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带 2. 是一个对象,有可用的方法和属性 3. View(视图),即 HTML。 Model(模型),当前视图中可用的数据。 Controller(控制器),即 Js 函数,可以添加或修改属性。 scope 是模型。 scope 是一个 JavaScript 对象,带有属性和方法,这些属性和方法可以在视图和控制器中使用。 过滤器 1.过滤器可以使用一个管道字符(|)添加到表达式和指令中。 服务 1.在 AngularJS 中,服务是一个函数或对象,在你的 AngularJS 应用中使用。 2.$location服务,它可以返回当前页面的 URL 地址。 3.$http 服务,该服务向服务器发送请求,应用响应服务器传送过来的数据。 4.创建自定义服务 本文转自 sshpp 51CTO博客,原文链接:http://blog.51cto.com/12902932/1928069,如需转载请自行联系原作者

优秀的个人博客,低调大师

数据库知识:SQLServer变量相关知识介绍

1、概述 SQLServer变量对应内存中的一个存储空间。它和常量不同,变量的值可以在执行过程中改变。 2、分类 SQLServer变量根据作用范围不同主要分为局部变量和全局变量。 2.1.局部变量 局部变量是用户在程序中定义的变量,它仅在定义的程序范围内有效。局部变量可以用来保存从表中读取的数据,也可以作为临时变量保存计算的中间结果。 注意:局部变量名称的第一个字符必须为一个@。 示例: --定义两个局部变量 DECLARE@mint,@nint; --赋值 SET@m=9; SET@n=1; --查询 SELECT@m+@n; 2.2 全局变量 全局变量通常以@@开头。这些变量一般都是SQL Server中的系统函数,它们的语法遵循函数的规则。用户可以在程序中使用这些函数测试系统特性和SQL命令的执行情况。常用的全局变量如下: @@ERROR--最后一个SQL错误的错误号 @@IDENTITY--最后一次插入的标识值 @@LANGUAGE--当前使用的语言的名称 @@MAX_CONNECTIONS--可以创建的同时连接的最大数目 @@ROWCOUNT--受上一个SQL语句影响的行数 @@SERVERNAME--本地服务器的信息 @@TRANSCOUNT--当前连接打开的事物数 @@VERSION--查看SQLServer的版本信息 3.声明变量 3.1、简单声明 变量只有在声明后才能使用,可以使用DECLARE语句来声明变量。在声明变量时可以指定变量的数据类型和长度。 DECLARE@namenvarchar(30); 3.2 声明多个变量 声明多个局部变量,需要在定义的局部变量后使跟上一个逗号,然后指定下一个局部变量名称和数据类型。 DECLARE@Namenvarchar(30),@Ageint; 3.3 变量作用域 在使用变量时,需要注意变量的作用域。变量具有局部作用域,只在定义它们的批处理或过程中可见。作用域范围从声明变量的地方开始到声明变量的批处理或存储过程的结尾。 USEDB; GO DECLARE@Ageint; SET@Age=30; GO--结束符 select@Age--报错 4.变量赋值 在声明变量后,变量值被默认设置为NULL。可以使用SET或SELECT语句。SET是为变量赋值的首选方法。 变量也可以通过选择列表中当前所引用的值赋值。如果在选择列表中引用变量,则它应当被赋以标量值或者SELECT语句应仅返回一行。 示例: DECLARE@Ageint; --SELECT语句赋值 SELECT@Age=agefromt_userORDERBYagedesc;--返回最后一行的值 select@Age;

优秀的个人博客,低调大师

Linux初级知识

Linux内核创始人 : 芬兰人李纳斯.托瓦兹Linux是一套免费使用、自由传播的类unix操作系统特点是多用户、多任务、支持多线程和多CPU的系统Linux的发行版:比较知名的有Ubuntu、Redhat、Centos、FedoraLinux应用领域:通常服务器使用LAMP(Linux+Apache+Mysql+Php) LNMP(Linux+Nginx+Mysql+Php) Linux的启动过程,可以分为5个阶段1.内核的引导2.运行Int3.系统初始化4.建立终端5.用户登录系统 操作系统——》/boot--》init进程——》运行级别——》/etc/init.d--》用户登录

优秀的个人博客,低调大师

Spring小知识

两大核心功能:IOC、AOPIOC:动态注入,让一个对象的创建不用new了,可以自动的生产,实现原理利用java里的反射,反射就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml Spring的配置文件来动态的创建对象,和调用对象里的方法的 。 AOP:面向切面编程,可以为某一类对象 进行监督和控制(也就是 在调用这类对象的具体方法的前后去调用你指定的 模块)从而达到对一个模块扩充的功能。这些都是通过 配置类达到的。

优秀的个人博客,低调大师

node知识学习

一、什么是node? node是js的运行环境,可以让js脱离前端单独运行 二、node的特点 1、单线程 无论是多少事情,都是一个线程去完成 单线程的优点:没有了多线程创建线程和销毁线程的开销,调度多线程也是需要消耗资源的。多线程,有多少事情就有多少线程去完成。 单线程的特点:无法利用多核cup,一旦陈谷被恶意的行为挂起,那么整个程序崩溃。 2、非堵塞I/O,在i/o进行的时候,线程不等待。阻塞I/O: 在i/o进行的时候,线程等待。 I:input O:output 读取文件、连接数据库读取数据库、操作光盘驱动器等等都叫做I/O。它们比较起内存和cpu的运行速度来说,是特别慢的。也就是说如果线程让硬盘读取一个比较大的文件。并且等待读取完毕并交给内存之后再去做别的事情。那么也就是说线程在等待读取(I/O)完成 3 事件驱动 事件驱动与非阻塞I/O是连着的一个事情。非阻塞I/O确实可以让线程在I/O进行的时候去做其它的事情,但是有个问题。线程去做了其它的事情,万一这个时候I/O完成了呢?怎么知道I/O什么时候完成?I/O完成的时候会触发一个事件,这个事件驱动着线程回来继续做下面的事情。 三、模块 3.1 内置核心模块 ——http http模块是用来搭建服务器的。 IncomingMessage : request OutgoingMessage : response METHODS : 这是一个数组里面装着所有的http请求方式 STATUS_CODES :是一个对象,对象的每个key都是一个状态码,对象的value是该状态码的含义 Server :是一个方法,用于将其它的服务转化成http服务 createServer : 是一个方法,用于创建服务 3.2 文件系统——file system Fs模块是用来操作文件的。所有的相关操作都是fs的方法。 创建文件并追加内容 3.3 url模块 Parse方法:将一个url路径,转成一个对象,对象有各种属性对应的就是不同的部分。 http://www.icketang.com/html/shouye/index.html?username=wanglaowu&password=123#123 上面的url字符串经过url模块的parse方法处理完会转变成以下对象 { Protocol:http, Host:www.icketang.com, Hostname:www.icketang.com, Port:null, Pathname:html/shouye/index.html, Search:?username=wanglaowu&password=123, Query: username=wanglaowu&password=123, Hash:#123, Href:http://www.icketang.com/html/shouye/index.html?username=wanglaowu&password=123#123 } parse方法还有第二个参数,是一个布尔值。默认为false。 如果为true,那么将会把返回的对象中的query选项转为一个对象。 url.format(urlObj) format这个方法是将传入的url对象编程一个url字符串并返回参数:urlObj指一个url对象 url解析get方法 Url模块是专门处理前端提交过来的请求地址的。 如何处理get请求: 1判断请求的方式 处理 如何处理post请求: 1判断请求的方式 if(req.method===”post”){ //code... } 2给req绑定data事件 if(req.method===”post”){ var str=“”; req.on(“data”,function(data_chunk){ //这个事件是post每发送一次数据,就会触发一次,回调函数中的参数是data_chunk表示的是这一次所 传递的数据。 str += data_chunk; }) req.on(“end”,function(){ //这个事件是post发送数据完毕之后才最终触发一次。所以说先触发1次或者多次data事件,再触发1次end事件。后续代码要写在end事件中 }) } 3.4 文件上传 formidable 3.5 express Express是第三方模块,用来快速开发一个服务器。 express中间件 Express内置的唯一中间件就是静态资源中间件。 req是前端传递过来的请求。 Req.query表示的是get请求携带的数据 包含在路由每个查询字符串参数的属性的对象。如果没有查询字符串,它是空的对象,{}。 Req.params表示的是从pathname上获得的数据 包含映射到指定的路线“参数”属性的对象。例如,如果你有路线/user/:name,那么“名”属性可作为req.params.name。这个对象默认{}。 Req.body 表示的是post请求携带的数据 (必须得先应用中间件:body-parser); 包含请求主体提交的键值对。默认情况下它是undefined。除非你使用了body-parser 例如:app.use(body_parser.urlencoded({extended:false})); Body-parser中间件: Ejs模板 Express允许我们像使用php那样(或者说是underscore的模板)使用ejs模板。 Ejs模板必须是一个文件,文件的拓展名是ejs => index.ejs 内部的内容还是大体上是html只不过有一部分是<%=variable%>组成的。当渲染的时候,会从字典中与variable进行匹配。并替换。 Ejs模板不需要引入app.js主程序文件。但是必须要在express中声明,而且还要放到node_modules中,这样express就能够找到ejs模块了: app.set(“view engine”,”ejs”); App.set表示要设置什么东西,第一个参数就是要设置的内容。第二个参数是对第一个参数更详细的说明. 声明完了之后,就可以在某个路由的响应中使用res.render()进行渲染ejs模板了。 条件:第一个参数是要渲染的模板文件。(该文件必须要存在与主程序同级目录下的views文件夹中) 第二个参数是渲染该模板文件的字典。 4.自定义模块 在NodeJs中,每一个js文件天生就是一个模块。 每个模块都能够向外暴露一些东西。 核心模块暴露的内容是十分重要的,比如:http模块负责搭建服务器。Fs模块负责操作文件等 自定义模块,随便定义。 模块化开发有什么好处呢? 每个模块只负责提供功能。不会将变量注册到全局作用域下。 我们自己定义了一个js文件。可以通过require函数将它引入到其它的js文件中。 方法是: var app = require(“./app.js”); 此时,必须在同级目录下有app.js这个文件 另一个方法是:将app.js放在同级目录下的node_modules文件夹中(或者上级、上上级、一直到根目录) 此时可以这么写了: var app = require(“app.js”); 此时的查找顺序是只会查找node_modules。 向外暴露有三种方式:

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册