编程语言
文章平均质量分 52
xihuanyuye
企业级Web服务、机器学习
展开
-
常用脚本语言简述
WebAssembly是什么?WebAssembly即WASM, WebAssembly是一种新的编码格式并且可以在浏览器中运行,WASM可以与JavaScript并存,WASM更类似一种低级的汇编语言。WebAssembly介绍WebAssembly简称WASM,它是可以运行在Web浏览器中的一种可移植、体积小、加载快的编码格式。WebAssembly并不是手写的一行行代码,它是一个编译目标。随着时间推移,越来越多的语言可以被编译为WebAssembly,WebAssembly可将C、C++、Java等原原创 2022-12-06 15:02:35 · 762 阅读 · 0 评论 -
【npm启动vue项目全记录】
在启动一个vue开发的web项目时,遇到了比较多的配置问题,记录如下。原创 2022-10-12 18:22:10 · 970 阅读 · 0 评论 -
简单理解闭包
闭包是在js中常提到的概念,由于没有实践中用到或者遇到,所以一直未理解。这里通过go语言对于该语法功能的支持做下学习。原创 2022-09-27 11:40:12 · 95 阅读 · 0 评论 -
go语言中不太友好的设计
func() {立即执行函数,声明完以后加括号,用以表示即刻调用。go语言func后面括号_三分钟学 Go 语言——函数深度解析(中)原创 2022-09-27 09:03:06 · 124 阅读 · 0 评论 -
java采用Process.destroy无法停止子进程
采用如下思路进行该逻辑实现。1、process作为java的进程抽象类,其真正作用是在java进程中再启动一个子的java进程;2、其中的python进程比启动的子进程大1,因此可以从这个逻辑出发,在java停止掉process时,再发送一个系统调用的停止信号。执行完process.destroy()后,对应的307进程退出,但是被拉起的308号python进程仍旧在系统中好好的存在。最初的一次实现,process执行后,不进行destroy,多次执行后,会导致主进程挂掉。原创 2022-09-15 10:46:29 · 3845 阅读 · 0 评论 -
mac中手动切换go版本
mac配置多版本go环境原创 2022-07-20 13:15:23 · 2087 阅读 · 0 评论 -
mac环境bazel编译grpc报错
1、报错信息2、最终定位在/usr/local/include下存在了google/protobuf文件夹,与代码中的 ./src/google/protobuf/发生了冲突。将中的google文件夹重新命名为google.bak,再次编译,可以通过了。参考地址https://github.com/protocolbuffers/protobuf/issues/5376I think the problem is that you have some local protobuf headers in原创 2022-06-29 20:45:42 · 390 阅读 · 0 评论 -
debug运行程序的原理
0 代码运行的原理是什么?代码的运行方式可以分为直接执行和解释执行两类。不知道平时你有没有注意,可执行文件直接 ./xxx 就可以执行,而执行 js 文件需要node ./xxx,执行python文件需要python ./xxx,这就是编译执行(直接执行)和解释执行的区别。0.1 直接执行cpu提供了一套指令集,基于这套指令集就可以控制整个计算机的运转,机器语言的代码就是由这些指令和对应的操作数构成的,这些机器码可以直接跑在计算机上,也就是可直接执行。由它们构成的文件叫做可执行文件。不同操作系统可原创 2022-05-21 19:02:43 · 3159 阅读 · 1 评论 -
glog常用初始化参数
glog常用初始化参数Flag_xxxFlag_xxxFLAGS_logtostderr = false; //是否将所有日志输出到stderr,而非文件FLAGS_alsologtostderr = false;//日志记录到文件的同时输出到strerrFLAGS_colorlogtostderr = false;//将彩色日志输出到stderrFLAGS_drop_log_memory = true; //日志写到文件的时候删除其在内存中的bufFLAGS_alsologtoemail =原创 2022-01-12 12:53:42 · 2451 阅读 · 0 评论 -
JAVA执行Python脚本
1、从java中获取python的执行代码的输出https://blog.csdn.net/yangkaixin01/article/details/1001819472、调用执行python代码原创 2021-03-01 19:36:31 · 126 阅读 · 0 评论 -
自签名证书及服务搭建
实践中往往是自己作为CA角色,进行签名。本文采用openssl软件进行密钥及证书的生成操作。一、CA证书生成1.创建私钥 :openssl genrsa -out ca/ca-key.pem 10242.创建证书请求 :openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem交互内容:Country Name (2 letter code) [AU]:cnState or Province Name (full name) [Some-St原创 2020-12-01 18:15:48 · 412 阅读 · 0 评论 -
大端与小端
大端序与小端序解释一些计算机设计师认为,应按从左至右的顺序在 RAM 与 CPU 中存储数字,这种模式称为小端序。另一些计算机设计师则倾向于按从右至左的顺序在存储器中写入数据,这种模式称为大端序。因此,根据“字节序”的不同,二进制序列 1-0-0-0-0-0-1-1 表示的数字也有所不同。大端序: 2^7 + 2^1 + 2^0=131小端序:2^0 + 2^6 + 2^7=193目前的大部分 CPU 采用小端序模式,但同样存在许多采用大端序模式的计算机。如果大端序 CPU 需要解释由小端序 CP原创 2020-11-21 17:07:23 · 460 阅读 · 0 评论 -
图灵机与图灵完备
一、图灵艾伦·麦席森·图灵(Alan Mathison Turing,1912年6月23日-1954年6月7日),英国数学家、逻辑学家,被称为计算机科学之父,人工智能之父。二、图灵机2.1 图灵机模型又称图灵计算、图灵计算机,是由数学家艾伦·麦席森·图灵(1912~1954)提出的一种抽象计算模型,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人们进行数学运算。它有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的颜色。有一个机器头在纸带上移来移去。机器头有一组内部状态原创 2020-11-21 16:34:19 · 1751 阅读 · 1 评论 -
何为脚本语言
解释型语言和脚本语言的区别脚本语言是解释型的语言,也就是解释型语言包括脚本语言。解释语言是说解释执行的语言,但执行的代码并不一定是文本格式的。脚本语言的程序是文本文件,并且是解释执行的。如果一定要说有区别,可能只是我们提到这两个词的时候侧重点不太一样。当我们说编程语言或程序语言的时候,我们暗示了它是图灵完备的,很正式的感觉,比如会考虑软件工程,考虑软件设计方法;当我们说脚本的时候,一般是在说它可以很方便的书写与适应变化,一般是不太考虑软件工程与设计方法的。至于是不是编译与解释,我觉得没有关系,同原创 2020-11-21 16:15:42 · 334 阅读 · 0 评论 -
DevOps与 CI /CD
一、CI/CD缩略词 CI / CD 具有几个不同的含义。CI/CD 中的“CI”始终指持续集成,它属于开发人员的自动化流程。成功的 CI 意味着应用代码的新更改会定期构建、测试并合并到共享存储库中。该解决方案可以解决在一次开发中有太多应用分支,从而导致相互冲突的问题。CI/CD 中的“CD”指的是持续交付和/或持续部署,这些相关概念有时会交叉使用。两者都事关管道后续阶段的自动化,但它们有时也会单独使用,用于说明自动化程度。持续交付通常是指开发人员对应用的更改会自动进行错误测试并上传到存储库(如 Gi原创 2020-11-08 17:43:25 · 610 阅读 · 0 评论 -
go语言之匿名函数
Go语言:匿名函数package mainimport (“fmt”)func main() {var j int = 5//第一个func()为匿名函数定义语法,第二个func为返回值类型;之后中括号为函数内部定义;最后()为调用该匿名函数,返回函数体a := func() func() { var i int = 10 return func() { fmt.Printf("i, j: %d, %d\n", i, j) }}()a()j *= 2a()}.原创 2020-11-07 09:17:41 · 183 阅读 · 0 评论 -
Go语言相关技术点
go mod 生成 vendor原创 2020-05-22 13:26:49 · 285 阅读 · 0 评论 -
springboot的autowired空指针
原创 2020-04-29 19:44:10 · 629 阅读 · 0 评论 -
Java、JVM、shell和操作系统之间的关系
一、JVM代码调用流程操作系统(Windows/Linux)管理硬件,让硬件能够正常、合理的运行,当然各种硬件的驱动实现了操作系统的接口,操作系统调用这些接口就能管理硬件,操作系统还像程序员提供了一层接口,叫做系统呼叫层,程序员可以面向这一层的接口编程,来实现对计算机的控制,而不同的操作系统(或者说不同的CPU架构)所提供的接口都是不一样的,Windows和Linux提供给的那肯定是完全不一样...原创 2019-03-11 22:16:45 · 1536 阅读 · 0 评论 -
什么是类加载?什么时候卸载
这里暂时只做汇总式的解答,建议进一步阅读《实战Java虚拟机:JVM故障诊断与性能优化》、《深入理解Java虚拟机:JVM高级特性与最佳实践》。类加载,指的是将类的.class文件中的二进制数据读入到内存中,把它放进运行时数据区的方法区内(Perm区)。然后在堆区创建一个java.lang.Class对象,封装这个类在自身的方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,...原创 2019-05-06 17:46:19 · 4134 阅读 · 0 评论 -
java基础(二)static四种应用场景
一、修饰成员变量static关键字可以修饰成员变量和方法,来让它们变成类的所属,而不是对象的所属。public class Person { private static int count = 0; int id; String name; int age; public Person() { id = ++count; ...原创 2018-11-30 09:45:36 · 752 阅读 · 1 评论 -
分清servlet/filter/listener/interceptor过滤器、监听器、拦截器(三)
分清servlet/filter/listener/interceptor(一) 分清servlet/filter/listener/interceptor(二) 分清servlet/filter/listener/interceptor(三) 一、论述区别 1、servlet 流程是短的 url传来之后,就对其进行处理,之后返回或转向到某一自己指定的页面。它主要用来在 业务处理之前...原创 2018-06-20 16:06:15 · 955 阅读 · 0 评论 -
浅谈编程语言的类型系统
一、思考源头最近思考上终于突破了之前面向过程编程给自己设下的思维困惑,准确的将面向对象编程的最初基础找到了。编程语言的核心定位为:基本数据类型+计算逻辑+语言规则设计(例如面向对象语言中的集成和实例化规则)。今天终于找到了对该思维的学术定义——类型系统。二、类型系统解释类型系统(type system)是一门编程语言最核心也是最基础的部分。无论该语言基于何种编程范式,都必须在开天辟地之初首先...原创 2019-03-11 21:56:35 · 4951 阅读 · 0 评论 -
动态语言、静态语言、强类型语言、弱类型语言
一 、静态语言的优势到底在哪?引用是像Java或者C#这样强类型的准静态语言在实现复杂的业务逻辑、开发大型商业系统、以及那些生命周期很长的应用中也有着非常强的优势这是一个存在于大家心里常识了。我承认我自己在潜意识里面也觉得静态强类型语言适合开发复杂,大型系统。而弱类型脚本语言不适合开发太复杂,太大型的项目。但是在参与这个讨论过程中,我突然开始置疑这个观点,事实究竟是不是这样的呢?先定义一下...原创 2019-03-11 16:45:31 · 825 阅读 · 0 评论 -
JVM调优——大内存分页(LargePage)
一、内存分页大小为何会提升性能首先,我们需要回顾一小部分计算机组成原理,这对理解大内存分页至于JVM性能的提升是有好处的。1、什么是内存分页?我们知道,CPU是通过寻址来访问内存的。32位CPU的寻址宽度是 0~0xFFFFFFFF ,计算后得到的大小是4G,也就是说可支持的物理内存最大是4G。但在实践过程中,碰到了这样的问题,程序需要使用4G内存,而可用物理内存小于4G,导致程序不得不降...原创 2018-11-10 16:36:35 · 7097 阅读 · 1 评论 -
了解第三方认证方式:OAuth与OpenID
一、常规认证网站的常规认证方式,就是需要用户在登陆的时候输入用户名密码,再根据该用户具体对应的权限,查看该用户可以访问的目录及可以进行的功能。在java编程领域,该方面的功能是可以通过shiro或者Spring Security来完成。都可以对用户进行较为详细的权限控制。二、第三方认证OAuth与OpenID可以归类为第三方认证方式,及对该用户的认证通过非本服务进行认证。下面具体解...原创 2018-07-20 09:35:49 · 5829 阅读 · 2 评论 -
Web技术梳理及待完成内容
完成: 常规工具 1、SpringBoot dubbo 2、dubbo 3、redis 搭建 集群 SpringBootDataRedis 4、mongodb 搭建 非常像关系型数据库 SpringBootDataMongodb 5、kafka 搭建 集群 SpringBootKafka 6、rabitmq/activemq/rocketmq SpringBootMq 7、持...原创 2018-07-18 17:46:27 · 235 阅读 · 0 评论 -
JavaWeb互联网公司面试常见问题
1、SpringMVC原理 2、Spring事务 传播机制 隔离级别 3、数据库自带事务、Mysql、oracle 4、HashMap原理 list arraylist原理 concurrentHashmap 5、mybatis 为什么用mybatis 与harbernite的区别 7、Static 8 数据sql优化 9 索引的原理 b+tree b-tree 红黑算法 10 r...原创 2018-07-05 10:00:11 · 283 阅读 · 0 评论 -
JavaWeb的发展小梳理
一、从静态HTML到Servlet 解决问题: 1、动态数据 最初的网站都是静态HTML,但很快我们就不满足于这样了。想要做真正的动态网页,也就是页面上的数据要真正动态变化。 Servlet就是实现该目的的技术之一。 Servlet主要动态功能就是吐出Java代码,然后用out一点一点输出HTML代码,数据的动态功能当然也就实现了。当然代码无比丑陋,且美工人员几乎不能理解这样的代码。...原创 2018-06-20 17:14:01 · 787 阅读 · 0 评论 -
分清servlet/filter/listener/interceptor过滤器、监听器、拦截器(二)
一、生命周期 1、servlet 实现类 一般继承HttpServlet(一般的,通用Servlet由javax.servlet.GenericServlet实现Servlet接口。程序设计人员可以通过使用或继承这个类来实现通用Servlet应用。javax.servlet.http.HttpServlet实现了专门用于响应HTTP请求的Servlet,提供了响应对应HTTP标准请求的doG...原创 2018-06-20 15:47:35 · 217 阅读 · 0 评论 -
分清servlet/filter/listener/interceptor过滤器、监听器、拦截器(一)
一、要理解什么 对于常用到的工具的区分,或者常常问到过滤器与拦截器的区别,基础的回答是用法的上的区别。更高层次的回答应该是对其解决问题和产生目的的理解与思考。 二、分类概述 1、servlet 概述 servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。最早支持 Servlet 技术的是 Ja...原创 2018-06-20 15:22:56 · 437 阅读 · 0 评论 -
TCP协议的3次握手与4次挥手详解
一、先看三次握手的过程 先对该图有个直观印象,下面进行解释。 1、首先由Client发出请求连接即 SYN=1 ACK=0, TCP规定SYN=1时不能携带数据,但要消耗一个序号,因此声明自己的序号是 seq=x。 2、Server 进行回复确认,即 SYN=1 ACK=1 seq=y, ack=x+1 3、Client 再进行一次确认,但不用SYN 了,这时即为 ACK=1, seq...原创 2018-05-31 18:32:00 · 196 阅读 · 0 评论 -
HttpClient的三个超时时间
一、先列出问题 setConnectTimeout:设置连接超时时间,单位毫秒。 setConnectionRequestTimeout:设置从connect Manager获取Connection 超时时间,单位毫秒。这个属性是新加的属性,因为目前版本是可以共享连接池的。 setSocketTimeout:请求获取数据的超时时间,单位毫秒。 如果访问一个接口,多少时间内无法返回数据,就直接...原创 2018-05-31 18:03:00 · 4558 阅读 · 0 评论 -
JVM调优(二)——Linux下监控java线程
Linux环境下,当发现java进程占用CPU资源非常高,且又要想更进一步查出哪一个java线程占用了CPU资源时该如何做呢?一、采用命令行形式查看线程,最终用dump进行文本分析1、top命令既可以看进程,又可以看线程1、top命令找出占用资源厉害的java进程id# top2、上图所看到的。java的进程id为’52554’,接下来用top命令单独对这个进程中的全部线程作监视t...原创 2018-11-10 17:35:11 · 2302 阅读 · 0 评论 -
方法锁、对象锁和类锁区别
synchronized用来处理多个线程同时访问同一个类的一个代码块、方法,甚至这个类。(1)修饰代码块时,需要设置一个参考对象作为锁的对象(对象锁)。(2)修饰方法时,默认是当前对线作为锁的对象。(3)修饰类时,默认是当前类的Class对象作为锁的对象。1、对象锁当一个对象中有同步方法或者同步块,线程调用此对象进入该同步区域时,必须获得对象锁。如果此对象的对象锁被其他调用者占用,则进入...原创 2018-11-11 16:35:31 · 2210 阅读 · 0 评论 -
java编码ABC(一)将cmd窗口报错改为英文
windows的命令行cmd编译java文件报错是中文,如何切换为英文。当然目的是训练阅读英文报错的能力。因为中文报错绝对是缘木求鱼,会妨碍以后的发展。解决办法1:在命令行下,进入当前环境的jdk安装目录的bin目录下输入命令:javac -J-Duser.language=en 为切换为英文javac -J-Duser.language=zh 为切换为中文比如d:\jdk150\bi...原创 2018-12-17 21:13:21 · 1588 阅读 · 1 评论 -
java编码ABC(二)String,StringBuilder,StringBuffer三者的区别
简单概述1、String定义固定的字符串变量2、StringBuilder,StringBuffer定义需要不断修改的字符串变量;3、StringBuffer线程安全具体说明1、String1 String str="abc";2 System.out.println(str);3 str=str+"de";4 System.out.println(str);如果运行这段代码...原创 2018-12-22 23:30:15 · 352 阅读 · 0 评论 -
Java 中的覆盖@Override注解写与不写的不同
1、 一般来说,写与不写没什么区别,JVM可以自识别2、写的情况下:即说明子类要覆盖基类的方法,基类必须存在方法(控制类型public,protected,返回值,参数列表类型)与子类方法完成一致的方法,否则会报错(找不到被Override的方法)。3、在不写@Override注解的情况下,当基类存在与子类各种条件都符合的方法是即实现覆盖;如果条件不符合时,则是当成新定义的方法使用。所以...原创 2018-12-07 13:21:34 · 849 阅读 · 0 评论 -
java基础(三)final四种应用场景
在java中,final的含义在不同的场景下有细微的差别,但总体上来说,它指的是“这是不可变的”。下面,我们来讲final的四种主要用法。一、修饰数据在编写程序时,我们经常需要说明一个数据是不可变的,我们成为常量。在java中,用final关键字修饰的变量,只能进行一次赋值操作,并且在生存期内不可以改变它的值。更重要的是,final会告诉编译器,这个数据是不会修改的,那么编译器就可能会在编译时...原创 2018-11-30 10:03:50 · 2114 阅读 · 0 评论 -
java基础(七)throw与throws
一、两者的定义throwthrow是语句抛出一个异常,一般是在代码块的内部,当程序出现某种逻辑错误时由程序员主动抛出某种特定类型的异常。public static void main(String[] args) { String s = "abc"; if(s.equals("abc")) { throw new NumberFormatException...原创 2018-12-02 16:39:08 · 204 阅读 · 0 评论