- 博客(62)
- 收藏
- 关注
原创 erlang catch时间分析
下面的测试,构造了一个1000W长度的列表,用于进行循环测试主函数体为:test(Lv, Star) -> CheckList = [{lv, Lv}, {star, Star}], List = lists:seq(1, 10000000), StarTime = erlang:system_time(milli_seconds), [case check_list(CheckList) of true -> true;
2020-11-18 17:58:17
288
转载 mysql 数据库的设计三范式
三范式1NF:字段不可分;2NF:有主键,非主键字段依赖主键;3NF:非主键字段不能相互依赖;解释:1NF:原子性 字段不可再分,否则就不是关系数据库;2NF:唯一性 一个表只说明一个事物;3NF:每列都与主键有直接关系,不存在传递依赖;第一范式(1NF)即表的列的具有原子性,不可再分解,即列的信息,不能分解, 只要数据库是关系型数据库(mysql/oracle/db2/informix/sysbase/sql server),就自动的满足1NF。数据库表的每一列都是不可
2020-07-08 17:54:12
278
原创 Mysql理解
数据库与数据库实例的区别:数据库和数据库实例。很多人会把这两个概念混淆,即MySQL是数据库,MySQL也是数据库实例。这样来理解Oracle和Microsoft SQL Server数据库可能是正确的,但是这会给以后理解MySQL体系结构中的存储引擎带来问题。从概念上来说,数据库是文件的集合,是依照某种数据模型组织起来并存放于二级存储器中的数据集合;数据库实例是程序,是位于用户与操作系统之间的一层数据管理软件,用户对数据库数据的任何操作,包括数据库定义、数据查询、数据维护、数据库运行控制等都是在数据库
2020-05-14 19:32:53
248
转载 Erlang 修改shell节点后缀
在同一个机器的两个节点上运行名字服务时:首先,我们打开一个终端shell,然后在终端上启动一个名为gandalf的erlang节点,$ erl -sname gandalf(gandalf@localhost) 1> kvs:start().true注意:在Window中显示的节点名后缀并不一定是localhost.我的返回的就不是localhost,而是CHINA-9B4EB5FC6,然后调用rpc:call/4时一直报错,因为CHINA-9B4EB5FC6不符合erlang的命名规范。
2020-05-11 14:05:49
200
原创 Erlang Mnesia数据库模块
mnesia:create_schema/1在指定的节点列表里初始化一个新的 Mnesia 数据库架构用法: 1 create_schema(DiscNodes) -> ok | {error,Reason} 在指定的节点列表里的磁盘上初始创建一个新的 Mnesia 数据库架构。在每个节点的本地 Mnesia 目录里会创建各种各样的文件。注意该每个节点的目录必须是唯一的。两个节点可能永远不会共享相同的目录。如果可能的话,使用一个本地磁盘设备来提高性能
2020-05-09 11:56:19
345
原创 Erlang lists模块使用
lists:keystore/4在元组列表里存储一个值用法:keystore(Key, N, TupleList1, NewTuple) -> TupleList2从元组列表 TupleList1 里查找元组的第 N 个值跟 Key 是一样的元素,如果找到则用新元组替换,并返回一个新的元组列表 TupleList1,找不到则在原来的元组列表 TupleList1 后面加上新...
2020-05-08 17:19:01
837
原创 Erlang编程IRC程序学习
% 输入输出窗口-module(io_widget).-export([get_state/1, start/1, test/0, set_handler/2, set_prompt/2, set_state/2, set_title/2, insert_str/2, update_state/3]).start(Pid) ->...
2020-05-08 11:21:57
234
原创 函数式编程
我们先用一个最简单的例子来说明一下什么是函数式编程。先看一个非函数式的例子:int cnt;void increment(){cnt++;}那么,函数式的应该怎么写呢?int increment(int cnt){return cnt+1;}你可能会觉得这个例子太普通了。是的,这个例子就是函数式编程的准则:不依赖于外部的数据,而且也不改变外部数据的值...
2020-05-07 19:10:34
152
原创 erlang中下划线的使用
在erlang里'_',它可以代替任何东西,在match的时候非常有用,例如{A, _, [B|_], {B}} = {abc, 23, [22, 23], {22}} 这样,就是把_当作一个占位符,表示,match的时候这里有一个值,但是我不关心他是什么在erlang里,使用下划线'_'开头是有特殊含义的,告诉编译器,这些变量是被忽略的,声明了没有使用/绑定也没关系(否则,默认情...
2020-05-05 16:41:30
369
原创 Erlang中的record与宏
记录:在Erlang中使用Tuple ,数据项的顺序\数量都是确定的,一旦数据项顺序调整或者增减字段,都容易出现badmatch.同时一些常量如果硬编码到代码中,一旦数值变化,要想全部可靠的替换成新的数值是一个困难的事情.这两种数据层面的变化,在Erlang中对应的解决方案是: record Macro一. record 记录的定义如下:-record(name_of_rec...
2020-05-05 14:54:45
447
原创 Erlang dict模块使用
erlang 的dict模块比较完整的实现了一个键值(Key -Value)字典。通过这个模块,你可以插入,附加(append),删除,更新键值对字典,也提供了获取字典大小和检查键是否存在等调用接口,而且还包含一些对字典键或值进行操作的函数方法,例如:递归(fold)、过滤(filter)、遍历(map)字典等特殊操作函数。dict: new() -> dictionary()...
2020-05-04 20:37:35
266
原创 进程架构
不管特定目的是什么,进程行为有一个共同的模式。必须生成进程并以它们的别名注册。新生成进程的第一个动作是初始化进程循环数据。循环数据通常是传递给内置函数spawn的参数和进程初始化的结果。它存储在一个我们称之为进程状态(process state)的变量中。把这个状态传递给接收求值函数,它收到一条消息,处理它和更新状态,然后作为尾递归调用的一个参数返回。如果它处理的消息之一是stop消息,接收进程就...
2020-04-29 11:13:08
288
原创 计算机网络
OSI七层模型:从上到下为:第七层:应用层 数据 用户接口,提供用户程序“接口”。第六层:表示层 数据 数据的表现形式,特定功能的实现,如数据加密。第五层:会话层 数据 允许不同机器上的用户之间建立会话关系,如WINDOWS第四层:传输层 段 实现网络不同主机上用户进程之间的数据通信,可靠与不可靠的传输,传输层的错误检测,流量控制等。第三层:网络层 包 提供逻辑地址(IP)、选路,...
2020-04-20 12:06:27
357
原创 Java实现八大排序算法
常见排序算法如下:它们都属于内部排序,也就是只考虑数据量较小仅需要使用内存的排序算法,他们之间关系如下:稳定与非稳定:如果一个排序算法能够保留数组中重复元素的相对位置则可以被称为是稳定的。反之,则是非稳定的。直接插入排序基本思想通常人们整理桥牌的方法是一张一张的来,将每一张牌插入到其他已经有序的牌中的适当位置。在计算机的实现中,为了要给插入的元素腾出空间,我们需...
2020-04-19 20:05:31
213
原创 索引
本文从MySQL的角度来讲述索引定义:索引是帮助MySQL高效获取数据的数据结构。本质:索引是数据结构。排好序的快速查找数据结构。一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上 。优势:1-提高数据检索效率,降低数据库的IO成本;2-降低数据排序成本,降低了CPU的消耗。劣势:1-索引列占用空间,索引是一张表,该表保存了...
2020-04-19 16:30:47
163
转载 普通索引和唯一索引的区别
1、概念不同的业务场景下,应该选择普通索引,还是唯一索引?假设你在维护一个市民系统,每个人都有一个唯一的身份证号,而且业务代码已经保证了不会写入两个重复的身份证号。如果市民系统需要按照身份证号查姓名,就会执行类似这样的SQL语句:select name from CUser where id_card = 'xxxxxxxyyyyyyzzzzz';所以,你一定会考虑在i...
2020-04-17 16:38:03
677
转载 懒加载与急加载FetchType.LAZY&FetchType.EAGER的区别和使用?
1、FetchType.LAZY:懒加载,加载一个实体时,定义懒加载的属性不会马上从数据库中加载。2、FetchType.EAGER:急加载,加载一个实体时,定义急加载的属性会立即从数据库中加载。3、比方User类有两个属性,name跟address,登录后用户名是需要显示出来的,此属性用到的几率极大,要马上到数据库查,用急加载;而用户地址大多数情况下不需要显示出来,只有在查看用户资料是才需要显示...
2020-04-13 17:05:58
853
转载 为什么要用implements Serializable
原文地址:https://blog.csdn.net/IT_wjj/article/details/78562075一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才是可序列化的。因此如果要序列化某些类的对象,这些类就必须实现Serializable接口。而实际上,Serializable是一个空接口,没有什么具体内容,它的目的只是简单的标识一个类的对象可以被序列化...
2020-04-13 16:52:01
150
原创 JAVA线程的状态和生命周期
上图是一个线程的生命周期状态流转图,很清楚的描绘了一个线程从创建到终止的过程。这些状态的枚举值都定义在java.lang.Thread.State下NEW:毫无疑问表示的是刚创建的线程,还没有开始启动。RUNNABLE: 表示线程已经触发start()方式调用,线程正式启动,线程处于运行中状态。BLOCKED:表示线程阻塞,等待获取锁,如碰到synchronized、lo...
2020-04-11 22:16:01
174
转载 并发编程学习一(并行与并发)
并行(parallellism)与并发(concurrency)解释一:并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。 解释二:并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。 解释三:并行是在多台处理器上同时处理多个任务。如 hadoop 分布式集群,并发是在一台处理器上“同时”处理多个任务。所以并发编程的目标是充分的利用处理器的每一个...
2020-04-06 17:00:03
167
转载 @Autowired 与@Resource的区别
spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource、@PostConstruct以及@PreDestroy。@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。@Autowired 与@Resource的区别:...
2020-03-30 16:38:13
115
转载 @Param注解的用法解析
注:在不使用@Param注解的时候,函数的参数只能为一个,并且在查询语句取值时只能用#{},且其所属的类必须为Javabean,而使用@Param注解则可以使用多个参数,在查询语句中使用时可以使用#{}或者${}一.xml形式实例一 @Param注解单一属性Public User selectUser(@param(“userName”) String name, @param(“u...
2020-03-06 19:08:58
1272
转载 注解@NoRepositoryBean的作用
在做项目时创建对象的功能会交给Spring去管理在扫描Reposytory层包时会扫描到BaseReposytory接口 ;所有对象类接口都会继承此接口 为了告诉JPA不要创建对应接口的bean对象 就在类上加注解@NoRepositoryBean这样spring容器中就不会有BaseReposytory接口的bean对象@NoRepositoryBean //告诉JPA不要创建对应...
2020-03-06 18:51:50
908
转载 在使用JDBC连接MySql时报错:You must configure either the server or JDBC driver (via the serverTimezone config
在使用JDBC连接MySql时报错:You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.具...
2020-03-06 16:03:44
857
转载 window下关闭占用端口使用
1:查看特定端口被占用情况命令:netstat -ano和netstat -ano|findstr 端口号netstat -ano:查看电脑所有端口被占用的情况:netstat -ano|findstr 端口号:查看特定端口被占用情况2:关闭占用端口的程序命令 :taskkill /pid PID(进程号) /f转至:https://blog.csdn...
2020-03-05 00:13:18
158
转载 webflux的使用
pom文件,一山不容二虎,下面两个依赖不能同时使用,因为这次我们要用到webflux,所以注释掉上面的web,否则,编译没错误,但网页显示不出来。<!-- <dependency>--><!-- <groupId>org.springframework.boot</groupId>-->&l...
2020-03-05 00:09:08
520
原创 HTTP协议以及HTTPS协议
HTTP工作原理HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。以下是 HTTP 请求/响应的步骤:\...
2020-03-04 18:41:32
619
原创 The Clean Coder
作者:[美] Robert C. Martin翻译:章显洲 余晟引言欲修其身者,先正其心;欲正其心者,先诚其意;欲诚其意者,先致其知,致知在格物。物格而后知至,知至而后意诚,意诚而后心正,心正而后身修,身修而后家齐——《礼记·大学》第一章_专业主义(讲道理)1.1 无情重构:对每个模块,每检入一次代码,就要让它比上次检出时变得更为简洁。每次读代码,都别忘了进行点滴...
2019-12-24 14:27:30
340
原创 forward和redirect的区别
forward又叫转发,redirect叫做重定向。是servlet种的两种主要的跳转方式。区别:(本地响应次数)、地址栏,数据共享,应用场景,效率,本质,次数两者的区别总结:1.从地址栏显示来说:1)forword是服务器内部的重定向,服务器直接访问目标地址的 url网址,把里面的东西读取出来,但是客户端并不知道,因此用forward的话,客户端浏览器的网址是不会发生变化的。...
2019-12-03 13:43:05
316
原创 Nutz-Mvc手册
主模块-子模块-入口函数主模块任何一个类都可以作为主模块,只要你将其配置在 web.xml 中,这样的设计主要是为了方便 一些非 JSP/Servlet 标注的 web 服务器整合 Nutz.mvc 框架。在主模块中,你可以声明如下的注解:@Modules - 声明应用的所有子模块 @IocBy - 设置应用所采用的 Ioc 容器 @SetupBy - 应用启动以及关闭时的额外...
2019-12-03 10:31:03
385
原创 Nutz-Ioc手册
Ioc - 复合加载器复合加载器的使用方法原理:它本身并不做任何事情,它只是调用其他的加载器:ComboIocLoader loader = new ComboIocLoader("*js", "ioc/dao.js", ...
2019-12-03 10:04:58
327
原创 Nutz-过滤器
什么是过滤器?一个 HTTP 请求,过滤器是第一组被执行的对象。同适配器不同的是,一个请求中,可以执行多个过滤器。如何使用过滤器?通过 @Filters 注解。注解 '@Filters' 的值是一个 '@By' 注解的数组,它可以声明在这三个地方入口函数 子模块 主模块其中入口函数的 @Filters 优先级更高,其次是子模块,最后是主模块。就是说,你在入口模块...
2019-12-02 16:40:43
510
原创 Nutz框架学习
一、ioc相当于spirng中的ioc,spring中提供了xml与注解的方式加载bean,nutz中提供了json和注解的方式加载bean@IocBean注解AnnotationIocLoader 根据这个注解来判断哪些类应该被自己加载。不要单例?默认的,Ioc 容器管理的对象都是单例的,你如果不想单例,你可以:@IocBean(name="myObject", s...
2019-12-02 14:19:03
695
原创 常用注解整理
@Table 注解作用是:声明此对象映射到数据库的数据表,通过它可以为实体指定表(talbe)@Config 注解@Config注解可以代替Configuration.用@Config注释的类将把任何字段变成配置选项。 可以使用@Config类中提供的过多注释来注释所述字段以添加信息。Java元注解@Target指定注解使用的目标范围(类、方法、字段等),...
2019-11-20 13:42:00
97
原创 HashMap源码分析(JDK1.8)
1、HashMap源码分析1.1类的继承关系package java.util;import java.io.IOException;import java.io.InvalidObjectException;import java.io.Serializable;import java.lang.reflect.ParameterizedType;import java.la...
2019-11-01 00:40:10
414
原创 MySQL练习
表名和字段1.学生表Student(s_id,s_name,s_birth,s_sex) --学生编号,学生姓名, 出生年月,学生性别2.课程表Course(c_id,c_name,t_id) – --课程编号, 课程名称, 教师编号3.教师表Teacher(t_id,t_name) --教师编号,教师姓名4.成绩表Score(s_id,c_id,s_score) --学生编号,...
2019-10-26 10:49:16
400
2
原创 面试知识点杂项
1-什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。java所谓的跨平台就是在不同平台上安装了不同的jvm,而在不同平台上生成的.class文件都是一样的,而.class文件再由对应平台的jvm解释成对应平台的机器码执行。Java中static方法不能...
2019-10-15 10:56:56
199
原创 JAVA基础
一、SSM 和 Springboot 的最大区别:1.Springboot将原有的xml 配置,简化为 java 注解2.使用IDEA 可以很方便的搭建一个 springboot 项目,选择对应的 maven 依赖,简化Spring应用的初始搭建以及开发过程3.springboot 有内置的 tomcat 服务器,可以快速部署发布web 服务二、Spring---七大...
2019-10-15 10:46:09
368
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人