JavaEE
文章平均质量分 93
我可是ikun啊
这个作者很懒,什么都没留下…
展开
-
后端(四):博客系统项目
咱们在这里实现的是后端项目,前端代码就提一提,不全做重点介绍原创 2023-07-22 16:34:26 · 4226 阅读 · 2 评论 -
后端(五):JVM
JVM也就是我们俗称的八股文,作为一个普通的程序员工作中是基本不可能用到的;因为它设计的初衷就是为了让程序员能够比较简单的,感知不到系统层面的一些内容(很多时候,程序员只关注业务逻辑,不需要关注底层实现细节)。数年前开始,JVM成为了Java程序猿必考的内容。JVM里的内容非常多,大部分内容咱叶看不懂,JVM本来是写给C/C++ 程序员看的,它的底层实现都是 C/C++ 的代码,研究JVM 的也都是那一批人。我们这里针对JVM的面试题,作出以下一些讨论。本章比的不是你了解多少,比的是你能背下来多少。原创 2023-07-13 22:23:05 · 3914 阅读 · 0 评论 -
多线程(十):总结
所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。原创 2023-06-21 17:21:51 · 5128 阅读 · 1 评论 -
后端(三):后端实战(表白墙的设计)
上一章结束了 Servlet 的学习,ok,现在我们已经学会了 1 + 1 了,现在开始我们要学会 百以内的加减乘除法。本章就做一个最简单的 小小项目:表白墙。在开始表白墙项目开始之间,我们先提前说好,这里主要跟关注 后端的代码,前端的代码。我们不重点讲解,只是一笔带过罢了。原创 2023-06-14 11:27:56 · 5684 阅读 · 2 评论 -
网页三剑客之 CSS
css 在这里不会介绍太多,我们主要重点介绍两个:选择器和盒子模型就够用了。这里看个乐就好了,没有那么多重点,只是简单的认识一下下CSS。原创 2023-05-16 15:11:28 · 3153 阅读 · 0 评论 -
后端(二):Servlet
我们上一张聊的是Tomcat,它其实就是一个 HTTP 服务器,而Servlet 是基于 Tomcat 的 原生api ,除了 Servlet,后面还有聊到很多 api。原创 2023-06-12 20:05:43 · 5450 阅读 · 2 评论 -
后端(一):Tomcat
我们之前的前端是被我们一笔带过的,那不是我们要讲的重点,而这里的后端则是重点。本章先来认识认识后端的基础。原创 2023-06-01 11:21:09 · 3750 阅读 · 1 评论 -
网络原理(八):HTTPS
总的来说,其实没有绝对的安全,我们上述整个过程其实就是将黑客的破解成本提高了,黑客要是不计成本来攻击,其实也能攻的下来,但是消耗的时间和其他成本就不得而知了!!!!原创 2023-05-28 17:16:59 · 4319 阅读 · 5 评论 -
网络原理(七):http 协议(下)
之前说的都是请求中的内容,其中部分也是响应中携带的内容;我们这一篇来讲讲响应中特殊的属性。原创 2023-05-25 17:55:03 · 3266 阅读 · 1 评论 -
网络原理(六):http 协议(上)
既然是代理,也就是说:客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过Fiddler然后发送到客户端,基于这个原因,Fiddler支持所有可以设置http代理为127.0.0.1:8888的浏览器和应用程序。我们这个网站上有很多css 样式吧,也有很多图片啊等等,我们把这些缓存在本地上,那么下次的时候是不是就可以不用重新加载了,css 样式等经常不会变的东西,每次都需要重新加载太浪费资源了,同时也可以减轻服务器的压力。如果选错了就需要重新下载。原创 2023-05-23 23:30:47 · 4408 阅读 · 4 评论 -
网络原理(五):IP 协议
CIDR 叫做无类域间路由,ISP 常用这样的方法给客户分配地址,ISP 提供给客户1 个块(block size),类似这样:192.168.10.32/28,这排数字告诉你你的子网掩码是多少,/28 代表多少位为1,最大/32.但是你必须知道的一点是:不管是A类还是B类还是其他类地址,最大可用的只能为/30,即保留2 位给主机位。因此,很少有设备真正有机会看到您设备的 MAC 地址。将 IP 地址和子网掩码进行“按位与”操作(二进制相同位,与操作,两个都是1结果为1,否则为0),得到的结果就是网络号。原创 2023-05-10 14:47:03 · 3535 阅读 · 24 评论 -
网络原理(四):传输层协议 TCP/UDP
我们介绍了 udp 协议,和 tcp 协议确认应答,超时重传(确保可靠性的核心机制)链接管理(网络链接的核心机制,三次握手和四次挥手面试常考)滑动窗口(优化手段,增加效率)流量控制,拥塞控制(组成滑动窗口的机制,也是优化手段,其中流量控制也是保证可靠性的一种)延时应答,捎带应答( 提升效率的机制 )】原创 2023-04-27 08:53:22 · 1542 阅读 · 14 评论 -
网络原理(二):网络编程
网络通常指的是计算机中的互联网,是由多台计算机通过网线或其他媒介相互连接组成的,编写基于网络的应用程序的过程称之为网络编程。网络上的主机通过不同进程,以搬移的形式实现的网络通信(完成的数据传输);当然,我们只要满足进程不同就行;所以即便是同一个主机,只要是不同进程,基于网络来传输数据,也属于网络编程。网络编程又叫套接字,实现网络通信的两端就是套接字。分为服务器对应的套接字和客户端对应的套接字。原创 2023-04-22 17:06:04 · 180 阅读 · 2 评论 -
网络原理(一):初识网络
整个数据封装的过程就像俄罗斯套娃。原创 2023-04-06 14:33:39 · 483 阅读 · 3 评论 -
网页三剑客之 Javascript
JavaScript 的作者是 布兰登 * 艾奇 (Brendan Eich)。1995 年, 用 10 天时间完成 JS 的设计 (由于设计时间太短,语言的一些细节考虑得不够严谨,导致后来很长一段时间,Javascript 写出来的程序混乱不堪)最初在网景公司, 命名为 LiveScript,一般认为,当时 Netscape 之所以将 LiveScript 命名为 JavaScript,是因为 Java 是当时最流行的编程语言,带有 "Java" 的名字有助于这门新生语言的传播。原创 2023-05-15 10:29:48 · 1243 阅读 · 2 评论 -
网页三剑客之 HTML
本章开始我们来介绍一下网页前端部分,我们只是简单的介绍一些常用的各种标签,其目的在于为我们后面的项目做准备。我们并不要求能完全掌握前端的语法,但是在见到以后能够认识这些代码就可以了。想走后端开发的,前端不需要多么熟悉,毕竟在各个企业中前后端都是分离的,全栈的岗位其实并没有那么多。废话不多说,我们来正式开始HTML 的认识。原创 2023-05-01 20:20:58 · 1064 阅读 · 1 评论 -
文件:IO流
针对硬盘这种持久化存储的I/O设备,当我们想要进行数据保存时,往往不是保存成一个整体,而是独立成一个个的单位进行保存,这个独立的单位就被抽象成文件的概念,这就叫做文件文件管理采用的是树形结构,是N叉树,至于目录,其实就是文件夹。原创 2023-04-11 13:17:13 · 410 阅读 · 0 评论 -
多线程(九):JUC组件
补充:synchronized 实现策略:锁升级:无锁 -> 偏向锁 -> 轻量级锁 -> 重量级锁锁消除即删除不必要的加锁操作。JVM在运行时,对一些“在代码上要求同步,但是被检测到不可能存在共享数据竞争情况”的锁进行消除。根据代码逃逸技术,如果判断到一段代码中,堆上的数据不会逃逸出当前线程,那么就可以认为这段代码是线程安全的,无需加锁。就是在编译阶段 做的优化手段 ~~ 检测到当前代码是否是在多线程状态下运行的 / 是否有必要去进行加锁操作。原创 2023-04-19 22:15:55 · 722 阅读 · 1 评论 -
多线程(八):常见锁策略
接下来讲解的锁策略不仅仅是局限于 Java . 任何和 "锁" 相关的话题, 都可能会涉及到以下内容. 这些特性主要是给锁的实现者来参考的,我们普通程序员多了解了解锁,对使用也有很大的帮助。下面我会使用很多插图来更好的了解。接下来的插图皆来自于网络。原创 2023-04-15 09:27:26 · 685 阅读 · 2 评论 -
多线程(七)线程池
线程池,又是一个池,我们已经见识过很多池了:数据库连接池、字符串常量池....那我们这个线程池又是个啥呢?我们提前将线程准备好,需要用的时候直接取,不需要用的时候,在直接还回去。这样就不需要去从系统中申请了。这样做,最大的好处就是减少每次启动、销毁线程的损耗池的目的就是为了提高效率。虽然线程对比于进程较为轻量,但是频繁的创建、销毁依旧开销很大。从线程池拿线程,时纯粹的用户态操作;而从系统创建线程涉及到了用户态和内核态之间的切换;真正的创建线程是要在内核态完成的。原创 2023-04-05 17:01:56 · 433 阅读 · 0 评论 -
多线程(六):多线程案例
多线程最最经典案例就是上一章的单例设计模式。当然除了单例设计模式,还有其他的案例。本章就 一一 来介绍。原创 2023-04-03 15:20:22 · 560 阅读 · 3 评论 -
多线程(五):wait 和 单例设计模式
在开始讲解单例设计模式之前,先来复习先前的知识。上一章一共讲了以下内容:1. 给了一个线程不安全的例子(两个线程各自增 5w 次,结果为一个小于 10w 的随机数)2. 线程抢占式执行,执行到任何一行都可能跳出去执行其他线程的代码。3. 多个线程同时修改一个变量4. 修改操作不是原子的5. 内存可见性6. 指令重排序对此的解决方式就是:加锁,也就是将其写在 synchronized 代码块内部。原创 2023-03-29 11:21:10 · 219 阅读 · 1 评论 -
多线程(四):线程安全
一个代码在单线程中能够安全执行,但是在多线程中就容易出现错误;其本质原因就是线程在系统中的调度是无序的 / 抢占式执行的。原创 2023-03-25 22:07:21 · 500 阅读 · 3 评论 -
多线程(三):Thread 类的基本属性
上一个篇章浅浅了解了一下 线程的概念,进程与线程的区别,如何实现多线程编程。而且上一章提到一个重要的面试点: start 方法和 run 方法的区别。start 方法是从系统那里创建一个新的线程,这个线程会自动调用内部的run 方法;run 方法是一个线程的执行入口,所有的实现逻辑都写在该方法里。从概念上来说,这两个方法是属于线程的属性。我们接着这个线程属性继续来认识线程。原创 2023-03-22 22:06:45 · 934 阅读 · 3 评论 -
多线程(二):线程介绍
上一章我们聊了聊什么是进程,本章就来聊聊什么叫线程。原创 2023-03-20 22:10:35 · 421 阅读 · 8 评论 -
多线程(一): 进程 基础
进程(Process)又名任务(Task)是关于某数据集合上的一次运行活动,进程是操作系统进行资源分配的最小单位(这是文章最最重要的要点之一)。-- -百度百科原创 2023-03-18 16:45:12 · 552 阅读 · 6 评论