JavaWeb
周末的丢
这个作者很懒,什么都没留下…
展开
-
从入门到熟悉 HTTPS 的 9 个问题
Q1: 什么是 HTTPS?BS: HTTPS 是安全的 HTTPHTTP协议中的内容都是明文传输,HTTPS的目的是将这些内容加密,确保信息传输安全,最后一个字母S 指的是 SSL/TLS 协议,它位于 HTTP 协议与 TCP/IP 协议中间。Q2: 你说的信息传输安全是什么意思BS: 信息传输的安全有三个方面:1.客户端和服务器直接通信只有自己看得懂,即使第三方拿到数据也看不到这些...转载 2020-03-20 20:12:47 · 187 阅读 · 0 评论 -
轻松理解Https
作者:翟志军https://showme.codes/2017-02-20/understand-https/本文尝试一步步还原Https的设计过程,以理解为什么HTTPS最终会是这副模样.但是这并不代表HTTPS的真实设计过程.在阅读本文时,可以尝试放下已有的对HTTPS的理解,更有利于"还原"过程.先从聊天软件说起,我们要实现A能够发一个hello消息给B:如果我们要实现这个聊天软件...转载 2020-03-19 23:32:58 · 253 阅读 · 0 评论 -
juc中lock锁
JDK 1.5 开始,引入了并发工具包 java.util.concurrent.locks.Lock,让锁的功能更加丰富。JUC中常见的锁有可重入锁 Java.util.concurrent.lock.ReentrantLock可重复读写锁 java.util.concurrent.lock.ReentrantReadWriteLock1.Semaphore是一个计数信号量,主要...原创 2020-03-06 23:22:11 · 152 阅读 · 0 评论 -
Servlet模仿用户注册登录
Servlet模仿用户登录我们需要这么几个前置知识form表单cookie-sessionjdbc依赖的类文件开发时依赖的jar包有运行时依赖的jar包我们创建一个 User 类代表用户的信息package user;public class User { int id; String username; String nickname;...原创 2020-03-05 23:40:40 · 270 阅读 · 0 评论 -
Servlet视角
@WebServlet("/info")public class RequestInfoServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOExcepti...原创 2020-03-05 11:52:43 · 93 阅读 · 0 评论 -
ThreadLocal有什么作用?有哪些使用场景?
ThreadLocal 是线程本地存储,在每个线程都创建了一个ThreadLocalMap对象,每个线程可以访问自己内部ThreadLocalMal对象内的value. 通过这种方式,避免资源在多线程见共享如果使用ThreadLocal管理变量,则每一个使用该变量的线程都会获得该变量的副本副本之间相互独立,这样每一个线程都可以随意更改自己的变量副本,而不会对其他线程产生影响ThreadLo...原创 2020-02-28 13:42:18 · 1203 阅读 · 0 评论 -
可重入锁与不可重入锁之间的区别与性能差异?
可重入锁指在同一个线程在外层方法获取锁的时候,进入内层方法会自动获取锁为了避免死锁的发生,JDK中基本都是可重入锁下面我们来测试一下synchronized和 java.util.concurrent.lock.ReentrantLock 锁的可重入性测试synchronized加锁可重入性class TestSychronizedReentrant{ public stati...原创 2020-03-05 11:53:11 · 594 阅读 · 0 评论 -
打jar包以及jar包的使用
关于jar包jar 是 Java ARchive 的缩写,是一种基本 zip 格式的文件格式。目标是将 java 生成的类文件、资源文件、管理文件等按照特定的结构打包成一个独立的文件,方便程序的发布或网络的下载。maven...原创 2020-02-20 18:18:23 · 1067 阅读 · 0 评论 -
简单的html
<html> <head> <meta charset="UTF-8"> </head> <body> <h1>一级标题</h1> <h2>二级标题</h2> <h3>三级标题</h3&...原创 2020-02-11 16:07:38 · 1446 阅读 · 0 评论 -
TCP协议(1)
TCP服务器class TCPServer{ public static void main(String[] args) throws IOException { //监听socket ServerSocket serverSocket = new ServerSocket(8888); while (true){ ...原创 2020-02-10 21:00:58 · 189 阅读 · 0 评论 -
UDP协议
创建一个服务器package package1224;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;public class Server { public static void main(String[] args) throws IOExc...原创 2020-01-20 00:48:33 · 132 阅读 · 0 评论 -
序列化和反序列化
将内存中的对象写进文件class SerializeDemo{ private static class Person implements Serializable{//具备了序列化的能力 String name; int age; public Person(String name, int age) { th...原创 2020-01-04 17:59:56 · 107 阅读 · 0 评论 -
关于HTTP响应
class URLParser{ public static void main(String[] args) throws IOException { String s = "c++"; String r = URLEncoder.encode(s,"UTF-8"); System.out.println(r); //反编...原创 2020-01-04 17:06:22 · 183 阅读 · 0 评论 -
实现一个http服务器(t)
需要先了解一下HTTP的协议格式http请求首行:[方法] + [url] + 版本Header:请求的属性,冒号分割的键值对;每组属性用\n结尾,遇到空行部分表示header结束Body:空行的后面的部分全是body,如果body存在,再Header中会有一个Content-length属性来标识body的长度http响应首行:[版本号] + [状态码] + [状态码解释]...原创 2020-01-01 19:24:18 · 1396 阅读 · 0 评论 -
打印一个目录下的所有文件
打印一个目录下的所有文件例如我有这么一个文件package package1222;import java.io.File;public class Main { private static void listDirectory(File root){ File[] files = root.listFiles(); if (files == n...原创 2019-12-27 21:27:36 · 1124 阅读 · 0 评论 -
流
内存中的源class 内存中的源{ public static void main(String[] args) throws IOException{ byte[] source = "中国 人民 站起来 了".getBytes("UTF-8");//转成了字节 InputStream is = new ByteArrayInputStream(sour...原创 2019-12-27 21:06:14 · 105 阅读 · 0 评论 -
关于线程池你需要知道
import java.util.ArrayList;import java.util.List;import java.util.concurrent.BlockingQueue;import java.util.concurrent.LinkedBlockingDeque;//只有正式员工和队列public class MyThreadPool { private sta...原创 2019-12-27 19:08:18 · 106 阅读 · 0 评论 -
阻塞队列和定时器
阻塞队列,用于生产者消费者模式 static BlockingQueue<String> queue = new ArrayBlockingQueue<>(10);//循环式队列 static BlockingQueue<String> queue2 = new LinkedBlockingDeque<>();//基本上是无上限的 ...原创 2019-12-21 15:05:46 · 487 阅读 · 0 评论 -
生产者消费者模式(队列描述)
class MyQueue2 { private int[] date = new int[100]; private int head = 0;//队首元素的下标 private int tail = 0;//队尾元素的下标 //如果head == tail 则队列满了 因为这是个前闭后开区间 private volatile int size = 0;...原创 2019-12-19 08:11:28 · 230 阅读 · 0 评论 -
关于Volatile需要知道
Volatile 变量修饰符,只能修饰属性/静态属性1.保证可见性(被修饰变量的可见性)2.保证一定的顺序性单例模式某些类在进程的允许的过程中,只需要一个对象,不允许创建多个对象出来Java中怎么写单例模式1.饿汉模式2.懒汉模式一个简单的饿汉模式class SingleTon{ private SingleTon(){} private static Si...原创 2019-12-17 12:21:16 · 175 阅读 · 0 评论 -
关于wait/notify以及顺序打印
1.等待和唤醒是同一个对象2.notify只会唤醒一个线程使用角度1.Object.wait() 会抛出 InterruptedException2.调用object.wait() 必须首先对object(monitor lock) 进行加锁class Main{ private static Object object = new Object(); private ...原创 2019-12-17 12:20:08 · 608 阅读 · 3 评论 -
关于sychronized的使用
synchronized 和 线程状态关系1.代码执行的前提:线程必须占有CPU2.线程有资格竞争CPU的前提:线程是Runnable状态0.抢锁的前提是先抢CPU1.抢锁失败状态从RUNNABLE 修改为 BLOCKED线程从就绪队列移动到该锁的阻塞队列上从开始请求锁到最终抢到锁,经历了沧海桑田放一个数组,长度为100000,创建三个线程,完成这么一个任务:数组里的每个值...原创 2019-12-15 20:35:58 · 171 阅读 · 1 评论 -
初步了解线程安全
线程的状态:Java中 Thread.State (内部定义的枚举) 只要把State的枚举带印出来package package1213;public class ThreadStateDemo { public static void main(String[] args) { Thread.State[] values = Thread.State.value...原创 2019-12-13 20:17:58 · 98 阅读 · 0 评论 -
初步认识多线程
为什么使用多线程-多线程的优势1.使用多线程有可能提升效率package package1212;import java.util.Scanner;public class Scene2 { //耗时比较慢的计算 private static long fib(int n){ if (n < 2){ return n; ...原创 2019-12-12 18:30:48 · 148 阅读 · 1 评论 -
Thread 类及常见方法
package package1128_2;public class MyThread { public static void main(String[] args) { //直接写代码块里面 new Thread(new Runnable() { @Override public void run() ...原创 2019-12-03 10:30:44 · 190 阅读 · 1 评论 -
初步认识线程
package package1125;public class CreateThread { public static void main(String[] args) { //继承自thread的写法 MyThread t = new MyThread(); t.start(); //实现Runnable接口: ...原创 2019-11-28 11:26:55 · 95 阅读 · 0 评论 -
操作系统进程线程
1.冯诺依曼体系结构我们常见的计算机如笔记本,我们不常见的计算机如服务器,大部分都是遵守冯诺依曼体系。截至目前,我们所认识的计算机,都是有一个个的硬件组成组成。输入单元:包括键盘,鼠标,扫描仪,写板等中央处理器(CPU):含有运算器和控制器等输出单元:显示器,打印机等2.操作系统任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统地理解,操作系统包括:内核(进程...原创 2019-11-09 19:28:10 · 107 阅读 · 0 评论