裸泳的猪

沾沾自喜其实最可悲

0%

one write;read everywhere.

  • Algorithm 算法
  • Array 数组
  • Atomic 原子的
  • Capacity 容量
  • Constructor 构造器
  • Diagram 图解
  • Dispatcher 调度器 分发器
  • Duplicate 完全一样的; 复制的;
  • Element 要素; 基本部分
  • Enterprise 企业
  • Exclusively 独占 isHeldExclusively()
  • fetch 拿来
  • filter 过滤
  • Generic 泛型
  • Hierarchical 分等级的, 等级的, 分层, 层次, 分层的 hierarchy 等级制度(尤指社会或组织); 统治集团; 层次体系;
  • Implements 实现
  • Inherited 继承(金钱、财产等), 经遗传获得(品质、身体特征等), 接替(责任等), 继任 inherit的过去分词和过去式
  • interpreter 翻译人员
  • isolation 隔离
  • priority 优先级
  • propagation 传播
  • protocol 协议
  • Qualifier 预选赛
  • reference 参考
  • Retention 维持
  • Serializable 可序列化的
  • stamped 盖章
  • Statement 说明
  • transient 短暂的 临时工; java中 不可反序列
  • vector 向量
  • mandatory 强制的
  • nested 嵌套的

MA

Moving Average - 移动平均线 ,将一定时期内的证券价格(指数)加以平均,并把不同时间的平均值连接起来,形成一根MA,用以观察证券价格变动趋势的一种技术指标。

  • MA(X,N),X的N日简单移动平均,算法为(X1+X2+X3+…+Xn)/N。

SMA

Simple Moving Average-简单移动平均, 对近期数值可以赋予更高权重,这也是SMA和MA最明显的区别。

  • SMA(x,n,m),X的N日移动平均,M为权重,如Y=(XM+Y’(N-M))/N。其中Y’表示上一周期Y值,N必须大于M

  • SMA=p1+(1-a)*p2+(1-a)² *p3+(1-a)³ *p4+…/1+(1-a)+(1-a)²+(1-a)³+…

    随着时间的回推,数值的权重呈现指数级缩小,由此SMA可以达到给予近期数值更高的权重,更贴合市场价格的表现。(p1当天价格,p2昨天价格。。。,a为平滑指数)

EMA

Exponential Moving Average-指数移动平均值

  • EMA(x,n)-指数移动平均,又名EXPMA,各数值的加权影响力随时间而指数式递减,越近期的数据加权影响力越重。

  • 数学本质上SMA和EMA同属于指数移动平均,只不过EMA属于SMA的一个特例,赋予了今日更高的权重,相同数值天数条件下比SMA均线表现更加敏感。

    EMA(X,N)就相当于SMA(X,N+1,2)。

WMA

weighted moving average - 加权移动平均,指计算平均值时将个别数据以不同数值。

IP分类(IPV4)

IP地址由四段组成,每个字段是一个字节,8位,最大值是255。

IP地址由两部分组成,即网络地址和主机地址。网络地址表示其属于互联网的哪一个网络,主机地址表示其属于该网络中的哪一台主机。二者是主从关系。

IP地址的四大类型标识的是网络中的某台主机。IPv4的地址长度为32位,共4个字节,但实际中我们用点分十进制记法。

IP分类

IP地址根据网络号和主机号来分,分为A、B、C三类及特殊地址D、E。 全0和全1的都保留不用。

A类:(1.0.0.0-126.0.0.0)(默认子网掩码:255.0.0.0或 0xFF000000)第一个字节为网络号,后三个字节为主机号。该类IP地址的最前面为“0”,所以地址的网络号取值于1~126之间。一般用于大型网络。

B类:(128.0.0.0-191.255.0.0)(默认子网掩码:255.255.0.0或0xFFFF0000)前两个字节为网络号,后两个字节为主机号。该类IP地址的最前面为“10”,所以地址的网络号取值于128~191之间。一般用于中等规模网络。

C类:(192.0.0.0-223.255.255.0)(子网掩码:255.255.255.0或 0xFFFFFF00)前三个字节为网络号,最后一个字节为主机号。该类IP地址的最前面为“110”,所以地址的网络号取值于192~223之间。一般用于小型网络。

