![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java EE初阶
文章平均质量分 90
想跳上月球
学习、记录、分享
有问题请指正,欢迎骚扰
展开
-
【Https】工作流程
Https协议是由SSL (安全套接层) + HTTP协议 构建的可进行加密传输 , 身份认证的网络协议 , 要比HTTP协议安全 , 可有效防止数据在传输过程中被篡改. 虽然不是绝对安全的 , 但是它大幅度增加了黑客进行中间人攻击的问题.原创 2023-12-14 09:32:46 · 309 阅读 · 0 评论 -
【JVM】Java虚拟机
Java程序最开始写的是一个.java文件,编程成.class文件.运行java程序的时候,JVM会读取.class文件,把文件的内容放到内存中,并且构造成.class对象(类对象) . 也就是把类从硬盘文件中,加载到内存中.有些情况,不方便重启,就可以打补丁,通过一些方法把旧版本的类给卸载掉,直接用加载好的新的类替换,不重启服务器,也可以更新代码 .而可达性分析,消耗的是时间,并不会引入额外的空间开销,但是进行上述的遍历,需要消耗时间.如果释放,就可能会破坏原有的连续性,导致有内存,但是申请不了.原创 2023-11-17 12:38:51 · 610 阅读 · 0 评论 -
【Linux】一
本文使用的是云服务器来获取Linux环境 (使用虚拟机同样可以学习使用命令), 并且介绍了常用的Linux 命令.获取Linux环境使用xshell连接到云服务器1.新建会话 输入主机号(云服务器的外网ip)2.输入用户名/密码centos的用户名:root密码就是在后台设置的3.成功进入~描述的当前所处的目录位置它是一个特殊的目录,表示该用户的home目录Linux命令尽管Linux命令有很多,但是日常工作中,常原创 2023-11-16 17:16:17 · 250 阅读 · 0 评论 -
【博客系统】 一
后端将从数据库读取到的对象转换为json字符串,转成的json字符串就是根据Blog对象的getter方法来完成的 ,jackson会自动调用getter方法把得到的结果作为json字符串中属性的值. 因此问题出在posttime的getter方法上,当浏览器发起一个形如blog的http请求时,服务器就会调用查询数据库,并获取到数据库中的数据,然后转换为json格式的字符串,再返回给前端,前端拿到数据之后,回调函数进行遍历数据,依据返回的数据构造出html片段。不存在会话就创建,存在就查询;原创 2023-11-16 09:21:18 · 127 阅读 · 0 评论 -
【Servlet】 四
本文主要介绍了cookie和session的区别和联系 .一.cookie1.cookie是浏览器在本地持久化存储数据的一种机制cookie的数据从哪里来服务器返回给浏览器的cookie的数据什么样cookie中是键值对结构的数据,并且这里的键值对都是程序员自定义的cookie有什么作用cookie可以在浏览器存储一些临时性数据,其中最典型的一种是用方式,就是永存存储身份标识cookie到哪里去cookie的内容会在下次访问该网站的时候,自动被带到http请求中cookie怎么存的。原创 2023-11-09 11:28:50 · 112 阅读 · 0 评论 -
【Servlet】 三
当输入内容, 点击提交 , 浏览器就会根据输入的内容构造成一个js对象,然后会将js对象转换为json字符串 , 然后浏览器通过http请求将这个字符串发送给服务器;服务器会将请求中的json字符串,通过key匹配到的value赋值给对象相应的属性,转换为对象 , 接着服务器将这个对象存储到数据库.通过对象的属性,就能获取到页面的内容;3.函数可以和变量一样赋值,此处的函数,也相当于是回调函数,合适的时机才会执行。后续有页面的时候,此时就通过网络,从服务器获取到之前保存的好的内容。原创 2023-11-09 09:32:07 · 296 阅读 · 0 评论 -
【Servlet】 二
本文主要介绍了如何运用smart Tomcat与IDEA的结合方便地编写Servlet代码引言前面我们介绍了编写Servlet程序的七个步骤,如下:一旦有错误 , 如果需要修改代码,就需要重复上述567 ,比较麻烦...于是有大佬想出来一个办法:让idea和tomcat集成起来,直接使用idea图形化界面把代码 部署到tomcat上,达成一.smart Tomcat插件这个集成的工具就是smart Tomcat插件 , 在idea的插件市场中搜索下载即可!1.配置。原创 2023-11-02 13:49:05 · 48 阅读 · 0 评论 -
【Servlet】 一
本文主要介绍了如何在tomcat部署一个webapp 以及 如何借助maven用servlet编写一个hello world .原创 2023-11-02 09:01:19 · 129 阅读 · 0 评论 -
【Http协议】 二
ajax是一种异步的通信方法,通过代码发出http请求,请求发出去之后,js代码就继续往下执行,当服务器的响应回来之后,就会自动的通知咱们的代码中,进一步的处理响应。https也是基于http,前面所有http的知识在https当中也同样有效,https就是在http的基础上进行了加密,同时https也是为了避免运营商劫持。此处的异步是指:js代码在执行ajax的时候,把请求发出去之后,就会立即往下执行,一直到响应回来,才调用success。实际开发中,经常需要能够手动的构造出Http协议的请求。原创 2023-10-31 10:44:37 · 70 阅读 · 0 评论 -
【Http协议】 一
首次访问网站,登陆成功之后,网站就会有一个sessionId,它会被服务器返回给浏览器的响应,保存在浏览器的Cookie中,服务器也会创建一个对应的Session,记录一些关键信息,服务器会用类似于hash表这样的方式,以sessionId为key,以session为value,把数组组织起来。当前网站涉及到两个域名,一个网站cookie中会存储很多键值对,其中往往会有一个很重要的键值对,用来表示用户的身份信息,标识当前请求来自哪个用户,这样登陆一个网站之后,后续再访问这个网站,就不必重新登陆。原创 2023-10-30 21:13:54 · 87 阅读 · 0 评论 -
【Java网络原理】 六
将手机上的内容投屏到电视上,前提是手机和电视在同一个局域网下(同一个wifi下),手机点击搜索设备,就能把所有同一个局域网下的设备都找出来,这个搜索的过程就可以基于广播IP实现。最大长度虽然只有64kb,但是IP协议自身支持拆包组包机制,如果需要携带一个比较长的数据,IP协议会自动把数据报拆成多个,接收方分用的时候,也会把多个数据报合并成一个数据报。由于路由器,无法做到理解全貌,只能认识部分网络环境,在这个前提下,进行路由转发,走一步算一步,给出的路径不一定是最优解,只能说是较优解。但是这种方法只能缓解!原创 2023-10-29 19:06:09 · 277 阅读 · 0 评论 -
【Java网络原理】 五
ACK是应答报文SYN申请建立连接的请求 同步报文段。原创 2023-10-28 19:07:16 · 374 阅读 · 0 评论 -
【Java网络原理】 四
Java中的各种对象,是无法直接传输的>在发送的时候,就需要把对象转成二进制字符串 ---序列化>收数据的时候,也需要把二进制字符串转回对象 ---反序列化通信的要求:客户端的请求以及服务器的响应,具体的数据组织格式,是非常灵活的,程序员想怎样组织都可以,只需要保证客户端和服务器使用的相同的规格就行应用层有很多现成的协议,但是有时候需要程序员自定义协议。注意:自定义格式虽然可以任意,但是为了避免出现过于天马行空的设计,有一些大佬就搞出了一些 通用的协议格式,对我们的协议设计是有重要的指导作用的。下面原创 2023-10-26 08:41:31 · 179 阅读 · 0 评论 -
【Java网络编程】 三
accept是把内核中已经建立好的连接,拿到应用程序中,返回值是一个socket对象,这个对象就像一个耳麦,既可以说话,也可以听到对反的声音。hasNext()在客户端没有发请求的时候,也会阻塞,一直阻塞到客户端发了请求,或者是客户端退出,它就返回了。3.当服务器执行到accept时,此时如果客户端还没来,accept就会阻塞,直到有客户端连接成功为止。1.循环之后,服务器要做的事情不是读取客户端的请求,而是先处理客户端的连接,因为TCP是面向连接的。1.关闭当前的socket!放在finally当中。原创 2023-10-24 20:27:00 · 118 阅读 · 0 评论 -
【Java网络编程】二
网络编程,就是写一个应用程序,让这个程序可以使用网络通信,这里就需要调用传输层提供的api了。严格的来说,两台主机进行通信就是两台主机中的应用进程进行通信。端到端的通信是应用进程之间的通信。传输层和网络层的区别为主机之间的通信提供服务;在网络层的基础上,为应用进程提供通信服务;原创 2023-10-24 19:45:07 · 128 阅读 · 0 评论 -
【Java网络初识】 一
wan口连接的是互联网,负责和外部沟通,一般连接的是电信或移动的网络;lan口连接的是内部网,负责内部之间的联系,一般连接家里的电脑、手机、监控等设备。广域网:Wide Area Network(WAN)通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个地区、城市和国家,或横跨几个洲并能提供远距离通信。路由器内部有一张路由表,当它收到网络层的数据报后,会根据这张表的目的IP地址选择路径,将数据报转发给下一个路由器/交换机或者计算机。交换机的口不分wan口和lan口 所有的口都是等价的。原创 2023-10-24 13:12:19 · 83 阅读 · 0 评论 -
【Java文件io】二
通俗易懂!!!原创 2023-10-11 22:47:24 · 37 阅读 · 0 评论 -
【Java文件io】 一
通俗易懂!!!原创 2023-10-11 15:32:58 · 28 阅读 · 0 评论 -
【多线程】 九
本文主要介绍了java.util.concurrent包的几个常见类,包括可以创建线程的Callable接口、ReentrantLock可重入锁、Semaphore信号量以及CountDownLatch拆分任务的应用场景,还讨论了集合类的线程安全问题。原创 2023-10-08 19:36:00 · 32 阅读 · 0 评论 -
【多线程】 八
死锁的三种典型情况:1.一个线程,一把锁,但是是不可重入锁,该线程针对这个锁连续加锁两次,就会出现死锁;2.两个线程,两把锁,这两个线程先分别获取一把锁,然后再同时尝试获取对方的锁;3.N个线程M把锁针对第3种情况 N个线程M把锁 ,就有一个哲学家就餐问题的典型案例。原创 2023-10-08 18:52:45 · 37 阅读 · 0 评论 -
【多线程】 七
如果我们需要频繁的创建和销毁线程,此时创建销毁线程的成本,就不能忽视了。因此就可以使用线程池提前创建好一波线程,后续需要使用线程,就可以直接从池子里拿一个即可。本来,需要创建/销毁线程;现在,从池子里获取现成的线程,并且把线程归还到池子中;如果从系统创建,需要调用系统api,进一步的由操作系统内核完成线程的创建过程(内核给所有的进程提供服务)如果是从线程池这里获得线程,上述的内核中进行的操作,都是提前做好的,现在的取线程的过程,是纯粹的用户代码完成(纯用户态)原创 2023-10-06 21:57:47 · 37 阅读 · 0 评论 -
【多线程】 六
本文主要介绍了如何用循环队列实现一个阻塞队列来模拟一个生产者消费者模型,以及定时器Timer类的使用还有如何使用优先级队列来实现一个自己的定时器。原创 2023-09-25 20:50:30 · 31 阅读 · 0 评论 -
【多线程】 五
前面的【多线程】一二三四主要是多线程的基础,介绍了一些多线程的基本概念。从本文开始是多线程进阶内容,将会介绍四个典型案例,本文说到的是第一种模式:单例模式。原创 2023-09-24 00:15:24 · 46 阅读 · 0 评论 -
【多线程】 四
把volatile用来修饰一个变量之后,编译器就明白,这个变量是 易变的 ,就不会按上述方式,把读操作优化到读寄存器中,于是就能保证t1在循环过程中,始终都能读取内存中的数据;这个代码中有两个线程,t1线程和t2线程,我们想要实现的是:t2输入isQuit的值,如果不是0,那么停止线程t1的执行。虽然在t2中改变了isQuit的值,但是在另一个线程中,并没有重复读取isQuit的值,因此t1就无法感知到t2的修改;而没有感知到t2已经修改了t2的值,跳过从读内存的操作,导致了内存可见性问题的出现。原创 2023-09-20 13:57:16 · 43 阅读 · 0 评论