
java
文章平均质量分 90
未子涵
简书主页:https://www.jianshu.com/u/cdce76b2fd5b
展开
-
信息安全的护城河:数字证书与数字签名技术
前言我们都知道信息在网络中的安全传输,其核心是依托于各种加解密机制,发送方的明文通过加密算法转为密文,再通过网络传输给接收方,接收方再通过解密算法将密文还原为明文。目前应用最广的加解密机制是 对称加密 和 非对称加密。加密能保证数据以密文的形式在网络中传输,但密钥本质上也是一段明文数据,如果密钥的发放是线下进行的(即数据交换的双方是面对面通过U盘等物理介质交换密钥),那这个过程中的安全性是没有问题的。但绝大多数情况下,密钥必须通过网络发放,因此密钥的发放本身又是另一个信息安全传输的问题,如果这个问题得不原创 2021-08-16 10:56:22 · 852 阅读 · 0 评论 -
让你彻底明白:HTTPS安全通信机制
一点点历史回顾ARPAnet Reference Model1969年11月,美国国防部 高级研究计划管理局( ARPA 全称: Advanced Research Projects Agency)开始建立一个命名为ARPAnet的网络,这是就是互联网的前身,一个军事用途的网络。TCP/IP Reference Model随着ARPAnet网络的逐渐发展,更多的主机接入,原来的架构和协议已经不够用了,研究人员把重点投向了第二代网络协议的研究,于是TCP/IP协议簇出现了。而TCP/IP簇使用的网络参原创 2021-08-10 23:55:04 · 3724 阅读 · 14 评论 -
面向对象设计的“7大原则”
本文转载自 《面向对象设计原》。为提高阅读效率,在原文基础上做了删减与部分示例代码的修改。开闭原则定义勃兰特·梅耶在其1988年的著作《面向对象软件构造》中提出了开闭原则(Open Closed Principle,OCP)经典定义:软件实体应当对扩展开放,对修改关闭。通俗来讲,就是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。实现方法主要是通过“抽象约束、封装变化”来实现开闭原则。【例】windows的桌面主题设计主题有共同.转载 2021-06-20 15:57:33 · 314 阅读 · 0 评论 -
Java并发编程(三) - 实战:线程同步的实现
synchronized关键字首先,来看一个多线程竞争临界资源导致的同步不安全问题。package com.example.weishj.mytester.concurrency.sync;/** * 同步安全测试 * * 在无任何同步措施时,并发会导致错误的结果 */public class SyncTest1 implements Runnable { // 共享资源(临界资源) private static int race = 0; private static final原创 2020-10-13 21:52:23 · 256 阅读 · 1 评论 -
Java并发编程(二) - 线程基础
线程的实现主流的操作系统都提供了线程实现,Java语言则提供了在不同硬件和操作系统平台下对线程操作的统一处理。我们注意到Thread类与大部分的Java API有着显著差别,它的所有关键方法都是声明为Native的。这就说明,有关线程的操作,底层都是与平台相关的。实现线程主要有3种方式:使用内核线程实现、使用用户线程实现和使用用户线程加轻量级进程混合实现。1.使用内核线程实现内核线程(Kernel-Level Thread,KLT)就是直接由操作系统内核支持的线程,这种线程由内核来完成线程切换,内核原创 2020-10-13 21:49:43 · 208 阅读 · 0 评论 -
Java并发编程(一) - 初识并发
本文主要内容出自周志明老师《深入理解Java虚拟机》一书,是笔者结合自己的理解,做了一些补充,重新组织排版后,总结的读书笔记。计算机性能摩尔定律当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18-24个月翻一倍以上。Amdahl定律系统中对某一部件采用更快执行方式所能获得的系统性能改进程度,...原创 2020-03-25 16:13:01 · 264 阅读 · 0 评论 -
Java内存模型
本文主要内容出自周志明老师《深入理解Java虚拟机》一书,是笔者结合自己的理解,提取重点,重新组织排版后,总结的读书笔记。计算机性能摩尔定律:描述处理器晶体管数量与运行效率之间的发展关系。Amdahl定律:通过系统中并行化与串行化的比重来描述多处理器系统能获得的运算加速能力。并发处理的广泛应用,使得Amdahl代替摩尔定律成为计算机性能发展的源动力,而这种更替也代表了近年来硬件发展...原创 2018-11-05 14:52:48 · 156 阅读 · 0 评论 -
XML解析工具类
这是一个接收xml格式的string,并进行解析的工具类。注:该工具类参考了其他网友的代码,链接忘了。package com.jackie.mytestproject.xmltest;import java.io.IOException;import java.io.StringReader;import java.util.ArrayList;import java.util.List...原创 2017-04-13 11:01:01 · 338 阅读 · 0 评论 -
JAVA移位运算符
转载:http://jinguo.iteye.com/blog/540150移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。 在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定...原创 2017-04-13 11:00:55 · 322 阅读 · 0 评论 -
使用multipart/form-data批量上传文件(文件类型可不同)
Http上传中Header信息内要指定ContentType以告知浏览器你所上传的文件类型,如果需要在一次request中上传多个文件(甚至可以是多种文件类型),就可以使用CONTENT_TYPE = "multipart/form-data"这种混编格式来完成,具体做法可以参照示例代码,而相关的介绍则可以参看:关于混编格式multipart/form-data官方介绍关于Java UUID ...原创 2017-04-13 11:00:26 · 3313 阅读 · 4 评论 -
分割字符串的类StringTokenizer的使用
要分割一个字符串,除了常用的String.split(String delimiter)方法外,还有java.util.StringTokenizer;它的简单用法举例:String str = "You are tokenizing a string";//使用java默认的分界符(空格,回车,换行等等)//StringTokenizer stringTokenizer = new Stri...原创 2017-04-13 10:57:59 · 599 阅读 · 0 评论 -
struts1+json的应用
struts1不像struts2一样,并未对json做集成,因此要使用json就必须自己写代码实现json对象的封装,可以在BaseAction中写一个共通方法,用于封装后台的数据为json对象并发送到前台:public class BaseAction extends Action{ private String encoding = "UTF-8"; private Stri原创 2017-04-13 10:57:32 · 2574 阅读 · 1 评论