
java学习分享
文章平均质量分 70
多吃维C~
这个作者很懒,什么都没留下…
展开
-
IDEA热部署的实现
我们代码运行的时候都是依靠的target目录下的.class代码,我们可以进行热部署操作使.class的代码随着我们写的代码实时变化/刷新(不需要再手动重启项目),这样能极大的方便我们的操作~~4、启动项目使用debug,而非run运行(很多版本的IDEA点run也能实现)3、启动项目使用debug,而非run运行(很多版本的IDEA点run也能实现)2、通过启动文件配置热部署。1、添加热部署框架支持。1、添加热部署框架支持。原创 2023-03-12 22:19:55 · 1324 阅读 · 1 评论 -
Bean的生命周期
需要注意的是:“实例化”和“初始化”是两个完全不同的过程,千万不要搞混,实例化只是给 Bean 分配了内存空间,而初始化则是将程序的执行权,从系统级别转换到用户级别,并开始执行用户添加的业务代码。执行初始化方法(两种执行方式,一种是执行@PostConstruct注解,另一种是执行init-method方法)所谓的生命周期指的是一个对象从诞生到销毁的整个生命过程,我们把这个过程就叫做一个对象的生命周期~~销毁 Bean(将 Bean 对象进行销毁操作)执行初始化的前置方法。执行初始化的后置方法。原创 2023-02-14 12:35:11 · 519 阅读 · 0 评论 -
Bean的六种作用域
prototype说明:该作用域下的Bean存在多个实例(对象),每获取一次Bean及注入一次Bean(装配一次Bean)就会创建出一个新的对象~~singleton说明:该作用域下的Bean只存在一个实例(对象),获取Bean及注入Bean(装配Bean)都是同一个对象,它是默认的~~限定程序中变量的可用范围叫做作用域,Bean对象的作用域是指Bean对象在Spring整个框架中的某种行为模式~~application说明:每一个应用创建一个新的Bean实例,限定SpringMVC中使用~~原创 2023-02-13 17:32:32 · 1078 阅读 · 0 评论 -
IP协议详解
如果当前的目的IP路由器认识,就会给出一个明确的路线~~如果当前的目的IP路由器不认识,路由器就会把数据报转发给一个"更见多识广"的路由器(在路由表里有一个默认的选项,下一跳)~~发送方发送IP协议数据报的时候,就先计算一个校验和,接收方接收的时候,按照同样的规则再算一次校验和,最后看一下两次校验和是不是一样的(这里出现问题的概率还是比较小的)同一个局域网中,主机之间的网络号是相同的,主机号是不同的~~在两个相邻的局域网中,要求网络号是不同的,主机号随意(同一个路由器连接的局域网)~~它用来区分前后顺序。原创 2023-01-30 17:08:27 · 1184 阅读 · 0 评论 -
Linux的基本使用&在Linux上部署程序
Linux严格意义来说只是一个"操作系统内核",一个完整的操作系统 = 操作系统内核 + 配套的应用程序由于 Linux 是一个完全开源免费的内核,因此有些公司/开源组织又基于 Linux 内核,提供了不同的配套程序,这就构成了不同的 "发行版"Linux发行版有centos、redhat、ubuntu等.....原创 2023-01-16 12:46:27 · 1249 阅读 · 1 评论 -
HTTP协议解析
HTTP (全称为 "超文本传输协议") 是一种应用非常广泛的应用层协议~~我们平时打开一个网站, 就是通过 HTTP 协议来传输数据的。HTTP工作过程:当我们在浏览器中输入一个 "网址",此时浏览器就会给对应的服务器发送一个 HTTP 请求,对方服务器收到这个请求之后,经过计算处理,就会返回一个 HTTP 响应这个过程中浏览器可能会给服务器发送多个 HTTP 请求, 服务器会对应返回多个响应, 这些响应里就包含了页面HTML, CSS, JavaScript, 图片,字体等信息。原创 2023-01-03 16:45:13 · 1096 阅读 · 0 评论 -
UDP协议与TCP协议详解
UDP,即User Datagram Protocol,用户数据报协议UDP协议的特点:无连接,不可靠传输,面向数据报,全双工无连接:知道对端的IP和端口号就直接进行传输,不需要建立连接;不可靠传输:没有任何安全机制,发送端发送数据报以后,如果因为网络故障该段无法发到对方,UDP协议层也不会给应用层返回任何错误信息;面向数据报:应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并;原创 2022-12-28 13:26:29 · 1579 阅读 · 1 评论 -
JAVA文件基本操作与概念
我们知道 I/O 的速度是很慢的,所以,大多的 OutputStream 为了减少设备操作的次数,在写数据的时候都会将数据先暂时写入内存的一个指定区域里,直到该区域满了或者其他指定条件时才真正将数据写入设备中,这个区域一般称为缓冲区缓冲区一般分为输入缓冲区和输出缓存区,输入缓冲区是输入设备与内存通信的缓冲区,输出缓冲区是内存与输出设备通信的缓冲区但造成一个结果,就是我们写的数据,很可能会遗留一部分在缓冲区中。需要在最后或者合适的位置,调用 flush(刷新)操作,将数据刷到设备中。原创 2022-12-16 16:39:37 · 730 阅读 · 0 评论 -
初识CAS
CAS:全称Compare and swap,字面意思:”比较并交换“,CAS用于保障操作的原子性(线程安全)CAS的操作是将寄存器A的值与内存M的值进行比较,如果相同则把寄存器B的值和M的值进行交换(交换是指把内存的值放到寄存器B,同时把寄存器B的值写给内存),如果不相同则无事发生~~CAS是由CPU的一条指令,原子的完成的,是线程安全的,效率很高(比加锁的效率高)~~CAS的ABA问题ABA问题就是当我们将寄存器A的值与内存中的值进行比较,发现寄存器A中的值和内存中的值相同,但是我们无法判定内存中的值是原创 2022-12-07 22:18:26 · 139 阅读 · 0 评论 -
HashTable, HashMap, ConcurrentHashMap 之间的区别
HashMap是单线程环境下使用的哈希表,它是线程不安全的,在多线程环境下使用HashMap可能会出现线程安全的问题~HashTable使用了synchronized关键字来确保线程安全,但是HashTable的加锁方式是对于整个HashTable对象的加锁,也就是相当于对整个哈希表加锁,锁粒度非常粗,这样的话多个线程下,无论这些线程都是如何操作这个哈希表,都会产生锁冲突,效率会非常低下~ConcurrentHashMap是我们在多线程环境下推荐使用的一种线程安全的哈希桶结构,ConcurrentHashM原创 2022-12-07 22:08:18 · 250 阅读 · 0 评论 -
数据库的常用操作
以下所有的[]都是可选的意思。原创 2022-11-26 12:05:56 · 1871 阅读 · 0 评论 -
初识JavaScript
boolean:true 真,false 假~~true可以隐式转换为1,false可以隐式转换为0~~非0为true0为false~~JS 的变量类型是程序运行过程中才确定的运行到 = 语句才会确定类型)~~随着程序运行, 变量的类型是可以发生改变的~~对于js数组来说,[]里是非负整数时才把这个操作视为是"操作下标",其他的都认为是属性~~var是老式写法,里面坑比较多~~let是新式写法,这个是当前的推荐写法~~JS的数组长度是可以动态变化的,JS 的数组不要求元素是相同类型~~原创 2022-11-10 21:05:27 · 904 阅读 · 0 评论 -
初识CSS
CSS嵌入到 html 内部,CSS 要写到 style 标签中,style标签可以放到页面任意位置,但一般放到 head 标签内~~外部样式是实际开发中最常用的,复用性毕竟高~~首先它需要先创建一个.css文件,再使用link标签引入css~~标签选择器:能快速为同一类型的标签都选择出来,但是不能差异化选择~~类选择器:差异化表示不同的标签,可以让多个标签的都使用同一个标签~~通配符选择器:表示页面中的所有标签,通常用于干掉浏览器的默认样式~~使用html标签里的style属性,只针对当前元素生效~~原创 2022-10-31 20:51:32 · 442 阅读 · 0 评论 -
初识html
HTML是由一些标签构成了,每个标签都有开始标签与结束标签~~也有部分标签,只有开始标签(单标签)~~标签之间可以嵌套~~for 属性:指定当前 label 和哪个相同 id 的 input 标签对应 (此时点击才是有用的)select 标签:下拉菜单,里面的每个选项是一个option标签。HTML的标签(tag),也可以称为元素(element)~~html 标签是整个 html 文件的根标签(最顶层标签)input标签:有很多形态,这些形态表示了不同的元素效果。表单标签:表单标签是为了和用户交互的~~原创 2022-10-29 21:19:23 · 697 阅读 · 0 评论 -
TCP协议与UDP协议详解
下一次你从哪里开始发。掉电的是接收方:发送方是不知道对面挂了的,继续发数据(没有ack),之后触发超时重传,重传几次之后仍没有应答,尝试重置链接(也会失败,触发复位报文段RST),最后只能放弃连接。发送方发送数据的时候,就先计算一个校验和,接收方接收的时候,按照同样的规则再算一次校验和,最后看一下两次校验和是不是一样的(这里出现问题的概率还是比较小的)发送方发送数据的时候,就先计算一个校验和,接收方接收的时候,按照同样的规则再算一次校验和,最后看一下两次校验和是不是一样的(这里出现问题的概率还是比较小的)原创 2022-10-21 16:55:45 · 9302 阅读 · 0 评论 -
网络通信基础(一)
网络编程,指网络上的主机,通过不同的进程,以编程的方式实现网络通信(或称为网络数据传输)当然,我们只要满足进程不同就行;所以即便是同一个主机,只要是不同进程,基于网络来传输数据,也属于网络编程我们一定要明确,我们的目的是提供网络上不同主机,基于网络来传输数据资源:进程A:编程来获取网络资源进程B:编程来提供网络资源。原创 2022-10-14 22:28:28 · 291 阅读 · 0 评论 -
IO知识点总结
我们知道 I/O 的速度是很慢的,所以,大多的 OutputStream 为了减少设备操作的次数,在写数据的时候都会将数据先暂时写入内存的一个指定区域里,直到该区域满了或者其他指定条件时才真正将数据写入设备中,这个区域一般称为缓冲区但造成一个结果,就是我们写的数据,很可能会遗留一部分在缓冲区中。需要在最后或者合适的位置,调用 flush(刷新)操作,将数据刷到设备中。原创 2022-10-09 15:57:36 · 303 阅读 · 0 评论 -
Object类介绍
java中的所有类都是Object类的子类,Object类是所有类的父类(基类)/祖先类/顶级类Object类是java中的顶级类,即所有类的祖先类,Java里面除了Object类,所有的类默认都会隐式继承Object类,只有Object类是没有父类的(没有继承关系的)所有的类的对象的内存地址都可以被Object类类型的变量接收(向上转型),也就是使用Object类类型的变量可以接收所有类的对象的内存地址。原创 2022-10-04 23:06:56 · 467 阅读 · 0 评论 -
Comparable接口、Comparator接口、Cloneable接口
Cloneable接口用来克隆一个对象,也就是产生一个对象的副本(对象的内存地址不同),对象的副本和原对象不是一个对象,也就是它们的内存地址是不同的,新对象只是原对象的一个拷贝,Cloneable接口表面上是浅拷贝,也可以实现深拷贝。普通类实现Cloneable接口时,需要重写clone方法,clone方法中调用并返回父类(Object类)的clone方法,通过重写并调用clone方法得到返回的新对象内存地址(引用地址)来完成克隆。通过重写并调用compareTo方法得到的返回值来判断两个对象属性的大小。原创 2022-09-27 16:49:24 · 680 阅读 · 0 评论 -
线程安全问题
线程安全问题原创 2022-09-08 19:17:47 · 162 阅读 · 0 评论 -
抽象类与接口
抽象类与接口原创 2022-08-28 17:20:39 · 119 阅读 · 0 评论 -
面向对象基础(五)
面向对象基础(五)原创 2022-08-23 13:32:52 · 135 阅读 · 0 评论 -
面向对象基础(四)
面向对象原创 2022-08-22 08:30:00 · 194 阅读 · 0 评论 -
多线程的使用(二)
多线程原创 2022-08-21 14:39:55 · 561 阅读 · 0 评论 -
多线程的使用(一)
多线程原创 2022-08-21 14:37:52 · 118 阅读 · 0 评论 -
线程与进程的区别
进程与线程的区别原创 2022-08-15 15:17:27 · 177 阅读 · 0 评论 -
面向对象基础(三)
面向对象基础原创 2022-08-12 21:46:56 · 176 阅读 · 0 评论 -
面向对象基础(二)
面向对象原创 2022-08-11 23:02:15 · 114 阅读 · 0 评论 -
面向对象基础(一)
面向对象(一)原创 2022-08-06 12:48:14 · 92 阅读 · 0 评论 -
java数组介绍
java数组介绍原创 2022-08-02 15:36:29 · 379 阅读 · 0 评论 -
java循环语句介绍
java循环语句介绍原创 2022-08-01 12:54:43 · 134 阅读 · 0 评论 -
java循环介绍
java循环介绍原创 2022-07-27 23:11:04 · 207 阅读 · 0 评论 -
java条件语句与编码集介绍
条件语句与编码集原创 2022-07-27 09:00:00 · 306 阅读 · 0 评论 -
java运算符总结
java运算符原创 2022-07-26 09:00:00 · 223 阅读 · 0 评论 -
java基本数据类型介绍
java基本数据类型介绍原创 2022-07-24 21:36:02 · 316 阅读 · 0 评论 -
java命名规则与命名规范
java命名规则与命名规范原创 2022-07-09 17:18:10 · 770 阅读 · 0 评论 -
java入门笔记2
java入门笔记2原创 2022-06-30 17:40:46 · 182 阅读 · 0 评论 -
java入门笔记1
java入门1原创 2022-06-29 16:54:25 · 142 阅读 · 0 评论 -
字符串及其常用方法(1)
字符串及其常用方法(1)原创 2022-06-05 16:40:49 · 2202 阅读 · 0 评论 -
抽象类、接口知识点总结
抽象类知识点当父类的某些方法,需要声明,但是又不知道如何实现时(即不知道方法内部写什么内容时),可以将其声明为抽象方法,具有抽象方法的类就必须定义为抽象类用abstract关键字来进行修饰的类和方法称之为抽象类和抽象方法,如果一个类中的方法被定义为了抽象方法,则这个类必须被定义为抽象类,如果一个类被定义为了抽象类,则类中可以有也可以没有抽象方法抽象类写法:修饰符 abstract class 类名 { 代码......}抽象方法写法:修饰符 abstract 返回值类型 方法名..原创 2022-05-19 21:23:29 · 677 阅读 · 0 评论