什么是类型安全

编程语言的最终梦想:静态类型安全常听人说“强类型”。但个人对强类型都有不同的理解。有的认为C++就是强类型,有的认为C也是强类型。因为它们都有类型检查。可见,如果没有一个明确的定义,谈“强类型”不免是自说自话。那么,可以给“强类型”下一个什么样的定义呢?最原始的定义是这样: 静态类型系统将检查所有的错误。只要通过了静态类型检查,程序将不会有bug.但是,明显这是不现实的,因为有些bug是纯粹逻辑上
阅读本文

ConcurrentLinkedQueue的实现原理分析

1. 引言2. ConcurrentLinkedQueue的介绍参考资料一。3. ConcurrentLinkedQueue的结构我们通过ConcurrentLinkedQueue的类图来分析一下它的结构。(图1)ConcurrentLinkedQueue由head节点和tair节点组成,每个节点(Node)由节点元素(item)和指向下一个节点的引用(next)组成,节点与节点之间就是通过这个n
阅读本文

win10修改编辑hosts文件无法保存

1.选择hosts文件右键属性; 2.在属性的安全模块中选择高级; 3.在hosts的高级安全设置中选择更改权限; 4.点击添加 5.选择主体----->高级----->立即查找------>在搜索结果中找到当前用户的名称,然后点击确定 6.确定选择的用户或组 7.勾选所有基本权限后点击确定 8.在hosts的高级安全设置中选择新添加的用户,再点击确定 9.是,windows安全
阅读本文

基础加强_注解_类加载器_动态代理

Junit单元测试的基本使用: 1.在要执行的方法上添加一个注解@Test 2.注解会报错 解决方式ctrl+1 add junit 3.选中要执行的方法 右键 run as --> junit Test 一次执行多个方法:选中类 右键run as --> Junit Test Junit单元测试的注意事项: 1.没有添加@Test注解的方法不能使用Junit运行 2.Junit
阅读本文

转mysql半主从同步

MySQL半同步复制 从MySQL5.5开始,MySQL以插件的形式支持半同步复制。如何理解半同步呢?首先我们来看看异步,全同步的概念   异步复制(Asynchronous replication) MySQL默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库是否已经接收并处理,这样就会有一个问题,主如果crash掉了,此时主上已经提交的事务可能并没有传到
阅读本文

浅析HTTP协议

HTTP(超文本传输协议)协议是一种无状态的协议。无状态是指web浏览器与web服务器之间不需要建立持久的连接。HTTP遵循请求(request)和应答(response)模型,web浏览器向web服务器发送请求时,web服务器处理请求并返回应答。 HTTP请求HTTP请求有三部分组成:1.请求行(请求方法)2.请求头(消息报头)3.请求正文 例如:POST /sample.php HTTP/1.
阅读本文

NodeJS stream 一:Buffer

当年是看了朴灵的九浅一深 NodeJS 入门的 Node, 朴大大的书讲实践很少更多的篇幅用在了讲原理上,道理听了那么多,后来开始在前端工程领域使用 NodeJS 却处处掣肘,总结原因发现 NodeJS 中难的部分无非是文件和网络,文件操作和网络都依赖了一个很重要的对象—— Stream,这恰恰是朴大大书中没有提及的。Buffer 朴大大在书中是有提到过的,但因为流实际上就是在处理 Buffer,
阅读本文

HTTPS协议原理透析

1、HTTPS本身并非协议,而是标准的HTTP协议架在SSL/TLS协议之上的一种结构。(一种不太合适的说法可以认为是两种协议的叠加)。HTTP是工作在OSI7层模型的最上层,就是第7层:Application Layer。而SSL/TLS是工作在第4层:Transport Layer。两层之间还是隔了Presentation Layer(6层)和Session Layer(5层)两层的。2、由于
阅读本文

多线程并发常见问题

一 概述1.volatile 保证共享数据一旦被修改就会立即同步到共享内存(堆或者方法区)中。 2.线程访问堆中数据的过程 线程在栈中建立一个变量的副本,修改完毕后将数据同步到堆中。 3.指令重排 为了提高执行效率,CPU会将没有依赖关系的指令重新排序。如果希望控制重新排序,可以使用volatile修饰一个变量,包含该变量的指令前后的指令各自独立排序,前后指令不能交叉排序。二 常见问题及应对
阅读本文

VMware安装kalilinux2017.1 vmtools的一些经历

