![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JavaeeInitial
文章平均质量分 74
一些javaEE初阶的知识
zhenzhizz`
这个作者很懒,什么都没留下…
展开
-
浅谈 Mybatis 框架
MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程(多条SQL语句的集合)以及高级映射。MyBatis 去除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的XML或注解来配置和映射原始类型、接口和Java POJO (Plain Old Java Objects,普通老式Java对象)为数据库中的记录。存储过程:高级映射:程序中的类对应数据库中的表,程序中的类里的属性对应数据库的表中的字段。原创 2024-08-01 21:59:20 · 956 阅读 · 0 评论 -
修改linux服务器上的mariadb/mysql数据库的密码
可能我们在最初安装数据库时没有设置密码或者已经设置了但是又想修改另一个密码,可以这样操作来修改我们的密码。以数据库 mariadb 为例。原创 2024-07-27 14:04:42 · 227 阅读 · 0 评论 -
浅谈 JVM 的内存划分、类加载、垃圾回收机制
java程序在运行之前需要先编译(将 .java文件变成 .class文件(二进制字节码文件))java程序运行时,java进程(即 JVM)就会读取对应的 .class 文件,并且解析内容,在内存中构造出类对象,并进行初始化…类对象:描述了这个类是什么样的,类里包含哪些属性,这些属性的名字、类型,被什么修饰词修饰;类里包含哪些方法,这些方法的名字、类型是什么;还描述了这些类继承自哪个父类,实现了哪些接口。因此类对象也是创建实例的具体依据。类加载就是:将类从文件加载到内存中。原创 2024-07-26 18:50:13 · 697 阅读 · 0 评论 -
浅谈如何在linux上准备java环境并成功部署项目
但是由于我的云服务器使用的版本是 centos7,比较老版,所以没有tomcat8.x系列,一般新版的服务器都会有的。而 openjdk 是开源社区维护的开源版本,所以虽然 oracle 官方的 jdk 和开源社区的 jdk 不是同一个东西,但是他们相差不大,并且功能相互兼容。当我们将自己的项目部署到云服务器上时,首先需要让云服务器上的数据库中含有自己项目对应的数据库、表。因为我们项目之前建的数据库、表是在本地的,项目部署到云服务器上就需要让项目访问的是云服务器上的数据库、表。原创 2024-06-29 15:38:33 · 1508 阅读 · 1 评论 -
浅谈linux(1)
ls:列出当前目录下所有内容ls 后面跟上某个具体路径:可以查看指定目录内容ls -l : 可以以列表形式查看,缩写为 ll3)、pwd查看当前路径对应的绝对路径。就是查看当前位置。/root 就表示在当前根目录下有一个 root 目录,上面我们使用 ll 命令发现有很多目录,也有root目录,这表明我们每次登陆成功,都会默认在root目录下。4)、cd切换当前目录。cd 的效果,就相当于我们在windows上双击文件然后进到文件/目录里一样。cd / :切换到根目录。原创 2024-06-28 02:57:24 · 616 阅读 · 0 评论 -
浅谈Tomcat
Tomcat 就是一个 HTTP 服务器。前面我们聊了HTTP服务器,像我们在网页输入URL,其实就是在给人家的HTTP服务器发送请求,既然有HTTP服务器,那就肯定有HTTP客户端。HTTP客户端,就是我们日常使用的浏览器。我们自己也可以搭建一个HTTP服务器,其实就是搭建网站的 ”后端部分“,本质上就是写个 TCP socket 服务器。但是会比较麻烦,有许多重复性的工作。原创 2024-06-27 01:28:31 · 927 阅读 · 0 评论 -
浅谈网络通信(4)
为了反制运营商劫持保护网络上传输的数据安全,http 开始出现加密版本,即 https。加密和解密。1、明文:要传递的原始信息2、密文:对原始信息进行加工后,即使信息落入黑客手里,黑客也不知道是什么意思3、密钥: 进行加密、解密的关键。密文如何还原成明文,还需要靠这个密钥;如何将明文变成密文,也需要依靠密钥。4、加密:使用密钥将明文变成密文。5、解密:使用密钥将密文变成明文。6、对称加密:加密和解密使用同一个密钥7、非对称加密:加密和解密使用不同密钥。原创 2024-06-26 20:21:54 · 1022 阅读 · 0 评论 -
JAVA——HashTable, HashMap, ConcurrentHashMap 之间的区别
在这个拷贝的过程中,如果要进行查询元素操作,那么旧数据和新数据里的数据一块查询,如果要进行插入元素操作,直接在新数组上进行插入,如果要进行删除操作,直接在旧数组上进行操作。HashTable的锁粒度更大,整个哈希表只有一把锁控制,而ConcurrentHashMap的锁粒度比较小,它的每一个链表有一把锁控制,这样的好处是当两个线程访问同一个对象时,访问到同一把锁的概率大大降低,发生锁冲突的概率大大降低。3、ConcurrentHashMap采用了一个激进的优化方式,只对写操作进行加锁。原创 2023-09-12 20:59:13 · 44 阅读 · 0 评论 -
jQuery中的ajax里的data参数必须与后端代码中的参数名称一致
在书写个人博客项目时发现:原创 2024-02-25 20:57:15 · 75 阅读 · 0 评论 -
方法parseInt()
parseInt(String x) 将字符串x转成整型。原创 2024-02-25 22:18:00 · 91 阅读 · 0 评论 -
Java中前置++、后置++的区别
但是总而言之,不管是前置++,还是后置++,都是先将变量的值加1,然后才继续计算的。,而后置++是首先将变量赋值给一个临时变量,接下来对变量的值加1,然后。的运算,虽然是很简单的运算,但是常常会易忘。一般前置++指:变量。//将加1后的值与之进行计算, 此结果为:110。int temp=i;// 将i赋值给一个临时变量。//将临时变量与之计算, 此结果为:5。:前置++是将变量的值加1后,在日常学习中,通常会遇到。原创 2023-08-14 16:45:54 · 534 阅读 · 0 评论 -
浅谈双指针
从广义上来讲,是指在上遍历从而解决问题。从狭义上来说,对于数组(顺序存储)来说,指两个变量在数组上相互移动解决问题;对于链表,指两个变量在链表上同向移动解决的问题,也可以称为。原创 2023-03-20 19:52:10 · 59 阅读 · 0 评论 -
浅谈网络通信(1)
那么QQ自定义的应用层协议是啥样的?咱们不知道,只有开发者才知道,因此此处QQ自定义的应用层协议我们通过假设进行举例子。假设QQ的应用层协议是这样自定义的:发件人的QQ号、接收人的QQ号、时间、消息内容那么此时就需要将自定义好的应用层协议,原创 2024-05-26 20:36:42 · 1170 阅读 · 0 评论 -
多线程 —— 锁策略
锁策略,对于需要实现锁的程序员要重点掌握;对于普通的程序员,工作中很少会被要求实现一把锁,但普通的程序员会常常在代码中使用线程进行 “并发编程”,此时就会涉及到多线程,多线程会涉及到线程安全问题,线程安全问题就需要加锁进行解决。因此对于程序员来说,锁策略的知识点也需要掌握好。死锁:即在多线程或者多进程的环境下,两个或多个线程在执行过程中,由于争夺资源而造成的一种相互等待的现象,如果没有外力干涉,这些线程都将无法执行下去。原创 2024-05-24 11:39:49 · 676 阅读 · 0 评论 -
浅谈Linux与windows之间文件如何相互下载上传
如果使用rz命令上传文件失败的话,先使用rm+文件名去删除原来目录中的文件,在进行二次上传即可上传成功。因为如果不删除目录中的原文件,上传修改后的同名文件的话,会导致上传不成功。(2)、安装sz、rz命令之后,执行Linux命令: sz+文件名。(2)、安装sz、rz命令之后,执行Linux命令: rz。本地安装Xshell工具之后,连接自己的云服务器。(3)、在弹出的窗口中选择文件存储在本机的位置即可。本地安装Xshell工具之后,连接自己的云服务器。安装sz、rz命令。安装sz、rz命令。原创 2024-02-27 14:19:42 · 466 阅读 · 0 评论 -
多线程典型例子(3)——定时器
定时器:是日常开发中常见的组件,前端/后端都常用到。类似于一个闹钟:等待一定的时间后,执行某个任务。Java中对于定时器的使用提供了标准库中的Timer类(来自于java.util 包下的类 )。/*** 自我实现一个定时器* 实现思路:* 先描述,后组织。* 1、先要能够将一个任务描述出来* 2、使用一定的数据结构将多个任务 TimerTask 组织起来* 创建一个 TimerTask 这样的类表示要执行的任务,类里表示任务执行的内容,以及任务的实际执行时间。原创 2024-05-05 21:14:07 · 129 阅读 · 0 评论 -
多线程典型例子(4)——线程池
由于该线程池类 ThreadPoolExecutor 中的线程数并不是一成不变的,而是根据任务的情况动态变化(自适应),如果任务多,该线程池中的线程数就多一些(创建出来),任务少,该线程池中的线程数就少一些(多余的就销毁),但是此处的动态变化也并不是没有限制,因此ThreadPoolExecutor类的构造方法提供了几个不同含义的参数,来对线程池的动态变化产生一定限制。因此可以使用 线程池,提前创建好一些线程放在线程池中,后续需要使用线程时,直接从线程池中随取随用即可,当线程不再使用时,就放回池子里。原创 2024-05-09 23:39:39 · 899 阅读 · 0 评论 -
多线程典型例子(2)——单例模式——饿汉模式、懒汉模式
详情原创 2024-05-07 19:29:32 · 440 阅读 · 0 评论 -
浅谈操作系统中的重要概念——线程(3)——设计模式
设计模式就相当于菜谱,有了菜谱/秘籍,就能够根据菜谱上的指引/步骤做出许多从前不会的美食,就算不会下厨的人,拥有了食谱,他的厨艺也能够得到提升和保障。因此设计模式就是程序员的菜谱,设计模式中介绍了许多典型场景,以及针对这些典型场景的处理办法。按照设计模式来写的代码不会很差,在一定的规范范围里。设计模式有很多种,不止23种,今天主要介绍两种常见、常用的:1、单例模式2、工厂模式工厂,顾名思义是用来生产的。那么对应到我们代码上,工厂模式就是用来生产对象的。那么具体是怎么进行生产对象的呢??原创 2024-05-07 19:26:49 · 976 阅读 · 0 评论 -
多线程典型例子(1)——阻塞队列
学习了数据结构,我们会接触到队列此数据结构。队列的特点是先进先出。那么如何理解“先进先出”这个概念呢?下图中,右边是一组数:0 1 2 3 4 5 6 7 8,从左至右依次将数字放入队列queue中,再依次将队列中的数字取出来,此时由于0先进队列,因此0也是先出队列的。再举个例子。排队做核酸。先排队的人,就能够先做完核酸,后排队的人,就只能晚点做核酸。队列有许多种类,譬如 优先级队列、消息队列、阻塞队列。此处我们重点介绍阻塞队列。阻塞队列具有队列的一切特点,也是具有先进先出的特点。原创 2024-03-12 11:08:40 · 819 阅读 · 0 评论 -
浅谈操作系统中的重要概念——线程(2)
该篇文章继续重点介绍关于线程的使用,对于Java程序员来说,掌握线程的知识是非常必要的,不仅笔试面试中会用到,实际工作中更会用到。原创 2024-04-29 20:20:57 · 678 阅读 · 3 评论 -
浅谈操作系统中的重要概念——线程(1)
最初是尝试在创建进程时,只给进程分配一个简单的PCB,而不去分配后续进程运行时所需的系统资源,此时这类进程称作——轻量级进程(也叫做 线程 Thread),但是这样的尝试还是出现一个问题:线程创建出来,也是为了到cpu上执行,完成相关任务的。刚创建出来的进程,可以视为是一个只包含一个线程的进程(此时创建的过程需要分配资源,因此此时第一个线程创建的开销就可能比较大,后面再在这个进程里创建的线程,直接服用当前进程的资源,开销就比较小)一个进程中的前台线程都结束了,后台线程还没执行完,也会跟着进程的结束而退出。原创 2024-04-27 21:22:11 · 951 阅读 · 0 评论 -
浅谈在Java代码中创建线程的多种方式
第一种创建线程的方式就是:自定义一个类,并且使该类继承自Java标准库 Thread 类,此时自定义的类需要重写 run() 方法。注意:重写的 run() 方法,要处理异常时,只能 try {} catch (),并不能 throws,这是因为 Thread 类中的 run() 方法并没有throws xxx这样的设定。重写的 run() 方法里书写的逻辑代码就是我们创建出来的新线程,所要执行的任务。原创 2024-04-27 21:19:57 · 883 阅读 · 1 评论 -
浅谈操作系统中的重要概念——进程
以 .exe 为后缀的可执行文件就是一个程序,一般是存储在硬盘上的。上图中,我们可以看到 QQ.exe 就是一个以.exe 为后缀的可执行文件,因此他就是一个程序,应用程序;图中其他以.exe结尾的文件,其类型也是应用程序。程序在没有双击运行时,是静态的存放在硬盘上的,此时并不会消耗系统资源。正在运行的程序就是进程。譬如说:QQ这个程序没有运行时,以 .exe 作为后缀的文件静态的存放在硬盘上,并没有运行。双击运行时,同一个程序,可以产生多个进程。原创 2024-04-25 21:34:05 · 913 阅读 · 1 评论 -
浅谈 操作系统
操作系统 其实就是一个软件(software)。是一个用来进行管理的软件。进行什么样的管理呢?操作系统一般由 内核 + 配套的程序 组成。内核即一个系统最核心的功能:对下,能够管理好各种硬件设备;对上,能够为各种程序提供稳定的运行环境。原创 2024-04-25 12:26:21 · 290 阅读 · 1 评论 -
浅谈SpringBoot
汽车的诞生是为了解决出行的效率低下问题,而智能汽车的诞生是为了解决人类对生活质量的高要求,但是不管是哪种汽车,都是为了让人们更方便的去使用汽车。在Spring项目之前,如果我们想要在浏览器运行一个项目,我们需要像Servlet时代一样,在IDEA中安装插件smart Tomcat,本地下载安装Tomcat,因为这些Spring core(java 程序项目)没有具备http能力。2、使用微服务,可以达到模块化,所以一般公司招聘的时候比较好招到人,因为模块彼此独立,一个模块由一个组做,利于代码独立。原创 2024-01-08 16:09:34 · 968 阅读 · 0 评论 -
浅谈Sping
spring 也叫 spring framework(Spring 框架),它是⼀个开源框架,有着活跃⽽庞⼤的社区,这就是它之所以能⻓久不衰的原因。Spring ⽀持⼴泛的应⽤场景,它可以让 Java 企业级的应⽤程序开发起来更简单。Spring的核心是Ioc(Inversion of control) 控制反转和DI(Dependency Injection)依赖注入。用一句话概括Spring:Spring是一个拥有众多工具、方法的loc容器。原创 2023-12-23 23:07:57 · 1037 阅读 · 1 评论 -
浅谈如何创建一个SpringBoot项目
此篇文章主要介绍专业版IDEA创建SpringBoot项目。原创 2024-01-01 22:34:21 · 494 阅读 · 0 评论 -
浅谈如何创建一个servlet程序
什么是pluging?IDEA是一个功能强大的软件,但也并不是什么功能都已经配置齐全,一些小众的、特定的功能,IDEA提供了对应的pluging在商店中,供用户下载后配置去使用。2)、再在pom.xml中新增一个< build>< /build>标签,同时在< build>< /build>标签里面内置一个< finalName>< /finalName>标签,< finalName>war包名字< /finalName>标签表示打出的war包名字叫什么,此处war包名字自定义,但一般与创建的类类名一致。原创 2023-12-01 21:19:30 · 1167 阅读 · 1 评论 -
浅谈md5算法
md5属于hash算法,md5 是 Message Digest Algorithm MD5 ,叫做信息摘要算法第五版,是常用的密码散列函数,对用户输入的任意长度的信息生成128位的散列值,通过不可逆的字符串变换算法,生成md5信息摘要,如果原信息发生任何一丁点改变,生成的md5信息摘要天差地别,因此md5常常用来确保信息传输的完整性。原创 2024-01-07 16:55:59 · 336 阅读 · 0 评论 -
浅谈贯穿整个Java工程师职业生涯的——>注解
将Spring配置文件配置好了之后,如果想要将创建的User对象存入Spring中,首先在Spring配置文件里写入标签< bean id = “所创建的类的别名(此别名不可重复)” class = “包名 + 类名(标注了一个扫描路径)”>< /bean> ,如果你创建的类就在蓝色Java文件下的话,你只需要在class中填入一个类名,如果你的类名是在包下,你的class中就需要填入包名+类名。那么,我们应该怎样将Bean存入Spring,又怎样将Bean从Spring中取出来呢?原创 2023-12-26 22:58:56 · 998 阅读 · 0 评论