pwxcoo / pwxcoo.github.io Goto Github PK
View Code? Open in Web Editor NEW:scroll: https://pwxcoo.github.io
:scroll: https://pwxcoo.github.io
倒不是说这是一个设计的不足,只是这个社会就是这样子的,不管你怎么做都会有人来喷你的。
你这样子刷新就可以加的话,那我写一个脚本岂不是可以刷到65535(假设只有16位),这样一来就失去了page PV的真实性,反而显得这个东西有一点多余了。
泛型是为了解决参数类型的参数化问题。泛型是是 JDK5 引入的,在此之前泛型问题是通过继承来解决的,就是泛型类维护一个 Object 引用的数组。
但是有两个问题:
就是 T,E,K,V 什么的,这几个都是一样的,只是使用的时候,增加代码可读性时,给这几个字母加了一些特殊的含义。
就是泛型代码在编译之后,类型变量都会被 erased,提供一个相应的原始类型(raw type)。
最简单的例子就是:
public class Pair<T> {
public Pair(T first, T second) {
this.first = first;
this.second = second;
}
private T first;
privat T second;
}
翻译之后就是:
public class Pair {
public Pair(Object first, Object second) {
this.first = first;
this.second = second;
}
private Object first;
privat Object second;
}
可以发现在泛型代码翻译之后,T
的信息全部消失,这就是类型擦除。
Pair<String>
和 Pair<Integer>
是同一个类,都是 Pair
。(PS:C++ 中的模板方法会实例化会产生不同的类型。)泛型类 Pair<T>
中有一个 public void setSecond(T second)
的方法,子类继承 Pair<String>
时,想要重写这个方法,然后写了一个 public void setSecond(String second)
方法,可是父类中的是 public void setSecond(Object second)
,于是编译器自动生成一条 public void setSecond(Object second)
方法,这个就是桥方法(bridge method) ,可是这两个方法签名是一样(但是虚拟机会正确地区分它的)。
T extends A
声明 T 是 A 及其子类T super A
声明 T 是 A 及其父类通配符表示的是 不知道是什么类型。
public static boolean hasNull(Pair<?> p) {
return p.getFirst() == null || p.getSecond == null;
}
public static <T extends Comparable<? super T>> T min(T[] a) ...
int compareTo(? super T)
事情是这样子,
我今天早上刚刚起床,
看到你的项目有新的动作,
我就点开看看,
我看到了一个网址,
访问进去是一个博客。
我觉得很有意思,就哈哈大笑了出来。但是我发现我没有办法让你知道
我觉得这是一个缺陷,没有评论的博客也能叫博客吗? @pwxcoo
在 DNS 解析后得到 IP 地址。默认去请求 80 端口,一般 HTTPS 应用会配置 301 跳转,所以在和 80 建立 tcp 连接(3 次握手),在 HTTP 报文交换中收到 301 重定向后,重新请求 443 的端口。(因为是 301 永久重定向,浏览器会缓存这条记录,下次会直接请求 443。)
TLS 是 SSL 的升级版,现在主流是是 TLS 1.2 。SSL 层在 OSI 的表示层,TCP/IP 的应用层。
之前用三个随机数是 RSA 算法,也可以用 DH 算法,DH 算法是建立在超大数的对数运算的困难上的。
Server 端申请数字证书是需要想 CA 申请的,Server 把自己的信息(里面有证书内容的 Hash 算法)填好后,发给 CA,CA 根据证书里的 Hash 算法 hash 一下,然后用 CA 自己的私钥加密一下,生成一个数字签名,附在证书末尾,然后发给 Server。
每次对话都有一个 sessionID,这个 session 不是 Web 服务中的那个 session,这个 session 是管理这次连接的 session,在 OSI 里的会话层。
对分布式的系统,可以用 session ticket 来解决。在突然断开之后不必重新生成对话密钥。
其实对称密钥加密时有两步,一个 session key ,一个 hash key,通常都是 hash 数据,生成一个 MAC(Message Authentication Code)附在 HTTP 报文后面,然后用 session key 加密。hash key 保证报文不被篡改,session key 保证报文不被偷窥。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.