在报告的时候提到了kali linux,这个对想学习安全攻防的同学来说是一个很好的实践工具。会议结束以后就自行下载了一个玩玩。不过在VMware里安装时遇到了许多的问题。今天就谈谈在安装vmtools时自己所经历的事情吧!  我下载安装的版本是kalilinux2017.1版本,是目前最新的版本。因为之前对linux接触的不是很多,在linux环境下安装软件不是很熟悉。只能自行百度搜索步骤教程
阅读本文

Tomocat:安装完成,显示HTTP Status 404

今天在配置服务器,并且安装完成,tomocat服务器也正常运行的情况下,点击login,界面显示HTTP Status 404,这让我百思不得其解,于是就开始了我的分析之路:错误如图(不过404的界面似乎都长这样) 1:查看tomocat服务器是否正常运行,查看web服务器的运行时长,发现刷新时间正常;2:查看login时打开的html界面login.html是否存在,找到相应路径下查看log
阅读本文

Java泛型总结

1. 什么是泛型?泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。可以在集合框架(Collection framework)中看到泛型的动机。例如,Map 类允许您向一个 Map 添加任意类的对象,即使最常
阅读本文

浅析HashMap和Hashtable的区别

HashMap和Hashtable两个类都实现了Map接口,二者保存键值对(key-value对);HashMap和HashTable区别第一,继承的父类不同。HashMap继承自AbstractMap类,而Hashtable继承自Dictionary类,HashMap是Hashtable的轻量级实现(非线程安全的实现),二者都实现了Map接口。 public class HashMap<K,V>
阅读本文

我学《密码学》 20155314刘子健

我学《密码学》第一章 绪论信息安全与密码学信息安全概念:保证信息的保密性、完整性、可用性、可控性和不可否认性。相应的信息系统应具有信息防护、检测、反应和恢复的能力。同时系统本身应具有物理安全、硬件安全和软件安全。信息安全的“五性”: 保密性 完整性 可用性 可控性 抗抵赖性(不可否认性) ###密码概述密码学和密码系统密码系统模型 密码体制及其分类密码体制: 明文空间M 密文空间C 密钥空间K
阅读本文

java容器类

一、  容器类:下图摘自《Java编程思想》,很好地展示了整个容器类的结构。   由上图可知,容器类库可分为两大类,各自实现了Collection接口和Map接口,下面就常见的类进行一下分类:实现Collection接口的容器类Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack ├Set │├TreeSet│└HashSet└Li
阅读本文

关于前端安全

1. 两种跨站攻击:XSS:跨站脚本(Cross-site scripting)CSRF:跨站请求伪造(Cross-site request forgery)2.XSS特点:是不对服务器端造成任何伤害,而是通过一些正常的站内交互途径,例如发布评论,提交含有 JavaScript 的内容文本。这时服务器端如果没有过滤或转义掉这些脚本,作为内容发布到了页面上,其他用户访问这个页面的时候就会运行这些脚本
阅读本文

理解不可变集合 | Guava Immutable与JDK unmodifiableList

1、为什么需要不可变集合 (1)保证线程安全:在并发程序中,使用Immutable既保证线程安全性,也大大增强了并发时的效率(跟并发锁方式相比)。尤其当一个对象是值对象时,更应该考虑采用Immutable方式;(2)被不可信的类库使用时会很安全;(3)如果一个对象不需要支持修改操作(mutation),将会节省空间和时间的开销;经过分析,所有不可变的集合实现都比可变集合更加有效地利用内存;(4
阅读本文

高并发编程必备基础总结

一、前言 二、 什么是线程安全问题 线程安全问题是指当多个线程同时读写一个状态变量,并且没有任何同步措施时候,导致脏数据或者其他不可预见的结果的问题。Java中首要的同步策略是使用Synchronized关键字,它提供了可重入的独占锁。 三、 什么是共享变量可见性问题 要谈可见性首先需要介绍下多线程处理共享变量时候的Java中内存模型。 Java内存模型规定了所有的变量都存放在主内
阅读本文

任信了语音验证码增强信息安全性

任信了语音验证码,以电话语音的方式播报验证码,只要用户的手机能接听电话,就能收到语音验证码,有效触及了部分无法收到短信验证码的“盲区”用户,也大大增加了信息传递的安全性。       无论什么行业都会存在正规军和杂牌军,短信行业也是如此。像任信了这种正规的通讯公司都是迹可循的,营业执照、增值业务许可证、短信接入业务代码使用证,三者都具备的公司通常不会存在扣量之类的小伎俩。
阅读本文