java_ee
文章平均质量分 78
掉了颗兔牙lx
momo
展开
-
使用 Maven 方式来创建 Spring 项目
点击下一步File下的 Settings 中搜索 maven 检查配置 在 pom.xml 文件中添加 Spring 依赖,注意保持网络畅通,大多数加载失败的情况是网络不给力/(ㄒoㄒ)/~~。加载完成后就没有红色报错。上述配置中添加了一个 spring-context (spring上下文模块)以及 spring-beans (管理对象模块)。在 java 文件夹下创建启动类,包含 main 方法 在 Java 语言中对象也叫做 Bean,Bean 就是一个普通对象,实现代码如下。 在创建好的项目中添加原创 2022-07-02 14:52:42 · 3922 阅读 · 6 评论 -
Spring 是什么?了解 Spring 的核心以及设计思想
Spring 指的是 Spring Framework(Spring 框架),它是一个开源框架,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。Spring 是包含了众多工具方法的 IoC 容器。IoC (Inversion of Control)翻译成中文就是“控制反转”,也就是说 Spring 是一个“控制反转”的容器。也就是当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。IoC 容器相当于一个仓库,将对原创 2022-07-06 23:14:50 · 615 阅读 · 1 评论 -
SpringBoot 概念、优点以及网页版创建
目录1. 什么是 SpringBoot ?2. SpringBoot 的优点3. 网页版创建(之前有一篇IDEA版创建看这篇)SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,所谓简化是指简化了Spring众多框架中所需的大量且繁琐的配置文件,所以 SpringBoot是一个服务于 Spring 框架的框架,服务范围是简化配置文件。学习 SpringBoot 就是为了简化 Spring 框架,更加快速开发 Spring 框架,被称为 Spring 的“脚手架”。网页版创建项目先访原创 2022-07-04 23:00:03 · 433 阅读 · 0 评论 -
在 IDEA 中如何创建 SpringBoot 项目
1.1 打开 IDEA 新建项目。1.2 在左侧找到 SpringAssistant ,点击;如果没有 SpringAssistant,需要下载插件,本文中使用的是 IDEA 社区版。在设置中下载插件:1.3 等待插件加载完成。ps:插入完成橙标变蓝标。2.1 在项目中添加控制类。ps:1. 注意添加类时是在 main 目录下的 java 文件夹中添加,而不是 test 目录下的 java 文件夹中,两者的直观区别是正确的图标应该是蓝色。2. SpringBoot 项目的一大特点就是一原创 2022-07-01 23:06:53 · 3671 阅读 · 10 评论 -
多线程中的锁 —— synchronized
在 JVM 层面,synchronized 同步锁是依靠==监视器 monitor== 实现的。synchronized 同步代码块的实现是通过 monitorenter 和 monitorexit 指令,其中 monitorenter 指令指向同步代码块的开始位置,monitorexit 指令则指明同步代码块的结束位置。当 jvm执行到 monitorenter 指令时,当前线程试图获取monitor 对象的所有权,如果未加锁或者已经被当前线程所持有原创 2022-08-20 21:59:43 · 587 阅读 · 0 评论 -
线程安全问题以及 volatile 的使用和原理
在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况。也就是多个线程访问同一个对象时,如果不用其他操作,调用这个对象的行为都可以获得正确的结果,那么这个对象就是线程安全的。原创 2022-08-19 15:42:40 · 578 阅读 · 0 评论 -
File 类和 IO 流
在编程中,数据是存储在内存中的,但为了长久保存数据,就要使用文件(File)的形式存储,将数据存储在 I/O 设备上。 File类的对象代表操作系统的文件,File 类在 java.io.File 包下。File类提供了诸如:创建文件对象代表文件,获取文件信息、删除文件、创建文件等功能。2. File 类的使用2.1 创建 File 类public File(String pathname) // 根据文件路径创建文件对象public File(String pare原创 2022-08-16 22:09:20 · 756 阅读 · 0 评论 -
JVM 中的垃圾回收以及垃圾回收器
上篇讲了 Java 运行时内存的各个区域,对于程序计数器、虚拟机栈、本地方法栈这三部分,其生命周期与相关线程有关,随线程生而生,随线程灭而灭。并且这三个区域的内存分配与回收具有确定性,因为当方法结束或者线程结束时,内存就自然跟着线程回收了。因此本篇主要介绍 java 堆和方法区这两个区域的垃圾回收。在 Java 中,所有的对象都是要存在内存中的,因此我们将内存回收,也可以叫做死亡对象的回收,也可以叫做垃圾回收。使用场景:在 Python 语言中采用引用计数法进行内存管理。缺点:在主流的 JVM 中没有选用原创 2022-06-17 18:12:25 · 261 阅读 · 0 评论 -
简单认识 JVM —— 了解类加载机制和双亲委派模型
JVM 是 Java Virtual Machine 的简称,Java 虚拟机。虚拟机是指通过软件模拟具有完整硬件功能、运行在一个完全隔离的环境中的完整计算机系统。JVM 是主流虚拟机,其他常见的虚拟机还有:VMwave, Virtual Box.JVM 是 Java 运行的基础,也是实现一次编译到处执行的关键。一个 java 文件从编译到执行需要经过以下四个阶段。JVM 结构图:总结来看,JVM 主要通过四个部分来执行程序。分别是:类加载器(ClassLoader)、运行时数据区(Runntime D原创 2022-06-13 14:13:16 · 710 阅读 · 3 评论 -
网络层协议和数据链路层协议
协议首部格式4位版本号:指定 IP 协议的版本,IPV4 就是4,IPV6 就是6.4位首部长度:IP 首部的长度是 n 个32 bit,也就是 length * 4 的字节数。8位区分服务:4位 TOS 字段和1位保留字段(必须置零)。4位 TOS 字段分别是:最小延时,最大吞吐量,最高可靠性,最小成本。这四者相互冲突只能选择一个。16位总长度:IP 数据报整体占多少个字节。16位标识:唯一的标识主机发送的报文。3位标志字段:第一位保留;第二位置为1表示禁止分片;第三位表示“更多分片”,如果原创 2022-06-13 10:08:24 · 988 阅读 · 0 评论 -
传输层两大重要协议之TCP 协议
确认应答机制是一种安全机制。这种机制和序号,确认号,ACK 标志位有关。因为 TCP 报文将每个字节的数据都进行了编号,即序号。每一个 确认报文段ACK 都有对应的确认号,当主机A发送一段数据到主机B时,数据的序号是1~1000,为了确保主机B接收到了数据,主机B会回应主机A序号1001也就是 ACK 加一。意思是告诉主机A已经接收到了 1001 之前的数据,下次从1001 开始发送。这样当发送多段数据时,如果有一段数据丢失,主机B就会回应最小接收的数据段末值来告诉主机A哪段数据没有接收到。比如主机A发送序原创 2022-06-06 23:08:16 · 889 阅读 · 5 评论 -
网络经典面试题
问题:请说明在浏览器中输入 url 后到展示出页面这个过程发生的事情。1.对 URL 进行效验,如果校验通过也就是符合 HTTP 协议,先进行 DNS 解析,将 IP 地址解析出来。这一步是为了防止随便乱输的 URL 地址被当成有效的 URL 进行接下来的操作,但现如今有些浏览器被输入无效的 URL 时会自动跳转到浏览器所默认的搜索页面进行内容搜索。2.TCP 连接,也就是三次握手。三次握手图:3.握手成功后浏览器向服务器放送请求,请求数据包。4.服务器端程序接收到消息,对消息进行解析,通过原创 2022-05-31 09:26:28 · 126 阅读 · 1 评论 -
浅谈网络原理 —— 网络中的基础概念
文章目录前言1. 网络的划分1.1 局域网1.2 广域网2. IP 地址2.1 概念2.2 格式2.3 组成3. 端口号3.1 概念3.2 格式4. 协议4.1 概念4.2 作用5. 协议分层6. OSI七层模型7. TCP/IP 五层(或四层)模型8. 数据的封装和分用过程8.1 数据的封装8.2 数据的分用总结前言网络的发展是从独立模式开始的,计算机之间由相互独立到协同工作,就有了网络互连。网络互连根据规模不同可以划分为局域网和广域网。网络互连的目的是进行网络通信,也即是网络数据传输。如何进行网络原创 2022-05-31 08:15:16 · 329 阅读 · 6 评论 -
HTTP 协议和 Fiddler 的用法
文章目录1. HTTP 协议1.1 什么是 HTTP 协议1.2 HTTP 协议格式2. Fiddler 的用法2.1 Request 请求2.1.1 请求行:Method 、URL 、Version2.1.2 请求报头2.1.3 空行2.1.4 请求正文2.2 Response 响应2.2.1 状态行:Version、状态码、状态码描述2.2.2 响应报头2.2.3 空行2.2.4 响应正文1. HTTP 协议1.1 什么是 HTTP 协议HTTP 协议(HTTP 全称为 Hyper Text Tr原创 2022-05-12 00:35:37 · 615 阅读 · 7 评论 -
【多线程——死锁的产生、解决方法】
1.死锁定义:死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。2.死锁代码:import java.util.concurrent.TimeUnit;/** * 手写死锁 */public class ThreadDemo16 { public static void main(String[] args) { Object lockA = new Object(); O原创 2022-04-19 10:00:56 · 373 阅读 · 0 评论 -
【线程通讯——wait和sleep的区别】
线程通讯——wait和sleep的区别线程通讯wait 和sleep 的区别线程通讯协调线程通讯,主要涉及三个方法:wait()/wait(long timeout):让当前线程进入等待状态notify():唤醒当前对象上一个休眠的线程notifyAll():唤醒当前对象上的所有线程线程通讯注意事项:wait/notify/notifyAll 必须要配合synchronized 一起执行。wait/notify/notifyAll 进行synchronized 加锁,一定要使用同一个对象进原创 2022-04-18 19:08:55 · 255 阅读 · 0 评论 -
【线程安全问题和解决方法】
概念线程不安全指的是程序在多线程的执行结果不符合预测。线程不安全元素1.抢占式执行2.多个线程修改同一个变量//举例 如果是单个线程执行此操作,结果正确,为0/** * 线程不安全问题 */public class ThreadDemo15 { private static int num; static class Counter { //++操作 public void increment(int count) {原创 2022-04-16 22:26:55 · 389 阅读 · 0 评论 -
【线程的基本用法(创建、常见的构造方法、中断、等待、休眠)】
线程创建继承Thread/** * 继承Thread 创建线程 */public class ThreadDemo1 { public static void main(String[] args) { //创建线程 Thread thread = new MyThread(); //启动线程 thread.start(); }}class MyThread extends Thread { @Ove原创 2022-04-13 21:29:45 · 618 阅读 · 0 评论 -
进程和线程的区别和联系
进程与线程原创 2022-03-31 00:15:02 · 290 阅读 · 0 评论