D类:是多播地址。该类IP地址的最前面为“1110”,所以地址的网络号取值于224~239之间。一般用于多路广播用户[1] 。

E类:是保留地址。该类IP地址的最前面为“1111”,所以地址的网络号取值于240~255之间。

子网掩码

  • 作用:首相IP地址是以网络号和主机号来标示网络上的主机,子网掩码就是用来标记ip中哪些位是表示的网络号,哪些是主机位。

  • 表示:同IP地址一样,子网掩码是由长度为32位二进制数组成的一个地址,IP地址如果某位是网络地址,则子网掩码为1,主机地址则为0。

  • 子网掩码的表示方式:

    例子:192.168.1.100/24,其子网掩码表示为255.255.255.0,二进制表示为11111111.11111111.11111111.00000000

    - **点分十进制表示法**(”例子中的255.255.255.0“)
    - **CIDR斜线记法**(例子中的”/24“)
    

特殊地址

在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下:
A类地址:10.0.0.0~10.255.255.255
B类地址:172.16.0.0~172.31.255.255
C类地址:192.168.0.0~192.168.255.255

回送地址:127.0.0.1。 也是本机地址,等效于localhost或本机IP。一般用于测试使用。例如:ping 127.0.0.1来测试本机TCP/IP是否正常。

事务

一般是指要做的或所做的事情。
在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。
事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。
事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。

阅读全文 »

PMBOK指南笔记

1.引论

1.1《PMBOK®指南》
收录项目管理知识体系中被普遍认可为“良好实践”的那一部分。

  • 所谓普遍认可,是指这些知识和做法在大多数时候适用于大多数项目
  • 所谓良好实践,在项目管理过程中使用这些知识、技能、工具和技术,
    能够达成预期的商业价值和成果,从而提高很多项目成功的可能性

1.1.3 道德与专业行为规范

  • 全球项目管理业界定义的最重要的价值观是:责任、尊重、公正和诚实
阅读全文 »

Object类 是类层次结构的根类。

Object类是所有类的超类。所有对象(包括数组)都实现这个类的方法。

所以需要了解Object类的所有方法:

1.hashCode()

1
public int hashCode()

返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算。
不同对象的 hashCode() 的值一般是不相同。但是,同一个对象的hashCode() 值肯定相同。

阅读全文 »

String(字符串常量)概述

在API中是这样描述:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。
String str = "abc";

相当于:
char data[] = {'a', 'b', 'c'};
String str = new String(data);

以下是一些有关如何使用字符串的更多示例:
System.out.println("abc");
String cde = "cde";
System.out.println("abc" + cde);
String c = "abc".substring(2,3);
String d = cde.substring(1, 2);

类String包括用于检查序列中的单个字符、比较字符串、搜索字符串、提取子字符串以及创建所有字符都转换为大写或小写的字符串副本的方法。 大小写映射基于Character类指定的 Unicode 标准版本。
...
*/
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {
...
}

需要注意的是:String是一个不可变对象,可以认为是特殊的常量,因此存在方法区的运行时常量池中,可以被共享使用(享元模式),而不是创建一个新对象,但是这样的做法仅仅适合于通过=符号进行的初始化

由此引申出许多判断各种情况下,string对象是否相等的判断

常见的String == 比较

首先,我们在比较两个string对象之前,需要了解:

  1. 通过构造方法创建(new创建)的String对象,存放在java虚拟机的堆内存,堆内存里存放的是字符串常量的地址,字符串常量存放在方法区的常量池中;
  2. 直接赋值:通过直接赋值所创建的对象直接是方法区中的常量池中的字符串常量。

下面列举一些常见的比较例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
   String s1 = "Hello";
String s2 = "Hello";
String s3 = "Hel" + "lo";
String s4 = "Hel" + new String("lo");
String s5 = new String("Hello");
String s6 = s5.intern();
String s7 = "H";
String s8 = "ello";
String s9 = s7 + s8;

System.out.println(s1 == s2); // true 都是方法区常量池
System.out.println(s1.equals(s2)); //true 值都相同
System.out.println(s1.equals(s5)); //true 值都相同
System.out.println(s1 == s3); // true 做+号的时候,会进行优化,自动生成Hello赋值给s3都是方法区常量池
System.out.println(s1 == s4); // false s4最后生成的是一个在堆中的string对象
System.out.println(s1 == s9); // false 用的是动态调用,所以s9返回的是一个新的String对象
System.out.println(s4 == s5); // false s4,s5不同的对象
System.out.println(s1 == s6); // true

分析:

  1. s1 = = s2 很容易可以判断出来。s1 和 s2 都指向了方法区常量池中的Hello。
  2. s1 = = s3 这里要注意一下,因为做+号的时候,会进行优化,自动生成Hello赋值给s3,所以也是true
  3. s1 = = s4 s4是分别用了常量池中的字符串和存放对象的堆中的字符串,做+的时候会进行动态调用,最后生成的仍然是一个String对象存放在堆中。
  4. s1 = = s9 在JAVA9中,因为用的是动态调用,所以返回的是一个新的String对象。所以s9和s4,s5这三者都不是指向同一块内存
  5. s1 = = s6 为啥s1 和 s6地址相等呢? 归功于intern方法,这个方法首先在常量池中查找是否存在一份equal相等的字符串如果有的话就返回该字符串的引用,没有的话就将它加入到字符串常量池中,所以存在于class中的常量池并非固定不变的,可以用intern方法加入新的

String、StringBuffer、StringBuilder。

  • String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象;
  • 而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。
  • StringBuffer 和 StringBuilder 最大的区别在于,StringBuffer线程安全的,而 StringBuilder非线程安全的;
  • 但 StringBuilder 的性能却高于 StringBuffer,所以在单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer。

如何将字符串反转

使用 StringBuilder 或者 stringBuffer 的 reverse() 方法。

1
2
3
4
// StringBuffer reverse
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("abcdefg");
System.out.println(stringBuffer.reverse()); // gfedcba

String 类的常用方法都有那些?

  • indexOf():返回指定字符的索引。
  • charAt():返回指定索引处的字符。
  • replace():字符串替换。
  • trim():去除字符串两端空白。
  • split():分割字符串,返回一个分割后的字符串数组。
  • getBytes():返回字符串的 byte 类型数组。
  • length():返回字符串长度。
  • toLowerCase():将字符串转成小写字母。
  • toUpperCase():将字符串转成大写字符。
  • substring():截取字符串。
  • equals():字符串比较。

要想知道网络的配置和状态,我们可以使用 ifconfig 或者 ip 命令来查看。

这两个命令功能都差不多,不过它们属于不同的软件包,ifconfig 属于 net-tools 软件包,ip 属于 iproute2 软件包,我的印象中 net-tools 软件包没有人继续维护了,而 iproute2 软件包是有开发者依然在维护,所以更推荐你使用 ip 工具。

1
2
ipconfig eth0
ip -s addr show dev eth0

第一,网口的连接状态标志。其实也就是表示对应的网口是否连接到交换机或路由器等设备,如果 ifconfig 输出中看到有 RUNNING,或者 ip 输出中有 LOWER_UP,则说明物理网路是连通的,如果看不到,则表示网口没有接网线。

第二,MTU 大小。默认值是 1500 字节,其作用主要是限制网络包的大小,如果 IP 层有一个数据报要传,而且数据帧的长度比链路层的 MTU 还大,那么 IP 层就需要进行分片,即把数据报分成干片,这样每一片就都小于 MTU。事实上,每个网络的链路层 MTU 可能会不一样,所以你可能需要调大或者调小 MTU 的数值。

第三,网口的 IP 地址、子网掩码、MAC 地址、网关地址。这些信息必须要配置正确,网络功能才能正常工作。

第四,网路包收发的统计信息。通常有网络收发的字节数、包数、错误数以及丢包情况的信息,如果 TX(发送) 和 RX(接收) 部分中 errors、dropped、overruns、carrier 以及 collisions 等指标不为 0 时,则说明网络发送或者接收出问题了,这些出错统计信息的指标意义如下:

阅读全文 »